Извлечение атрибутов из блоков. 7. Извлечение атрибутов блока

Извлечение атрибутов блока

 


В общем, не знаю, почему необходимо без лиспов, может, Автокад – LT?
Но я все равно взял да написал лисп. Употреблял готовые функции по извлечению значений дин. характеристик (от LeeMac) и для отрисовки мультивыноски (от VVA).
10 минут – и код уже здесь. Было бы еще скорее, но там снутри блока всплыли всякие бяки, вроде того, что кое-где лукапы прописаны с дефисом, кое-где – без. Наверное, выявил не все. Всяких проверок и обработок ошибок нет.

[Выделить все]

(defun C:TEST ( / ent vla diam param1 str) (setq ent (car (entsel "nВыберите блок:"))) (setq vla (vlax-ename->vla-object ent)) (setq diam (vl-string-subst "" "Ду " (LM:getdynpropvalue vla "Lookup-К"))) (if (= diam "Custom") (setq diam (vl-string-subst "" "Ду " (LM:getdynpropvalue vla "Lookup-Э")))) (or (setq param1 (LM:getdynpropvalue vla (strcat "КЭ-" diam))) ;;; концентрический/эксцентрический (setq param1 (LM:getdynpropvalue vla (strcat "КЭ" diam))) ) (setq str (strcat (vla-get-EffectiveName vla) ;;; имя блока " " ;;; пробел param1 "n" ;;; переход на новейшую строчку (LM:getdynpropvalue vla (strcat diam "х")) ;;; поперечникы ) ) (if str (draw-mleader (getpoint "nУкажите исходную точку выноски:") ;_ исходная точка pause ;_запрос 2-ой точкм (list str) ;_Вытота текста ;_Значение коэффициента см ;;; тему allgaz7.ru?p=&postcount=51 ;_отступ 1-го параграфа (форматтирование \pxa) ) ) ) ;; Get Dynamic Block Property Value – Lee Mac ;; Returns the value of a Dynamic Block property (if present) ;; blk – [vla] VLA Dynamic Block Reference object ;; prp – [str] Dynamic Block property name (case-insensitive) (defun LM:getdynpropvalue ( blk prp ) (setq prp (strcase prp)) (vl-some ‘(lambda ( x ) (if (= prp (strcase (vla-get-propertyname x))) (vlax-get x ‘value))) (vlax-invoke blk ‘getdynamicblockproperties) ) ) (defun draw-mleader (pt1 pt2 strlist Htxt koeff abz / dic mlst i) ;;; pt1 – исходная точка UCS ;;; pt2 – конечная точка UCS ;;; strlist – перечень строк ;;; Htxt – высота текста ;;; koeff – коэфф форматирования pxe либо nil ;;; abz – коэфф форматирования абзаца \pa либо Nil ;;;(draw-mleader (setq pt1(getpoint))(getpoint pt1)(list "Пример" "Минскинжпроект" "Третья строка") nil) ;;; Стиль мультивыноски текущий (setq i 0) (command "_mleader" "_h" "_none" pt1 "_none" pt2 (strcat (if koeff (strcat "\px" (if abz (strcat "a"(VL-STRING-RIGHT-TRIM "0" (MIP-CONV-TO-STR abz))",") "") "se" (VL-STRING-RIGHT-TRIM "0" (MIP-CONV-TO-STR koeff))";") "") ;;;"\pxse;" ;;; "\pa;" (car strlist) "\pa0;" (car strlist) ) ) (while (> (getvar "CMDACTIVE") 0) (command "")) (setq dic (vlax-ename->vla-object (entlast))) (vla-put-TextString dic (strcat (if koeff (strcat "\px" (if abz (strcat "a"(VL-STRING-RIGHT-TRIM "0" (MIP-CONV-TO-STR abz))",") "") "se" (VL-STRING-RIGHT-TRIM "0" (MIP-CONV-TO-STR koeff))";") "") ;;;"\pxse;" ;;; "\pa;" (car strlist) "\pa0;" (car strlist) ;;; (if abz "\pa0;" "") (apply ‘strcat (mapcar ‘(lambda (x) (strcat "\P" (if (= (setq i (1+ i)) 1)(if abz "\pa0;" "") "") x)) (cdr strlist)) ) ;_ end of apply ) ;_ end of strcat ) (vla-put-TextHeight dic Htxt) dic ) (defun mip-conv-to-str (dat) (cond ((= (type dat) ‘INT) (setq dat (itoa dat))) ((= (type dat) ‘REAL) (setq dat (rtos dat 2 12))) ((null dat) (setq dat "")) (t (setq dat (vl-princ-to-string dat))) ) ;_ end of cond ) ;_ end of defun

