您的位置:网站首页 > Solidworks

利用SolidWorks二次开发的轴向柱塞泵参数化建模设计

时间:2011-01-18 07:31:36 来源:未知

 SolidWorks提供了二次开发接口API,具有良好的开发性和兼容性。用户可以在SolidWorks本身功能的基础上开发出新的功能模块,比如开发出动态链接库DLL插件,以满足特定的需求。SolidWorks通过COM技术为开发人员提供二次开发接口、COM对象包含接口、属性和事件,SolidWorks可以使用标准的COM对象实现调用API函数的功能。

  Visual C++是一种常用的软件编程开发工具,提供了功能强大的集成开发环境。其本身开发环境友好,高度的可视化开发方式和强大的向导工具(AppWizards)能够帮助用户轻松开发出多种类型的应用程序。另外,Visual C++与SolidWorks有极好的连接性,能最大程度地使用SolidWorks API,可以开发出DLL插件,实现特定功能。

  作者采用Visual C++6.0对SolidWorks进行二次开发,实现轴向柱塞泵的参数化建模设计,包括零件的参数化建模以及自动装配。应用参数化建模程序,可以极大地节省开发与改造时间,提高效率,降低了设计的难度,并为后续的各仿真环节提供三维模型基础。

  1 参数化建模设计方法

  零件参数化设计方法可以分为程序驱动及尺寸驱动两种方法。

  程序驱动方法是根据设计的零件尺寸,根据当前单位系统,通过设计过程中的关系,得出方程式,求解各个关键点的坐标,利用SolidWorks API提供的草图绘制工具函数将各个关键点连接起来,完成草图绘制后,调用特征生成命令,完成零件建模。运行时,采用交互式界面,由用户指定尺寸,由程序自动求解关键点坐标,完成建模。程序驱动方法是一种自下而上的建模方法,由底层的点、线、面形成完整模型,一旦用户需要修改模型,必须重新指定尺寸,程序重新求解坐标,绘制草图,对于复杂零件来说,比较费时麻烦。

  尺寸驱动方法是一种自上而下的建模方法,保持零件结构不变,建立好零件模板,将设计尺寸设定为变量,运行时,用户指定尺寸值,由程序自动定位到相应的尺寸变量对草图进行修改,然后完成建模,不必重新绘制草图。此方法的优点在于设计时不需考虑零件的具体尺寸,只需保证结构不变,设定相应的尺寸变量,这样,用户输入不同参数,即可得到结构相同,尺寸不同的零件,方便了系列化的零件设计。这种自上而下的建模方法使得零件的修改与重建相比于程序驱动来说方便了很多。

  2轴向柱塞泵参数化建模设计的关键技术

  2.1程序的功能及设计思路

  三维泵模型的建立是成品设计及后续仿真环节的基础,程序的功能是实现轴向柱塞泵主要零部件的参数化建模设计,完成自动装配过程。

  零件参数化建模程序的设计思路如图1所示。自动装配过程的设计流程如图2所示。

   

 

  图1 零件参数化建模设计流程

   

 

  图2自动装配过程设计流程

  用户只需指定关键参数,而不必动手操作繁琐的绘制建模和选择装配过程,使设计难度和繁琐度大大降低。

  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函数的变量中去。

  2.6整体界面设计

  前述零件参数化建模及自动装配的程序开饭完成后,需要将这些程序整合成DLL插件形式方便使用,根据DLL插件开发的步骤,在SolidWorks菜单栏中添加菜单“pumpdesign”及菜单项“进入轴向柱塞泵设计”,如图5所示。

   

 

  图5菜单及菜单项

  总体交互式界面设计如图6所示。

   

 

  图6选择项目对话框

  3结论

  以SolidWorks为平台,利用Visual C++6.0为开发工具进行二次开发,设计出轴向柱塞泵主要零部件的参数化建模以及自动装配程序,使设计难度及繁琐度大大降低,并为轴向柱塞泵虚拟样机的后续的仿真研究提供了基础。