Создание исполнений сборки

Автор rain, 14.11.23, 21:55:34

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

rain

Здравствуйте!
может быть у кого-то завалялся макрос, который мог бы создать мне определенное количество исполнений 3D-сборки и присвоил соответствующие наименования?
конкретная задача: есть сборка с обозначением АБВГ.555555.111 и наименованием Прибор. При запуске макроса должно создаваться определенное количество исполнений с присваиванием к обозначению -01, -02 и т.д., а к наименованию в соответствии с номером исполнения прилеплять -24В, -12В, 120DC и т.д.

ищу что-то похожее, или может пнете в нужном направлении

Nipal

Ищите IEmbodimentsManager - интерфейс менеджера исполнений, примеры на форуме есть.

Валерий Изранов

У Прибора разных исполнений должны быть разные электрические схемы и конструкции.
Это может сделать только человек а не макрос.
По ГОСТ у всех зависимых исполнений должно быть одно и то же Наименование.
И прилеплять к Наименованию ничего нельзя.

Nipal

#3
Цитата: Валерий Изранов от 15.11.23, 06:35:01У Прибора разных исполнений должны быть разные электрические схемы и конструкции.
Это может сделать только человек а не макрос.
По ГОСТ у всех зависимых исполнений должно быть одно и то же Наименование.
И прилеплять к Наименованию ничего нельзя.
Уважаемый, тут про программирование, а не о том, что можно или нельзя.

Warlock-72

#4
Цитата: Валерий Изранов от 15.11.23, 06:35:01У Прибора разных исполнений должны быть разные электрические схемы и конструкции...
Ложное высказывание - см. ГОСТ 2.113, п. 4.1.16:
"4.1.16. На чертеже таблицу исполнений не помещают, если между исполнениями имеются только
такие различия, которые подлежат указанию в других документах.
Если графическое изображение схемы для нескольких исполнений одинаково, то различия ис­
полнениями могут быть отражены в самостоятельных документах другого вида (например, в перечнях
элементов к принципиальной схеме)."

Цитата: Валерий Изранов от 15.11.23, 06:35:01... По ГОСТ у всех зависимых исполнений должно быть одно и то же Наименование.
И прилеплять к Наименованию ничего нельзя.
Ложное высказывание - см. ГОСТ 2.113, п. 3.2:
"3.2. Если разным исполнениям присвоены разные условные наименования (коды, типы, услов­
ные обозначения, например,  ПК-1Н, ПК-IT,  ПК-2Н и др.), то:
в основной надписи и на титульном листе групповых и базовых документов наименования изде­
лий, как правило, дополняют общей частью условных наименований исполнений, например: Пуска­
тель ПК (приложение 8);
в основной надписи и на титульном листе документов исполнения следует записывать наимено­
вание изделия и полное условное наименование исполнения (например: Пускатель ПК-1Н);
на поле или в тексте групповых документов в числе переменных данных при необходимости в
графе «Код» указывают полные условные наименования исполнений (приложения 8 и 9)."

Валерий Изранов

В очередной раз похвалю Warlock-72 как лучшего на Форуме знатока ГОСТ.
Вот только автор темы мечтает все это сделать с помощью макроса.
А я думаю, что у него не получится.

Nipal

Цитата: Nipal от 15.11.23, 06:41:08Уважаемый, тут про программирование, а не о том, что можно или нельзя.
На первый второй, рассчитайтесь и создайте себе отдельную тему.
+ Благодарностей: 1

rain

Цитата: Валерий Изранов от 15.11.23, 08:18:59В очередной раз похвалю Warlock-72 как лучшего на Форуме знатока ГОСТ.
Вот только автор темы мечтает все это сделать с помощью макроса.
А я думаю, что у него не получится.

почему? такая сложная задача - в сборке с единственным вариантом исполнений создать еще несколько зависимых - c измененными наименованиями?
что помешает мне это сделать?

