正文
字体:    

基于SolidWorks的液压缸快速设计插件的二次开发

中国机械工业联合会机经网  发布时间:2012-01-18 15:30:05  来源:solidworks.e-works.net.cn


液压机是现代工业中广泛使用的机器设备,在液压机用户个性化产品设计中,经常要根据用户的需要,在原有产品的基础上,对结构进行变形重新设计。图1 液压缸快速设计图形界面图2 提示信息参数输入部分提供了主要的尺寸输入,用来驱动摸型中对应的尺寸重新生成模型。

  液压机是现代工业中广泛使用的机器设备,在液压机用户个性化产品设计中,经常要根据用户的需要,在原有产品的基础上,对结构进行变形重新设计。液压缸是液压机的主要功能部件之一,安装在液压机的上横梁上,在对液压机进行变形设计时,液压缸的结构基本保持不变,只是在尺寸大小上需要进行调整。虽然有时需要改变的主要尺寸很少,但涉及到液压缸装配体的结构尺寸、安装尺寸都需要作重新改变。

  例如,当改变液压缸的行程时,活塞杆的长度、缸体锁母螺纹的位置、缸简的长度等许多尺寸都需要作改变,必须重新绘制装配图和零件图,需要花费许多的精力。SolidWorks软件的参数化建模功能可以帮助用户快速重新生成模型,并将模型的改变反映到工程图中。SolidWorks提供了几百个API(Application Program Interface)函数,这些API函数是SolidWorks的对象嵌入连接OLE(Object Linking and Embedding)和组建对象模型COM(Component Object Model)的接口,任何支持COM和OLE的编程语言都可以作为SolidWorks的开发工具,如VB、VBA、VB.NET、C、Visual C++、C++、Delphi等,利用这些开发工具,就可以建立适合用户需要的、专用的功能模块,实现快速设计。

  本文选用VB作为开发工具,以我公司常规产品中公称力为315t液压缸,开发设计了能在SolidWorks上运行的液压缸设计的插件菜单和图形界面。

  1 VB-SolidWorks接口——动态连接库DLL文件

  动态链接库(Dynamic Link Library,DLL)是基于Windows程序设计的一个非常重要的组成部分。DLL包若干个函数、类和资源的库文件,它不能直接运行,但可以被其他可执行文件动态调用。SolidWorks中的插件,如Photoworks、SolidWorks Toolbox、Cosmos等都是通过这种方法嵌入到SolidWorks主菜单中的。

  SolidWorks API软件包含了SolidWorks操作的所有功能函数,针对不同的开发工具,提供了不同的接口连接方式,以及各种开发工具包,这些开发工具包都可以在SolidWorks官方网站上下载。本文中要用到由SolidWorks公司提供的一个能在VB中生成DLL格式文件,并能通过插件的方式嵌入到SolidWorks主菜单中的程序,读者可以到http://www.solidworks.com/pages/services/APIDownloads.html网页上下载“Add menu item and corre sponding toolbar and toolbar button(VB)”程序,用VB打开该程序,用户只要根据自己的需要在初始代码的基础上发挥自己的创造性添加自己的代码即可。

  该程序包括了引用swpublished.tib类型库,定义SIdWorks对象、执行SwAddin接口方式,菜单项的加载和卸裁、菜单项的调用4个部分组成,前两个部分是VB和Solidworks的通迅接口,用户不用修改,后两项用户可以根据自己的需要进行修改,可以设置在SolidWorks中显示的菜单项,由于该部分的代码较长,这里就不作具体的叙述。

  2 界面设计

  一个完整的设计系统应该符合人性化的需要,具有良好的人机交互界面。本文设计的窗体如图1所示,主要包括4个方面的内容:设置工作目录、液压缸外形图、参数化输入和计算部分。

  设置工作目录:设置工作目录部分主要由两个TextBox控件和一个DirListBox控件组成,一个TextBox控件用来显示DirListBox控间中设置的工作日录路径,即设计结果保存的位置,另一个TextBox控件用来在需要更改设计结果保存的文件夹名称时输入新的文件夹名称,回车即可更改在DirListBox控件中选定的文件夹的名称。为了增强工作目录设置部分的功能,这里设计了“浏览”、“新建”、“更名”、”删除”、“确定”功能按钮和DirListBox控件中的右键菜单,如图1所示。“浏览”功能按钮通过鼠标点击操作调用Windows的通用对话框“浏览文件夹”来设定工作路径,默认的工作路径为:App.path+“\设计结果”,即为DLL文件路径下“设计结果”文件夹。“新建”、“更名”、“刷新”、“删除”等功能和Windows中的常用操作相同。特别值得注意的是,为了保护Windows系统文件夹和该液压缸设计系统下的文件夹不被删除或重命名,这里使用了条件判断语句将其排除在外,并使用消息对话框显示,如图2所示。

