我在VBA中编写了一个用于CATIA V5的宏,我在规范树中移动了部分。
但是当我这样做时,部件之间的约束就会丢失。 我想保留这些限制。
然而,当我通过约束对象查找引用时,我只得到BREP的名称,而没有关于BREP实际属于哪个部分的任何信息。
关于我能做什么的任何提示?
答案 0 :(得分:0)
您无法保留约束,因为使用vba在规范树中重新排序是通过剪切粘贴操作完成的。我不知道CAA ......但我想你没有这个昂贵的许可证。
如果您只使用修复约束,那么最好将其删除并重新修复。
答案 1 :(得分:0)
它是复制粘贴属性的一部分。 如果你去Tools =>选项=>装配设计=>约束,你可以找到一种方法来复制带有约束的粘贴数据。
应该有办法在宏中激活这些参数。
答案 2 :(得分:0)
正如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