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

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

извлечение и замена данных поля (field)

Ответ
Поиск в этой теме
Непрочитано 04.05.2009, 13:36 #1
извлечение и замена данных поля (field)
Composter
 
Отопление и вентиляция
 
Москва
Регистрация: 31.10.2008
Сообщений: 376

(entget(cdr(assoc 360(entget(cdr(assoc 360(entget(cdr(assoc
360(entget(cdr(assoc 360 (entget(car(entsel)))))))))))))))
таким образом можно докопаться до сущности поля.а как как поменять объект? вроде со значением объекта связаны 331 и 330. пытюсь их поменять ничего не выходит.хочу туда подставить значание имени активного листа.и еще вопрос если я нахожусь в пространстве создания блока а поле находится в атрибуте блока, то как к нему можно добраться?
Просмотров: 7829
 
Непрочитано 04.05.2009, 13:43
#2
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,453


Новый код надо сгенерить и в обычное содержимое вставить.
Sleekka вне форума  
 
Автор темы   Непрочитано 04.05.2009, 15:02
#3
Composter

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


а ларчик просто открывался...не догадался я что так просто это делается. но у меня дальше загвоздка я хотел вставить имя текущего листа узнаю его id (vla-get-objectid (vla-get-ActiveLayout (vla-get-activedocument (vlax-get-acad-object)))) получил id вствил в текст, все заработало.но в другом листе id активного листа то другое.и он выставляет 0 id активного листа.можно ли во внутрь поля вставить вышеупомянутое выражение что бы он каждый раз сам вычислял id активного листа?
Composter вне форума  
 
Непрочитано 04.05.2009, 16:44
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,794
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Composter, Можно и объект в поле поменять. См.
LISP.Поля (Field). Удаление, Добавление, Изменение
Цитата:
можно ли во внутрь поля вставить вышеупомянутое выражение что бы он каждый раз сам вычислял id активного листа?
нет. Тебе id нужно для ведомости чертежей? По крайней мере там вставляется таблица с полями или текстом
АВТО Заполнение ведомости рабочих чертежей
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 25.06.2009, 16:25
#5
Composter

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


а ларчик просто открывался.оказывается в поле нужно было выставить значение системной переменной ctab и тогда поле отображает в любом листе имя листа в котором находится.
Composter вне форума  
 
Непрочитано 26.06.2009, 19:37
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,794
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Composter, Имя и id активного листа немного разные вещи
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 29.06.2009, 11:09
#7
Composter

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


это я в курсе.я ж в начале написал что хочу вставить в поле имя активного листа.просто я не тем путем пошел ...
Composter вне форума  
 
Непрочитано 17.07.2009, 10:48
#8
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


не знаю, может баян уже, но нашел такое решение:
для двух текстовых примитивов (во второй пишет содержимое первого)

Код:
[Выделить все]
(defun c:ktz_pstfld (/ ename_get t_str ID)
  (vl-load-com)
  (setq ID (vla-get-objectid (vlax-ename->vla-object (car (entsel "\nоткуда брать содержимое")))))
  (setq ename_get (entget (car (entsel "\nкуда писать"))))
  (setq t_str (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa ID) ">%).TextString>%"))


  (setq ename_get (subst (cons 1 t_str) (assoc 1 ename_get) ename_get))
  (entmod ename_get)
  (entupd (cdr (assoc 1 ename_get)))
  (vl-cmdf "_updatefield" (cdr (assoc -1 (ename_get))) "")
);defun
только вот пару вопросов - пишет:
ошибка: неверный тип аргумента: lentityp "%<\\AcObjProp
Object(%<\\_ObjId 2059668368>%).TextString>%"

и не обновляет поле, приходится вручную
kakt00z вне форума  
 
Непрочитано 17.07.2009, 11:23
#9
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,453


У тебя кавычки в кавычках, открой книгу разберись как поступать в таких случаях.
Sleekka вне форума  
 
Непрочитано 17.07.2009, 16:29
#10
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


никаких кавычек в кавычках ....
просто в строчке
(entupd (cdr (assoc 1 ename_get)))
должен быть минус, а я его забыл, вот так
(entupd (cdr (assoc -1 ename_get)))
ну и там скобки лишние были...

