2.2建立零件参数化建模模板
以某系列轴向柱塞泵的柱塞为例,其结构如图3所示。
图3柱塞结构示意图
根据其结构,在SolidWorks中按图3绘制草图,标注尺寸,并按结构图中的尺寸名称命名,如“Dl@草图l”。尺寸变量命名完成后,退出草图,旋转生成柱塞实体,将装配所需的点、线和面命名,如将与滑靴配合的柱塞球头面命名为facel,最后将模板模型文件保存为piston.sldprt。
2.3建立插件工程和交互式对话框资源
SolidWorks提供的二次开发向导中,Visual C++ 6.0平台上的向导是基于ATL技术构造的。ATL是一套C++模板库,与MFC的概念相似。使用ATL能够快速地开发出高效、简洁的代码,同时对COM组件的开发提供最大限度的代码自动生成以及可视化支持。
打开Visual C++6.0,新建所需的插件工程,添加插件菜单和函数,可自动生成函数框架,只需添加相关函数代码,运行即可实现插件功能。如添加函数paraPump,则生成函数框架:
新建柱塞参数化建模对话框如图4所示,并添加输入数据编辑框。打开ClassWizard,创建新的对话框类,添加成员变量,将各尺寸输入编辑框赋予变量名称。如将D1编辑框添加为double类刑的变量m—D1。
图4柱塞参数化建模对话框
2.4参数化尺寸驱动建模过程
SolidWorks程序打开模板文件,由以下语句实现:
其中D:\piston.SLDPRT为模板文件的储存目录,模板文件打开后弹出对话框,用户输入尺寸参数,点击确定,程序将用户输入的参数通过对话框中的变量传递至尺寸变量:
其中piston为新建的对话框类,C为定义的单位系数,值为0.001,将用户输入的参数转化成毫米。这样,就已经将用户指定的D1(柱塞外径)的值传递到SolidWorks中了,接下来就是将D1的值赋给之前定义的尺寸变量“D1@草图1”:
首先定义一个尺寸类指针,然后将尺寸变量放到指针中,使用Dimension::SetSystemValue3将变量赋值修改,最后使用ModelDoc2::EditRebuild3重建模型,完成尺寸驱动建模过程。
2.5 自动装配程序开发过程
完成各主要零件的建模后,根据图2的设计思路,先新建装配体文件,然后将零件导入装配体中,根据交互式对话框的数据添加装配关系,完成装配过程。
通过SldWorks::NewAssembly新建装配体文件,通过SldWorks::OpenDoc将零件打开放入缓冲区中,再通过AssemblyDoc::AddComponent4将零件导人新建的装配体中,通过AssemblyDoc::AddMate添加装配关系。
添加装配关系时,需要先选择装配的点线面,以柱塞和滑靴之间的重合配合为例,在零件建模时,若原点定在柱塞和滑靴的球面中心,则此时可通过ModelDocExtension::SelectByID2选择分别位于柱塞和滑靴原点的点,然后添加重合装配关系,程序如下:
若建模时原点不在中心位置,可以在中心位置定义一个点,再使用上述方法。也可通过选择柱塞球头面和滑靴球窝面,添加面重合,这种方法是普遍适用的。零件建模时将配合所需的面命名,在装配体中通过循环遍历面查找选择所需的面,添加装配关系。
先获取部件指针,然后获取零件实体指针,再获取面指针。通过Body2::GetFirstFace和ModelDoc2::
GetEntityName遍历零件各面及获取面的名称,使用判断语句判断是否所需的面,再使用Entity::Select4选择所需的面。
自动装配前,需要用户输入参数,如斜盘的倾斜角度以及转子与斜盘中心之间的距离等,方法与零件建模数据传递相似。以斜盘倾角为例:
pAssmDoc—>AddMate(6,l,true,0,Degree);
其中的Degree即为创建的变量,用来将用户输入的数据传递到SolidWorks API函数的变量中去。