Изменение названия активно выбранного элемента в CATIA - PullRequest
0 голосов
/ 01 мая 2020

Я работаю над проектом в CATIA, и у меня возникают проблемы с переименованием имени экземпляра с использованием входных данных пользовательской формы. Я получаю одну из двух ошибок при запуске этого кода: файл доступен только для чтения или неправильно использует свойство.

Я сталкиваюсь с конфликтом экземпляров при изменении свойств отдельного выбранного продукта. а затем создать еще один продукт по факту. Проблема состоит в том, что первый экземпляр будет принимать PartNumber второго экземпляра при первом запуске макроса, если имя экземпляра не изменено. Как можно решить эту проблему? Two identical instances in the same product

Private Sub Assembly_Field_Update(oCurrentProduct As product)

    Dim oCurrentTreeNode As product
    Dim i As Integer

    ' Loop through every tree node for the current product
    For i = 1 To oCurrentProduct.Products.Count
        Set oCurrentTreeNode = oCurrentProduct.Products.Item(i)

        If oCurrentTreeNode.Products.Count > 0 Then
            Assembly_Field_Update oCurrentTreeNode

        End If

   Next

        If oCurrentTreeNode.Name = CATIA.ActiveDocument.Selection.Item(1).Value.Name Then
            On Error GoTo UserInputs
                oCurrentTreeNode.ReferenceProduct.UserRefProperties.Item(1).Value = DESIGNER_INPUT.Text
                oCurrentTreeNode.ReferenceProduct.UserRefProperties.Item(2).Value = BASE_NUMBER_INPUT
                oCurrentTreeNode.ReferenceProduct.UserRefProperties.Item(3).Value = DASH_NUMBER_INPUT
                oCurrentTreeNode.Name = BASE_NUMBER_INPUT & DASH_NUMBER_INPUT

Ответы [ 2 ]

1 голос
/ 02 мая 2020

Имя экземпляра управляется владельцем продукта Product Instance .

oCurrentTreeNode.Parent.Item(oCurrentTreeNode.Name).Name = BASE_NUMBER_INPUT & DASH_NUMBER_INPUT

Родителем экземпляра продукта является коллекция Products принадлежащего ему продукта.

Родителем ReferenceProduct является объект документа .CATProduct.

Все может работать немного иначе, если вы попытаетесь переименовать продукты "Component" в вашей сборке.

0 голосов
/ 04 мая 2020

Найден ответ для экземпляров уровня компонента.

https://www.eng-tips.com/viewthread.cfm?qid=404685

...