基于Solidworks的选煤厂工业场地三维辅助设计
2015-10-26吴翠平丁清珍张俱嘉郭永昌
吴翠平,丁清珍,路 阳,张俱嘉,郭永昌
(中国矿业大学 (北京)化学与环境工程学院,北京 100083)
随着设计技术的发展和工程建设机械化程度与人力成本的提高,选煤厂工程建设、运行维护、技术改造等对选煤设计图的完整性 (完备性)、可维护性等方面提出了更高要求。CAD平面设计已很难满足选煤厂工程设计技术难度高、设计周期短的需求,需要一种更好的设计思路和设计软件来满足客户需求,三维设计能有效地解决这个问题,选煤工程设计即将迎来设计模式的变革。
目前三维绘图软件不断开发和完善为煤炭工程设计提供了良好的软件绘图环境[1]。在国内煤炭行业中,采矿工程设计较早地采用了三维绘图技术[2-3],目前部分选煤设计单位已采用三维设计软件进行工程设计,如泰戈特公司采用三维技术进行车间布置和管道设计[4-5]。设计图是工程师的表达语言,三维设计能直接将设计者脑海中的模型形象、逼真地反映在计算机屏幕上,能有效解决选煤厂CAD二维设计过程中难以避免的碰撞干涉问题,提高设计效率,更能为选煤厂的施工建设和日后维护与改造提供便利[6]。
文章以选煤厂工业场地设计辅助绘图为目的,针对三维绘图软件SolidWorks进行二次开发,以探索三维绘图应用于选煤厂辅助设计的可行性。
1 SolidWorks二次开发原理
SolidWorks具有非常开放的体系结构,通过提供数百个应用程序接口 (Application Program Interface,简称API)函数作为二次开发接口[7],用户借助高级编程语言作为开发平台,在设计友好操作界面的同时,通过在程序中调用API函数来访问和操作SolidWorks,从而实现三维模型的建立。
SolidWorks对象模型体系采用自上而下的多层次树状网络结构,根为Solidworks对象,Solidworks中的其他对象都是其子对象。为了得到一个特定的对象,必须先从根对象Solidworks起,沿树状结构对其子对象进行遍历。
目前对SolidWorks软件有两种开发方式,一种是基于OLE(对象的链接与嵌入)自动化技术,另一种是基于COM(组件对象模型)规范。OLE自动化技术可以实现在一个应用程序内部控制另一个应用程序提供的对象,特别是能够访问这些对象的属性和方法。COM规范是OLE技术更高层次的发展,提供了客户和组件之间的二进制通讯规范。通过COM规范,可以把应用程序组件像搭积木一样随意“装配”起来,从而构建适合用户的特定的应用程序组件。面向对象的编程语言VB可支持OLE和COM技术,故采用VB作为SolidWorks的二次开发工具[8]。
2 二次开发技术途径
通过编程调用API函数对SolidWorks进行二次开发有两种方式[9]:一是完全编程方式,即通过调用API函数在编程环境中实现SolidWorks建模操作。该方法能保证三维模型完全实现参数驱动,对复杂零件的建模精度较高,但编程工作量大,工作效率低,且对开发人员要求较高;二是设计变量与编程技术相结合方式,由SolidWorks中建立的模型确定设计变量,在程序中调用API函数修改模型的设计变量,通过重建得到最终模型。相对于完全编程方式,设计变量与编程技术相结合方式将初始建模中的大量编程工作转移到SolidWorks内进行,大大减轻了工作量,提高了开发效率。
为此,二次开发采用设计变量与VB编程相结合的方式。首先,在SolidWorks环境中,按照正确的设计关系绘制某一尺寸的建/构筑物模型,并将其保存;根据用户需要分析并确定模型的设计变量,通过VB编程调用API对象,获取并修改标准模型中相关约束变量的参数值[10],使其几何元素和特征的几何或拓扑关系发生改变,并引起相关图形元素和关系的联动,从而完成参数化的零件建模;最后将程序置于SolidWorks的菜单或工具条中。如果变量化参数数值范围明确,则可以基于Access等建立变量参数数据库,并在Visual Basic中通过Data或Adodc数据控件实现对数据的调用。
3 三维辅助设计系统的实现
3.1 开发思路
分析总结选煤厂工业场地建/构筑物的类型和几何特征,在Access下建立选煤工业场地建/构筑物数据库;以VB作为开发平台设计用户界面,在界面中设置数据控件,并与尺寸参数数据库中相应数据建立连接。辅助绘图程序运行时,根据用户选择的标准件规格,自动打开数据库中对应的标准件尺寸参数表,并查询其参数尺寸,再将所得数据返回给设计变量,然后根据变量值更改标准件模型库中模板模型的相应尺寸,进而重新生成所需的建/构筑物模型。三维辅助设计系统实现流程如图1所示。
图1 三维辅助设计系统实现流程Fig.1 Realization process of 3D aided design system
3.2 选煤厂工业场地建/构筑物模型库的构建
根据选煤厂工业场地内某一类建/构筑物的结构特征,建立三维实体模型。实际上是建立这一类建/构筑物的参数化设计模板,将其放入标准件库中,以便通过程序更改其尺寸参数,进而生成新尺寸的目标建/构筑物模型。
在进行三维实体建模前,首先要分析其结构特征,以确定尺寸变量和它们之间的约束关系,再命名尺寸变量名称,建立驱动变量表、变量之间的关联关系,以便赋予尺寸变量不同参数值来驱动SolidWorks,进而重新生成该标准件的三维实体模型,实现标准件的尺寸更新。建模时要特别注意草图的定位、几何约束关系等,以避免在使用VB进行参数化设计时出现问题 (如实体变形、草图过定义等),导致参数化设计失败。
以主厂房为例,在SolidWorks中进行建模,在前视基准面上建立草图,并确定其尺寸变量 (图2),标注其长、宽尺寸,并确定为尺寸变量,通过“拉伸”、“拉伸切除”、“阵列”命令生成主厂房建筑模型 (图3)。
图2 主厂房俯视草图Fig.2 The sketch of top view of the main plant
图3 主厂房建筑模型Fig.3 Building model of the main plant
3.3 用户界面设计与程序建模
用户界面包括选择菜单界面 (图4)和窗体操作界面 (图5)两部分。用户在SolidWorks菜单中单击选择所需类型的建/构筑物模型,程序会自动弹出该模型的操作界面。此时,用户可在窗体操作界面的文本框中输入主厂房的相应数据,也可从数据库中导入数据,该数据通过编程与模型尺寸变量建立连接,点击“绘制”按钮即可实现按输入数据重建模型。
图4 选择菜单界面Fig.4 Selection menu interface
图5 窗体操作界面Fig.5 User operation interface
用户界面设计部分代码为:
要将上述界面中输入的参数转变为SolidWorks的实体尺寸,还需要调用SolidWorks的API函数。在VB中通过调用API函数对象来访问SolidWorks环境中所建工业场地建/构筑物模型的各种参数,包括各种尺寸、各实体表面、实体边界、实体特征等,甚至可以创建、复制、修改模型的实体特征。在Solidworks环境中能够执行的操作,在二次开发中均可通过Solidworks提供的API函数功能来实现。
要通过参数驱动修改模型尺寸变量,先要通过编程打开标准件库中的模型文件,其实现代码如下:
其中OpenDoc6函数用于打开模型文件,ActivateDoc2函数用于激活当前实体模型。假设用户界面中某个输入框用一个变量名代替,例如a=combo1.Text,此时需要调用API函数来访问模型中的尺寸变量,代码如下:
其中SelectByID2函数用于选择建/构筑物模型实体,例如选择面、边、特征、草图等,System-Value为赋值函数,再调用EditRebuild函数即可实现模型的重建。
4 选煤工业场地总平面工程图的生成
选煤厂工业场地的总平面三维工程图能直观地展示场地整体布局,进而提高施工建设效率。在SolidWorks中生成的工程图与建/构筑物模型存在关联,设计人员只需对建/构筑物模型进行修改,工程图就会自动做出相应改变,从而节省了大量设计时间。通过二次开发技术绘制的选煤厂工业场地总平面图如图6所示。
图6 选煤厂工业场地总平面图Fig.6 General layout of industry site of coal preparation plant
5 结语
利用面向对象的开发工具VB对SolidWorks进行二次开发,建立选煤厂工业场地建/构筑物模型库,即可通过可视化用户界面直接访问并操作SolidWorks,实现了选煤厂工业场地建/构筑模型的变量化尺寸驱动建模。
通过变量化尺寸驱动建模,在设计选煤厂工业场地时可以根据需要直接调用并修改模型库中的模型尺寸,实现以“搭积木”的方式完成选煤厂工业场地总平面三维布置,可免去了繁琐的绘图工作,从而有效提高设计效率。
[1]卫玉花,樊民强.计算机在选煤厂设计与技术管理中的应用 [J].选煤技术,2005(1):41-43.
[2]贾卫华.AutoCAD二次开发技术在煤矿中的应用[J].煤炭技术,2013,31(10):199-200.
[3]庞冬冬,马海峰,庞大伟.煤矿三维立体矿图的绘制方法及对比分析 [J].煤炭技术,2014,33(7):272-274.
[4]王建刚.选煤工程三维参数化设计技术及二次开发[J].煤炭加工与综合利用,2013(S1):59-61.
[5]曾跃林,刘 珊.三维设计技术在选煤厂设计中的综合应用 [J].煤炭加工与综合利用,2013(S1):62-67.
[6]刘先春,周庆华.三维模型在选矿厂设计中的应用[J].有色金属设计,2009,36(1):38-40.
[7]叶炜威,余才佳.Solidworks 2006实体建模与二次开发教程[M].北京:国防工业出版社,2006.
[8]田文涛,贺小华.基于VB技术的SolidWorks二次开发与应用 [J].计算机工程与科学,2009,31(7):65-67,76.
[9]徐格宁,朱映东.基于SolidWorks二次开发的变量化三维建模方法 [J].中国工程机械学报,2009,7(1):41-45.
[10]刘志海,鲁 青,李桂莉,等.VB开发Solidworks实现机械产品参数化设计 [J].煤矿机械,2008,29(7):180-183.