CATVBA、CATIA选择不正确

CATVBA、CATIA选择不正确,vba,catia,Vba,Catia,我试图通过CADSelection更改部件中选定CATPart的用户选定参数。最后,这将进入VBA中的GUI,用户将选择CATPart,打开宏,并通过GUI更改所需的任何参数。 我已经录制了宏,并用它调整了一段时间,但我似乎无法完成这项工作 我的树是: 产品 -部分 -第2部分 -第3部分 -第4部分 -第5部分 以上所有“Part_Teste”都有3个参数,其中一个称为“Compimento” 如何更改以确保宏更改选定CATPArt的参数而不是(“Part_Teste_3.CATPArt”)

我试图通过CADSelection更改部件中选定CATPart的用户选定参数。最后,这将进入VBA中的GUI,用户将选择CATPart,打开宏,并通过GUI更改所需的任何参数。 我已经录制了宏,并用它调整了一段时间,但我似乎无法完成这项工作

我的树是:

产品

-部分

-第2部分

-第3部分

-第4部分

-第5部分

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

如何更改以确保宏更改选定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
Language=“VBSCRIPT”
子CATMain()
设置oProductDoc=CATIA.ActiveDocument
设置oProd=oProductDoc.Product
设置oDocs=CATIA.Documents
设置oSelection=CATIA.ActiveDocument.Selection
如果oSelection.Count小于1,则
MsgBox“使用cad选择拾取某些组件”,“未选择任何组件”
其他的
设置oPartDoc=oDocs.Item(“部分测试3.CATPart”)
设置oPart=oPartDoc.Part
设置oParam=oPart.Parameters
设置olelength=oParam.Item(“compremento”)
长度值=50.000000
如果结束
选择,清除
oProd.更新
端接头

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

因此,如果在部件中工作时选择属于某个零件的零件,请获取该零件的实例产品

Dim oInstProd as Product 
Set oInstProd = oSel.Item(1).LeafProduct
然后从中获取零件对象:

Set oPart = oInstProd.ReferenceProduct.Parent.Part