图1 液压缸快速设计图形界面

图2 提示信息

参数输入部分提供了主要的尺寸输入,用来驱动摸型中对应的尺寸重新生成模型。对于标准的安装尺寸,如果对应的参数较少,可以直接将其编写在样序当中,通过选择语句来选取需要的尺寸数据组;如果数据较多,直接编写到程序当中使得程序代码过长,增加了程序修改时的数据校对工作和降低了程序的可读性,这时可以通过Access建立系列尺寸数据库,通过调用数据查询函数直接调用Access数据库中的数据来驱动模型中的系列尺寸的重新生成。例如本文,根据用户对液压机速度的不相同,选择液压缸底部安装的充液阀的通径也不相同,液压缸缸底充液阀安装孔的尺寸需按充液阀样本参数进行相应的改变,因此,本文根据使用的充液阀型号的不同,将这些参数编辑成Access系列尺寸数据库,通过下拉列表框中的不同选择来读取对应的参数,驱动模型设计部分的尺寸重新生成。并将所选择的型号的充液阀外形以图片的方式显示在图形界面中。

  计算部分提供了设计液压缸时常用的一些参数的计算。一般来讲,液压缸的主吨位(公称力)是一个系列值,这是因为在确定的最大工作介质压力的情况下,液压缸筒的内径需要根据标准的密封件来确定。但有时根据设计的需要,需要设计不同的参数。例如,需要根据用户所使用的模具的重量,来匹配合适的回程力,回程力太小,不能带动模具回程;回程力太大,则液压缸的缸径与杆径的比值太大,这不仅降低了回程速度,降低了工作效率,而且降低了活塞缸的抗弯强度,降低了机床抗偏载的能力,还增加了活塞杆的切削加工余量,造成资源的浪费等不利因素。

  本文中的计算分成了如图1所示的两部分,即根据液压缸的尺寸等参数计算液压缸的设计参数,和根据设计参数来计算尺寸参数。由于本文涉及的计算均为不小于零的数值,因此,为了防止计算程序出错(例如分母为零)在计算按钮的点击事件中加入了判断语句,并用消息框返回消息来提醒用户输入错误。

  本文涉及的计算使用的公式如下:

  式中:V1为最大慢下速度;V2为最小慢下速度(当泵满负荷工作时,其排量降低到全排量的40%);q为泵流量;ω为电机同步转速;D为缸径;d为杆径;F公称为液压缸公称力;F回程为液压缸回程力;P为工作介质的最大压力,这些参数的单位请参照图1所示。

  由设计参数计算尺寸参数值只需要将上述公式进行变形即可,本文不作过多叙述。值得注意的一点是,一般根据设计参数计算的尺寸参数是不符合液压缸尺寸设计标准的带小数点的数值,这时候需要根据情况进行圆整。

  图1中计算部分的“清除”按钮在默认状态下是不可用的,只有点击了“计算”按钮才能将其激活;“清除”按钮的功能是快速清除计算部分右边输入框中的数值,当执行了“清除”操作后,该按钮被置为不可用状态,该功能的实现主要是调用了VB中按钮点击事件的Enable函数;“复位”按钮的功能是快速恢复计算部分输入框中的设置到初始状态,方便用户输入参数。

  3 系统设计结构原理

  本文基于参数化设计原理的液压缸快速设计系统,是一个变形设计系统,执行变形设计原理的系统结构如图3所示。其中主要包括4个基本组成部分,即:Access数据库与VB的通信、VB图形界面编程,输出DLL文件生成SolidWorks插件菜单项、SolidWorks环境下的参数化建模及工程图纸的制作、SolidWorks VBA环境下修改模型并录制宏,修改宏,并将程序插入到VB界面的程序中。各部分的相互联系参看图3中的箭头所示,关于各部分相互作用的原理,下文将作具体的论述。