вуаля!
Код:
[Выделить все]
(defun c:ktz_pstfld (/ ename_get t_str ID)
  (vl-load-com)
  (setq	ID (vla-get-objectid
	     (vlax-ename->vla-object
	       (car (entsel "\nоткуда брать содержимое"))
	     )
	   )
  )
  (setq ename_get (entget (car (entsel "\nкуда писать"))))
  (setq	t_str (strcat "%<\\AcObjProp Object(%<\\_ObjId "
		      (itoa ID)
		      ">%).TextString>%"
	      )
  )


  (setq ename_get (subst (cons 1 t_str)
			 (assoc 1 ename_get)
			 ename_get
		  )
  )

  
  (entmod ename_get)
  (entupd (cdr (assoc -1 ename_get)))
  (vl-cmdf "_updatefield" (cdr (assoc -1 ename_get)) "")
  (princ)
);defun
kakt00z вне форума  
 
Непрочитано 24.06.2011, 11:28
#11
Lioon

Инж. ПКО
 
Регистрация: 26.11.2008
Красноярск
Сообщений: 23


Возник вопрос? код отменно работает с Mtext, а как сделать, чтобы он между атрибутами блоков работал? т.е. можно было бы выбрать атрибут1 одного блока и поставить ссылку на атрибут2 второго блока?
Lioon вне форума  
 
Непрочитано 24.06.2011, 12:36
#12
Дима_

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


Вставить поля в значения аттрибутов в ВХОЖДЕНИИ блока (в самом описании блока такое сделать ИХМО не возможно) - то есть в одно вхождение в "рукопашную" устанавливаем значение со ссылками можно как на свои аттрибуты, так и на другого вхождения. Свзяи будут сохраняться при копировании - причем если копировать блок ссылающийся на другой вместе "с исходным" - то образуется новая "независимая" пара (тройка), если без - то используется ссылка исходного (как-бы клон получается).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 24.06.2011, 12:49
#13
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,794
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Как-то так
Код:
[Выделить все]
(defun c:CFLD (/ ename_get t_str ID)
  ;;; Copy field
  (vl-load-com)
  (setq	ID (vla-get-objectid
	     (vlax-ename->vla-object
	       (car (nentsel "\nоткуда брать содержимое"))
	     )
	   )
  )
  (setq ename_get (entget (car (nentsel "\nкуда писать"))))
  (setq	t_str (strcat "%<\\AcObjProp Object(%<\\_ObjId "
		      (itoa ID)
		      ">%).TextString>%"
	      )
  )


  (setq ename_get (subst (cons 1 t_str)
			 (assoc 1 ename_get)
			 ename_get
		  )
  )
  (entmod ename_get)
  (entupd (cdr (assoc -1 ename_get)))
  (command "_updatefield" (cdr (assoc -1 ename_get)) "" "_regenall")
  (princ)
);defun
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 24.06.2011 в 17:37.
VVA вне форума  
 
Непрочитано 24.06.2011, 13:01
#14
Lioon

Инж. ПКО
 
Регистрация: 26.11.2008
Красноярск
Сообщений: 23


Спасибо большое VVA. ты гений! ... Честно :-)
Lioon вне форума  
 
Непрочитано 27.06.2011, 10:40
#15
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 373
<phrase 1=


Супер! Это то что мне нужно было!!!!
А как сделать так чтобы можно было выбирать в какой атрибут вставлять? А то у меня некоторые атрибуты скрытые?
А как сделать чтобы можно было выбрать несколько блоков для вставки поля?

Последний раз редактировалось Alexeipost, 27.06.2011 в 13:13.
Alexeipost вне форума  
 
Непрочитано 27.06.2011, 16:38
#16
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,794
<phrase 1= Отправить сообщение для VVA с помощью Skype™


попробуй textduplicate http://dwg.ru/dnl/1931
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 28.06.2011, 07:50
#17
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 373
<phrase 1=


Нет, Textduplicate, немного не то. В CFLD можно выбрать в какой атрибут вставить поле, а в Textduplicate - нельзя.
Alexeipost вне форума  
 
Непрочитано 17.08.2011, 09:37
#18
Wolkodaw


 
Регистрация: 21.04.2009
Тюмень
Сообщений: 95


Сделал скрытый атрибут блока. Блок закрыл. Вставил поле (уже не в блоке), в котором должно обновляться значение атрибута, но оно не меняется в поле (ни реген, ни сохр).Остается значение по умолчанию. Как-то можно исправить?
Wolkodaw вне форума  
 