добавлено через ~14 мин.
Ну а ежели все же лисп – не вариант

Читайте также  Не реагирует на ноутбуке тачпад. Не работает тачпад на ноутбуке — Как исправить
Сообщение от skkkk
А может, подойдет динамический блок кирпича с воплощенным снутри него функционалом выноски?
Сообщение от Leopard_
В вашем примере не хватает видимости сторца, видимости в плане, видимости для фигурного кирпича, видимости для кирпича с дырочками.
Повторюсь: у меня до видимостей (есть даже 8).

Не очень разбирался в кишках блока, но, вроде, параметр видимости там лишь один, а остальное – лукапы, не?
Есть программа от Supermax‘а, которая умеет добавлять доп характеристики видимости к блоку. Тогда на 2-ой параметр видимости можно повесить вкл/выкл выноски. Программка работает лишь на Автокадах до го. Я лично пробовал делать несколько блоков – полет обычный. Можно наделать блоков в ней, а опосля употреблять и на LT. Разобраться в ней не так ух и трудно, но муторно эти блоки делать. Не люблю. Лично мне еще проще бывает набросать код, чем возиться с ними (но пару раз было реально надо).

7. Извлечение атрибутов блока

Извлечение атрибутов блока

Команда: ЕАТТЕХТ

Назначение:

Служит для извлечения данных из атрибутов в формате Microsoft Excel (XLS), Microsoft Access (MDB) либо разбитого запятыми текста (CSV).

Рис. Настройка содержания для таблицы атрибутов блока

Вызов команды:

Командная строка: ЕАТТЕХТ

Выпадающее меню: Tools и Attribute Extraction

Инструментальная панелы Modify II > Attribute Extract

В ответ на команду система запускает специальную програмку – мастер извлечения данных из атрибутов Enhanced Attribute Extract . Опосля пуска программы система открывает диалоговое окно Select Drawing (рис. ), с помощью которого можно найти начальные чертежи для сбора инфы. Окно содержит две панели и информационное поле.

Информационное поле показывает последовательность действий юзера при извлечении атрибутов блоков.

Читайте также  Создать подпись в thunderbird. Добавление подписи в Thunderbird

Панель Drawings заведует отбором блоков. Панель содержит три клавиши выбора, информационное поле и две клавиши.

  • Клавиша выбора Select Objects устанавливает режим, при котором выбор блоков осуществляется в текущем чертеже явным указанием. Опосля нажатия клавиши справа от клавиши выбора диалоговое окно Select Drawing временно закрывается и система выдает последующий запрос:

    Select Blocks:

    Выберите блоки:

  • Клавиша выбора Current Drawing устанавливает режим, при котором осуществляется выбор всех блоков в текущем чертеже.
  • Клавиша выбора Select Drawings устанавливает режим, при котором выбор блоков осуществляется в пары чертежах. Опосля нажатия клавиши справа от клавиши выбора диалоговое окно Select Drawing временно закрывается и система открывает диалоговое окно для выбора файлов чертежей.

Рис. Извлечение инфы из атрибутов блока: диалоговое окно Select Drawing

  • Информационное поле показывает справочную информацию о нужных действиях юзера.

Панель Drawing Files содержит имена файлов чертежей, из которых нужно извлечь информацию. В таблице приводится имя файла чертежа, его размер и дата крайней модификации.

