欢迎来到天天文库
浏览记录
ID:50555345
大小:22.71 KB
页数:3页
时间:2020-03-10
《Solidworks二次开发遍历.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Solidworks二次开发—06—在装配体中添加配合分类: devil-boxabout2005-04-0710:38 1514人阅读 评论(3) 收藏 举报distanceinputfunctionalignmentobjectassemblySolidworks二次开发—06—在装配体中添加配合折腾了三天终于完成了计划中的功能模块。在一个装配体中自动判断插入合适的零件,并添加配合。在前面几篇文章中我已经基本上说明了如何得到零部件的数据信息、如何插入零部件、如何得到已经选择的特征等。下面只介绍怎样进行配合在做配合时,需要经常选择到零件的面、线等,这是一个问题,还有就是介绍一下add
2、mate2函数的使用:一般进行配合我们按照下面的次序来进行:1-ModelDoc.ClearSelection2 ‘取消所有选择2-选择需要配合的实体(entity)3-使用AddMate2函数进行配合4-再次使用 ModelDoc.ClearSelection2 ‘取消所有选择主要的问题在于如何选择合适的面:由于面的命名没有什么规律,很多时候是程序自动来命名的,这样,不方便使用selectbyID来选择,我也不想使用坐标值来选择一个面,那样做更加糟糕。在得到一个组件(component)或者一个特征(feature)时,我们有getfaces、getfirstfa
3、ce、getnextface等方法,我们可以使用这些方法遍历一个组件或特征等的各个面,来达到选择面的目的,看下面程序:PrivateFunctionselectface(dcomAsSldWorks.Component2,tpAsInteger)AsBoolean Setswdowelbody=dcom.GetBody() IfswdowelbodyIsNothingThen '错误处理 MsgBox"选择零件失败" selectface=False ExitFunction EndIf SetswDCface=swdowelbody.GetFirs
4、tFace‘得到第一个面 DoWhileNotswDCfaceIsNothing ‘遍历各个面 SetswDsurface=swDCface.GetSurface ‘得到表面对象 IfswDsurface.IsCylinderThen ‘如果是圆柱面 Iftp=0Then 'meanscylinder SetswDEnt=swDCface swDEnt.Select4True,selDd
5、ata selectface=True ExitFunction EndIf Else ‘如果是其它,当然实际中我们可能需要使用select来定义好多分支 Iftp=1Then 'meansplane SetswDEnt=swDCface swDEnt.Select4True,selDdata selectface=True
6、 ExitFunction EndIf EndIf SetswDCface=swDCface.GetNextFace Loop EndFunction此函数接受两个参数,第一个是一个component对象,第二个用来标识选择类型:0表示圆柱面,1表示平面。此函数运行完成后将选择指定组件的指定类型的一个面。需要注意的是我们需要在判断面类型时候需要转换到surface对象。而且选择需要定义一个entity对象,用来select4,达到选择的目的。可能这个过程有些复杂,大家按照这个顺序多测试几次,就明白了它的工作原理。上
7、面的函数写的并不好,是我从我的工程中截取的一段。下面介绍一下addmate2函数: Syntax (OLEAutomation)OLE语法:pMateObjOut=AssemblyDoc.AddMate2(mateTypeFromEnum,alignFromEnum,flip,distance,distAbsUpperLimit,distAbsLowerLimit,gearRatioNumerator,gearRatioDenominator,
此文档下载收益归作者所有