|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
24.10.2018, 11:11 | #1 | |
Управление IAcadEntity объектом (выноска СПДС) через LISP
AutoLISP
Харьков
Регистрация: 19.06.2018
Сообщений: 101
|
||
Просмотров: 4048
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
vlax-get-property obj property
vlax-put-property obj property value vlax-invoke obj methodname vlax-invode-method obj methodname ----- добавлено через 34 сек. ----- И то, не всегда и не для всего. И при условии подгруженного ObjectEnabler'a (как минимум)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Код:
----- добавлено через ~11 мин. ----- небольшое уточнение, мне нужно менять 2 строки на выноске и возможно ручку наклона...
__________________
Вечность это: (while T) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
А что за vla-obj? У него вообще подобные свойства есть?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
А если неправильно понял... То это спдс выноска spnotep ее читаемые совйства и методы я выводил с помощью Код:
__________________
Вечность это: (while T) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
У объекта spnotep есть свойство "WindowTop"? Че-т мне кажется, что нет такого свойства у этого объекта.
----- добавлено через 55 сек. ----- А для того, чтобы назначать XData, сначала надо эти данные сформировать (за подробностями добро пожаловать в справку)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 23.04.2009
Сообщений: 637
|
Помнится, для подобных объектов нужно отдельно зарегистрировать COM-сервер (mcCom2.dll).
Вот тут обсуждалось http://forum.dwg.ru/showthread.php?t=32516 и есть хелп, как этим пользоваться https://dwg.ru/dnl/8746 |
|||
|
||||
Цитата:
Код:
__________________
Вечность это: (while T) |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,048
|
Насколько понимаю, это продолжение темы Как в выноску вставить атрибут ? Сделайте через события и обыкновенную мультивыноску:
1. В расширенные данные мультивыноски прописывается хэндл вставки блока. 1. В событии изменения объекта, если объектом является вставка атрибута (AttributeReference) - получаете владельца (вставку блока BlockReference) и заносите в список. 2. В событии простоя приложения Idle - если этот список не пустой, то по в цикле по хэндлу блока находите все связанные выноски, и сформировав из атрибутов блока нужную комбинацию данных, обновляете содержимое выносок. |
|||
|
||||
Цитата:
Но вот как "достучаться" до этого поля я не могу найти... ----- добавлено через ~3 мин. ----- Цитата:
----- добавлено через ~16 мин. ----- Цитата:
__________________
Вечность это: (while T) |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,048
|
Цитата:
p.s. На медленность реагирования на изменения атрибутов не обращайте внимания - программа захвата видео неплохо акад подтормаживает) |
|||
|
||||
Цитата:
__________________
Вечность это: (while T) |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,048
|
Это не выноски, это код на .Net (поэтому он вам не поможет), который делает две вещи:
1. Связывает выноску и вставку блока - отдельная команда рисования выноски с текущим стилем с ее заполнением и XData. 2. По алгоритму, описанному в посте №10 - отслеживает изменения в атрибутах (неважно, через свойства, редактор атрибутов, думаю - что и всякие программные нумеровалки блоков отследит) через события изменения объектов БД чертежа и когда чертеж переходит в состояние покоя (ожидание ввода пользователя) - быстренько приводит содержимое выносок в соответствие. А выноски и блоки абсолютно стандартные, поэтому все проблемы оформления автоматически ложатся на "плечи" акада. Помимо этого (просто не реализовал в коде) - можно отслеживать событиями удаление и восстановление (Undo) блоков и автоматически переносить связанные выноски на анонимный скрытый слой и обратно (имхо, это самый простой вариант). Для этого в выноске еще надо прописывать имя слоя, где она была изначально расположена. Ну и логичным продолжением будет реализация команды по проверке - нет ли бесхозных выносок без источника данных - вставки блока (вместо того, чтобы вручную проверять валидность чертежа) и команда обновления всех связей блок-выноска. На .Net это все реализуемо, на лиспе - пробуйте, если хотите) |
|||
|
||||
У меня что-то ничего не получается...
Поля в выноске не меняют свои значения в зависимости от значений атрибута блока((( ----- добавлено через 42 сек. ----- только значения по умолчанию стоят...
__________________
Вечность это: (while T) |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
СПДС Graphics. Интеграция с AutoCAD. Нет панелек СПДС | Sn4ke | ПО от CSoft | 40 | 31.07.2020 11:52 |
LISP. Как в ActiveX выдернуть координаты полилинии? Как задавать атребуты блока через LISP? | wpww | LISP | 31 | 16.08.2016 14:17 |
СПДС 10 CS, при простановке размеров через ВЭ, чертеж не проходит аудит | doctorraz | ПО от CSoft | 20 | 25.04.2016 12:30 |
LISP: возможно ли выбрать через ssget рамкой объекты разных типов? | cj_lex | LISP | 5 | 20.04.2012 10:54 |
Управление параметром видимости дин. блока через sheetset custom properties | Red Nova | AutoCAD | 12 | 25.06.2008 13:44 |