我正在尝试通过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
答案 0 :(得分:0)
在程序集中选择时,由Selection.Item()返回的SelectedEntity对象的LeafProduct属性将包含拥有所选对象的实例产品。
因此,如果在装配体中选择属于零件的零件,请获取零件的实例产品...
Dim oInstProd as Product
Set oInstProd = oSel.Item(1).LeafProduct
然后从那里获取零件对象:
Set oPart = oInstProd.ReferenceProduct.Parent.Part