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

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

Разбор объектов по слоям в зависимости от цвета

Ответ
Поиск в этой теме
Непрочитано 16.12.2010, 16:00 #1
Разбор объектов по слоям в зависимости от цвета
kabz
 
Регистрация: 25.11.2010
Сообщений: 4

В чертеже на одном слое, но несколькими цветами нарисован проект. Нужен лисп или макрос, который будет объекты определенного цвета помещать в новый слой с названием этого цвета.
Например все красное помещается на слой "красный", все синее на синий и т.д.

Посоветуйте плз. где взять такой лисп?
Просмотров: 3024
 
Непрочитано 16.12.2010, 16:02
#2
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


"Быстрый выбор" может помочь.
Profan вне форума  
 
Автор темы   Непрочитано 16.12.2010, 16:06
#3
kabz


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


Быстрый выбор помогает, однозначно.
Но вопрос стоит ребром. Нужна кнопка для автоматизации данного действия. По иному "тетки" данную задачу выполнять отказываются.
kabz вне форума  
 
Непрочитано 16.12.2010, 16:28
#4
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от kabz Посмотреть сообщение
отказываются
Слово-то какое... Шикарно живут "тётки"
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Непрочитано 16.12.2010, 16:42
#5
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Хорошо хоть рисовать согласны.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 16.12.2010, 16:59
#6
VVA

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


Код:
[Выделить все]
(defun C:RO (/ *error* Doc)
;;;Relayer Objects
  (vl-load-com)
  (defun *error* (msg)
    (princ msg)
    (vla-endundomark Doc)
    (princ)
  )
  (setq Doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark Doc)
  (Relayer-Objects Doc)
  (vla-endundomark Doc)
  (alert "Обработка завершена")
  (princ)
)

(defun make-layer (color / Nme)
  (if (null color)
    (setq color 256)
  )
  (if (not
	(tblobjname
	  "Layer"
	  (setq Nme (strcat "Color_" (vl-princ-to-string color)))
	)
      )
    (entmake (list (cons 0 "LAYER")
		   (cons 100 "AcDbSymbolTableRecord")
		   (cons 100 "AcDbLayerTableRecord")
		   (cons 2 Nme)
		   (cons 70 0)
		   (if (and (> Color 0) (< Color 256))
		     (cons 62 Color)
		     (cons 62 7)
		   )
	     )
    )
  )
  Nme
)
(defun Relayer-Objects (Doc / txt count ed)
  (vlax-for Blk	(vla-get-Blocks Doc)
    (if	(= (vla-get-IsXref Blk) :vlax-false)
      (progn
	(setq count 0
	      txt   (strcat "Changed " (vla-get-name Blk))
	)
	(grtext -1 txt)
	(vlax-for Obj Blk
	  (setq count (1+ count))
	  (if (zerop (rem count 10))
	    (grtext -1 (strcat txt " : " (itoa count)))
	  )
	  (if (vlax-write-enabled-p Obj)
	    (progn
	      (setq ed (entget (vlax-vla-object->ename Obj)))
	      (entmod (subst (cons 8 (make-layer (cdr (assoc 62 ed))))
			     (assoc 8 ed)
			     ed
		      )
	      )
	    )
	  )
	) ;_ end of vlax-for
      )
    ) ;_ end of if
  ) ;_ end of vlax-for
  (vl-cmdf "_regenall")
)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 16.12.2010, 17:14
#7
kabz


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


Спасибо! щас проверим код ))
kabz вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Разбор объектов по слоям в зависимости от цвета



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разные а цвета отображения объектов в видовых экранах начиная с acad 2008 Умка AutoCAD 14 12.04.2023 15:00
Слияние слоев с сохранением цвета объектов слоя sasha_lif AutoCAD 29 21.09.2017 08:00
LISP. Распределение по слоям объектов dim.,hatch,text Суханова LISP 5 28.08.2008 13:31
FILTER / фильтр BM60 Справочник команд 0 08.07.2008 15:35