图3 液压缸快速设计系统结构原理图

  4 菜单设计

  最终设计的液压缸快速设计系统是作为SolidWorks的一个插件存在的,当液压缸设计系统被插入到SolidWorks系统中,在SolidWorks的主菜单上应出现液压缸设计菜单项,打开所开发的图形界面。这里需要通过函数SwAddin_ConnectToSW和SwAddin_DisconnectFromSW实现与SolidWorks通信的连接与断开,在这两个函数中添加相关的代码可以实现在SolidWorks中添加和删除所开发的插件菜单。

  为了能在SolidWorks的空文件、零件建横、装配体和工程图对象的这4种环境中均生成菜单项,程序中需要引用swDocNONE、swDocPART、swDocASSEMBLY、swDocDRAWING 4个API对象。关于这部分的程序代码结构比较复杂,限于文章篇幅,这里不作详细论述,读者可以参看前文提到的“Add menu item and corresponding toolbar and toolbar button(VB)”程序。只要发挥自己的创意,对这部分的代码进行适当的改变就能在SolidWorks的4种环境中生成用户自己菜单项。在SolidWorks系统中生成的插件菜单项如图4所示。

图4 SolidWorks系统中生成的插件菜单

  5 参数化建模

  315t液压缸的装配体模型包括缸筒、活塞杆、导向套、缸口法兰、活塞杆法兰、大锁母、上下腔油口法兰。参数化建模就是要求各零部件的位置尺寸、几何尺寸和配合关系之间相互关联,例如,改变缸筒的长度、活塞杆的长度、锁紧螺纹的位置、下腔油口法兰相对缸筒的位置,以及导向套、缸筒法兰、活塞杆法兰相对原图纸中的位置都要跟着改变。SolidWorks提供了尺寸重命名、变量定义、方程式、各种几何约束和关系约束的功能,用户可以先定义一个变量并赋值,在建模时赋给特征尺寸就可以驱动图形发生变化。例如,根据活塞杆和导向套的配合关系,活塞杆的直径与导向套内径相等,在回程力发生变化时,活塞杆的直径就会发生改变,这时可以通过方程式令两尺寸相等,“Dia_GangTong@草图2@YL32-315.3A-3导向套.Part”=Dia_DaoTao@草图1@YL32-315.3A-2活塞杆.Part。本文中设置的方程约束,装配约束较多,限于篇幅。这里只讲解其原理,不一一列举,用户根据自己的模型的不同,参数约束也不一样。

  6 尺寸驱动重建模型

  按照图纸在SolidWorks中建立好各个零件和装配体的三维模型,并在SolidWorks工程图环境中做好各零件和装配模型的工程图。在由三维模型制作工程图时,可以利用SolidWorks的几何约束功能,可以保待一些尺寸、轴助线或注释的位置在图形发生更新时它们的相对位置保持不变。通过VB开发的图形界面来重新生成工程图纸,可以由以下几个主要的步骤实现。

  (1)录制宏。SolidWorks宏可以记录SolidWorks用户接口执行的各种操作,并可以重放这一过程。打开装配体模型。启动SolidWorks宏录制工具,修改需要重新生成的尺寸并重建模,模型重建结束后保存宏。使用编辑宏按纽就可以打开所录制的宏。例如,修改液压活塞杆行程部分的宏代码如下:

