You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Catia VBScript剪切粘贴后实例名添加(.1)后缀的解决方法求助

解决CATIA实例重排序时粘贴添加后缀的问题

问题根源:你用的剪切粘贴操作,在CATIA中本质是先复制元素到剪贴板,再在目标位置创建新实例,最后删除原实例。系统为了避免命名冲突,会自动给新实例添加.1、.2这类后缀。要避免这个问题,应该直接使用CATIA API提供的实例移动方法,而非剪切粘贴。

替代方案:使用Products.Move方法直接调整顺序

这个方法可以直接将目标实例移动到指定位置,不会创建新实例,因此会保留原实例名称。

示例代码

' 假设你要移动的实例是targetInstance,目标父产品是parentProduct,要移动到index位置(从1开始计数)
parentProduct.Products.Move targetInstance, index

结合你的场景修改代码

如果你的需求是将selection1中的实例移动到product1下的指定位置,可以这样写:

' 获取要移动的实例(假设selection1中只有一个实例)
Dim targetInstance As Product
Set targetInstance = selection1.Item(1).Value

' 获取目标父产品(你的product1)
Dim targetParent As Product
Set targetParent = product1

' 将实例移动到目标父产品的最后位置(如果要指定位置,把第二个参数改成对应索引)
targetParent.Products.Move targetInstance, targetParent.Products.Count + 1

' 清空选择
selection1.Clear

关键说明

  • Move方法的第二个参数是目标位置的索引,CATIA的产品树索引从1开始:
    • 传入1会把实例移到目标父产品的最顶部
    • 传入targetParent.Products.Count + 1会移到最底部
  • 确保targetInstance是你要移动的实例对象,需要通过selection1.Item(1).Value获取实际的Product对象
  • 这种方法不会改变实例的名称,完全保留原命名

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 23:20:55