• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Получение строки с названием библиотечного компонента

Автор Lang, 15.02.17, 18:10:42

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

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

Lang

Здравствуйте,

Подскажите, пожалуйста, как посредством API получить строку с наименованием библиотечного компонента.
Строка, которую нужно получить(вложение  kompas1.png)

Библиотечный компонент(УГО) вставляю в область чертежа как макроэлемент. Компоненты(резисторы, тиристоры и т.д.), которые используются при вставке, располагаются в прикладной библиотеке "Компас Электрик").
Окно "Свойства аппарата", в котором отображается название библиотечного компонента(на картинке , "Резистор функц."), появляется при переходе в команду "Редактировать". В других вкладках данного окна данное наименование больше не указывается.
В свойствах данного макроэлемента(команда "Свойства") в графе "наименование", отображается как "Макрос : [№ n]"

Lang

#1
Есть ли предположение,какие интерфейсы, описанные в SDK, нужно использовать для получения, указанной в первом сообщении, строки?

Я попробовал с помощью имеющихся в API интерфейсов получить имеющиеся типы в макроэлементе. Помимо геометрии, в макроэлементе содержится текстовые поля, в которых содержатся позиционные обозначения компонента( но не его наименование).
Из свойств макроэлемента также с помощью API получил в графе наименование("Макрос: [№i]"), имя прикладной библиотеки, а также имя файла, в котором содержится она(ke.rtw), номер команды(по всей видимости, "Редактирование макроэлемента").

Описание компонентов берется из базы данных (pdb файл). В ней каждому компоненту назначены статические идентификаторы, УГО, однако после вставки компонента данный идентификатор не встречается. При вставке двух экземпляров одного и того же элемента в Компасе каждому элементу назначается свой отличный порядковый номер  i.(Макрос: [№i]), который в виде простого числа заносится в атрибут каждого из объектов(идентификатор в атрибутах не указывается).

Атрибуты макроэлемента( вложение kompas3.png).

Атрибуты документа(вложение kompas4.png).







Slaviation

#2
См http://forum.ascon.ru/index.php/topic,27936.msg210316.html#msg210316

1. Запустив тест на активном чертеже и введя команду 1 мы получим макроэлемент (кружочек - это типа НАШ УГО).
2. Селектировав кружочек, запустив тест и введя команду 2 мы запишем в УГО НАШИ параметры.
3. Селектировав кружочек, запустив тест и введя команду 3 мы получим НАШИ параметры УГО.

Шаги 1 и 2 в вашем случае делает КОМПАС-Электрик и вы не знаете структуру НЕНАШИХ параметров, чтобы их получить в шаге 3.

Их нужно как то узнать - сначала определить количество элементов в массиве
См. def GetParams() строку "for i in range(3)" - нужно начинать с 1 и увеличивать до облома.
Ну а затем подбором - тип каждого элемента.

+ Благодарностей: 1