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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > не получается разная печать с разных LAYOUT

не получается разная печать с разных LAYOUT

Ответ
Поиск в этой теме
Непрочитано 14.10.2005, 11:26
не получается разная печать с разных LAYOUT
Gaa
 
сан-техник на пенсии
 
Регистрация: 23.05.2005
Сообщений: 140

Не получается разная печать с разных LAYOUT
Пытаюсь морозить на LAYOUT слои нежелатедьные для печати используя CURRENT, но ничего не получается.

АСАД2006
__________________
Спасибо
Просмотров: 8543
 
Непрочитано 29.03.2006, 09:52
#21
Кулик Алексей aka kpblc
Moderator

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


Я не понял, лисп, что ли, требуется?
Код:
[Выделить все]
(defun c:kpblc-vports (/ _layer selset item)
  (vl-load-com)
  (if (not *kpblc-activedoc*)
    (setq *kpblc-activedoc* (vla-get-activedocument (vlax-get-acad-object)))
    ) ;_ end of if
  (vla-startundomark *kpblc-activedoc*)
  (setq	_layer (_kpblc-layer-create '(("name" . "VPORTS") ("plot" . "n")))
	selset (ssget "_X" '((0 . "VIEWPORT")))
	) ;_ end of setq
  (while (and selset
	      (> (sslength selset) 0)
	      ) ;_ end of and
    (setq item (ssname selset 0))
    (ssdel item selset)
    (vla-put-layer (vlax-ename->vla-object item) (vla-get-name _layer))
    ) ;_ end of while
  (vla-endundomark *kpblc-activedoc*)
  ) ;_ end of defun

;|=============================================================================
*    Создание слоя с указанными параметрами.
*    Параметры вызова:
*   layer-list   список параметров слоя вида:
   '(("name" . "TestLayer")   ; имя слоя. Не может быть пропущено
   ("color" . 3)         ; номер цвета. nil -> 7
   ("lw" . 50)         ; вес линии слоя. nil -> 25
   ("lt" . "hidden")      ; тип линии слоя. nil -> Continuous
               ; Если описания типа линии в acadiso.lin
               ; нет, обязательно указывать следующий
               ; параметр
   ("ltfile" . "c:\\cad\\ltypes\\lt.lin")   ; полный путь к файлу с описанием
               ; типа линии. Если файл находится в путях
               ; поддержки, путь можно не указывать
   ("plot" . "y")         ; Печатать ("y") или нет ("n") слой.
               ; nil -> "y"
   )
*    Возвращает vla-указатель на созданный слой. Если слой существует, его
* настройки приводятся в соответствие с переданным списком.
*    Слой размораживается, разблокируется и включается. Не активируется.
|;
(defun _kpblc-layer-create (layer-list / vla_layer)
  (setq	vla_layer
	 (vla-add
	   (vla-get-layers *kpblc-activedoc*)
	   (cdr (assoc "name" layer-list))
	   ) ;_ end of vla-add
	) ;_ end of setq
  (vla-put-color
    vla_layer
    (if	(cdr (assoc "color" layer-list))
      (cdr (assoc "color" layer-list))
      7
      ) ;_ end of if
    ) ;_ end of vla-put-color
  (vla-put-lineweight
    vla_layer
    (if	(cdr (assoc "lw" layer-list))
      (cdr (assoc "lw" layer-list))
      aclnwt025
      ) ;_ end of if
    ) ;_ end of vla-put-lineweight
  (if (and (cdr (assoc "lt" layer-list))
	   (_kpblc-linetype-load
	     (cdr (assoc "lt" layer-list))
	     (cdr (assoc "ltfile" layer-list))
	     ) ;_ end of _kpblc-linetype-load
	   ) ;_ end of and
    (vla-put-linetype vla_layer (cdr (assoc "lt" layer-list)))
    (vla-put-linetype vla_layer "Continuous")
    ) ;_ end of if
  (vla-put-plottable
    vla_layer
    (if	(= (cdr (assoc "plot" layer-list)) "n")
      :vlax-false
      :vlax-true
      ) ;_ end of if
    ) ;_ end of vla-put-Plottable
  (vla-put-lock vla_layer :vlax-false)
  (vla-put-layeron vla_layer :vlax-true)
  (if (not (equal (vla-get-activelayer *kpblc-activedoc*)
		  vla_layer
		  ) ;_ end of equal
	   ) ;_ end of not
    (vla-put-freeze vla_layer :vlax-false)
    ) ;_ end of if
  vla_layer
  ) ;_ end of defun

;|=============================================================================
*    Функция подгрузки типа линии в текущий файл. Учитывает возможную
* локализацию системы.
*    Возвращает vla-указатель на подгруженный тип линии.
*    Параметры вызова:
*   ltype-name   имя типа линии для английской версии
*   ltype-file   имя файла описания типа линии. nil -> "acadiso.lin"ю
*         Если файл с описанием типа линии не лежит по путям
*         поддержки када, надо указывать полный путь к нему.
*    Примеры вызова:
(_kpblc-linetype-load "center" nil)   ; для русской версии подгружает Осевая
***  Соответствие наименований линий обеспечивается огромным списком ltype_list
*** который можно и нужно дополнять :)
***  Тип линии "Continuous" обработке не подвергается - он есть во всех версиях
=============================================================================|;
(defun _kpblc-linetype-load (ltype-name ltype-file / ltype_list)
  (vl-load-com)
  (if (/= (strcase ltype-name t) "continuous")
    (progn
      (setq ltype_list '(("center" . "осевая")
			 ("center2" . "осевая2")
			 ("hidden" . "скрытая")
			 ("hidden2" . "скрытая2")
			 )
	    ltype-name (strcase ltype-name t)
	    ) ;_ end of setq
      (if (not ltype-file)
	(setq ltype-file "acadiso.lin")
	(setq ltype-file
	       (strcat (_kpblc-dir-get-root-menu)
		       (vl-filename-base ltype-file)
		       ".lin"
		       ) ;_ end of strcat
	      ) ;_ end of setq
	) ;_ end of if
      (if (assoc ltype-name item)
	(setq ltype-name
	       (if (vl-string-search "419" (vlax-product-key))
		 (cdr (assoc ltype-name item))
		 (car (assoc ltype-name item))
		 ) ;_ end of if
	      ) ;_ end of setq
	) ;_ end of if
      (if (not (tblsearch "ltype" ltype-name))
	;; тип линии не найден, надо его загрузить. Тип линии должен быть
	;; описан в файле
	(vl-catch-all-error-p
	  (vl-catch-all-apply
	    'vla-load
	    (list
	      (vlax-get-property
		*kpblc-activedoc*
		'linetypes
		) ;_ end of vlax-get-property
	      ltype-name
	      ltype-file
	      ) ;_ end of list
	    ) ;_ end of vl-catch-all-apply
	  ) ;_ end of vl-catch-all-error-p
	) ;_ end of if
      ) ;_ end of progn
    ) ;_ end of if
  (vla-item (vla-get-linetypes *kpblc-activedoc*) ltype-name)
  ) ;_ end of defun