Непрочитано 17.08.2011, 10:03
#19
No M.P.

Инженер-конструктор
 
Регистрация: 24.08.2007
Волгоград
Сообщений: 763
<phrase 1=


Попробуй синхронизировать аттрибуты в мэнэджере аттрибутов блоков.
Файл с блоком покажешь?
__________________
Никогда не стоит недооценивать предсказуемость глупости
No M.P. на форуме  
 
Непрочитано 17.08.2011, 10:29
#20
Wolkodaw


 
Регистрация: 21.04.2009
Тюмень
Сообщений: 95


Я нашел,почему не получалось Просто создал заново атрибут и поле.Только поле не копировал в блоке формулу, а сразу объекты-атрибут (первый раз не заметил что атрибут сразу появляется в списке объектов - так работает лучше )



А вот тут не подскажете как сделать обновление поля? В атрибуте значение уже изменено на П-2, а поле не обновилось.
Чертеж2.dwg

Последний раз редактировалось Wolkodaw, 17.08.2011 в 10:50.
Wolkodaw вне форума  
 
Непрочитано 17.08.2011, 12:21
#21
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 373
<phrase 1=


Чтобы обновилось поле в чертеж2.dwg надо создать еще один атрибут и сделать ссылку на первый атрибут (с "П-2"). Можно ссылку сделать прямо в блоке, должно сработать. Хотя бывает что не работает. Тогда ссылку на атрибут (с "П-2") надо сделать уже не в редакторе блока.
Alexeipost вне форума  
 
Непрочитано 17.08.2011, 13:54
#22
Кулик Алексей aka kpblc
Moderator

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


Alexeipost, посмотри на раздел, в котором тема находится.
Решение, я так подозреваю, необходимо программное.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.08.2011, 15:24
#23
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 373
<phrase 1=


Ну так-то я на вопрос отвечал. А если Wolkodaw темой ошибся (в файле "Чертеж2.dwg" я не нашел никаких программных изысков), то я же не виноват. Я хотел помочь.
Alexeipost вне форума  
 
Непрочитано 17.08.2011, 21:29
#24
Кулик Алексей aka kpblc
Moderator

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


В чертеже и не может быть никаких программных изысков. Человек показывает, что у него есть и что должно получиться. Вот и все.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.08.2011, 08:38
#25
Wolkodaw


 
Регистрация: 21.04.2009
Тюмень
Сообщений: 95


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
Чтобы обновилось поле в чертеж2.dwg надо создать еще один атрибут и сделать ссылку на первый атрибут (с "П-2"). Можно ссылку сделать прямо в блоке, должно сработать. Хотя бывает что не работает. Тогда ссылку на атрибут (с "П-2") надо сделать уже не в редакторе блока.
То есть вместо "поля" поставить "второй (новый) атрибут"? С полем не получится?
Wolkodaw вне форума  
 
Непрочитано 18.08.2011, 12:09
#26
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,794
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Wolkodaw, Я твой пример не смотрел. Ответ на вопрос №13 тебе на поможет?
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.08.2011, 12:50
#27
Wolkodaw


 
Регистрация: 21.04.2009
Тюмень
Сообщений: 95


нет. Ладно, спасибо, не очень удобно, но сделаю втрибутом.
Wolkodaw вне форума  
 
Непрочитано 05.07.2012, 13:37
#28
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 794


VVA, А можно доработать лисп из №13, чтобы они понимал мультивыноски. Т.е. из мультивыноски значение можно вставить в текст или мтекст. А вот из текста или мтекста, в мультивыноску не работате. Из мультивыноски в мультивыноску тоже не работает.
Astartes вне форума  
 
Непрочитано 05.07.2012, 19:16
#29
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,794
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Напомни после 14 гляну. Я сейчас в отпуске
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 11.07.2012, 22:50
#30
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


Код:
[Выделить все]
 (vl-load-com)
