2

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

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

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

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

4

3 回答 3

0

它是复制粘贴属性的一部分。如果你去工具 => 选项 => 装配设计 => 约束,你可以找到一种方法来复制带有约束的粘贴数据。

应该有一种方法可以激活宏中的这些参数。

于 2014-01-16T08:11:50.793 回答
0

您不能保留约束,因为使用 vba 在规范树中重新排序是通过剪切粘贴操作完成的。我不知道 CAA ......但我想你没有那个昂贵的许可证。

如果您只使用 Fix 约束,那么最好的办法是删除它们并再次修复。

于 2013-11-05T12:00:19.383 回答
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
于 2017-02-24T22:29:40.960 回答