概述:基于SolidWorks三维设计软件,介绍了利用VB程序设计语言对SolidWorks工程图进行二次开发的关键技术及其方法。在对SolidWorks API函数进行分析的基础上,对零件工程图实现了参数化后工程图的标注和准确定位。
SolidWorks是一款将三维造型技术与二维绘图融为一体的三维设计软件。三维模型中的相关参数如尺寸、注释、文件属性等内容都与该三维零件所生成的二维工程图信息一致,这样保证了数据的一致性。但SolidWorks软件从模型直接生成的工程图,其标注的尺寸、字体及注解都不符合我国机械工程制图的要求,若应用软件自身功能修改,又显得很繁琐。如何通过程序开发来实现在可交互界面上进行工程图信息的快速添加与修改就成了关键的问题。
本文详细介绍了利用VB语言对SolidWorks进行二次开发,实现工程图标准标注的方法,并将其应用在立式袋包装机纵封辊的设计中,为其它零件图的设计提供了参考。
1 VB对SolidWorks的二次开发
SolidWorks API是树型层次结构。SolidWorks是根目录对象类,位于应用程序的底层。它包括MxleIDoc,Environment,Frame,AttributeDef,Mxleler,WpropertySheet,它是访问SolidWorks API所有对象的入口程序。它能直接或间接地访问SolidWorks API中的所有其它对象。接口对SolidWorks API的调用实行逐级寻访,即先调用能实现所需功能的对象的父对象,然后调用与父对象相关的子对象,如果子对象所封装的属性和方法不能实现所需要的功能,则继续调用该予对象的下级子对象,如此逐级遍历,直到结束。如果对SolidWorks API对象进行跨级调用,程序会出错。
1.1 SolidWorks二次开发的流程
(1)创建SolidWorks对象,实现和SolidWorks应用程序的连接;
(2)利用SolidWorks提供的API函数,创建应用程序所需要的操作和设置;
(3)最后创建SolidWorks及其它对象结束程序,完成整个流程。
流程框图如图1所示。
图1 SolidWorks工程图的二次开发流程图
1.2 SolidWorks二次开发的过程及用户界面
用VB开发SolidWorks时,一般是利用宏录制命令在SolidWorks环境中录制SolidWorks的相关操作来获得程序头部和应用程序的代码,然后将代码经过适当的修改后放到VB中使用。为了更大程度地提高工作效率,利用VB通过对SolidWorks进行二次开发,建立了工程图属性窗口如图2所示。通过这个工程图属性窗口,可以对当前工程图尺寸公差、粗糙度、形位公差等进行随意修改。
图2 工程图属性窗口
2 工程图的转化与标注
按照用户的需要根据零件设置图纸的大小对工程图属性进行操作。点击输出此零件工程图按钮,通过VB程序实现对该工程图的转换、尺寸及注解等标注。
2.1 生成标准的三视图
在生成三视图的时候,首先应根据零件和绘图比例的大小选择图号。本文以袋包装机中纵封辊(如图3)为例进行转化,图号为Al,可自动标注尺寸及注解。由于纵封辊的结构比较简单,所以只取一个视图的一部分为例,如图4所示。
图3 纵封辊
图4 纵封辊部分视图
程序主要代码:
为了更清楚地表达零件各部分尺寸和结构,有时需用剖视图、局部视图等,这时可以用剖视图函数retval=DrawingDoc,CreateSectionViewAt4(X,Y,Z,SectionLabel,Options,ExcludedComponents)生成剖视图或者其它的局部视图来增加图纸的可读性。
2.2 图纸属性操作
一张完整的零件图包含的内容很多,当用SolidWorks对零件进行参数化设计的时候,改变零件的尺寸后,其图纸中的尺寸也会随之改变,图纸中包含的形位公差、粗糙度等注释如果按照原来程序进行自动标注会出现乱标现象。因为形位公差、粗糙度在SolidWorks工程图中一般是按照在图纸中的坐标进行标注的,当零件尺寸发生变化时,坐标也将会发生变化,以至于寻找不到所要求的坐标。本程序解决了这种乱标问题。
在SolidWorks工程图中,默认以工程图左下角为坐标原点,通过指定形位公差、粗糙度等注解在图纸中的相对坐标来进行标注。因此即使零件尺寸发生变化,也会通过自动增加或减少零件尺寸变化部分来实现准确定位。主要程序如下:
其中(a+b,c+d,0)为该粗糙度所标注位置的坐标,而(a,c,0)力零件视图的几何中心坐标,(b,d,0)为相对于以(a,c,0)为坐标原点的坐标,当对零件进行参数化改变尺寸的时候是以(a,c,0)为中心向四周延伸或缩短,所以(b,d,0)即等同于零件尺寸的改变量。这样无论零件尺寸如何变化,其粗糙度会准确地标注,不会出现乱标现象。
形位公差的标注方法和粗糙度的标注原理一样,不再赘述。
3 结束语
本文利用VB语言对SolidWorks进行了二次开发,通过袋包装机中纵封辊零件的参数化设计及工程图绘制说明二次开发的意义,它解决了SolidWorks软件在机械工程图设计中的缺陷,为SolidWorks软件在机械制造业的广泛应用和功能提高奠定了基础。
发表时间: 2014/10/13 作者: 李生元*尚锐*何云芳 来源: 互联网
关键字: SolidWorks API函数 工程图
青岛友创软件,助力工业企业数字化升级
达索官方认证SolidWorks代理
青岛友创软件科技有限公司(山东省装备制造业协会技术开发服务中心)
官方网站:www.yotron.net
服务热线:0532-58780826、13969671232(微信同号)
咨询邮箱:support@yotron.net
办公地址:山东省青岛市市北区龙城路31号卓越世纪中心4号楼1201-1221