| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Доступ к ячейкам таблицы, содержащим блоки (Visual lisp)

Доступ к ячейкам таблицы, содержащим блоки (Visual lisp)

Ответ
Поиск в этой теме
Непрочитано 12.10.2013, 19:14 #1
Доступ к ячейкам таблицы, содержащим блоки (Visual lisp)
kp+
 
идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095

Уважаемые гуру, прошу помочь с программным доступом к ячейкам таблицы, содержащим блоки. Необходимо (минимум) узнать имя блока, максимум - получить доступ к экземпляру блока, содержащемуся в ячейке.
Вроде бы эту операцию выполняет метод GetBlockTableRecordId, но непонятно, что за результат он выдает, можно ли его конвертировать, например, в entity, vla-объект или handle. Инфа в справке - скуднее не бывает, нет даже примера использования

Также интересует метод GetBlockTableRecordId2, у которого, в дополнение аргументам строки и столбца, есть еще один какой-то nContent - The content value of the cell (Integer; Input-only). Где брать исходные данные для третьего аргумента, зачем он нужен? И вообще, чем этот метод отличается от GetBlockTableRecordId, в каких случаях целесообразно его применение?

Буду признателен за пример кода на Visual lisp.
Просмотров: 2709
 
Непрочитано 14.10.2013, 11:54
1 | #2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Программная вставка блока с атрибутами в таблицу. Как сохранить установленные значения атрибутов?
Add row to Table then add Text
How to edit attributes of a block reference inserted inside a cell of autocad Table?
Цитата:
Сообщение от kp+ Посмотреть сообщение
Вроде бы эту операцию выполняет метод GetBlockTableRecordId, но непонятно, что за результат он выдает, можно ли его конвертировать, например, в entity, vla-объект или handle.
Пример здесь Как получить имя блока из таблицы
Код:
[Выделить все]
(vla-objectidtoobject (vla-get-activedocument (vlax-get-acad-object))(vla-getblocktablerecordid table row col))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 14.10.2013, 12:14
#3
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095


Премного благодарен!
kp+ вне форума  
 
Автор темы   Непрочитано 18.02.2016, 19:55
#4
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,095


Подниму свою же старую тему. Задача "слегка" усложнилась - в ячейке несколько блоков, и необходимо получить доступ к ним всем (хотя бы узнать имена). vla-objectidtoobject дает ID только первого. С GetBlockTableRecordId2 до сих пор не разобрался
Уже разобрался - методу GetBlockTableRecordId2 в параметре nContent надо передавать порядковый номер блока в ячейке, начиная с 0. Т.к. к-во блоков заранее неизвестно, а запрос ID несуществующего блока дает 0, можно организовать перебор по этому условию. Для ячейки без блоков он закончится, не начавшись. Для ячейки, например, с 3 блоками запрос ID четвертого даст 0, т.е. сигнал к окончанию перебора.

Последний раз редактировалось kp+, 19.02.2016 в 11:12.
kp+ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Доступ к ячейкам таблицы, содержащим блоки (Visual lisp)

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Создание поля (field), ссылающегося на текстовое значение ячейки таблицы. skkkk Готовые программы 141 24.11.2023 15:49
Полезные таблицы для инженеров (самопальные и не только). Armin Поиск литературы, чертежей, моделей и прочих материалов 148 24.12.2022 12:46
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
как с помощью vba начертить линию vasyavip Программирование 77 09.10.2008 23:17