Диалоговое окно Select Drawing закрывается при нажатии на кнопку Next . Опосля нажатия клавиши система открывает последующее диалоговое окно Settings (рис. ), с помощью которого можно разрешить сбор инфы из файлов наружных ссылок и вложенных блоков. Окно содержит две кнопки-переключателя.

  • Флаг Include Xrefs разрешает сбор инфы из файлов наружных ссылок.
  • Флаг Include Nested Blocks разрешает сбор инфы из вложенных блоков.

Кнопка Next закрывает диалоговое окно Settings и открывает последующее диалоговое окно Use Template (рис. ), с помощью которого можно выбрать предварительно сделанный файл шаблона. Файлы шаблонов сохраняют информацию о том, какие атрибуты и блоки должны извлекаться из чертежей. Окно содержит две клавиши выбора и клавишу.

Рис. Извлечение инфы из атрибутов блока: диалоговое окно Settings

  • Клавиша выбора No Template устанавливает режим, при котором не разрешается употреблять файл шаблона.
  • Клавиша выбора Use Template устанавливает режим, при котором разрешено внедрение шаблонов. Опосля нажатия клавиши справа от клавиши выбора диалоговое окно Use Template временно закрывается и система открывает диалоговое окно для выбора файла шаблона.

Кнопка Next закрывает диалоговое окно Use Template и открывает последующее диалоговое окно Select Attributes (рис. ), с помощью которого можно выбрать нужные блоки и атрибуты. Окно содержит две панели.

Читайте также  Войти в безопасном режиме как. Как зайти в безопасный режим ОС Windows 10 и 7

Панель Blocks заведует отбором блоков. Панель содержит перечень и две клавиши.

  • Перечень содержит список избранных блоков, в котором указано имя блока, его псевдоним и количество таковых блоков в чертеже.
  • Клавиши Select All, Clear All разрешают установить либо снять сразу все флажки выбора.

Панель Attributes for Block заведует отбором атрибутов блоков. Панель содержит перечень и две клавиши.

Рис. Извлечение инфы из атрибутов блока: диалоговое окно Use Template

Рис. Извлечение инфы из атрибутов блока: диалоговое окно Select Attributes

  • Перечень содержит список избранных атрибутов блока, в котором указано имя атрибута, его значение и псевдоним.
  • Клавиши Select All, Clear All разрешают установить либо снять сразу все флажки выбора.

Кнопка Next закрывает диалоговое окно Select Attributes и открывает последующее диалоговое окно View Output (рис. ), с помощью которого можно выбрать нужные блоки и атрибуты. Окно содержит панель и две клавиши.

Рис. Извлечение инфы из атрибутов блока: диалоговое окно View Output

Панель представляет собой таблицу, отображающую блоки и атрибуты, которые будут извлечены. Панель содержит перечень.

  • Перечень содержит список избранных блоков и атрибутов, в котором указаны имя блока, число вхождений блока, имя атрибута и его значение.
  • Клавиша Alternate View заведует содержанием таблицы:
    • в первом случае отображается информация о блоках и атрибутах;
    • во втором случае отображается информация о блоках и их точках вставки.
  • Клавиша Copy to Clipboard разрешают скопировать список в буфер обмена Windows.

Кнопка Next закрывает диалоговое окно View Output и открывает последующее диалоговое окно Save Template, с помощью которого можно сохранить информацию в файле шаблона. Окно имеет клавишу Save Template, которая открывает соответственное диалоговое окно.

Кнопка Next закрывает диалоговое окно Save Template и открывает последующее диалоговое окно Export (рис. ), с помощью которого можно сохранить информацию для предстоящего использования. Окно имеет поле ввода, раскрывающийся перечень и клавишу.

Рис. Извлечение инфы из атрибутов блока: диалоговое окно Export

  • Поле ввода File Name дозволяет указать имя файла, а клавиша, расположенная рядом открывает диалоговое окно Save As , с помощью которого можно выбрать каталог для этого файла. Поле снабжено контекстным меню.
  • Раскрывающийся перечень File Type дозволяет выбрать из предлагаемого перечня тип файла.

Оставьте комментарий