|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Подскажите простую функцию для изменения атрибута
архитектор
Москва
Регистрация: 07.07.2007
Сообщений: 664
|
||
Просмотров: 5926
|
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Аттрибуты идут "вслед" за блоком (entnext вхождение_блока). Ну или vla.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,834
![]() |
Цитата:
![]() Пост 8 мой вариант, который использую во многих случаях (работает без VL- VLA- ...) http://forum.dwg.ru/showthread.php?t...ight=att_value и куча других вариантов
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Возьми за основу:
Код HTML:
(defun C:CHATR (/ att_tag blkent blockName ent newvalue next next_data tagName) (setq blockName (getstring T "\n >> Имя блока (в регистре!) : ")) (setq tagName (strcase (getstring "\n >> Тэг атрибута : "))) (setq newvalue (getstring T "\n >> Новое значение атрибута : ")) (while (setq blkent (entsel "\n >> Выбрать блок (или жми \"Enter\" для завершения): >> \n" ) ) (setq ent (car blkent)) (setq next ent) (while (setq next (entnext next)) (setq next_data (entget next)) (setq att_tag (cdr (assoc 2 next_data))) (if (eq tagName att_tag) (progn (entmod (subst (cons 1 newvalue) (assoc 1 next_data) next_data) ) (entupd ent) ) ) ) ) (princ) ) (prompt "\n====================================\n") (prompt "\n\t>>>\tСтарт команда CHATR ... \t>>>\n") (prompt "\n====================================\n") (prin1) |
|||
![]() |
|
||||
CAD Регистрация: 28.08.2003
Киев
Сообщений: 1,834
![]() |
Цитата:
Код:
Код:
__________________
По теории майский жук летать не может. Но он этого не знает. И летает... |
|||
![]() |
|
||||
пасибо огромное!! это то что надо!
Это то же подходит. Спасибо! Ваш вариант не заработал. Разбираться не стал т. к. первые два работают -) но спасибо! |
||||
![]() |
|
||||
Теперь ищу функцию для извлечения значения атрибута блока. Что то аналогично тому как мы делаем (assoc N (entget (car (entsel)))) Естественно если нужно значение атрибута блока, эта конструкция работать не будет.
Подскажите пожалуйста! Смотрел вот тут: http://www.helloworld.ru/texts/comp/...utolisp.htm#22 Но пока не заработало (не нашёл функцию getval) и я не уверен что это вообще то что надо. Код:
Последний раз редактировалось baaba, 21.10.2013 в 11:08. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
vla-get-textstring
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Пока не очень разобрался как применять. Смотрю пример вот тут:
http://www.lee-mac.com/attributefunc...attributevalue Делаю так: (LM:VL-GETATTRIBUTEVALUE (car (entsel)) "lev") Получаю: Select object: ; error: bad argument type: VLA-OBJECT <Entity name: 7ffffb0cd80> |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
baaba, Так там есть еще описание
Цитата:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Присвоение номера изменения | ingin2009 | Прочее. Архитектура и строительство | 38 | 01.11.2019 05:12 |
Подскажите, функцию в автокаде, которая убирает линии дублирующие, одинаковые друг над дружкой | alevtina07 | AutoCAD | 12 | 04.12.2015 08:55 |
Имеем ли мы право вносить изменения в чужую проектную документацию и каким образом оформлять правильно изменения в этом случае в со-ии с ГОСТ 21.1101? | Red_line | Прочее. Архитектура и строительство | 4 | 26.01.2012 21:50 |