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

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

Как определить из каких типов примитивов состоят блоки в рисунке?

Ответ
Поиск в этой теме
Непрочитано 26.11.2010, 23:50 #1
Как определить из каких типов примитивов состоят блоки в рисунке?
Евгений V
 
Регистрация: 26.11.2010
Сообщений: 2

Подскажите, пожалуйста, в каком направлении копать?
В рисунке нужно найти блоки, в которых отсутствуют примитивы определенного типа, в частности, 3d solid. Как это сделать с помощью lisp?
Просмотров: 2239
 
Непрочитано 27.11.2010, 00:55
#2
Кулик Алексей aka kpblc
Moderator

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


К примеру, так:
Код:
[Выделить все]
(vl-load-com)

(defun check-block-definitions-within-type (mask / adoc res f)
                                           ;|
*    Выводит имена всех блоков, в которых есть примитив указанной маски
|;
  (vlax-for blk_def (vla-get-blocks (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
    (if (and (not (equal (vla-get-modelspace adoc) blk_def))
             (equal (vla-get-islayout blk_def) :vlax-false)
             (equal (vla-get-isxref blk_def) :vlax-false)
             ) ;_ end of and
      (progn
        (setq f    nil
              mask (strcat "*" (vl-string-trim "*" (strcase mask)) "*")
              ) ;_ end of setq
        (vlax-for ent blk_def
          (if (and (not f)
                   (or (wcmatch (strcase (vla-get-objectname ent)) mask)
                       (wcmatch (strcase (cdr (assoc 0 (entget (vlax-vla-object->ename ent))))) mask)
                       ) ;_ end of or
                   ) ;_ end of and
            (setq res (cons (vla-get-name blk_def) res)
                  f   t
                  ) ;_ end of setq
            ) ;_ end of if
          ) ;_ end of vlax-for
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of vlax-for
  res
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 27.11.2010, 14:32
#3
Евгений V


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


Буду разбираться, спасибо.
Евгений V вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как определить из каких типов примитивов состоят блоки в рисунке?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA. 3D. Ориентация блоков (примитивов) в пространстве? Как определить угол поворота? shumilovvv Программирование 2 15.05.2009 12:18