我有一个用 VBA 编写的 CATIA V5 宏,我在其中移动规范树中的各个部分。
但是当我这样做时,部件之间的约束就会丢失。我想保留这些限制。
但是,当我通过约束对象查找引用时,我只得到 BREP 的名称,而没有任何关于 BREP 实际属于哪个部分的信息。
关于我能做什么的任何提示?
它是复制粘贴属性的一部分。如果你去工具 => 选项 => 装配设计 => 约束,你可以找到一种方法来复制带有约束的粘贴数据。
应该有一种方法可以激活宏中的这些参数。
您不能保留约束,因为使用 vba 在规范树中重新排序是通过剪切粘贴操作完成的。我不知道 CAA ......但我想你没有那个昂贵的许可证。
如果您只使用 Fix 约束,那么最好的办法是删除它们并再次修复。
正如 Nicholas 所说,您需要更改工具中的设置 --> 选项 --> 机械设计 --> 装配设计 --> 约束 --> 粘贴组件 --> [选择“始终使用装配约束”]
询问用户是否要更改此设置的自动方式如下:
Dim settingControllers1 As SettingControllers
Set settingControllers1 = CATIA.SettingControllers
Dim asmConstraintSettingAtt1 As AsmConstraintSettingAtt
Set asmConstraintSettingAtt1 = settingControllers1.Item("CATAsmConstraintSettingCtrl")
If asmConstraintSettingAtt1.PasteComponentMode = catPasteWithoutCsts Or asmConstraintSettingAtt1.PasteComponentMode = catPasteWithCstOnCut Then
Dim iResponseForSetting As Integer
iResponseForSetting = MsgBox("Setting for retaining constaints during Copy is not active" & vbNewLine & "Do you want to change this setting?", vbYesNo)
If iResponseForSetting = vbYes Then
asmConstraintSettingAtt1.PasteComponentMode = catPasteWithCstOnCopyAndCut
End If
End If