(defun c:ktz-paste-field (
		      /
                          ns
		      ent-from
		      ent-to
		      ename-get
		      fl		; флаг правильно выбранного объекта
		      tmp
		      str
		      ID
			  doc
			  es
		      
			  )

  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark doc)
  
  (acet-error-init
    (list (list "cmdecho" 0
		"highlight" (getvar "highlight")
		"limcheck" 0
		"osmode" 0
		);list
	  T
	  );list
    );acet-error-init
  

  
  
  (while (not fl)
    (setq ns (nentsel "\n Укажите источник данных ... :"))
      (if ns
          (progn
              (setq ent-from (car ns)
                    tmp (cdr (assoc 0 (entget ent-from)))
                    );setq
	    
              (if (member tmp '("TEXT" "ATTRIB" "MTEXT" "DIMENSION" "MULTILEADER"))
                  ;then
                  (setq fl T)
                  ;else

                  (princ "\n *** Не найден источник данных ***")
                  );if
              )
          (progn
              (acet-error-restore)
              (vla-endundomark doc)
              (exit)
              )
          )
    );while
  
  (vl-load-com)
  (setq ID (vla-get-objectid (vlax-ename->vla-object ent-from)))
  (setq	str (strcat "%<\\AcObjProp Object(%<\\_ObjId "
		      (itoa ID)
		      ">%).TextString>%"
		);strcat
   );setq
  
(setq fl nil)
  (while (setq es (nentsel "\n Укажите объект-приемник данных ... :"))
    (if (and
	  es
	  (setq ent-to (car es))
	  (member	(cdr (assoc 0 (entget ent-to)))
	    '("TEXT" "ATTRIB" "MTEXT" "DIMENSION" "MULTILEADER")
	    ) ;_ member
	  ) ;_ and
	  
    (progn
      (if (eq (cdr (assoc 0 (entget ent-to))) "MULTILEADER")
	(progn
	  (vla-put-TextString (vlax-ename->vla-object ent-to) str)
	  (vla-update (vlax-ename->vla-object ent-to))
	  )
	(progn
	  (setq ename-get (entget ent-to))
	  (setq ename-get (subst (cons 1 str)
			     (assoc 1 ename-get)
			     ename-get
			     ) ;_ subst
		) ;_ setq
	  (entmod ename-get)
	  (entupd (cdr (assoc -1 ename-get)))
	  )
	)
      (vl-cmdf "_updatefield" (cdr (assoc -1 ename-get)) "")
      ) ;progn
    (princ "\n *** Не верный выбор объекта-приемника ***")
    ) ;if ent
  (acet-error-restore)
  (vla-endundomark doc)

    ) ;while entsel
 
  (princ)
);defun
после "_REGEN" multileader-ы обновляются, работает (10 акад)
наспех добавил мультивыноски
код не идеален, но работает, пользуюсь с 2009
kakt00z вне форума  
 
