CATVBA, CATIA неправильный выбор - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь изменить выбранный пользователем параметр выбранного CATPart в сборке через CADSelection. В конечном итоге это войдет в графический интерфейс пользователя в VBA, и пользователь выберет CATPart, откроет макрос и с помощью графического интерфейса изменит все необходимые ему параметры. Я записал макрос и немного поработал с ним некоторое время, но не могу закончить это.

Мое дерево:

Продукт;

-Часть;

-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 голосов
/ 24 сентября 2018

Когда вы выбираете в сборке, свойство LeafProduct объекта SelectedEntity, возвращаемого Selection.Item (), будет содержать экземпляр продукта, владеющий выбранным объектом.

Итак, если вы выбираете что-то, что принадлежит детали при работе в сборке, получите продукт экземпляра детали ...

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

Затем оттуда получите объект части:

Set oPart = oInstProd.ReferenceProduct.Parent.Part
...