макрос для редактирования имен part'ов

Программирование для CATIA.

макрос для редактирования имен part'ов

Сообщение buster » 26 май 2016 09:43

Здравствуйте! Задача следующая: в дереве есть некоторое количество part'ов с именами XXXP1, XXXP2 и т.д. Идут они по порядку, но после XXXP2 может опять пойти серия XXXP1. Нужно сделать так, чтобы instance name у них были по порядку и в нужном мне виде (_1, _2 и т.д) Хочу написать макрос, который делал бы следующее:
1) Предлагал выбрать part'ы, которые нужно переименовать
2) Предлагал бы ввести неизменную часть instance name или брал ее из part number
3) Переименовывал instance name

Проблемы у меня в том, как сделать выбор файлов и сделать счетчик. Вообще я новичок в этом деле, на форуме находил похожие темы, но не очень в этом разбираюсь. Если подскажете нужное направление и посоветуете с чего начать буду очень благодарен
buster
Новичок
Новичок
 
Сообщения: 3
Зарегистрирован: 26 май 2016 09:23

Re: макрос для редактирования имен part'ов

Сообщение VladimirK » 26 май 2016 13:06

Здравствуйте!
С чего начать можно посоветовать следующее:
Сначала Вам необходимо познакомиться с объектной моделью CATIA, посмотреть какие объекты, методы предоставляет API для программиста.
В папке с установленной CATIA в ..\code\bin есть файл V5Automation.chm. Там наглядно видно это дерево объектов, есть примеры.
Вообще, приложения для CATIA можно писать в виде:
1. Макросов *.catvba, cкриптов *.CATScript;
2. Автономных приложений, скомпилированных в *.exe-файл.
Можно использовать любой язык программирования, например VB6, C#, Delphi.
При этом взаимодействие с CATIA происходит как с COM-объектом;
3. В виде приложений, плагинов, используя CAA-RADE - на С++.

Для начала самый простой вариант - это приложения в виде макросов *.catvba.
Cоздать макрос в CATIA можно так: меню Tools / Macro / Macros...
Далее на кнопку Macro libraries... / выбрать Library type - VBA projects / Create new library.
Потом в этом макросе *.catvba можете добавлять модули - кнопкой Create в окне Macros, а также в редакторе Microsoft Visual Basic - модули, формы, классы.

Для Вашей текущей задачи можете начать с этого:
Код: Выделить всё
Sub CATMain()
    Dim sel As Selection
    Dim i As Long
    Dim iProd As Product
   
    Set sel = CATIA.ActiveDocument.Selection
   
    If sel.Count > 0 Then
        For i = 1 To sel.Count
            If sel.Item(i).Type = "Product" Then
                Set iProd = sel.Item(i).Value
                MsgBox iProd.Name
            End If
        Next
    End If
End Sub

Если в дереве сборки выделите нужные узлы, запустите макрос, то в коллекции Selection будут выделенные объекты.
Далее в цикле проверяете их тип и обрабатываете как Вам надо.
Примерно так.
VladimirK
Новичок
Новичок
 
Сообщения: 63
Зарегистрирован: 15 ноя 2011 21:44

Re: макрос для редактирования имен part'ов

Сообщение buster » 26 май 2016 22:21

Спасибо за подробный ответ. но у меня появляется ошибка
Вложения
buster
Новичок
Новичок
 
Сообщения: 3
Зарегистрирован: 26 май 2016 09:23

Re: макрос для редактирования имен part'ов

Сообщение Wireless_Fidelity » 27 май 2016 19:48

Дополню:
2. Для ввода неизменной части можно Воспользоваться стандартным окном ввода через функцию InputBox
3. Instance Name меняется через свойство Name.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: макрос для редактирования имен part'ов

Сообщение buster » 29 май 2016 13:02

Wireless_Fidelity писал(а):Дополню:
2. Для ввода неизменной части можно Воспользоваться стандартным окном ввода через функцию InputBox
3. Instance Name меняется через свойство Name.



Я так и хотел сделал. Отпишусь что получится)
buster
Новичок
Новичок
 
Сообщения: 3
Зарегистрирован: 26 май 2016 09:23


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron