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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Печать МАКРОС

Печать МАКРОС

Ответ
Поиск в этой теме
Непрочитано 09.06.2005, 18:55 #1
Печать МАКРОС
Piton
 
Инженер строитель
 
Москва
Регистрация: 24.02.2005
Сообщений: 396

Надо создать макрос чтоб не выбирать для каждого чертежа параметры. Начал писать макрос но засыпался на указании пути принтера (сетевой). ^C^C-plot;Y;Model;//ANDREU/HP DesignJet 500 24 by HP;
Так как правильно ввести путь принтера (\\ANDREU\HP DesignJet 500 24 by HP)?
Просмотров: 11733
 
Непрочитано 10.06.2005, 06:30
#2
Fogel

люблю мастерить
 
Регистрация: 21.01.2005
Челябинск
Сообщений: 10,332


Для своих я делал нечто типа этого:
Код:
[Выделить все]
(defun C:printed ()
	
	
	(setq cmd (getvar "cmdecho")
	str (getvar "ctab")
	xy1 (getpoint "\n Первый угол рамки:")
	xy2 (getcorner xy1 "\n Второй угол рамки:")
	x1 (nth 0 xy1)
	y1 (nth 1 xy1)
	x2 (nth 0 xy2)
	y2 (nth 1 xy2)
	xy1 (list (min x1 x2) (min y1 y2))
	xy2 (list (max x1 x2) (max y1 y2))
	x1 (nth 0 xy1)
	y1 (nth 1 xy1)
	x2 (nth 0 xy2)
	y2 (nth 1 xy2)
)
;блок печати формата А4
	(if 	(<= (distance xy1 xy2) 365)
		(progn
			(setq 	format "A4"
				printer "\\\\Pcc-server\\HP LaserJet 5000"
				scal "_fit"
				xy1 (list (+ (nth 0 xy1) 5) (+ (nth 1 xy1) 5))
				xy2 (list (- (nth 0 xy2) 5) (- (nth 1 xy2) 5))
			)
			(if 	(> (angle xy1 xy2) (* pi 0.25))
				(setq a "portrait")
				(setq a "landscape")
			)

		)
	)
;Конец блока печати формата А4
;блок печати формата А3
	(if 	(AND (> (distance xy1 xy2) 365) (<= (distance xy1 xy2) 520))
		(progn
			(setq 	format "A3"
				printer "\\\\Pcc-server\\HP LaserJet 5000"
				scal "_fit"
				xy1 (list (+ (nth 0 xy1) 5) (+ (nth 1 xy1) 5))
				xy2 (list (- (nth 0 xy2) 5) (- (nth 1 xy2) 5))
			)
			(if 	(> (angle xy1 xy2) (* pi 0.25))
				(setq a "portrait")
				(setq a "landscape")
			)
		)
	)
;Конец блока печати формата А3
;блок печати формата свыше А3
	(if 	(and (> (distance xy1 xy2) 520) (< (min (- x2 x1) (- y2 y1)) 850))
		(progn
			(setq 	format "Пользовательский"
				printer "\\\\Pcc-server\\Oce 9300"
				scal 1
				)
			(if 	(> (angle xy1 xy2) (* pi 0.25))
				(if (< (- y2 y1) 850) (setq a "landscape") (setq a "portrait"))
				(if (> (- x2 x1) 850) (setq a "landscape") (setq a "portrait"))
				)

		)
	)
(if (and (= a "landscape") (> (- y2 y1) 830) (< (- y2 y1) 850)) (setq scal "_fit"))
(if (and (= a "portrait") (> (- x2 x1) 830) (< (- x2 x1) 850)) (setq scal "_fit"))
;Конец блока печати формата свыше А3
(IF 	(> (min (- x2 x1) (- y2 y1)) 850)
	(alert "Опс! Нету у нас такой техники чтоб такие простыни напечатать... Может с масшатабом намудрили?")
)	
(setvar "cmdecho" 1)
(if (eq (getvar "tilemode") 0)
	(command "_-plot" ;Сама команда	
	"_Y"	;нужны настройки
	str	;лист или модель
	printer
	format
	""
	a
	"_NO"
	"_window"
	xy1
	xy2
	scal
	"0,0"
	"_yes"
	"monochrome.ctb"
	"_yes"		;Чертить с весом линий
	"_NO"
	"_NO"
	"_NO"
	"_NO"
	"_NO"
	"_yes" ;отправить на печать
	)
	(command "_-plot" ;Сама команда	
	"_Y"		;нужны настройки
	str		;лист или модель
	printer		;имя принтера
	format		;формат бумаги
	""		;единицы измерения (согласны на миллиметры)
	a		;ориентация листа портрет/альбом
	"_NO"		;печатать "вверх дном"
	"_window"	;выбор окном
	xy1		;первая точка окна
	xy2		;вторая точка окна
	scal		;масштаб
	"0,0"		;смещение листа
	"_yes"
	"monochrome.ctb";стиль печати
	"_yes"
	"_NO"
	"_NO"
	"_NO"
	"_yes" ;отправить на печать
	)
)
(setvar "cmdecho" cmd)
)
Правда она была предназначена в основном не для печати а для копирования документов, но эту часть я выдрал ибо нашел пути проще...
Fogel вне форума  
 
