You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Catia V5宏获取坐标系所在零件的名称

嘿,我来帮你搞定这个问题!你已经通过搜索定位到了可见的坐标系,现在要自动获取它们所属的零件名称,完全不需要用户手动输入对吧?

解决方案:自动获取坐标系所属零件名称

你可以通过遍历选中的坐标系对象,逐层向上追溯它们的父级元素,最终找到对应的零件。这里给你修改并补充后的宏脚本:

'构建查询字符串
Dim sQuery
sQuery = "CatPrtSearch.AxisSystem.Visibility=Visible,all"
Dim Selection
Set Selection = CATIA.ActiveDocument.Selection
Selection.Search sQuery

'遍历选中的每个坐标系
Dim i As Integer
For i = 1 To Selection.Count
    Dim axisSys As Object
    Set axisSys = Selection.Item(i).Value
    
    '向上追溯找到所属的Part对象
    Dim parentObj As Object
    Set parentObj = axisSys.Parent
    Do While Not TypeName(parentObj) = "Part"
        Set parentObj = parentObj.Parent
    Loop
    
    '输出零件名称(你也可以把这个名称存到变量里做后续处理)
    MsgBox "坐标系" & i & "所属零件名称:" & parentObj.Name
Next i

关键逻辑说明:

  • axisSys.Parent:先获取坐标系的直接父对象(可能是几何集、零件本体这类层级元素)
  • Do While循环:持续向上遍历父对象,直到找到类型为Part的对象——这就是坐标系所属的零件
  • parentObj.Name:提取零件的名称,你可以根据需求把它存进数组、写入文件,或者集成到其他自动化流程里

整个过程完全不需要用户介入,脚本会自动处理所有找到的可见坐标系,并输出对应的零件名称。

内容的提问来源于stack exchange,提问作者XanderVreeswijk

火山引擎 最新活动