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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужна программа, выводящая список словарей и их содержимого

Нужна программа, выводящая список словарей и их содержимого

Ответ
Поиск в этой теме
Непрочитано 01.04.2005, 12:43 #1
Нужна программа, выводящая список словарей и их содержимого
Torino
 
Штаб
Регистрация: 21.08.2003
Сообщений: 943

Программисты, помогите, пожалуйста: нужна программа, выводящая список dictionaries, находящихся в чертеже.
И выводящая содержимое этих словарей.
Просмотров: 4406
 
Непрочитано 01.04.2005, 13:36
#2
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


В самом тривиальном варианте так:
Код:
[Выделить все]
(setq dicts (vla-get-dictionaries (vla-get-activedocument (vlax-get-acad-object))))
(vlax-for d dicts
    (princ "\n\nDict or Rec: ")
    (princ (vl-catch-all-apply (function vla-get-name) (list d)))
    (princ "\nType: ")
    (princ (setq tmp (vla-get-objectname d)))
    (if	(= tmp "AcDbDictionary")
	(progn
	    (princ "\nContain:")
	    (vlax-for i d (vlax-dump-object i))
	)
    )
)
Не ясна цель процесса, потому - как проще.
Alaspher вне форума  
 
Автор темы   Непрочитано 01.04.2005, 14:43
#3
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Спасибо, программа работает, только что-то я не могу найти нужных мне данных. Ну это не к программе.
А цель следующая: необходимо программно извлечь из Land Desktop информацию о проекте, которая хранится (по моим данным) в каком-то словаре.
Этот словарь я не нашел.
Но нужная мне информация также дублируется в расширенных данных блока ADCADD_ZZ. Поэтому можно ли написать программу, извлекающую расширенные данные из блока с именем ADCADD_ZZ, находящегося в Layout1?
Torino вне форума  
 
Непрочитано 01.04.2005, 16:23
#4
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Давайка погладим что тут. Ой сколько всяких циферек...

Код:
[Выделить все]
(defun c:xdv (/ selObj regAppl dxf XDat name flag)
  (if
    (setq selObj(car(entsel "\n*** Select object *** ")))
    (progn
      (setq regAppl(vla-get-RegisteredApplications
		     (vla-get-ActiveDocument
		       (vlax-get-acad-object)))
	    ); end setq
      (vlax-for app regAppl
       (setq dxf(entget selObj(list(setq name(vla-get-Name app)))))
	(if(setq XDat(assoc -3 dxf))
	  (progn
	    (setq flag T)
	    (princ(strcat "\nApplication name: " name "\n"))
	    (princ XDat)
	    ); end progn
	  ); end if
	      ); end vlax-for
      (if(not flag)(princ "\n*** No XData found. ***"))
      ); end progn
    (princ "\n*** Nothing selected! ***")
    ); end if
  (princ)
  ); end c:xdv
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 01.04.2005, 17:49
#5
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


ооо!
Оно!
Выцарапал все, что надо было!
Спасибо!
Torino вне форума  
 
Непрочитано 10.09.2010, 20:14
#6
ArtemYa


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


Подскажите пожалуйста, какими методами можно добавить словарь блоку, перезаписать и считать его?
ArtemYa вне форума  
 
Непрочитано 11.09.2010, 17:27
#7
VVA

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


Хэ-records
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужна программа, выводящая список словарей и их содержимого