|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Зыбыл добавить описание функции adv-convertdatatype-selset-to-vlalist
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
![]() Код:
Код:
точно ))) Сейчас откорректирую пост. №20 В принципе, эта функция является "чкстно стыренной" у тебя же ![]() Интересно узнать, как у других сработает код, с каким вариантом строки "(vl-cmdf ...)" Совместно с реакторами на удаление объекта работать не получается. ПОможет ли здесь удаление первого реактора и запись его пар во второй объект реактора? И как удалить реактотр? Именно удалить, а не остановить (vlr-remove), которая все равно не работает. Последний раз редактировалось Frigate, 14.01.2011 в 07:29. |
|||
![]() |
|
||||
Programming, automation, CADs, GISs. СибМИР Регистрация: 02.02.2007
Россия, Санкт-Петербург
Сообщений: 315
|
>>Frigate
По поводу внешнего приложения. Я в самом начале так же, как и ты, решил, что (vla-sendcommand) поможет. Но попытка изменения свойств блока из окна properties приводила к Fatal Error (см. пост #7), поэтому я и решил вынести обновление блока во внешнее приложение. Однако мой опыт работы в этом направлении показал, что работа с реакторами чрезвычайно... (прошу прощения за выражение) геморройна. То есть автообновление полей несложных блоков, пожалуй, имеет смысл, а со сложными динамическими блоками это всё работает как-то через ж... Впрочем, помучившись изрядно, я добился-таки стабильной работы своего блока с автообновлением, но второй раз что-то уже нет желания повторять такое :-) По поводу (vl-cmdf "_UPDATEFIELD" obj_to_upd "" "") и проблем с одной/двумя кавычками - ха, спасибо, друг, подтвердил мои проблемы, описанные в теме http://forum.dwg.ru/showthread.php?p=606042#post606042. Я этот момент поборол так: Код:
__________________
На LISPе можно мыслить! Последний раз редактировалось Ax3, 19.01.2011 в 12:44. |
|||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
Я не очень понимаю, а в updatefield подставляется указатель на вхождение блока, что ли (просто не сталкивался с такой задачей)? Если да, то почему б не попробовать так:
Код:
--- P.S. Спасибо Админу, классную кнопочку сделал!
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
точно )))
а я не вникал в суть этой переменной раньше... ее изменение в "0" (если потом не восстановить, в том числе предусмотреть это и в обработике ошибок) может сильно осложнить жизнь юзерам автокада - ничего нельзя привычным способом отредактировать ![]() вот так вот поменял функцию callback: Код:
пока вроде работает Лиспер, что-то я не понимаю, как твою функцию применить в callback функции... Ведь реактор кинет в callback функцию (у мня пока другого не получалось) только ОДИН указатель на блок, и обновлять надо именно этот блок. К тому же в твоем коде именно комендный метод, который и применен у меня, именно такой вариант убирает выделение блока после редактирования его динсвойств. Что заметил: эти две строки Код:
Ну, как я уже писал, в таком случае можно вообще обойтись регенерацией, не затрагивая обновление полей - и выделение не пропадает и все нормуль, только слабые компы подвисают ))) Есть ли возможность сделать регенерацию для отдельного объекта (у нас - блока)? ТОлько не _update - это поля не обновляет Прошу прощения, выделил в коде красным две строки, которые все равно не работают, а иногда и вызывают сбой... Я о выделении через ssetfirst. Их лучше убрать. Итак вывод: обновление полей автоматом после изменения динсвойства блока возможно. Но оно неприменимо для динблоков, с динсвойствами которых часто и много работают, т.к. при обновлении полей исчезает выделение блока, вернуть выделение у меня не получилось. Нуа ГУРУ ЛИСПа пока тоже не отвечают, возможно этой проблемой никто и не занимался, зная проблемность реакторов. Единственный вариант, когда возможно обновить поля и сохранить выделение - это использовать вместо _updatefiekd регенерацию _regen. Но - слабые компы такого издевательства не выдержат. Так что это нельзя назвать универсальным инструментом, так как у пользователя не обязательно будет навороченный комп. Последний раз редактировалось Frigate, 20.01.2011 в 06:49. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Некорректно обновляются поля блока | NEDIS | AutoCAD | 50 | 19.02.2013 15:47 |
Поля атрибутов вложенного блока не отображают своих значений | hwd | AutoCAD | 7 | 23.12.2009 08:40 |
Подскажите, пожалуйста, как сделать описание (description) для блока? | Ламер | AutoCAD | 5 | 27.08.2009 14:33 |
Мониторы LCD CRT | Разное | 94 | 17.06.2008 10:51 | |
Как в чертеже автоматически прописать полный путь? | Соня | AutoCAD | 5 | 14.09.2004 16:33 |