CATIA VBA在移动零件时保留约束

时间:2013-11-04 18:19:42

标签: vba catia

我在VBA中编写了一个用于CATIA V5的宏,我在规范树中移动了部分。

但是当我这样做时,部件之间的约束就会丢失。 我想保留这些限制。

然而,当我通过约束对象查找引用时,我只得到BREP的名称,而没有关于BREP实际属于哪个部分的任何信息。

关于我能做什么的任何提示?

3 个答案:

答案 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