Помогите в автолиспе заменить данные которые выдает команда entget
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Помогите в автолиспе заменить данные которые выдает команда entget

Помогите в автолиспе заменить данные которые выдает команда entget

Ответ
Поиск в этой теме
Непрочитано 26.01.2009, 15:17 #1
Помогите в автолиспе заменить данные которые выдает команда entget
Composter
 
Отопление и вентиляция
 
Москва
Регистрация: 31.10.2008
Сообщений: 445

Я хочу что автолисп поменял значение сущности, например 1.делаю таким образом
(setq l (entget (car(entsel)))) указываю примитив, текст
(subst '(1 . "333") (assoc 1 l) l) в результате автокад выдает новый список , в котором переписано значение , т.е. элемент (assoc 1 l) выглядит (1 . "333"). Но если тут же набрать !l то автокад выдаст значение списка со старыми результатами
не могу понять почему не получается
Просмотров: 2880
 
Непрочитано 26.01.2009, 15:22
#2
Donhuan

Проектировщик СС
 
Регистрация: 24.06.2008
Минск
Сообщений: 134
<phrase 1=


Ну так в l то старый список сохранился
Donhuan вне форума  
 
Непрочитано 26.01.2009, 15:24
#3
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Если вместо (subst '(1 . "333") (assoc 1 l) l) написать (setq l (subst '(1 . "333") (assoc 1 l) l)), то !l вернёт обновлённый список...
Makswell вне форума  
 
Автор темы   Непрочитано 26.01.2009, 15:53
#4
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


спасибо , получилось. но тогда у меня другой вопрос, ведь етот список выдаваемый entget описывает примитив.т.е. если заменить в етом списке значения значит должен поменяться примитив, так ведь? те в данном случае должно поменятся значение текста, а этого не происходит?!?!??
Composter вне форума  
 
Непрочитано 26.01.2009, 16:01
#5
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Вы, по моему, не очень понимаете специфику лиспа (entget) возращает список свойств примитива - что бы вы потом с этим списком не делали - на объекте это не отражаеться, все равно что я Вас сфотографирую, а потом на фото усы подклею - у Вас они так быстро не вырастут; (subst) изменяет значения в СПИСКЕ - но не в примитиве, для того чтобы изменить приметив - есть команда entmod в которой в качестве аргумента и надо задать тот самый (subst .... (entget...))
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 26.01.2009, 16:09
#6
Composter

Отопление и вентиляция
 
Регистрация: 31.10.2008
Москва
Сообщений: 445


я плохо знаю лисп, не говоря уж об его специфике. спасибо, через etnmod все заработало!!!!
Composter вне форума  
 
Непрочитано 26.01.2009, 16:09
#7
VVA

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


Composter, См entmod и entupd
Берешь эти 2 ф-ции
1. _dwgru-conv-ent-to-ename
2. _dwgru-ent-modify-autoregen
В итоге имеем
Код:
[Выделить все]
(_dwgru-ent-modify-autoregen (car(entsel)) 1 "333" t)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 30.01.2009, 19:45
#8
kazax1


 
Регистрация: 16.01.2009
Сообщений: 82


Donhuan; Donhuan; Composter; Коллеги, Для изменения ТЕКСТА я воспользовался изменениями в DXF, принудительно, понимаю - есть проще, как не знаю. Программка прекрасно работает, а покоя нет - должно быть проще!!!

VVA, я просматривал сообщения бегло, упустил ВАС в обращении с проблемой - ТЕКСТ в лиспе, если знаете - помогите.

Последний раз редактировалось Кулик Алексей aka kpblc, 31.01.2009 в 20:29.
kazax1 вне форума  
 
Непрочитано 31.01.2009, 10:20
#9
VVA

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


kazax1, Чего уж проще?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 31.01.2009, 20:30
#10
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


kazax1, а для дополнений собственных постов есть замечательная кнопка. [Правка] называется. Меня уже достало твои посты объединять.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.02.2009, 17:15
#11
kazax1


 
Регистрация: 16.01.2009
Сообщений: 82


http://forum.dwg.ru/member.php?u=28, я не вижу перед своим носом кнопки "правка", просмотрел выше - тоже нет, кнопки "цитата", "цитата++" - есть. Научусь - буду пользоваться. ...Вот теперь кнопку "правка" нашел! http://forum.dwg.ru/member.php?u=28, понял, научился. Кстати, а как пользоваться кнопками "цитата" и "цитата++" и для чего они? Если не считаете за большой труд научите. Внимательно еще раз прочитал "Правила форума" не нашел ни слова о кнопках "правка", "цитата", "цитата++". Почему "посты", а не сообщения? если это сленг или профессиональный термин, то где можно узнать значение многих непонятных мне слов и терминов на форуме, или это почти сленговое, но всеми признанное творчество, участников форума. Спасибо, научился пользоваться кнопкой "правка" - очень полезная кнопка.

Последний раз редактировалось kazax1, 02.02.2009 в 17:57.
kazax1 вне форума  
 
Непрочитано 03.02.2009, 00:28
#12
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Offtop: Ээээ.... Нда...
kazax1, терминологию можно посмотреть, например, в википедии (несмотря на всеобщую лютую любовь к ней): http://ru.wikipedia.org/wiki/%D0%92%...80%D1%83%D0%BC
Внизу каждого поста есть кнопки [Правка], [Цитата] и [Цитата++]. С первой разобрались, вторая: полностью цитирует высказывание, на котором ее щелкнули. Третья: позволяет "суммировать" несколько цитат, вставляя их одновременно в один свой пост (после нажатия [Цитата]). Проще попробовать, чем объяснять
Только кликнув на ссылке, я понял, что обращение ко мне. Для этого под ником (слева) есть кнопка вставки ника. Ею пользоваться проще. Правее - кнопка "жалобы" на сообщение.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.02.2009, 15:47
#13
kazax1


 
Регистрация: 16.01.2009
Сообщений: 82


Кулик Алексей aka kpblc, не знаю, правильно ли но, кажется, правильно обратился к тебе. Пробное обращение.
kazax1 вне форума  
 
Непрочитано 04.02.2009, 00:14
#14
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Ну, как видишь, все нормально отображается
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 04.02.2009, 16:25
#15
kazax1


 
Регистрация: 16.01.2009
Сообщений: 82


Кулик Алексей aka kpblc, Алексей, спасибо. Хочу научиться и понять - научусь и пойму.
kazax1 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Помогите в автолиспе заменить данные которые выдает команда entget



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3D Konstruktor для проектировщиков КМ. Дима_ Готовые программы 17 10.07.2008 10:03