CATVBA,CATIA选择不正确

时间:2018-08-30 17:12:17

标签: vba catia

我正在尝试通过CADSelection更改装配中选定CATPart的用户选定参数。最终,这将进入VBA中的GUI,用户将选择CATPart,打开宏,然后通过GUI更改其所需的任何参数。 我已经录制了宏并对此进行了一段时间的调整,但是我似乎无法完成。

我的树是:

产品;

-Part;

-Part_Teste_2;

-Part_Teste_3;

-Part_Teste_4;

-Part_Teste_5;

以上所有“ Part_Teste”都有3个参数,其中一个称为“ Comprimento”

如何更改以确保宏更改了选定的CATPArt的参数,而不是(“ Part_Teste_3.CATPart”)?

到目前为止,我的宏是:

Language="VBSCRIPT"

Sub CATMain()

Set oProductDoc = CATIA.ActiveDocument

Set oProd = oProductDoc.Product

Set oDocs = CATIA.Documents

Set oSelection = CATIA.ActiveDocument.Selection

If oSelection.Count < 1 then

    MsgBox "Pick some components using cad selection.","No components were selected"

Else

    Set oPartDoc = oDocs.Item("Part_Teste_3.CATPart")

    Set oPart = oPartDoc.Part

    Set oParam = oPart.Parameters

    Set oLength = oParam.Item("Comprimento")

    oLength.Value = 50.000000

End If

oSelection.Clear

oProd.Update

End Sub

1 个答案:

答案 0 :(得分:0)

在程序集中选择时,由Selection.Item()返回的SelectedEntity对象的LeafProduct属性将包含拥有所选对象的实例产品。

因此,如果在装配体中选择属于零件的零件,请获取零件的实例产品...

Dim oInstProd as Product 
Set oInstProd = oSel.Item(1).LeafProduct

然后从那里获取零件对象:

Set oPart = oInstProd.ReferenceProduct.Parent.Part