| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
03.04.2014, 23:18 | #1 | |
(Lisp) Работа с объектами внутри блоков
Регистрация: 29.11.2011
Сообщений: 5
|
||
Просмотров: 5248
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
DXF Reference -> Block entity (а не INSERT)
ActiveX -> (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) "<BlockName>")
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 29.11.2011
Сообщений: 5
|
Спасибо за оперативный ответ! Все работает и через item и через vlax-for, но в этом случае мы работаем с общим описание блока.
Как быть с конкретным блоком на чертеже имеющим динамические свойствами, а именно динмассивы, содержащие объекты подсчета. То есть в каждом вхождении блока размещенном на чертеже есть разное кол-во объектов. ----- добавлено через ~6 мин. ----- И еще один момент..vla-item выдает объект по ключу и можно составить список всех объектов перебирая item по индексу до первой ошибки. Но неужели нет возможности сразу получить весь набор объектов семейства конкретного блока? (vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) "<BlockName>") |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Цитата:
2. Можно его "собрать" например через vlax-for.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
не получилось мне добраться до внутренностей блока с помощью
всё это можно заменить функциями Код:
Код:
Код:
Код:
Код:
Код:
А вот что дальше? куда копать где найти эти вложенные блоки...я незнаю... по всем красным веткам акадовского дерева лазил ничего не нашел!!! и тут (330 . <Имя объекта: 7fffd2ec9f0>) и тут Application (RO) = #<VLA-OBJECT IAcadApplication 000000013fffd910> да и не только тут... ничего не вышло(((
__________________
Вечность это: (while T) |
||||
|
||||
Регистрация: 23.04.2009
Сообщений: 637
|
Ты можешь немного с другой стороны посмотреть на блоки.
В примитивном командном стиле, может это тебя подтолкнет в нужную сторону. Смотри, в каде есть команды типа: Код:
+ команды: Код:
Для проверки в редакторе ли мы (сработают ли BSAVE, BCLOSE) можно так: Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
OKJI, тебе надо осознать разницу между описанием блока и его вставкой вхождением.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
А вхождение - это набор параметров и свойств в рамках изначального шаблона которые можно менять индивидуально для каждого вставленного блока/вхождения...
__________________
Вечность это: (while T) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,844
|
И что тогда в твоем коде делают entlast, entsel и иже с ними?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
IAcadBlockReference - примитив, то что видно на чертеже. Из него можно вытащить имя описания блока
(vla-item (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) "<BlockName>;") вернет IAcadBlock - описание блока. У описания блока есть свойство Database в котором лежат примитивы входящие в блок... дальше как с матрешкой. entlast это вообще причем?
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Простановка площадей внутри полилинии. | Klo | LISP | 26 | 14.12.2018 17:43 |
Как удалить определенный элемент (в данном случае Raster Image) внутри всех блоков не разрушая их? | Victor_Sh | AutoCAD | 10 | 01.08.2012 11:29 |
Изменить параметры у всех объектов внутри блоков | 800x600 | AutoCAD | 5 | 25.03.2008 14:21 |
Работа с примитивами внутри блока. | Toy | AutoCAD | 22 | 16.04.2007 21:22 |
Отображение точек внутри блоков | Кулик Алексей aka kpblc | AutoCAD | 14 | 12.12.2006 14:37 |