Доступ к ячейкам таблицы, содержащим блоки (Visual lisp)
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

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

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

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

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

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

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Программная вставка блока с атрибутами в таблицу. Как сохранить установленные значения атрибутов?
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,176


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

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


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

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полезные таблицы для инженеров (самопальные и не только). Armin Поиск литературы, чертежей, моделей и прочих материалов 152 22.12.2024 04:14
LISP. Создание поля (field), ссылающегося на текстовое значение ячейки таблицы. skkkk Готовые программы 144 25.07.2024 10:48
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
как с помощью vba начертить линию vasyavip Программирование 77 09.10.2008 23:17