Тема: Проблема преобразования цветов

Доброго времени суток. Возникла необходимость автоматизации работы с АвтоКадом. Я не могу изменить цветовую схему чертежа с цветной на черно белую. Причем сделать это надо через консоль. Как это осуществляется в ручную я примерно представляю. Выделяем весь чертеж и после этого в свойствах заменить значение color на white.Но возникает одно но во первых цвет меняется у всего за исключением некоторых надписей которые остаются красными. и во вторых посредствам команд это усуществить не удается. И еще. Преобразование это временное. Только на период работы. Или возможно есть другие пути решения? Например через подключение каких либо дополнительных модулей?

Re: Проблема преобразования цветов

ещё один инопланетный гость с извращёнными желаниями.

Re: Проблема преобразования цветов

Ну вот так сразу... Почему инопланетный? Вполне земной) Желания правда может и извращенные)
И еще. АвтоКад у меня 2007.

Re: Проблема преобразования цветов

Пытался прочитать написанное - ничего не понял.
Обьясни грамотно, что хотел узнать.

Re: Проблема преобразования цветов

В общем. Есть цветной чертеж. Надо преобразовать его в черно-белый и провести манипуляции. Манипуляции я все осуществил. Осталось сделать преобразование цветов. По средствам либо консоли либо подключения дополнительных модулей. АвтоКАД 2007.

Re: Проблема преобразования цветов

тебе нужен твой чертеж как подоснова чтоли?? только не цветной, а черный??

Re: Проблема преобразования цветов

Ну в общем то да.

Re: Проблема преобразования цветов

подгрузи как внешнюю ссылку, и поменяй у ссылки цвет

Re: Проблема преобразования цветов

А можно более подробно? Просто с АвтоКАДом я не работал почти.

Re: Проблема преобразования цветов

Все зависит от степени сложности чертежа. Блоки, а в них могут быть и многоэтажные вложенные, а также атрибуты блоков перекрашиваются не так просто. Остальное должно перекраситься через свойства, можно и в слоях перекрасить.

Re: Проблема преобразования цветов

KMA skazal eryndy

Re: Проблема преобразования цветов

Vova, когда ты перекрашиваешь чертеж в другой цвет попробуй вернуть его обратно в те цвета в которых он был. Я предложил подгрузить через xref чертеж как подложку, эту подложку через менеджер слоев можно покарасить в нужный цвет и он не затронет главный чертеж, и где тут ерунда???

Re: Проблема преобразования цветов

Дело в том что пользователь должен открыть чертеж,  нажать на 1 кнопку и получить видимую на экране область в требуемой ему форме. И потому как я понимаю копирование в данном случае к сожалению не подходит. Если только я не могу скопировать только нужную мне область. Это бы решило многие проблемы.
И еще, Vova, если есть блоки с вложениями, то это уже довольно таки проблематично сделать? Всмысле перекрасить? И вообще насколько реально это осуществимо? Или проще EMF править полученный?

Re: Проблема преобразования цветов

kma пишет:

подгрузи как внешнюю ссылку, и поменяй у ссылки цвет

Я предложил подгрузить через xref чертеж как подложку, эту подложку через менеджер слоев можно покарасить в нужный цвет

Найди 2 отличия. Vova был прав. Если у ссылки (считай блока) поменять цвет это ничего не даст. Нужно менять именно через менеджер слоев, причем в самой ссылке у примитивов цвет должен быть  "послою"

Re: Проблема преобразования цветов

> I23
Я все равно плохо понимаю, что ты хочешь. Сначала чертеж, потом видимая область.
Устроит ли тебя, если ты нажмешь кнопку и всем примитивам, что есть в чертеже назначится цвет 7 (исключая внешние ссылки)?

Re: Проблема преобразования цветов

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

Re: Проблема преобразования цветов

> VVA
« Нужно менять именно через менеджер слоев, причем в самой ссылке у примитивов цвет должен быть "послою" »  о чем выше и написано

Re: Проблема преобразования цветов

Пусть KMA подробненько напишет, что ему надо

Re: Проблема преобразования цветов

vova, читай пост... тут не мою проблему решаем

Re: Проблема преобразования цветов

Объясню по порядку с самого начала. Есть некий чертеж. Есть пользователь. Этот самый пользователь нажимает кнопку и то что у него есть в данный момент на экране (лишь только то что он видит) берется в буфер и уже дальше с содержимым этого буфера ведется работа. Но если вставить содержимое буфера в новый файл, то туда  переносится весь чертеж... А не только видимая область. Или все таки я могу вставить то что нужно?