Непрочитано 10.06.2005, 06:58
#3
Vova

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


На вскидку. Там, в пути, есть пробелы. Значит весь путь надо закавычить. Теперь относительни знаков "//". Я уже встречался с двойной косой. Не означает ли первая косая черта начало пути? Например, C:/... Нет автокада под рукой проверить... Вообще-то я пишу весь путь, если он не забит в Support files. У тебя получается запуск на плот с ком. строки?. Сначала отработай его вручную. Запиши все шаги на бумаге, а потом ПОЭТАПНО вводи в oкно Customize. Kaк только автокад споткнется, читай что он пишет (F2). Если надо задать вопрос, то выложи и то, что написал автокад.
ЗЫ-1 Имя Андрей по английски пишется Andrew
ЗЫ-2 Из модели печатаем? Значит. должны быть заданы точки для области печати. А почему не из Layout?. Если в листе сделана Page Setup, то засылка на плот значительно упрощается
Vova вне форума  
 
Автор темы   Непрочитано 10.06.2005, 11:59
#4
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


Fogel Спасибо за лисп об таком только мечтал (Приходится распечатать проекты в 200 листов за раз). Но возник вопрос. У меня похожая ситуация А3,A4 печатается на принтере ("\\ENGIN5\HP LaserJet 5100 PCL 6") со стилем печати (HP 5100.CTB), а А2,А1 печатается на принтере ("\\ANDREU\HP DesignJet 500 24 by HP") со стилем печати (2000.ctb). Так как надо модифицировть лисп что бы для каждого принтера(плотера) был свой стиль печати.
Piton вне форума  
 
Непрочитано 10.06.2005, 13:19
#5
Fogel

люблю мастерить
 
Регистрация: 21.01.2005
Челябинск
Сообщений: 10,332


введи еще одну переменную Извини некогда самому поправить - рабочий день каюк, да здравствует Челябинское темное пиво!
Fogel вне форума  
 
Автор темы   Непрочитано 10.06.2005, 13:44
#6
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


Я в автолиспе не понимаю
Может все же кто поможет.
P.S. Печатаю в масштабе 1:1
Piton вне форума  
 
Непрочитано 10.06.2005, 17:52
#7
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


