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

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

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

Ответ
Поиск в этой теме
Непрочитано 26.02.2025, 14:48 #1
Как быстро поменять стиль печати для всех примитивов чертежа?
AlexKr
 
Регистрация: 26.02.2025
Сообщений: 2

При преобразовании чертежа при помощи ПРЕОБРСПЕЧ (_CONVERTPSTYLES) из цветозависимой печати примитивам с цветом не ПоБлоку и не ПоСлою (в том числе и внутри блоков) назначается стиль Style_1. Каким образом всем примитивам назначить стиль печати ПоСлою?
Следующий LISP при обработке таких примитивов возвращает "Ошибка Automation. Чертеж использует цветозависимые стили печати". Аналогично BGBLFIX из BGtools3.13b

Код:
[Выделить все]
  (defun c:SetPlotStyleName  (/ switch_Y_N demValue curList aDoc layList layFreezeState layLockState curCount curItem)
  (vl-load-com)
  (initget "Да Нет")
  (setq switch_Y_N (and (setq switch_Y_N (getkword
                             "\nОбрабатывать блоки, получившиеся после команды \"Вставить как блок\" (_pasteblock) [Да/Нет]: <Да> "))
                 (eq "Нет" (strcase switch_Y_N))))
  (initget 6)
  (setq demValue (getstring "\nВведите нужный стиль печати или <ByLayer>"))
  (if (= "" demValue) (setq demValue "ByLayer"))
  (setq curList (list))
  (vlax-for curLay  (setq layList (vla-get-layers (setq aDoc (vla-get-activedocument (vlax-get-acad-object)))))
    (progn (setq layFreezeState (vla-get-freeze curLay)
                 layLockState (vla-get-lock curLay))
           (and (or (eq :vlax-true layFreezeState) (eq :vlax-true layLockState))
                (progn (setq curList (append curList (list (list (vla-get-name curLay) layFreezeState layLockState))))
                       (vl-catch-all-apply 'vla-put-freeze (list curLay :vlax-false))
                       (vla-put-lock curLay :vlax-false)))))
  (princ (strcat "\nВ чертеже найдено описаний  блоков: "
                 (itoa (setq curCount (vla-get-count (setq aDoc (vla-get-blocks aDoc)))))))
  (repeat curCount
    (princ
      (strcat "\nБлок \""
	      (vla-get-name
		(setq layFreezeState (vla-item aDoc (setq curCount (1- curCount))))
	      ) ;_ end of vla-get-name
	      "\" "
	      (if (or (eq "*Paper_Space"
			  (setq layLockState (substr (vla-get-name layFreezeState) 1 12))
		      ) ;_ end of eq
		      (eq "*Model_Space" layLockState)
		      (and switch_Y_N (eq "A$C" (substr layLockState 1 3)))
		  ) ;_ end of or
		"не "
		(progn (repeat (setq curItem (vla-get-count layFreezeState))
			 (setq curItem (1- curItem))
			 (vla-put-plotstylename
			   (vla-item layFreezeState curItem)
			   demValue
			 ) ;_ end of vla-put-plotstylename
			 ) ;_ end of repeat
		       ""
		) ;_ end of progn
	      ) ;_ end of if
	      "обработан, осталось  "
	      (itoa curCount)
      ) ;_ end of strcat
    ) ;_ end of princ
  ) ;_ end of repeat
  (mapcar (function
            (lambda (curLay)
              (vl-catch-all-apply 'vla-put-freeze (list (setq curCount (vla-item layList (car curLay))) (cadr curLay)))
              (vla-put-lock curCount (caddr curLay))))
          curList)
  (princ))
(princ
  "\nМеняет стиль печати всех примитивов (в том числе в блоках) на заданный.\nВызывается SetPlotStyleName")

Последний раз редактировалось AlexKr, 26.02.2025 в 16:45.
Просмотров: 366
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как быстро поменять стиль печати для всех примитивов чертежа?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мгновенная смена "Учитывать веса линий" на всех листах файла для пакетной печати San-Miguel AutoCAD 7 19.12.2024 12:45
Как поменять цвет всех выносок на "По слою" в редакторе? Hofrin AutoCAD 6 20.01.2024 17:54
Полетел стиль печати из сети (.ctb) shishoq AutoCAD 7 29.08.2018 20:21
Hp laserjet 5035 MFP смещение чертежа на формате A3 при печати из Autocad 2011 и 2013 merdoc2003 AutoCAD 6 18.04.2013 23:59