Сейчас Лентяй и Apelsinov меня порвут как Тузик грелку за смешение стилей (ssget) и ActiveX. Робяты, звиняйте, но мне так проще и понятнее. Может, потом дорасту и до вас.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.03.2006, 09:57
#22
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


>kpblc

Скорей всего для Robka требуются пояснения по методам работы с видовыми экранами...
Хмурый вне форума  
 
Непрочитано 29.03.2006, 10:44
#23
Robka


 
Регистрация: 28.11.2005
Tallinn
Сообщений: 3


Цитата:
Сообщение от Хмурый
>kpblc

Скорей всего для Robka требуются пояснения по методам работы с видовыми экранами...
да, оно самое и требуется... почему то не получается нарисованное в "модели" на разных слоях вывести на печатьтаким образом, чтобы на разных листах были некоторые невидны; просто отключая в слоях "печать слоя", эффекта не добиться

ок, сегодня же попробую по этим рекомендациям... правда вечерком
Robka вне форума  
 
Непрочитано 29.03.2006, 10:50
#24
Кулик Алексей aka kpblc
Moderator

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


Войти внутрь ВЭ, тогда в списке слоев рядом с лампочкой большой будет "которая поменьше" (в диспетчере - Freezе in current viewport).Вот ее и надо "погасить" для ненужных слоев.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.03.2006, 14:28
#25
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от Gaa
По ходу нашел одну особенность, если заморозить слой в XREF, то это действует только до конца работы с рисунком, после сохранения с последующей загрузкой - слой размораживается!
Это так? или снова что-то не так?
Переменная Visretain. Если она равна 1, то единожды замороженный слой таким и останется. А если она равна 0, то на одну сессию
Vova вне форума  
 
Непрочитано 30.03.2006, 18:57
#26
Post

конструктор
 
Регистрация: 29.07.2005
Ростов-на-Дону
Сообщений: 1,092
<phrase 1=


Я обычно еще при начале работы с чертежом замораживаю в тек. ВЭ все слои, кроме "самых-самых", а потом, при необходимости размораживаю. Не путаюсь со слоями, когда их становится штук 15 и более. Пробовал использовать фильтры слоев, но че-то не догнал (фильтров понасаздавал, а как с ними дальше быть? ) буду признателен, если кто подскажет!
__________________
С уважением!!!
Post вне форума  
 
Непрочитано 30.03.2006, 22:15
#27
Robka


 
Регистрация: 28.11.2005
Tallinn
Сообщений: 3


kpblc и Хмурый спасибо, получилось!!... теперь могу лепить в модели на разных слоях и потом распечатывать по-отдельности
Robka вне форума  
 
Непрочитано 31.03.2006, 15:12
#28
Andi55

инженер-электрик
 
Регистрация: 12.08.2005
Иркутск
Сообщений: 523
<phrase 1=


Меланхолически замечу:
после настройки слоев в вьюпортах перед самой распечаткой зайди в модель и в менеджере слоев включи ВСЕ солнышки и ВСЕ лампочки для ВСЕХ слоев, что нужны для распечатки, будет мешанина в модели, но только тогда возможна будет "разная печать с разных LAYOUT" ПАКЕТОМ, т.е штук 10 листов за раз (это когда с шифтом или контролом выделяешь нужные листы и пуляешь их все пачкой на печать).
Andi55 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > не получается разная печать с разных LAYOUT