я давно пользуюсь этим:
Код:
[Выделить все]
;;;есть маленькая прога, которая помогает автоматизировать процесс печати,
;;;ниже приведен код, сохраните его в файле *.lsp и загрузите в акад.
;;;далее создайте кнопку содержания (plotml [имя принтера] [формат листа] [таблица стиля печати])
;;;например : ^C^C(plotml "HP Color Inkjet CP1700.pc3" "A4 (210 x 297 мм) " "000.CTB"),
;;;данные по принтеру и формату можете посмотреть поэкспериментировав с коммандой -plot.
;;;(на запрос принтера или формата введите ? , акад выдаст допустимые значения)
;;;Теперь, если вы нажмете на эту кнопку акад запросит от Вас две точки рамки,
;;;то что попадет в рамку будет напечатано на выбранном Вами принтере и формате,
;;;в соответствии с указанной таблицей. Масштаб будет вписанный (!)

;;;*********
;;;Apelsinov
;;;22.02.05
;;;plotml
;;;*********
(defun plotml (printer format tabulka / xy1 xy2)
  (if (and (setq xy1 (getpoint "\n Первый угол рамки <Выход>:"))
           (setq xy2 (getcorner xy1 "\n Второй угол рамки <Выход>:"))
      )
    (APEL-PLOT-WIN printer format tabulka (list xy1 xy2))
    (princ "\n Ничего распечатано небыло" )
  )
  (princ)
)

;;;*********
;;;Apelsinov
;;;22.02.05
;;;apel-plot-extents
;;;*********
(defun apel-plot-extents (printer format tabulka /)
;;;  (apel-plot-extents "LAZERPRINTER.pc3" "A4" "TIMUR.CTB") 
  (APEL-PLOT-WIN
    printer
    format
    tabulka
    (list (getvar "extmin") (getvar "extmax"))
  )
  (princ)
)

;;;*********
;;;Apelsinov
;;;22.02.05
;;;APEL-PLOT-WIN
;;;*********
(defun APEL-PLOT-WIN (printer format tabulka coord / a cmd xy1 xy2 L)
    (princ (strcat "\n Печать на "	       printer
		 "; Формат:"	format	       " Стиль:"
		 tabulka "\n"
		)
  )
  (setq	cmd (getvar "cmdecho")
	xy1 (car coord)
	xy2 (cadr coord)
	a   (angle xy1 xy2)
  )
  (if (or (and (> a (* pi 0.25)) (< a (* pi 0.75)))
	  (and (> a (* pi 1.25)) (< a (* pi 1.75)))
      )
    (setq a "_Portrait")
    (setq a "_Landscape")
  )
;;;  (setvar "cmdecho" 0)

  (if (eq (getvar "tilemode") 0)
    (VL-CMDF "_.-plot"			;сама команда
	     "_y"			;нужны настройки
	     ""				; Лист или модель
	     printer			;Собственно принтер
	     format			;Формат листа
	     "_Millimeters"		;Ед. измерения
	     a				;Ориентация листа
	     "_N"			;Зеркалить лист
	     "_Window"			;Область печати
	     xy1			;Первая точка окна
	     xy2			;Вторая точка окна
	     "_fit"			;Масштаб
	     "_center"			;Сдвиг листа
	     "_yes"			;Печать со стилем
	     tabulka			;Стиль
	     "_Yes"			;Учитывать заданные толщины линий
	     "_No"			;масштабироватьтолщины линий
	     "_No"			;Хрен че такое?
	     "_No"			;Удалять скрытые линии
	     "_No"			;Печатать в файл
	     "_no"			;Сохранить настройки
	     "_yes"			;Старт печати
	    )
    (VL-CMDF "_.-plot"			;сама команда
	     "_y"			;нужны настройки
	     "Model"			;Лист или модель
	     printer			;Собственно принтер
	     format			;Формат листа
	     "_Millimeters"		;Ед. измерения
	     a				;Ориентация листа
	     "_N"			;Зеркалить лист
	     "_Window"			;Область печати
	     xy1			;Первая точка окна
	     xy2			;Вторая точка окна
	     "_fit"			;Масштаб
	     "_center"			;Сдвиг листа
	     "_yes"			;Печать со стилем
	     tabulka			;Стиль
	     "_Yes"			;Учитывать заданные толщины линий
	     "_No"			;Удалять скрытые линии
	     "_No"			;Печатать в файл
	     "_No"			;Сохранить настройки
	     "_Yes"			;Старт печати
	    )
  )

;;;  (command "preview")
;;;  (setvar "cmdecho" cmd)
;;;(command "_.vbastmt" "ThisDrawing.Close False")
)
Apelsinov вне форума  
 
