首页/文章/ 详情

【CATIA二次开发】VBA获取实体拓扑案例,代码很简单意义很重大,相信我铁子们

2年前浏览5296

在CATIA零件设计模块,创建倒圆角特征,输入的几何元素类型只能是拓扑边线。比如已知一个立方体,想要在它的所有边线上倒圆角,则输入的边必须是(TriDimFeatEdge)。终端用户进行软件操作模式下,用户可以直接用鼠标选定需要倒圆角的边线,非常方便;但在CATIA VBA二次开发中如果想自动生成倒圆角,则边界的获取会遇到很大困难,我们想要通过 "拓扑边线的名称" 来获取相应的边界几乎是不可能的。


如下是我们给一个立方体倒圆角的对话框。



我们是通过鼠标点选实体表面的拓扑边线来获取输入对象的,十二条边线的名称如下所示,当倒角完成之后,我们删除倒角特征,重新获取这些边线再次进行倒角,我们发现,即便是前后对应的同一条边线,其名称也发生了变化。所以说想要以某一个实体表面的拓扑点,线,面的名称来获取相应的对象是不可行的。



我们可以将上述过程录制一段宏,录制的宏代码中对拓扑边线的解释如下,真实让人头大。

这个brep字符串就像天书,我哇哇大哭了出来。所以专业的vba程序中很少出现brep,这也是我们需要去避免的,事实是如果我们去录制了一段针对“拓扑点线面”对象的宏程序,程序中肯定会夹杂这些“神仙代码”, 然而也正是这些神仙代码大大的限制了VBA开发的发展和崛起。


Set reference2 = part1.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(Pad.1;1);None:();Cf12:());Face:(Brp:(Pad.1;0:(Brp:(Sketch.1;1)));None:();Cf12:());None:(Limits1:();Limits2:());Cf12:());WithTemporaryBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR29)", pad1)



----- 解决 -----


然而也不是没有方法去解决这个“让人头大”的问题。想要选中正方体所有十二条拓扑边线,还有一种我们经常提到的方法,就是“Ctrl F” ,查找,我们可以通过查找命令来获取拓扑对象,而这个“神操作”往往是被“CATIA使用者”或者“二次开发”人员所忽略的


对于CATIA软件的使用者,我们直接点击查找,打开如下对话框,做一下相应的设置。

点击查找,即可选中正方体所有十二条边线,然后点击零件设计工作台的倒圆角命令,所有被选中的边线会自动作为“要圆角化的对象”,我们轻轻点击一下“确定”,倒圆角任务完成。这种方法比一条一条的在实体表面点击要快几秒吧?







对于CATIA VBA程序二次开发,程序猿来说,完全可以基于以上操作逻辑来用程序执行“正方体倒圆角” 这一艰难而复杂的“高端操作”。首先通过代码将正方体所有十二条拓扑边线都选中,代码如下:然后对选中的边线依次倒圆角即可(For循环将每一条边线加入到要圆角化的对象当中进行处理)。

selection1.Search "Topology.CGMEdge,all"


完整程序代码如下,大家可以作为参考。代码很简单,意义很重大。嘘~

Sub CATMain()

Set partDocument1 = CATIA.ActiveDocument

Set part1 = partDocument1.Part

Set shapeFactory1 = part1.ShapeFactory

Set reference1 = part1.CreateReferenceFromName("")

Set constRadEdgeFillet1 = shapeFactory1.AddNewSolidEdgeFilletWithConstantRadius(reference1, 0, 5#)

Set bodies1 = part1.Bodies

Set body1 = bodies1.Item("零件几何体")

Set shapes1 = body1.Shapes

Set pad1 = shapes1.Item(1)

Set selection1 = partDocument1.Selection

selection1.Search "Topology.CGMEdge,all"

For i = 1 To selection1.Count

Set oEdge = selection1.Item(i).Value

constRadEdgeFillet1.AddObjectToFillet oEdge

constRadEdgeFillet1.EdgePropagation = 1

Next

part1.Update

End Sub



来源:CATIA小蚂蚁
科普二次开发CATIA
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-08-08
最近编辑:2年前
CATIA专业培训讲师
日拱一卒无有进 功不唐捐终入海
获赞 38粉丝 128文章 65课程 4
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