论文部分内容阅读
摘要:擦窗机是一种操作灵活、方便,作业安全、高效、环保的高空清洗作业设备,其底盘结构因尺寸不同,如果要对部分尺寸进行改变,就要重新进行设计绘图,导致设计工作比较繁重,也增加了资源浪费。本文先对基于C#.NET 的 SolidWorks 二次开发基本原理和方法进行了阐述,然后,探讨了其在擦窗机底盘设计上的应用,以进一步提升擦窗机底盘设计效率与质量。
关键词:擦窗机;底盘设计;C#.NET;SolidWorks 二次开发
随着城市的发展和建筑事业的发展进步,越来越多高层、超高层建筑出现,高层建筑的外墙装饰使用的材料也更加新型和多样。在实际中,清洗高层建筑物的窗户和外墙是一项非常危险、繁重的工作。擦窗机是在悬吊式装饰、装修机械基础上发展起来的高空清洗作业设备,主要用于建筑物窗户和外墙清洗、维修等作业,具有操作灵活、方便,作业安全、高效、环保等显著优势。底盘是擦窗机的重要构成部分,受到擦窗机轨道铺设、立柱形式与尺寸和整机稳定性扥各因素的影响,擦窗机底盘结构尺寸存在较大的差异。在此中情况下,如果要改变部分尺寸,就需要对其进行重新设计绘图,增加了设计工作任务和难度,也容易导致资源的浪费。鉴于此,本文应用C# 语言对SolidWorks 二次开发,以此来实现参数化设计,从而缩短擦窗机底盘的设计周期。
一、SolidWorks二次开发原理及方法
solidworks作为一种三维计算机辅助设计软件,具有极强的通用性强,其支持全参数化、特征造型技术,同时,在COM(Component Object Model,组件对象模型)基础上,能完全支持OLE(Object Linking Embedding)标准,从而可以为用户提供大量面向对象的类体系API接口,自上而下地形成一个多层次树状网络结构。在SolidWorks环境下,程序员在设计过程中,可应用SolidWorks提供的数百个API方法,来开展二次开发。从本质上来看,这些API就是SolidWorks的OLE或COM接口,因而在设计实践中,只要能够支持OLE或COM技术的编程语言,程序员都能将其用作SolidWorks的开发工具。如API SDK是SolidWorks向开发者提供的软件开发工具包,可应用其开发与SolidWorks软件整合的插件程序。使用该工具无需对COM技术有很深的了解,只要熟悉VC、VB或其他OLE开发程序中的一种程序,就能方便地对SolidWorks进行二次开发。
SolidWorks二次开发的形式一般有两种,其中一种是独立应用程序,也就是借助独立应用程序,通过API接口来对SolidWorks提供的服务进行调用,完成对SolidWorks的控制和操作,同时对设计变量进行设置,使用C#程序驱动设计变量,最终促进模型实现更新。使用这种方法优势比较显著,不仅使得编程简单,而且具有良好的通用性;另一种是插件形式,将用户程序视为插件集成到SolidWorks中,这样就可以使用户程序与SolidWorks程序能够在同一进程空间中进行运行,但这样会导致程序运行缓慢。考虑到上述因素,本文拟选择第一种开发方法。
二、擦窗机底盘模型二次开发应用
(一)总体设计思路与设计流程
利用底盘模型库建立擦窗机底盘二次开发的总体结构,设计思路与设计流程见图1。
(二)设计方法与步骤
1、搭建人机交互界面
C#的windows应用程序通过Visual Studio.net进行建立。在“解决方案资源管理器”模块中,先点击“引用”标签来进行引用添加,然后,在“添加引用”中选取“COM”选项卡,找到“SldWorks 2016 Type Library”、“SOLIDWORKS 2016 Commands type library”、“SOLIDWORKS 2016 Constant type library”项,并点击确定。之后,将using SldWorks加入到程序开头和using SwConst中,这样就可以对SolidWorks进行调用,将相应控件添加到应用程序中。这样,通过 C# 语言开发的人机交互界面,就可进一步实现对擦窗机底盘参数化建模。
2、建立三维模型库
分析擦窗机的底盘设计图纸,清楚地掌握其结构设计以及设计中所需要的零件、主要参数等要素,厘清零件与参数的关系。在SolidWorks中,將各零件的三维图绘制出来,并将其装配成底盘装配体。完成上述工作后,再把SolidWorks中绘制的三维图,统一放到程序的Debug文件夹下,这样就建构成功擦窗机底盘的三维模型图库。
3、建立 Access 数据库
目前流行的数据库有ACCESS、SQL SERVER、SQLME等。开发环境不同,需要选择使用的数据库也不同。Access数据库是关系式数据库,也是一个功能强大的数据库管理软件,有着强大的数据分析与处理能力并且应用非常广泛,现已经成为世界上最流行的桌面数据库管理系统。经过微软公司的不断优化改进,ACCESS的新版本功能也变得越来越强大。Access通常是指一系列由行和列组成的列表,行是记录,列是字段。其中,表与表之间有关联、链接关系,字段有唯一的字段名,用户能够非常便捷地进行信息查询。ACCESS是一个面向对象的开发工具,数据库系统中的各种功能通过面向对象的方式对象化,将数据库管理的各种功能封装在各类对象中。Access数据库包含表、查询、窗体、报表、宏和模块六个对象,以上对象均存放在数据库文件中,存储方式单一。Access数据库可用于数据存储分析、软件开发,操作和管理也更加方便,使人们更方便地掌握和操作数据库的功能,普通用户不必编写代码,就能将大部分数据管理的任务完成。对擦窗机底盘参数化设计所需主参数进行分析,结合设计需求,分别利用数据库建立轮距、轨距等底盘设计数据库,存储格式设置为mdb格式。在数据库中,每种主参数都建立相应数据表。 (三)开发过程常用代码
1、应用C#.NET访问Access 数据库
因为擦窗机底盘设计的主参数是在Access数据库中进行存储的,如果要将其赋给程序中的变量来进行实现,成功使SolidWorks的尺寸获得驱动,就应当将Access数据库与人机交互界面的控件进行关联。举例来说,通过SQL语句查询数据库中的一列主参数,然后,再把其赋给交互界面上的ComboBox控件,其实现代码具体如下:
String st = “Provider=Microsoft.Jet.OLEDB.4.0; Data
Source= 测试数据库 .mdb”;
OleDbConnection cn = new OleDbConnection(st);
cn.Open();
string str = string.Format(“SELECT * FROM 轮距”);
d = new DataTable();
sd = new OleDbDataAdapter(str, cn);
sd.Fill(d);
ComboBox.DataSource = d;
ComboBox.DisplayMember = “轮距”;
ComboBox.SelectedIndex = -1;
2、应用C# 语言驱动 SolidWorks 进行底盘参数化绘图
在此过程中,实现代码具体如下:
SldWorks.SldWorks sw = new SldWorks.SldWorks();
sw.Visible = true;
s w.O p e n D o c(A p p l i c a t i o n.S t a r t u p P a t h+”\\底架.SLDASM”,2);
S l d W o r k s.M o d e l D o c 2 s=(M o d e l D o c 2)
sw.ActivateDoc2(“底架 .SLDASM”, true, 0);
s.Parameter(“D1@ 草图 1@ 子装配体 -1@ 底架 .SLDASM/
零件 1-1@ 子装配体 .SLDASM”).Systemvalue = n/ 1000;
sw.EditRebuild3();
三、结语
综上所述,为了降低擦窗机底盘设计复杂性和难度,提高设计效率,降低设计成本和节约资源,本文介绍了基于C#.NET的SolidWorks二次开发在擦窗机底盘上的应用,希冀能为类似二次开发提供一定的支持与借鉴。
参考文献
[1] 江宇 ,周雄 ,刘志华.基于 SolidWorks 软件二次开发的通用零件库 [J]. 机械制造 ,2018 ,(8):50-53.
[2] 史康 ,蒋维 ,宫鹏飞.基于 VB.NET 的 SolidWorks 擦窗機零件库的二次开发 [J]. 现代制造技术与装备 ,2017 ,(12):24-25.
[3] 吴开兴 ,张令涛.基于 SolidWorks 数字矿山模型中液压支架的二次开发 [J]. 煤矿机械 ,2015 ,(5):255-257.
基金项目:海南省级大学生创新创业训练计划项目:《C#移动应用开发》项目编号: 201812308087
王家宁(2000—),男,汉族,内蒙古镶黄旗人,海口经济学院网络学院2018级计算机科学与技术专业本科生在读
刘光楠(1981—),男,汉族,吉林长春人,海口经济学院,讲师。研究方向计算机应用
刘瑞峰(1997—),男,汉族,山西静乐人,海口经济学院网络学院2018级计算机科学与技术本科生在读
薛涵予(2000—),女,汉族,吉林长春人,海口经济学院网络学院2018级计算机科学与技术专业本科在读
海口经济学院 网络学院 571127
关键词:擦窗机;底盘设计;C#.NET;SolidWorks 二次开发
随着城市的发展和建筑事业的发展进步,越来越多高层、超高层建筑出现,高层建筑的外墙装饰使用的材料也更加新型和多样。在实际中,清洗高层建筑物的窗户和外墙是一项非常危险、繁重的工作。擦窗机是在悬吊式装饰、装修机械基础上发展起来的高空清洗作业设备,主要用于建筑物窗户和外墙清洗、维修等作业,具有操作灵活、方便,作业安全、高效、环保等显著优势。底盘是擦窗机的重要构成部分,受到擦窗机轨道铺设、立柱形式与尺寸和整机稳定性扥各因素的影响,擦窗机底盘结构尺寸存在较大的差异。在此中情况下,如果要改变部分尺寸,就需要对其进行重新设计绘图,增加了设计工作任务和难度,也容易导致资源的浪费。鉴于此,本文应用C# 语言对SolidWorks 二次开发,以此来实现参数化设计,从而缩短擦窗机底盘的设计周期。
一、SolidWorks二次开发原理及方法
solidworks作为一种三维计算机辅助设计软件,具有极强的通用性强,其支持全参数化、特征造型技术,同时,在COM(Component Object Model,组件对象模型)基础上,能完全支持OLE(Object Linking Embedding)标准,从而可以为用户提供大量面向对象的类体系API接口,自上而下地形成一个多层次树状网络结构。在SolidWorks环境下,程序员在设计过程中,可应用SolidWorks提供的数百个API方法,来开展二次开发。从本质上来看,这些API就是SolidWorks的OLE或COM接口,因而在设计实践中,只要能够支持OLE或COM技术的编程语言,程序员都能将其用作SolidWorks的开发工具。如API SDK是SolidWorks向开发者提供的软件开发工具包,可应用其开发与SolidWorks软件整合的插件程序。使用该工具无需对COM技术有很深的了解,只要熟悉VC、VB或其他OLE开发程序中的一种程序,就能方便地对SolidWorks进行二次开发。
SolidWorks二次开发的形式一般有两种,其中一种是独立应用程序,也就是借助独立应用程序,通过API接口来对SolidWorks提供的服务进行调用,完成对SolidWorks的控制和操作,同时对设计变量进行设置,使用C#程序驱动设计变量,最终促进模型实现更新。使用这种方法优势比较显著,不仅使得编程简单,而且具有良好的通用性;另一种是插件形式,将用户程序视为插件集成到SolidWorks中,这样就可以使用户程序与SolidWorks程序能够在同一进程空间中进行运行,但这样会导致程序运行缓慢。考虑到上述因素,本文拟选择第一种开发方法。
二、擦窗机底盘模型二次开发应用
(一)总体设计思路与设计流程
利用底盘模型库建立擦窗机底盘二次开发的总体结构,设计思路与设计流程见图1。
(二)设计方法与步骤
1、搭建人机交互界面
C#的windows应用程序通过Visual Studio.net进行建立。在“解决方案资源管理器”模块中,先点击“引用”标签来进行引用添加,然后,在“添加引用”中选取“COM”选项卡,找到“SldWorks 2016 Type Library”、“SOLIDWORKS 2016 Commands type library”、“SOLIDWORKS 2016 Constant type library”项,并点击确定。之后,将using SldWorks加入到程序开头和using SwConst中,这样就可以对SolidWorks进行调用,将相应控件添加到应用程序中。这样,通过 C# 语言开发的人机交互界面,就可进一步实现对擦窗机底盘参数化建模。
2、建立三维模型库
分析擦窗机的底盘设计图纸,清楚地掌握其结构设计以及设计中所需要的零件、主要参数等要素,厘清零件与参数的关系。在SolidWorks中,將各零件的三维图绘制出来,并将其装配成底盘装配体。完成上述工作后,再把SolidWorks中绘制的三维图,统一放到程序的Debug文件夹下,这样就建构成功擦窗机底盘的三维模型图库。
3、建立 Access 数据库
目前流行的数据库有ACCESS、SQL SERVER、SQLME等。开发环境不同,需要选择使用的数据库也不同。Access数据库是关系式数据库,也是一个功能强大的数据库管理软件,有着强大的数据分析与处理能力并且应用非常广泛,现已经成为世界上最流行的桌面数据库管理系统。经过微软公司的不断优化改进,ACCESS的新版本功能也变得越来越强大。Access通常是指一系列由行和列组成的列表,行是记录,列是字段。其中,表与表之间有关联、链接关系,字段有唯一的字段名,用户能够非常便捷地进行信息查询。ACCESS是一个面向对象的开发工具,数据库系统中的各种功能通过面向对象的方式对象化,将数据库管理的各种功能封装在各类对象中。Access数据库包含表、查询、窗体、报表、宏和模块六个对象,以上对象均存放在数据库文件中,存储方式单一。Access数据库可用于数据存储分析、软件开发,操作和管理也更加方便,使人们更方便地掌握和操作数据库的功能,普通用户不必编写代码,就能将大部分数据管理的任务完成。对擦窗机底盘参数化设计所需主参数进行分析,结合设计需求,分别利用数据库建立轮距、轨距等底盘设计数据库,存储格式设置为mdb格式。在数据库中,每种主参数都建立相应数据表。 (三)开发过程常用代码
1、应用C#.NET访问Access 数据库
因为擦窗机底盘设计的主参数是在Access数据库中进行存储的,如果要将其赋给程序中的变量来进行实现,成功使SolidWorks的尺寸获得驱动,就应当将Access数据库与人机交互界面的控件进行关联。举例来说,通过SQL语句查询数据库中的一列主参数,然后,再把其赋给交互界面上的ComboBox控件,其实现代码具体如下:
String st = “Provider=Microsoft.Jet.OLEDB.4.0; Data
Source= 测试数据库 .mdb”;
OleDbConnection cn = new OleDbConnection(st);
cn.Open();
string str = string.Format(“SELECT * FROM 轮距”);
d = new DataTable();
sd = new OleDbDataAdapter(str, cn);
sd.Fill(d);
ComboBox.DataSource = d;
ComboBox.DisplayMember = “轮距”;
ComboBox.SelectedIndex = -1;
2、应用C# 语言驱动 SolidWorks 进行底盘参数化绘图
在此过程中,实现代码具体如下:
SldWorks.SldWorks sw = new SldWorks.SldWorks();
sw.Visible = true;
s w.O p e n D o c(A p p l i c a t i o n.S t a r t u p P a t h+”\\底架.SLDASM”,2);
S l d W o r k s.M o d e l D o c 2 s=(M o d e l D o c 2)
sw.ActivateDoc2(“底架 .SLDASM”, true, 0);
s.Parameter(“D1@ 草图 1@ 子装配体 -1@ 底架 .SLDASM/
零件 1-1@ 子装配体 .SLDASM”).Systemvalue = n/ 1000;
sw.EditRebuild3();
三、结语
综上所述,为了降低擦窗机底盘设计复杂性和难度,提高设计效率,降低设计成本和节约资源,本文介绍了基于C#.NET的SolidWorks二次开发在擦窗机底盘上的应用,希冀能为类似二次开发提供一定的支持与借鉴。
参考文献
[1] 江宇 ,周雄 ,刘志华.基于 SolidWorks 软件二次开发的通用零件库 [J]. 机械制造 ,2018 ,(8):50-53.
[2] 史康 ,蒋维 ,宫鹏飞.基于 VB.NET 的 SolidWorks 擦窗機零件库的二次开发 [J]. 现代制造技术与装备 ,2017 ,(12):24-25.
[3] 吴开兴 ,张令涛.基于 SolidWorks 数字矿山模型中液压支架的二次开发 [J]. 煤矿机械 ,2015 ,(5):255-257.
基金项目:海南省级大学生创新创业训练计划项目:《C#移动应用开发》项目编号: 201812308087
王家宁(2000—),男,汉族,内蒙古镶黄旗人,海口经济学院网络学院2018级计算机科学与技术专业本科生在读
刘光楠(1981—),男,汉族,吉林长春人,海口经济学院,讲师。研究方向计算机应用
刘瑞峰(1997—),男,汉族,山西静乐人,海口经济学院网络学院2018级计算机科学与技术本科生在读
薛涵予(2000—),女,汉族,吉林长春人,海口经济学院网络学院2018级计算机科学与技术专业本科在读
海口经济学院 网络学院 571127