Автор темы   Непрочитано 10.06.2005, 19:07
#8
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


Так хочется чтоб лиспик сам бы определял какой формат на какой принтер и с каким стилем бросал на печать . 1-й клик запуск лиспа, 2,3-й клик рамкой печати. И при этом нужна одна кнопка. :idea:
Piton вне форума  
 
Непрочитано 11.06.2005, 16:22 Re: Печать МАКРОС
#9
Vova

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


Цитата:
Сообщение от Piton
Надо создать макрос чтоб не выбирать для каждого чертежа параметры. Начал писать макрос но засыпался ...
Очень жаль, что не попытался довести до конца начатое дело. Получить готовое решение оказалось легче. Макросами можно решить многие проблемы. Эта ведь не последняя на твоем автокадовском пути. Так и будем просить?. Меня часто просят-распечатай чертеж в уменьшенном масштабе, то есть не вдоль, а поперек рулона. Как только понял, что просьбы участились, быстро слепил макрос. Одно нажатие на кнопку и принт вылезает с нужными параметрами. Надо научиться мелкие вещи делать самому
Vova вне форума  
 
Автор темы   Непрочитано 13.06.2005, 10:26
#10
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


2 Vova Спасибо за помощь
Во первых Проблему с указанием пути принтера в макросе так и не решена. Когда вводишь в коммандную строку постепенно это одно, а если в макросе указываешь тоже самое то он спотыкается на указание пути принтера .
Во вторых за место макроса уже получается программа на LISPE, а это уже програмирование, а я все же пользователь а не програмист, поэтому и обратился за помощью на форум.
В тетьих если не можешь помочь, зачем писать? Ведь люди заходят на этот сайт чтоб им помогли, или самим помочь.
Piton вне форума  
 
Непрочитано 13.06.2005, 23:07
#11
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Однако, сподобился попробовать сделать кнопочку с макросом для печати. Имя принтера содержит один пробел. В макросе указал точно так же как оно появляется в диалоговом окне печати (в том числе и регистр букв)
Код:
[Выделить все]
....;//Printserver/Canon LBP3200;....
Получилось.

Не пробовал, но вполне возможно что можно переименовать сам принтер, так чтоб его имя не содержало пробелов, хотя.... Хотя мне кажется что проблема не в пробелах. Ведь АКАД в этом месте ждет от пользователя ввода строки, а потому должен допускать ввод пробела.

Цитата:
Сообщение от Piton
а если в макросе указываешь тоже самое то он спотыкается на указание пути принтера .
Как спотыкается? Что выводится в окно командной строки?
vk вне форума  
 
Непрочитано 14.06.2005, 10:02
#12
Fogel

люблю мастерить
 
Регистрация: 21.01.2005
Челябинск
Сообщений: 10,332


