Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Python и КОМПАС-Макро => Тема начата: Zpengineer от 08.03.25, 18:51:27

Название: Получение параметров макроэлемента
Отправлено: Zpengineer от 08.03.25, 18:51:27
Добрый день. Подскажите, пожалуйста, то я себе уже голову сломал) пишу скрипт и моя задача заключается в том, чтобы получать все параметры элементов на 2D фрагменте. Сейчас меня конкретно интересует макроэлемент отверстия и его параметры диаметр, глубина, фаска и т.д. Данные получаю в виде безопасного массива safearray, а как его расшифровать втолковать не могу. Кто может подсказать или указать где посмотреть информацию или пример?

Что с этим делать?

[4, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 0, 0, 46, 64, 0, 0, 0, 0, 0, 0, 36, 64, 0, 0, 0, 0, 0, 0, 50, 64, 1, 0, 0, 0, 0, 0, 240, 63, 0, 0, 0, 0, 0, 0, 20, 64, 0, 0, 0, 0, 0, 0, 94, 64, 0, 0, 0, 0, 0, 0, 46, 64, 0, 0, 0, 0, 0, 128, 86, 64, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 52, 64, 249, 251, 4, 209, 12, 82, 225, 63, 4, 0, 0, 0, 46, 0, 120, 0, 109, 0, 108, 0, 3, 0, 0, 0, 29, 4, 53, 4, 66, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Название: Re: Получение параметров макроэлемента
Отправлено: UU от 08.03.25, 20:00:15
Вроде, всё понятно.
(http:///attach%5D)
Название: Re: Получение параметров макроэлемента
Отправлено: p3452 от 08.03.25, 21:37:30
Safearray имеет свои ПЛЮСЫ и МИНУСЫ:
"+" - всегда возвращает то что ДОЛЖЕН вернуть (что бы получить ОЖИДАЕМЫЙ "тип" достаточно сделать "привидение типа"),
"-" - может вернуть ЛЮБОЕ количество элементов (нужен анализ возвращаемого количества).
Название: Re: Получение параметров макроэлемента
Отправлено: Zpengineer от 09.03.25, 16:45:28
Цитата: UU от 08.03.25, 20:00:15Вроде, всё понятно.

Что понятно?
Название: Re: Получение параметров макроэлемента
Отправлено: Михаил88 от 09.03.25, 21:51:04
user_params = macro_object.UserParams
user_params.obj.decode('ansi')

Название: Re: Получение параметров макроэлемента
Отправлено: Zpengineer от 10.03.25, 19:01:21
Цитата: Михаил88 от 09.03.25, 21:51:04user_params = macro_object.UserParams
user_params.obj.decode('ansi')

Это у вас библиотеки отверстий? Потому что у меня в 18 версии такого нет.
Попробовал декодировать, вот результат:

Цитировать♦☺ ☺          ☺                  @      .@      $@      2@☺    р?      ¶@      ^@      .@    ЂV@      @☺      4@щы♦С♀Rб?♦  . x m l ♥  ↔♦5♦B♦
Название: Re: Получение параметров макроэлемента
Отправлено: Михаил88 от 10.03.25, 19:17:46
Библиотека отверстий находится в справочнике стандартных изделий. У меня компас 18.1.55. Пришлите файл для примера, чтобы посмотреть. Я думал Вы тоже использовали эту библиотеку.
Название: Re: Получение параметров макроэлемента
Отправлено: Zpengineer от 10.03.25, 19:37:54
Нет, отображается как макро, было встроено в панели инструментов.

(https://i.ibb.co/MDrSPFfM/test.jpg) (https://ibb.co/LzmR9Vrn)