(2)修改宏。所录制的代码前部分是一些变量的定义,代码的主体是Sub main()到End Sub中的部分,其中“boolstatus=Part.Extension.SelectByID2(“L0@草图1@YL32-315.3A-1主缸体-1@YL32-315.3A”,“DIMENSION”,0.454006302181,-O.06290820725156,-0.1556437768723,False,0,nothing,0)”表示的是选择要修改的尺寸,其中的“0.454006302181,-0.06290820725156,-0.1556437768723”表示选择的尺寸的几何位置,没有实际的意义,可以全部置为0;“Part.Parameter(“L0@草图1@YL32-315.3A-1主缸体.Part).SystemValue=1”表示对选择的尺寸重新赋值为1m。值得注意的是,SolidWorks API中的长度单位为“m”而SolidWorks系统显示的尺寸为“mm”,因此,在VB程序代码中涉及要通过输入的方式来驱动SolidWorks三维模型的尺寸都应除以1000。

  (3)重建并保存模型。只要将代码“Part.Parameter(“L0@草图1@YL32-315.3A-1主缸.Part”).SystemValue=1”等于号后的值通过用VB窗体中的TextBox控件来定义,就可以通过输入的方式来驭动SolidWorks对模型进行重建了。按照这种方法,将需要修改的尺寸一一录制宏,并在设计的窗口界面中设置相应的输入框,将尺寸选择和尺寸数值修改部分的代码复制到重建模型的功能函数中,就叮以完成复杂模型的重建。为了防止输入的数据错误,造成模型重建错误,可以增加一些关系判断语句,在执行模型重建之前先判断输入的数字是否符合要求,并以消息返回错误的输入信息,使系统其有更高的人性化。

  为了在模型重建时不至于将原模型修改掉,这里在“建模”按钮点击事件中,先调用一个模型复制功能函数,将原模型中的文件复制到工作路径文件夹中,再通过打开摸型命令打开工作路径文件夹中的装配体模型,通过输入对话框中的尺寸数值来驱动模型重建。复制文件的实现主要调用了VB中的ObjFileCopy.CopyFile函数,关于该函数的用法,用户可以参看VB提供的MSDN帮助系统。

  另外一方面,对于一些特征,其位置可能根据设计要求的不同,需要作一些调整,可以将该部分的特征在不同的位置分别进行建模,通过在设计的窗体界面上设置单选框,来驱动局部特征的压缩(压缩特征表示将压缩的特征不显示在模型中,生成的工程图中该部分特征也不显示,但需要注意模型树中被压缩特征以下的特征与被压缩的特征没有父子关系,否则这些与之相关联的特征也将被压缩)和激活,例如,本文中液压缸上腔油口可以开在缸底,也可以开在缸体的圆柱面上,这时可以用上述的方法来选择其位置。关于该部分的功能,本文没有具体去实现。

  (4)重新生成工程图。当三维模型改变了之后,保存在硬盘上的工程图文件并没有立即刷新,需要在SolidWorks环境下打开工程图,则三维模型中的改变将自动反映到工程图中,因此要刷新工程图,需要将各工程图一一打开并保存,为了简化程序,可以将各工程图的打开和保存动作分别定义成功能函数,在“建模”命令按钮中调用即可。它包括了定义要重新生成的工程图保存路径、打开工程图并激活、重建模型并保存几个部分组成。如图5所示为参数改变后、驱动系统重新生成的液压缸装配工程图。

  在工程图中,经常有许多文字部分的技术参数是根据模型的参数来确定的,例如,本文中液压缸的回程力是很据活塞杆的杆径和缸筒内径、工作介质压力来确定的;装配体的总重量是根据各零部件的尺寸和材料密度来确定的;绘图日期是根据设计者设计的日期来给定的等。这时可将其值定义为方程式或系统值,将需要改变的技术参数根据模型中的参数自动计算,并通过文字的连接功能自动更新。

图5 重新生成的液压缸装配工程图

  7 结论

  介绍了用VB对SolidWorks进行二次开发的方法,充分利用SolidWorks的基于特征三维模型重新生成的特点,克服了传统的完全编程方式在开发软件中调用API编辑SolidWorks特征建模代码的复杂性难点,特别是复杂的大型装配体的重建问题。利用VB设计输入窗口,只对需要修改的尺寸参数进行编程,驱动SolidWorks对模型进行重建,大大减小了程序的代码长度,实现了对复杂模型的参数化驱动建模和工程图纸自动刷新,大大加快了工程设计人员的设计速度,节约了产品设计时间,满足用户个性化设计的需要,对用户标准化、系列化的产品有着广泛的应用价值。

分页栏

做好产业规划  推动产业升级
责任编辑:机经网编辑部 xuyf
字体:    
   如果您还不是会员,欢迎注册!评论不能多于500字。   已有1320条评论  点击查看

用户名: 密码:

 匿名发表       

  留言须知

? 遵守《互联网新闻信息管理制度》。

? 遵守中华人民共和国法律法规。

? 尊重网上道德,严禁发表侮辱、诽谤、淫秽内容。

? 承担一切因您的行为而直接或间接引起的法律责任。

? 您的言论机经网有权在站内保留、转载、引用或删除。

? 参与本评论即表明您已经阅读并遵守上述条款。

会员服务 会员服务
会员服务
会员服务涉及机械行业各种研究报告、数据库查询、产品市场调研等。帮助企业全面掌握第一手权威信息。
    企业自供信息