VVA (2008-07-17 18:41:10)    
Устроит ли тебя, если ты нажмешь кнопку и всем примитивам, что есть в чертеже назначится цвет 7 (исключая внешние ссылки)?

Именно это мне и надо.

Re: Проблема преобразования цветов

KMA, sorry

Re: Проблема преобразования цветов

> I23
Команда Color7

   (defun mip:layer-status-restore ()
    (foreach item *MIP_LAYER_LST*
      (if (not (vlax-erased-p (car item)))
        (vl-catch-all-apply
          '(lambda ()
             (vla-put-lock (car item) (cdr (assoc "lock" (cdr item))))
             (vla-put-freeze (car item) (cdr (assoc "freeze" (cdr item))))
             ) ;_ end of lambda
          ) ;_ end of vl-catch-all-apply
        ) ;_ end of if
      ) ;_ end of foreach
    (setq *MIP_LAYER_LST* nil)
    ) ;_ end of defun
  (defun mip:layer-status-save ()
    (setq *MIP_LAYER_LST* nil)
    (vlax-for item (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
      (setq *MIP_LAYER_LST* (cons (list item
                                  (cons "freeze" (vla-get-freeze item))
                                  (cons "lock" (vla-get-lock item))
                                  ) ;_ end of cons
                            *MIP_LAYER_LST*
                            ) ;_ end of cons
            ) ;_ end of setq
      (vla-put-lock item :vlax-false)
      (if (= (vla-get-freeze item) :vlax-true)
      (vl-catch-all-apply '(lambda () (vla-put-freeze item :vlax-false))))
      ) ;_ end of vlax-for
    ) ;_ end of defun
(defun ChangeAllObjectsColor (Doc Color / tempObjType ColCnt RowCnt)
(vlax-for Blk (vla-get-Blocks Doc)
 (if (= (vla-get-IsXref Blk) :vlax-false)
  (vlax-for Obj Blk
    (if (vlax-property-available-p Obj 'Color)
      (vla-put-Color Obj Color)
     )
  )
 )
)
)
(defun C:COLOR7 ( / doc)
  (vl-load-com)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark doc)
  (mip:layer-status-save)
  (ChangeAllObjectsColor doc  7);_ 7 - номер цвета
  (mip:layer-status-restore)
  (vla-endundomark doc)
  (princ)
  )
    

Re: Проблема преобразования цветов

> VVA
Все заработало. Премного благодарен))

Re: Проблема преобразования цветов

Вариант с выбором цвета
Команда COLORX

(defun mip:layer-status-restore ()
    (foreach item *MIP_LAYER_LST*
      (if (not (vlax-erased-p (car item)))
        (vl-catch-all-apply
          '(lambda ()
             (vla-put-lock (car item) (cdr (assoc "lock" (cdr item))))
             (vla-put-freeze (car item) (cdr (assoc "freeze" (cdr item))))
             ) ;_ end of lambda
          ) ;_ end of vl-catch-all-apply
        ) ;_ end of if
      ) ;_ end of foreach
    (setq *MIP_LAYER_LST* nil)
    ) ;_ end of defun
  (defun mip:layer-status-save ()
    (setq *MIP_LAYER_LST* nil)
    (vlax-for item (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
      (setq *MIP_LAYER_LST* (cons (list item
                                  (cons "freeze" (vla-get-freeze item))
                                  (cons "lock" (vla-get-lock item))
                                  ) ;_ end of cons
                            *MIP_LAYER_LST*
                            ) ;_ end of cons
            ) ;_ end of setq
      (vla-put-lock item :vlax-false)
      (if (= (vla-get-freeze item) :vlax-true)
      (vl-catch-all-apply '(lambda () (vla-put-freeze item :vlax-false))))
      ) ;_ end of vlax-for
    ) ;_ end of defun
(defun ChangeAllObjectsColor (Doc Color / tempObjType ColCnt RowCnt)
(vlax-for Blk (vla-get-Blocks Doc)
 (if (= (vla-get-IsXref Blk) :vlax-false)
  (vlax-for Obj Blk
    (if (vlax-property-available-p Obj 'Color)
      (vla-put-Color Obj Color)
     )
  )
 )
)
)
(defun C:COLORX ( / doc col)
  (vl-load-com)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark doc)
  (mip:layer-status-save)
  (if (setq col (acad_colordlg 7 t))
  (ChangeAllObjectsColor doc  col);_ col - color nubber
    )
  (mip:layer-status-restore)
  (vla-endundomark doc)
  (princ)
  )