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

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

Выбор блоков по видимости

Ответ
Поиск в этой теме
Непрочитано 17.08.2008, 13:29 #1
Выбор блоков по видимости
gabrin
 
Инновации в проектировании
 
Россия
Регистрация: 13.02.2007
Сообщений: 106

Добрый день. Подскажите пожалуйста, имеется ли у кого лисп на выбор блоков по параметру аттрибута " Видимость". Дело в том что у меня имеется блок с пятью параметрами "Видимость", и соответсвенно на чертеже имеется пять разного вида блоков, имеющие один и тот же имя файла.
Просмотров: 4208
 
Непрочитано 17.08.2008, 18:38
#2
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от gabrin Посмотреть сообщение
Добрый день. Подскажите пожалуйста, имеется ли у кого лисп на выбор блоков по параметру аттрибута " Видимость". Дело в том что у меня имеется блок с пятью параметрами "Видимость", и соответсвенно на чертеже имеется пять разного вида блоков, имеющие один и тот же имя файла.
Замени имя блока и имя параметра видимости
на свои
Написал давно, не помню как работает

Код:
[Выделить все]
;;=============================  dpc.lsp  ============================
(vl-load-com)
;; local defun
;; written by FH
(defun group-by-car (lst)
(if lst
(cons
(vl-remove-if-not (function (lambda (x)
		(equal (car x) (caar lst))))
                    lst
                   )
   (group-by-car
    (vl-remove-if (function (lambda (x)
		(equal (car x) (caar lst))))
                  lst)))))

(defun count_pairs (lst)
  (mapcar (function (lambda (x)
		      (cons (caar x)
			    (length x)))
		    )
	  lst)
  )

;;=========================  main programm  =======================;;

  (defun C:DPC	(/
		 adoc
		 axss
		 blkname
		 count_data
		 propname
		 props
		 result
		 ssa
		 tmp)
    (setq blkname (getstring T "\nEnter block name <WFSection>: "))
    (if	(eq "" blkname)
      (setq blkname "WFSection"))
    (setq propname (getstring T "\nEnter property name name <Section Type>: "))
    (if	(eq "" propname)
      (setq propname "Section Type"))
    (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
    (if	(setq ssa (ssget "_X"
			 (list
			   (cons 0 "INSERT")
			   (cons 2 (strcat blkname ",`*U*")))))
      (progn

	(setq axss (vla-get-activeselectionset adoc))
	(vlax-for blk  axss
	  (setq	props (vlax-safearray->list
			(variant-value
			  (vla-getdynamicblockproperties blk))))
	  (foreach prop	 props
	    (if	(eq (vla-get-propertyname prop) propname)
	      (progn
		(setq tmp (cons (vlax-variant-value (vla-get-value prop)) 1)
		      )
		(setq count_data (cons tmp count_data))))
	    )
	  )
	)
      )
    ;; return count blocks info:
    (setq result (count_pairs (group-by-car count_data)))
    
    (alert
      (strcat "Всего:\n"
	      (apply
		'strcat
		(mapcar
		  '(lambda (x)
		     (strcat
		       (itoa (cdr x))
		       " блоков "
		       "\""
		       blkname
		       "\""
		       " имеют значение "
		       "\""
		       (car x)
		       "\""
		       " динамического свойства "
		       "\""
		       propname
		       "\""
		       "\"\r"
		       )
		     )
		  result
		  )
		)
	      )
      )
    (princ)
    )
(prompt
  "\n\t\t\t   |-----------------------------|\n"
)
(prompt
  "\n\t\t\t  <|  Start with DPC to execute  |>\n"
)
(prompt
  "\n\t\t\t   |-----------------------------|\n"
)
(prin1)
~'J'~

Последний раз редактировалось fixo, 17.08.2008 в 18:39. Причина: забыл добавить (vl-load-com)
fixo вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Выбор блоков по видимости

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор блоков по значению атрибутов. Sleekka Программирование 71 14.10.2023 23:39
Изменить параметры у всех объектов внутри блоков 800x600 AutoCAD 5 25.03.2008 14:21
Выбор блоков по точке bivis333 Программирование 3 23.04.2007 09:06
Взрыв блоков Filcarpenter Разное 19 28.01.2007 09:57
Выбор блоков по значению слоя атрибута Serge_Y Программирование 2 15.11.2006 22:43