Непрочитано 17.07.2012, 13:15
#31
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,794
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Astartes Посмотреть сообщение
VVA, А можно доработать лисп из №13, чтобы они понимал мультивыноски. Т.е. из мультивыноски значение можно вставить в текст или мтекст. А вот из текста или мтекста, в мультивыноску не работате. Из мультивыноски в мультивыноску тоже не работает.
Цитата:
Сообщение от VVA Посмотреть сообщение
Напомни после 14 гляну. Я сейчас в отпуске
Как-то так
Код:
[Выделить все]
(defun c:CFLD (/ ename_get t_str ID obj)
  ;;; Copy field
  (vl-load-com)
  (and
    (setq obj (car (nentsel "\nоткуда брать содержимое")))
    (setq obj (vlax-ename->vla-object obj))
    (setq ID (vla-get-objectid obj ))
    (if (vlax-property-available-p obj 'Textstring)
      (progn
        (setq ename_get (entget (car (nentsel "\nкуда писать"))))
        (setq	t_str (strcat "%<\\AcObjProp Object(%<\\_ObjId "
		      (itoa ID)
		      ">%).TextString>%"
	      )
                )
          (vla-put-TextString (vlax-ename->vla-object (cdr(assoc -1 ename_get))) t_str)
          (entupd (cdr (assoc -1 ename_get)))
          (command "_updatefield" (cdr (assoc -1 ename_get)) "" "_regenall")
        )
      (alert "У объекта нет свойства\n   Textsring")
      )
    )
  (princ)
);defun
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 17.07.2012, 13:50
#32
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 794


VVA, Спасибо. Есть правда непонятный момент. Когда вставляешь в мультивыноску, текст прилипает к полке.
Вложения
Тип файла: dwg
DWG 2007
Чертеж2.dwg (94.7 Кб, 1433 просмотров)
Astartes вне форума  
 
Непрочитано 17.07.2012, 13:54
#33
Кулик Алексей aka kpblc
Moderator

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


Astartes, в поиск по словам "текст прилипает к выноске"
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.07.2012, 14:03
#34
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 794


Кулик Алексей aka kpblc, Я знаю про эту тему. У меня есть лисп который это исправляет. Вопрос то в том, что после применения лиспа CFLD, текст прилипает. Если это "неизбежное зло" для CFLD, буду исправлять лиспом из указанной тобой темы.
Astartes вне форума  
 
Непрочитано 17.07.2012, 14:36
#35
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,794
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Astartes Посмотреть сообщение
Если это "неизбежное зло" для CFLD,
Это неизбежное зло мультивыноски.
Цитата:
Сообщение от Astartes Посмотреть сообщение
буду исправлять лиспом из указанной тобой темы.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.10.2012, 15:31
#36
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


Код:
[Выделить все]
 (defun c:CFLD (/ ename_get t_str ID obj)
  ;;; Copy field
  (vl-load-com)
  (and
    (setq obj (car (nentsel "\nоткуда брать содержимое")))
    (setq obj (vlax-ename->vla-object obj))
    (setq ID (vla-get-objectid obj ))
    (if (vlax-property-available-p obj 'Textstring)
      (progn
        (setq ename_get (entget (car (nentsel "\nкуда писать"))))
        (setq	t_str (strcat
			"\\pxse0.8;"
			"%<\\AcObjProp Object(%<\\_ObjId "
		      (itoa ID)
		      ">%).TextString>%"
	      )
                )
          (vla-put-TextString (vlax-ename->vla-object (cdr(assoc -1 ename_get))) t_str)
          (entupd (cdr (assoc -1 ename_get)))
          (command "_updatefield" (cdr (assoc -1 ename_get)) "" "_regenall")
        )
      (alert "У объекта нет свойства\n   Textsring")
      )
    )
  (princ)
);defun

Последний раз редактировалось kakt00z, 08.10.2012 в 15:39.
kakt00z вне форума  
 
Непрочитано 09.10.2012, 08:26
#37
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 794


kakt00z, Спасибо за ваш вариант. Работает как надо. Текст не прилипает.

VVA, возник вопрос. В лиспе я увидел что присутствую две команды для обновления полей.
(command "_updatefield" (cdr (assoc -1 ename_get)) "" "_regenall").
Зачем? Updatefield не всегда корректно работает? А regenall в качестве запасного варианта? Можно ли убрать regenall? А то когда чертеж большой с кучей объектов, команда CFLD долго выполняется.

Последний раз редактировалось Astartes, 09.10.2012 в 08:36.
Astartes вне форума  
 
Непрочитано 09.10.2012, 11:17
#38
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,794
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от Astartes Посмотреть сообщение
Зачем? Updatefield не всегда корректно работает? А regenall в качестве запасного варианта?
Я уже не помню. Скорее всего как запасной вариант. Убрать, как и вернуть обратно, всегда можно.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.10.2012, 15:42
#39
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


если закрыть глаза на диезы (без regenall и updatefield), то можно и всю эту строку удалить:
(command "_updatefield" (cdr (assoc -1 ename_get)) "" "_regenall")
при сохранении или еще каком-нибудь событии все поля обновятся сами
или обновить регенерировать чертеж вручную после нескольких выполнений команды
kakt00z вне форума  
 
Непрочитано 23.07.2019, 09:22
#40
allar8


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


Народ а можно как нить заменить коды значений полей сразу во всех вхождениях полей в файле
Т.е. поясню - изменил через внешнюю программу наименование доп. свойства в подшивке, но в файлах остались ссылки на прежние наименования свойств
Подобную тему в офисе можно делать с закладками, т.е. там в настройках выбираешь показывать коды полей и тупо поиск замена.
Тут в акаде так нельзя, но видел что-то вокруг да около - но готового решения не нашел - мож просто не туда глядел?

Последний раз редактировалось allar8, 23.07.2019 в 13:29.
allar8 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > извлечение и замена данных поля (field)

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 269 22.07.2019 17:19
Field... вставка поля из лиспа grph AutoCAD 2 16.10.2012 14:18
извлечение данных в AutoCAD 2008 versus1984 AutoCAD 10 27.03.2009 09:33
Извлечение данных в шаблон EXEL. OHUKC Программирование 23 15.09.2008 19:45
структурированный список Holon Программирование 22 11.09.2007 14:09