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

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

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

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

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

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

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

Как вставить Макро объект в таблицу ?

Автор baksconstructor, 07.11.23, 13:06:50

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

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

baksconstructor

Имеем макро, его ref , есть таблица готовая или будем создавать, но как в ячейку вставить макро ?
В какую строну копать ?
Думал обойтись вставкой растра, но он вставляет в чертеж, а нужно в таблицу.

p3452

#1
Разбирайтесь с тем - что из себя представляет "ячейка" таблицы.
(Макро добавлять не пробовал, но Фрагменты и Растры - без особых проблем)

baksconstructor

Цитата: p3452 от 07.11.23, 14:20:45Разбирайтесь с тем - что из себя представляет "ячейка" таблицы.
Ячейка не представляет.
Цитата: p3452 от 07.11.23, 14:20:45(Макро добавлять не пробовал, но Фрагменты и Растры - без особых проблем)
Макро это локальный фрагмент, а его через AddTextLine не получится.


Nipal

Вы разберитесь с таблицей, когда-то давно разбирал таблицу на запчасти https://forum.ascon.ru/index.php?topic=24881.msg180076#msg180076, может чем поможет.
Вам нужно смотреть в сторону TextLineData - Интерфейс дополнительных данных строки, вставляться будет, как фрагмент ksTLFragment.

baksconstructor

Цитата: Nipal от 08.11.23, 08:41:25TextLineData - Интерфейс дополнительных данных строки[/b][/url], вставляться будет, как фрагмент ksTLFragment.
В этом и проблема....
1. Свойство доступно только для чтения.

Вставка фрагмента заложена в компасе через
ObjTextLine = ObjText.AddTextLine(Kompas6Constants.ksTextLineType.ksTLFragment, "C:\Users\Nik\Desktop\8.frw")
Это работает нормально, но для внешнего фрагмента.

Но у локального фрагмента нет пути, который мог бы скушать AddTextLine, есть только имя и ref



KrissKross

Попробуйте произвести обратную ситуацию

Вручную вставьте макро в ячейки таблицы и затем программно прочитайте данные
- поможет выявить тип ссылки и ее данные

есть предположение,
что ссылка в функции AddTextLine будет выглядеть как
filename | MarcoName
где
filename - имя текущего файла
| - разделитель (вертикальная прямая)
MarcoName - имя макроэлемента или его идентификатор, может просто порядковый номер 1, 2 и т.д или что-то замороченней

baksconstructor

Цитата: KrissKross от 08.11.23, 11:05:47есть предположение,
что ссылка в функции AddTextLine будет выглядеть как
filename | MarcoName
Нет, выдаёт ошибку что не найден путь файла. Ищет именно файл на диске.

При ручном тестировании - вставляет фрагментом.

Пришлось делать фрагменты из макро, сохранять на диске, а потом вставлять.
Но дурдом с параметрами расположения в самой таблице :(((((((

Сейчас нужно ещё как то внедрить эти фрагменты, чтобы на соседнем компе открылось.

Как всегда - к гландам через одно место идём.