Михаил88

Получится, Валерий наверное шутит.

rain

покопался на форуме, нашел похожую задачу, обсасываемую не раз.
повторил у себя, вроде что-то шевелится, для исполнений можно задать номера.
далее нашел метод AddEmbodiment, но не разобрался с синтаксисом, в результате никакого нового исполнения пока не создается и питон пишет мне что-то такое (см. скрин 02)

и остался-таки еще вопрос, каким методом можно присвоить Наименование для исполнения

Михаил88

iEmbodimentsManager.AddEmbodiment(0, True, 'АБВГ.555555.111', str('01'), '')

AddEmbodiment это метод и туда нужно передать аргументы
+ Благодарностей: 1

rain

Цитата: Михаил88 от 15.11.23, 11:15:30iEmbodimentsManager.AddEmbodiment(0, True, 'АБВГ.555555.111', str('01'), '')

Вот спасибо!!! сам бы я наверно еще долго пытался добиться результата)
а насчет наименований исполнений не знаете какого-либо метода?

dimak222

Цитата: rain от 14.11.23, 21:55:34может быть у кого-то завалялся макрос, который мог бы создать мне определенное количество исполнений 3D-сборки и присвоил соответствующие наименования?
Есть макрос KCreateEmbodiment.7z, создаёт зависимые и независимые исп., но наименование берёт с нулевого исп.

Есть вариант создания исп. средствами КОМПАСа:
1. Для наглядности создаём несколько исп. и сохраняем табл. исп. СБ/дет. в формате xls (Рис. 1);
2. Редактируем xls, меняя исп. и наименование (Рис. 2);
3. Загружаем табл. исп., предварительно удалив все предыдущие исп. (Рис. 3).

Михаил88

для примера

part7 = kompas_document_3d.TopPart
# получить наименование
name = part7.Name
# установить наименование
part7.Name = 'Прибор-12В'

Михаил88

#14
Вы можете создать словарь
dict_name = {'01': '-24В', '02': '-12В', '03': '120DC'}
Потом его дополнить, как вам нужно

далее циклом for пройтись по словарю

создать исполнение и подставлять данные из словаря в метод AddEmbodiment

только нужно будет получить part7 от текущего исполнения
присвоить новое наименование исполнению через part7.Name
и вызвать метод part7.Update()


dict_name = {'01': '-24В', '02': '-12В', '03': '120DC'}

part7 = kompas_document_3d.TopPart
marking = part7.Marking
name = part7.Name

for item in dict_name.items():
    embodiments_manager.AddEmbodiment(0, True, marking, str(item[0]), '')
    part7 = kompas_document_3d.TopPart
    part7.Name = str(name) + str(item[1])
    part7.Update()

IEmbodimentsManager.gif

rain

ругается на name = IPart7.Name
простите, если я очень туплю, просто к программированию имею самое малое отношение (пока что)

насчет словаря спасибо! обязательно разберусь с этим и буду использовать

Михаил88

name = part7.Name

пересмотрите 14 сообщение там все написано

rain

Цитата: Михаил88 от 15.11.23, 11:43:21name = part7.Name

пересмотрите 14 сообщение там все написано

прошу прощения, Ipart - это уже я так, менял, чтобы посмотреть, что изменится. с part7 такое же сообщение вылазит
сейчас вот ругается на marking = part7.Marking

Михаил88

просто у меня свои имена переменных а у вас свои

так поменяйте
part7 = iKompasDocument3D.TopPart

где имена ваших переменных не сходятся с моими там просто переименуйте и все будет работать
+ Благодарностей: 1

Nipal

Цитата: rain от 15.11.23, 11:53:06прошу прощения, Ipart - это уже я так, менял, чтобы посмотреть, что изменится. с part7 такое же сообщение вылазит
сейчас вот ругается на marking = part7.Marking
Выучите язык - основы и всё у Вас наладится.