Свойства чертежа через AutoLisp

Автор Тема: Свойства чертежа через AutoLisp  (Прочитано 6178 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн SilverWorkАвтор темы

  • ADN OPEN
  • Сообщений: 13
  • Карма: 1
Можно ли как-то получить значения свойств чертежа (_dwgprops) с помощью AutoLisp?
Видел форуме решение через .NET, а вот на лиспе не смог найти.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Свойства чертежа через AutoLisp
« Ответ #1 : 11-07-2021, 14:55:40 »
SilverWork,
Тут готовое решение: http://maestrogroup.com.ua/support/getdwgprops.zip
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн SilverWorkАвтор темы

  • ADN OPEN
  • Сообщений: 13
  • Карма: 1
Re: Свойства чертежа через AutoLisp
« Ответ #2 : 11-07-2021, 15:13:57 »
Спасибо. Это решение я видел.
Т.е. стандартными средствами AutolLisp в открытом чертеже эту информацию не получить?
Я думал, что надо просто какой-то словарь прочитать.

Отмечено как Решение Александр Ривилис 11-07-2021, 15:47:28

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Свойства чертежа через AutoLisp
« Ответ #3 : 11-07-2021, 15:21:28 »
SilverWork,
Пример из документации:
Код - Auto/Visual Lisp [Выбрать]
  1. (vl-load-com)
  2. (defun c:Example_SummaryInfo()
  3.     ;; This example shows how to access drawing properties
  4.     (setq acadObj (vlax-get-acad-object))
  5.     (setq doc (vla-get-ActiveDocument acadObj))
  6.     (setq summaryInfo (vla-get-SummaryInfo doc))
  7.  
  8.     ;; Add and display standard properties
  9.     (vla-put-Author summaryInfo "John Doe")
  10.     (vla-put-Comments summaryInfo "Includes all ten levels of Building Five")
  11.     (vla-put-HyperlinkBase summaryInfo "http://www.autodesk.com")
  12.     (vla-put-Keywords summaryInfo "Building Complex")
  13.     (vla-put-LastSavedBy summaryInfo "JD")
  14.     (vla-put-RevisionNumber summaryInfo "4")
  15.     (vla-put-Subject summaryInfo "Plan for Building Five")
  16.     (vla-put-Title summaryInfo "Building Five")
  17.  
  18.     (setq author (vla-get-Author summaryInfo))
  19.     (setq comments (vla-get-Comments summaryInfo))
  20.     (setq HLB (vla-get-HyperlinkBase summaryInfo))
  21.     (setq KW (vla-get-Keywords summaryInfo))
  22.     (setq LSB (vla-get-LastSavedBy summaryInfo))
  23.     (setq RN (vla-get-RevisionNumber summaryInfo))
  24.     (setq subject (vla-get-Subject summaryInfo))
  25.     (setq Title (vla-get-Title summaryInfo))
  26.     (alert (strcat "The standard drawing properties are "
  27.                    "\nAuthor = " author
  28.                    "\nComments = " comments
  29.                    "\nHyperlinkBase = " HLB
  30.                    "\nKeywords = " KW
  31.                    "\nLastSavedBy = " LSB
  32.                    "\nRevisionNumber = " RN
  33.                    "\nSubject = " Subject
  34.                    "\nTitle = " Title
  35.            )
  36.     )
  37.  
  38.     ;; Add and display custom properties
  39.     (setq CustomPropertyBranch "Branch")
  40.     (setq PropertyBranchValue "Main")
  41.     (setq CustomPropertyZone "Zone")
  42.     (setq PropertyZoneValue "Industrial")
  43.  
  44.     ;; Add custom properties
  45.     (if (>= (vla-NumCustomInfo summaryInfo) 1)
  46.         (vla-SetCustomByIndex summaryInfo 0 CustomPropertyBranch PropertyBranchValue)
  47.         (vla-AddCustomInfo summaryInfo CustomPropertyBranch PropertyBranchValue)
  48.     )
  49.  
  50.     (if (>= (vla-NumCustomInfo summaryInfo) 2)
  51.         (vla-SetCustomByKey summaryInfo CustomPropertyBranch "Satellite")
  52.         (vla-AddCustomInfo summaryInfo CustomPropertyZone PropertyZoneValue)
  53.     )
  54.  
  55.     ;; Get custom properties
  56.     (vla-GetCustomByIndex summaryInfo 0 'Key0 'Value0)
  57.     (setq Key1 CustomPropertyZone)
  58.     (vla-GetCustomByKey summaryInfo Key1 'Value1)
  59.  
  60.     (alert (strcat "The custom drawing properties are "
  61.                    "\nFirst property name = " Key0
  62.                    "\nFirst property value = " Value0
  63.                    "\nSecond property name = " Key1
  64.                    "\nSecond property value = " Value1
  65.            )
  66.     )
  67. )
  68.  
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн SilverWorkАвтор темы

  • ADN OPEN
  • Сообщений: 13
  • Карма: 1
Re: Свойства чертежа через AutoLisp
« Ответ #4 : 11-07-2021, 15:30:49 »
Спасибо.

Еще вот тут https://forums.autodesk.com/t5/vba/reading-part-of-dwg-props/td-p/297354 нашел вариант прочитать словарь DWGPROPS, но пока еще не проверял.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Свойства чертежа через AutoLisp
« Ответ #5 : 11-07-2021, 15:41:00 »
Спасибо.

Еще вот тут https://forums.autodesk.com/t5/vba/reading-part-of-dwg-props/td-p/297354 нашел вариант прочитать словарь DWGPROPS, но пока еще не проверял.
Обрати внимание на год сообщения в той теме. Начиная с AutoCAD 2004 такого словаря нет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение