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

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

помогите автоматизировать поиск

Ответ
Поиск в этой теме
Непрочитано 07.05.2007, 10:20 #1
помогите автоматизировать поиск
Юрий_2007z
 
1111
Регистрация: 07.05.2007
Сообщений: 3

Нужен липс для поиска по образцу
искать приходится блоки,
хорошо бы щелкнул блок, выделил область и получил их кол-во, в данной области...
Просмотров: 2580
 
Непрочитано 07.05.2007, 10:26
#2
Zouss


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


конкретизируйте, какой лиПс вам нужен - COMMON, VLisp или VBA?
p.s. транслитерация МИФ даёт VBA
Zouss вне форума  
 
Непрочитано 07.05.2007, 10:26
#3
Кулик Алексей aka kpblc
Moderator

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


_.qselect с указанием, например, имени блока. Либо _.filter
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.05.2007, 10:58
#4
VVA

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


Без обработки динамических блоков
Код:
[Выделить все]
(defun C:CB ( / bname ss)
(if (and (setq bname (car(entsel "\nУкажите блок: ")))
	 (setq bname (entget bname))
	 (= (cdr(assoc 0 bname)) "INSERT")
	 (setq ss (ssget (list (assoc 2 bname))))
	 )
  (progn
  (princ (strcat "\nКоличесво " (cdr(assoc 2 bname)) " = " (itoa (sslength ss))))
  (setq ss nil)
  )
  )
  (princ)
  )
(princ "\nНаберите CB (англ) в командной строке")
VVA вне форума  
 
Непрочитано 07.05.2007, 11:03
#5
VVA

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


Вариант с динамическими блоками. Опубликовано kpblc'ом где-то на autocad.ru
Код:
[Выделить все]
(defun c:blockcount (/ adoc selset res name) 
  (vl-load-com) 
  (setq adoc (vla-get-activedocument (vlax-get-acad-object))) 
  (if (setq selset (ssget '((0 . "INSERT")))) 
    (progn 
      (foreach blk 
               (mapcar 'vlax-ename->vla-object 
                       (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset))) 
                       ) ;_ end of mapcar 
        (setq name (cond 
                     ((and (vlax-property-available-p blk 'isdynamicblock) 
                           (= (vla-get-isdynamicblock blk) :vlax-true) 
                           ) ;_ end of and 
                      (vla-get-effectivename blk) 
                      ) 
                     (t (vla-get-name blk)) 
                     ) ;_ end of cond 
              ) ;_ end of setq 
        (if (member name (mapcar 'car res)) 
          (setq res (subst (cons name (1+ (cdr (assoc name res)))) 
                           (assoc name res) 
                           res 
                           ) ;_ end of subst 
                ) ;_ end of setq 
          (setq res (append res (list (cons name 1)))) 
          ) ;_ end of if 
        ) ;_ end of foreach 
      (princ "\nИмя\tКоличество") 
      (foreach item res 
        (princ (strcat "\n" (car item) "\t= " (vl-princ-to-string (cdr item)))) 
        ) ;_ end of foreach 
      (princ) 
      ) ;_ end of progn 
    ) ;_ end of if 
  )
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > помогите автоматизировать поиск

Опции темы Поиск в этой теме
Поиск в этой теме:

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