Цитата:
Сообщение от Piton
Во вторых за место макроса уже получается программа на LISPE, а это уже програмирование, а я все же пользователь а не програмист, поэтому и обратился за помощью на форум.
Помнится Виноградов когда к нам приезжал говаривал что Autjdesc признает человека за пользователя автокада лишь после того как он напишет собственный лиспик
Посмотри мой лисп (кстать его основа принадлежит Apelsinov'у насколько помню) там есть сетевые имена плотеров и принтеров.
Что касаемо переменной, то можно и дописать, но нужны более подробные условия (какие принтера/плоттеры)
Fogel вне форума  
 
Автор темы   Непрочитано 14.06.2005, 10:27
#13
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


Условия такие имеются плотер и принтер. Available plot devices. "\\ANDREU\HP DesignJet 500 24 by HP" - плотер
"\\ENGIN5\HP LaserJet 5100 PCL 6" - принтер
для плотера -стиль печати 2000.ctb .для принтера стиль печати 5100.ctb. Печатаю из модели 1:1. Расположение по центру.
На плотер "\\ANDREU\HP DesignJet 500 24 by HP" вывожу A2,A1.
На принтер "\\ENGIN5\HP LaserJet 5100 PCL 6" вывожу А4,А3
Piton вне форума  
 
Непрочитано 14.06.2005, 10:34
#14
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Piton
2 Vova Спасибо за помощь
Во первых Проблему с указанием пути принтера в макросе так и не решена. Когда вводишь в коммандную строку постепенно это одно, а если в макросе указываешь тоже самое то он спотыкается на указание пути принтера .
Во вторых за место макроса уже получается программа на LISPE, а это уже програмирование, а я все же пользователь а не програмист, поэтому и обратился за помощью на форум.
В тетьих если не можешь помочь, зачем писать? Ведь люди заходят на этот сайт чтоб им помогли, или самим помочь.
Ну, во-первых: а рецепты Vovы апробированы? В смысле - ввести имя в кавычках и с двойными косыми? Или обратной косой?

Добавлено:
по-моему, при сетевых путях надо использовать не "\\" в качестве разделителя пути и замены "\", а "/" для замены "\" и "//" - для замены "\\"

Во-вторых. Можно и publish проверить на прочность - тоже весьма неплохо пашет. И никаких DIESEL / LISP выражений.
Все определяется задачей и подготовкой к ее решению. При проработанной предварительной подготовке файлов publish'a хватит за глаза и за уши. lisp-программирование выше моего понимания (надеюсь, пока )
В-третьих. Наезд?
Piton, http://dwg.ru/book/AutoCAD_1, "Язык макрокоманд" или http://www.ozon.ru/context/detail/id/1567575/ - по вкусу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 14.06.2005, 11:13
#15
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


Косые черты на обратные менял см самое первое мое сообщение, кавычки пробовал .Результат <<0>>. Но это уже не надо, так как хочется поправленный(заточенный) лисп под вышесказанные условия(P.S. В Лиспе указать принтеры получается .) По По поводу предварительной подготовке так файлов штук 200-300+ сделаны не мной. .Книжку Владимира Свет кстати работал одно время в той же организации что и он приобрел уже давно. Некого не хотел и не хочу обижать.
С уважением ко всем участникам форума.
Piton вне форума  
 
Непрочитано 14.06.2005, 12:11
#16
Кулик Алексей aka kpblc
Moderator

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


> Piton : я имею в виду, что надо бы попробовать одновременно кавычки и обратные косые.
Если не срабатывает, то в качестве имени принтера можно попробовать передавать такое выражение:
Код:
[Выделить все]
strcat("//ANDREU/HP DesignJet 500 by HP")
т.е. получится
Код:
[Выделить все]
^C^C_-Plot;_yes;model;strcat("//ANDREU/HP DesignJet 500 by HP");A4;Millimeters;Album;
Ну и так далее.
---
P.S. Сорри если обидел. Не хотел.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.06.2005, 13:05
#17
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


>Apelsinov
Большое спасибо за ЛИСП. А то девочка сидит и печатает, у МЕНЯ проблем нет, (ОНА же чертит) и у меня мозгов на неё (девочку) не хватило. Единственно пришлось подстраиваться под русский Автокад 2002. А тут что-то опции команды _Plot кажется по разному реагируют на ОС (ХР и 98 ). Ищу компромис. Если присобачу, прислать подправленный текст?
Alan вне форума  
 
Непрочитано 15.06.2005, 07:34
#18
Fogel

люблю мастерить
 
Регистрация: 21.01.2005
Челябинск
Сообщений: 10,332


Цитата:
Сообщение от Piton
Условия такие имеются плотер и принтер. Available plot devices. "\\ANDREU\HP DesignJet 500 24 by HP" - плотер
Я не помню 24 это вроде А1? или всеж А0? А еще какие форматы ему задаются? "Пользовательский" или ISO? Автообрезка есть?
Код:
[Выделить все]
(defun C:printed () 
   (setq cmd (getvar "cmdecho") 
   str (getvar "ctab") 
   xy1 (getpoint "\n Первый угол рамки:") 
   xy2 (getcorner xy1 "\n Второй угол рамки:") 
   x1 (nth 0 xy1) 
   y1 (nth 1 xy1) 
   x2 (nth 0 xy2) 
   y2 (nth 1 xy2) 
   xy1 (list (min x1 x2) (min y1 y2)) 
   xy2 (list (max x1 x2) (max y1 y2)) 
   x1 (nth 0 xy1) 
   y1 (nth 1 xy1) 
   x2 (nth 0 xy2) 
   y2 (nth 1 xy2) 
) 
;блок печати формата А4 
   (if    (<= (distance xy1 xy2) 365) 
      (progn 
         (setq    format "A4" 
            printer "\\\\ENGIN5\\HP LaserJet 5100 PCL 6" 
            scal "_fit"
	    style "5100.ctb" 
            xy1 (list (+ (nth 0 xy1) 5) (+ (nth 1 xy1) 5)) 
            xy2 (list (- (nth 0 xy2) 5) (- (nth 1 xy2) 5)) 
         ) 
         (if    (> (angle xy1 xy2) (* pi 0.25)) 
            (setq a "portrait") 
            (setq a "landscape") 
         ) 

      ) 
   ) 
;Конец блока печати формата А4 
;блок печати формата А3 
   (if    (AND (> (distance xy1 xy2) 365) (<= (distance xy1 xy2) 520)) 
      (progn 
         (setq    format "A3" 
            printer "\\\\ENGIN5\\HP LaserJet 5100 PCL 6" 
            scal "_fit"
	    style "5100.ctb" 
            xy1 (list (+ (nth 0 xy1) 5) (+ (nth 1 xy1) 5)) 
            xy2 (list (- (nth 0 xy2) 5) (- (nth 1 xy2) 5)) 
         ) 
         (if    (> (angle xy1 xy2) (* pi 0.25)) 
            (setq a "portrait") 
            (setq a "landscape") 
         ) 
      ) 
   ) 
;Конец блока печати формата А3 
;блок печати формата свыше А3 
   (if    (and (> (distance xy1 xy2) 520) (< (min (- x2 x1) (- y2 y1)) 850)) 
      (progn 
         (setq    format "Пользовательский" 
            printer "\\\\ANDREU\\HP DesignJet 500 24 by HP" 
            scal 1
	    style "2000.ctb" 
            ) 
         (if    (> (angle xy1 xy2) (* pi 0.25)) 
            (if (< (- y2 y1) 850) (setq a "landscape") (setq a "portrait")) 
            (if (> (- x2 x1) 850) (setq a "landscape") (setq a "portrait")) 
            ) 

      ) 
   ) 
(if (and (= a "landscape") (> (- y2 y1) 830) (< (- y2 y1) 850)) (setq scal "_fit")) 
(if (and (= a "portrait") (> (- x2 x1) 830) (< (- x2 x1) 850)) (setq scal "_fit")) 
;Конец блока печати формата свыше А3 
(IF    (> (min (- x2 x1) (- y2 y1)) 850) 
   (alert "Опс! Нету у нас такой техники чтоб такие простыни напечатать... Может с масшатабом намудрили?") 
)    
(setvar "cmdecho" 1) 
(if (eq (getvar "tilemode") 0) 
   (command "_-plot" ;Сама команда    
   "_Y"   ;нужны настройки 
   str   ;лист или модель 
   printer 
   format 
   "" 
   a 
   "_NO" 
   "_window" 
   xy1 
   xy2 
   scal 
   "0,0" 
   "_yes" 
   style 
   "_yes"      ;Чертить с весом линий 
   "_NO" 
   "_NO" 
   "_NO" 
   "_NO" 
   "_NO" 
   "_yes" ;отправить на печать 
   ) 
   (command "_-plot" ;Сама команда    
   "_Y"      ;нужны настройки 
   str      ;лист или модель 
   printer      ;имя принтера 
   format      ;формат бумаги 
   ""      ;единицы измерения (согласны на миллиметры) 
   a      ;ориентация листа портрет/альбом 
   "_NO"      ;печатать "вверх дном" 
   "_window"   ;выбор окном 
   xy1      ;первая точка окна 
   xy2      ;вторая точка окна 
   scal      ;масштаб 
   "0,0"      ;смещение листа 
   "_yes" 
   style;стиль печати 
   "_yes" 
   "_NO" 
   "_NO" 
   "_NO" 
   "_yes" ;отправить на печать 
   ) 
) 
(setvar "cmdecho" cmd) 
)
В общем под принтер должно работать, под плотер нужно уточнять... Одно время вобще бродила мысля сделать кнопочку "распечатать все". Фоматы создаются в программно, посему опознать блоки штампов и рамки не проблема. Все уперлось в пользователей - им как всегда приходит в голову взорвать штамп или вобще нарисовать "от руки". В общем полезная идея заглохла
Fogel вне форума  
 
Автор темы   Непрочитано 15.06.2005, 10:11
#19
Piton

Инженер строитель
 
Регистрация: 24.02.2005
Москва
Сообщений: 396


СПАИБО. но программа споткнулась

Command: PRINTED

Ïåðâûé óãîë ðàìêè:
Âòîðîé óãîë ðàìêè:_-plot Detailed plot configuration? [Yes/No] <No>: _Y
Enter a layout name or [?] <Model>: Model Enter an output device name or [?]
<\\ENGIN5\HP LaserJet 5100 PCL 6>: \\ENGIN5\HP LaserJet 5100 PCL 6 Enter paper
size or [?] <A3>: A3 Enter paper units [Inches/Millimeters] <Millimeters>:
Enter drawing orientation [Portrait/Landscape] <Landscape>: landscape Plot
upside down? [Yes/No] <No>: _NO Enter plot area
[Display/Extents/Limits/View/Window] <Window>: _window Enter lower left corner
of window <3660.287777,-4744.857180>: Enter upper right corner of window
<4501.287777,-4150.857180>: Enter plot scale (Plotted Millimeters=Drawing
Units) or [Fit] <1:1>: _fit Enter plot offset (x,y) or [center] <Center>: 0,0
Plot with plot styles? [Yes/No] <Yes>: _yes Enter plot style table name or [?]
(enter . for none) <HP 5100.ctb>: HP5100.ctb
Command: _yes Unknown command "YES". Press F1 for help.

Command: _NO Unknown command "NO". Press F1 for help.

Command: _NO Unknown command "NO". Press F1 for help.

Command: _NO Unknown command "NO". Press F1 for help.

Command: _yes Unknown command "YES". Press F1 for help.
Piton вне форума  
 
Непрочитано 15.06.2005, 11:22
#20
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


>Alan
Извиняюсь, это моя вина, что не учел возможность работы на русском.
Исправил, вроде должно работать и на русском. еще раз скопируйте предыдущий мой пост - должно работать.

Рад что кому-то еще пригодилось.

>All
Вообще не понимаю что вы сдесь обсуждаете. Попробуйте конкретизировать задачу.

У меня есть наброски (работающие) лиспа, который по указанному масштабу и рамке в модели формирует лист с соотв. ВЭ. Причем формат листа подбирается автоматически из списка возможных. Список в отдельном файле, формируется автоматически по запросу, можно редактировать. (ежели кому интересно - размещу)
Это к вопросу автоматизации печати.
Apelsinov вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Печать МАКРОС