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

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

Как распечатать несколько файлов за один раз.

Ответ
Поиск в этой теме
Непрочитано 05.05.2004, 11:41 #1
Как распечатать несколько файлов за один раз.
Lenich
 
Опер дир
 
Москва
Регистрация: 28.04.2004
Сообщений: 291

Уважаемые,
Кто-нибудь знает как можно распечатать несколько открытых файлов (например все открытые) за одно нажатие клавиши, а не перебирать каждый файл и нажимать кнопку Печать. Установки печати (и т.д.) для всех файлов одинаковые.
Заранее Спасибо.
Просмотров: 18919
 
Непрочитано 05.05.2004, 12:03
#2
URKA

инженер-конструктор
 
Регистрация: 21.08.2003
Гомель, ELMIS
Сообщений: 264
<phrase 1=


Для этого существует Batch Plot Utility
Пуск/Программы/Autokad 200+ /Batch Plot Utility
__________________
С уважением, URKA
URKA вне форума  
 
Автор темы   Непрочитано 05.05.2004, 17:51
#3
Lenich

Опер дир
 
Регистрация: 28.04.2004
Москва
Сообщений: 291


Благодарю за совет. Честное слово, никогда не задумывался что это за утилита .
Попробовал. Удобно распчатывать приходящие чертежи. А если свои то приходится сначала сохранить все чертежи, затем её запустить, затем проверить настройки и только потом распечатать.
А чтоб прямо из Акада? Чтоб он сам переключал эти загруженные файлы во время печати.
Lenich вне форума  
 
Непрочитано 05.05.2004, 19:32
#4
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


>>Lenich
Можно настроить так что будет распечатывать по какому-то одному чертежу, так что
все настроить в нем родимом и поехали..... Внимательно покрути настройки BATCHPLOT
а в 2005 немного по другому но н а мой взгляд еще удобнее.
Startrek вне форума  
 
Автор темы   Непрочитано 05.05.2004, 22:27
#5
Lenich

Опер дир
 
Регистрация: 28.04.2004
Москва
Сообщений: 291


>>Startrek
С утилитой я разберусь и привыкну к ней.
Но вопрос, который меня волнует так и остался без ответа.
Может с помощью лиспа или еще как в самом Акаде можно перебрать одну и туже команду для всех открытых файлов? :?:
Lenich вне форума  
 
Непрочитано 06.05.2004, 12:18
#6
Эдуард

строительство
 
Регистрация: 16.01.2004
Петербург
Сообщений: 165
<phrase 1=


Программа создания текста во всех чертежах выбранной папки.
Думаю анологичным образом можно проэкспериментировать с командой
plot.
Код:
[Выделить все]
(defun C:auto-text()
  (vl-load-com)
  (setq ac2(vlax-create-object "autocad.application.15")
	ad (vla-get-activedocument ac2)
	)
  (setq docac2(vla-get-documents ac2))
  (setq fn(getfiled "Выберите любой файл из требуемой директории" "" "dwg" 16))
  (setq path  (vl-filename-directory fn)
	doc-dir(vl-directory-files path "*.dwg" 1)
  )
  (vla-put-visible ac2 :vlax-true)
  (vla-put-windowstate ac2 3)
  (foreach i doc-dir
    (setq docn(vla-open docac2 (strcat path "\\" i )))
    (vla-activate docn)
;;;********************************
;А здесь должна быть ваша команда    
    (vla-sendcommand docn (strcat "_text"   (chr 32)
				  "0,0,0"(chr 32)
				  "7"      (chr 32)
				  "0"      (chr 32)
				  "текст" (chr 13)
				  (chr 13)
				  )
      )
;;*************************************************
				  
    (vla-close docn :vlax-true)
    (vlax-release-object docn)
    )
  (vla-put-visible ac2 :vlax-false)
  (vla-close ad :vlax-false)
  (vlax-release-object ad)
  (vlax-release-object docac2)
  (vlax-release-object ac2)
  (princ)
  )
Эдуард вне форума  
 
Автор темы   Непрочитано 07.05.2004, 11:24 Нашел!
#7
Lenich

Опер дир
 
Регистрация: 28.04.2004
Москва
Сообщений: 291


Ура, получилось!
Вообщем после совета Эдуарда стал копаться и написал такую прогу:
Dim a As AcadDocument
For Each a In ThisDrawing.Application.Documents
a.Activate
ThisDrawing.SendCommand "-plot Y Model" & vbCr & "HP deskjet 1180c Printer" & vbCr
ThisDrawing.SendCommand "Формат А4 (210 x 297 мм) " & vbCr & "M L Y e f" & vbCr
ThisDrawing.SendCommand "c" & vbCr & "y" & vbCr & "monochrome.ctb" & vbCr & "y n n y y" & vbCr
ThisDrawing.Application.ZoomExtents
Next

И теперь она печатает все загруженные файлы на форматку А4 (ланшафт, Extent). И затем делает ЗООМ в Extents.
Грузим её при старте акада и запускаем при помощи vbarun (я ещё сделал кнопочку, чтоб не перепутать А3 и А4).
Если кому интересно, пользуйтесь на здоровье! 8)
Lenich вне форума  
 
Непрочитано 14.09.2004, 10:51
#8
plaz

Проектирование обустройства нефтяных месторождений
 
Регистрация: 28.08.2003
Самара
Сообщений: 352


А можно немного поподробнее как воспользоваться этой программой? В какой файл ее записать? Как написать макрос на вызов? и где в программе указывается с каким Plot Style Table печатать.
plaz вне форума  
 
Автор темы   Непрочитано 14.09.2004, 11:43
#9
Lenich

Опер дир
 
Регистрация: 28.04.2004
Москва
Сообщений: 291


Цитата:
А можно немного поподробнее
Почему нет?
1. Грузим VBA editor с помощью Alt+F11
2. Вставляем новый модуль: Insers->Module
3. В только что созданный модуль вставляем прогу
Код:
[Выделить все]
Sub AllPlotA4_L()
Dim a As AcadDocument
For Each a In ThisDrawing.Application.Documents
a.Activate
ThisDrawing.SendCommand "-plot Y Model" & vbCr & "HP deskjet 1180c Printer" & vbCr
ThisDrawing.SendCommand "Формат А4 (210 x 297 мм) " & vbCr & "M L Y e f" & vbCr
ThisDrawing.SendCommand "c" & vbCr & "y" & vbCr & "monochrome.ctb" & vbCr & "y n n y y" & vbCr
ThisDrawing.Application.ZoomExtents
Next
End Sub
4. Сохраняем файл с расширением *.dvb
5. В акаде делаем кнопочку с текстом: ^C^C-vbarun;AllPlotA4_L;
Вот и все.

Вместо "HP deskjet 1180c Printer" вводите свой принтер.
Вместо "monochrome.ctb" вводите свою таблицу.
Вместо "Формат А4 (210 x 297 мм) " вводите свой формат.

Жаль только слишком много "Вместо"

Чтобы проверить можно вручную запустить -plot и отработать все задаваемые вопросы.
Lenich вне форума  
 
Непрочитано 14.09.2004, 12:43
#10
Apelsinov

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


Немного не в тему, давно написал такую вещь, помогает распечатывать область на чертеже в вписанном масштабе на стандартном формате просто указывая рамкой область:
Код:
[Выделить все]
;;;маленькая прога, которая помогает автоматизировать процесс печати,
;;;ниже приведен код, сохраните его в файле *.lsp и загрузите в акад.
;;;далее создайте кнопку содержания (plotml [имя принтера] [формат листа] [таблица стиля печати])
;;;например : ^C^C(plotml "HP Color Inkjet CP1700.pc3" "A4 (210 x 297 мм) " "000.CTB"),
;;;данные по принтеру и формату можете посмотреть поэкспериментировав с коммандой -plot.
;;;(на запрос принтера или формата введите ? , акад выдаст допустимые значения)
;;;Теперь, если вы нажмете на эту кнопку акад запросит от Вас две точки рамки,
;;;то что попадет в рамку будет напечатано на выбранном Вами принтере и формате,
;;;в соответствии с указанной таблицей. Масштаб будет вписанный (!)
(defun plotml (printer format tabulka / a cmd xy1 xy2 L)
  (princ (strcat "\n Печать на "	       printer
		 "; Формат:"	format	       " Стиль:"
		 tabulka
		)
  )
  (setq	cmd (getvar "cmdecho")
	xy1 (getpoint "\n Первый угол рамки:")
	xy2 (getcorner xy1 "\n Второй угол рамки:")
	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)
    (command "-plot"			;сама команда
	     "y"			;нужны настройки
	     ""				; Лист или модель
	     printer			;Собственно принтер
	     format			;Формат листа
	     "Millimeters"		;Ед. измерения
	     a				;Ориентация листа
	     "N"			;Зеркалить лист
	     "Window"			;Область печати
	     xy1			;Первая точка окна
	     xy2			;Вторая точка окна
	     "fit"			;Масштаб
	     "center"			;Сдвиг листа
	     "yes"			;Печать со стилем
	     tabulka			;Стиль
	     "Yes"			;Учитывать заданные толщины линий
	     "No"			;масштабироватьтолщины линий
	     "No"			;Хрен че такое?
	     "No"			;Удалять скрытые линии
	     "No"			;Печатать в файл
	     "no"			;Сохранить настройки
	     "yes"			;Старт печати
	    )
    (command "-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"); это для закрытия файла после печати БЕЗ сохранения.
  (princ)
)
Apelsinov вне форума  
 
Непрочитано 15.09.2004, 08:44
#11
plaz

Проектирование обустройства нефтяных месторождений
 
Регистрация: 28.08.2003
Самара
Сообщений: 352


2Lenich: Огромное спасибо! Все работает.
Один вопрос возник: Как в VBA эмулировать нажатие Enter? Я собираюсь печатать paperspase, а они частенько имеют разные названия:
Код:
[Выделить все]
Enter a layout name or [?] <9895009PLT>: Layout1
<Layout1> not found.
В этом случае я бы согласился со значением по умолчанию.
plaz вне форума  
 
Автор темы   Непрочитано 15.09.2004, 13:11
#12
Lenich

Опер дир
 
Регистрация: 28.04.2004
Москва
Сообщений: 291


2plaz
Цитата:
Как в VBA эмулировать нажатие Enter?
Вот эта штука эмулирует нажатие Enter'а vbCr если она стоит за кавычками. А если в кавычках, то пробел.
Lenich вне форума  
 
Непрочитано 16.09.2004, 07:53
#13
plaz

Проектирование обустройства нефтяных месторождений
 
Регистрация: 28.08.2003
Самара
Сообщений: 352


2Lenich:
Ну раз пошел такой ликбез, объясни пожалуйста: я сохранил программу в файл *.dvb. Как теперь мне внести изменения в код? Насколько я понимаю dvb это уже скомпилированный файл, а где остается исходник?
plaz вне форума  
 
Автор темы   Непрочитано 16.09.2004, 10:06
#14
Lenich

Опер дир
 
Регистрация: 28.04.2004
Москва
Сообщений: 291


Цитата:
Ну раз пошел такой ликбез, объясни пожалуйста:
Спасибо конечно [sm2403] за доверие, но я и сам толком то не знаю. У меня как то на шарру все получилось.
Цитата:
я сохранил программу в файл *.dvb. Как теперь мне внести изменения в код?
Так же "Alt+F11", причем если внести изменения, то они тут же отразятся при следующем запуске макроса (т.е. дополнительно сохранятся не надо).
Цитата:
Насколько я понимаю dvb это уже скомпилированный файл, а где остается исходник?
Вот тут я Вам ничего точного не скажу. Мне думается, что если грузим dvb то грузится и исходник, мы его правим и все компилируется в обратном направлении автоматом. А чтоб сохранить исходник (*,bas) отдельно нужно сделать экспорт.
По моему так.
Lenich вне форума  
 
Непрочитано 16.09.2004, 10:32
#15
plaz

Проектирование обустройства нефтяных месторождений
 
Регистрация: 28.08.2003
Самара
Сообщений: 352


Попробовал я в МИФEditor подгрузить dvb, и то только перетаскиванием из проводника, получилась абракадабра. Все таки надо сохранять исходник как bas, и после каждого изменеия кода, заново компилировать. Ну в принципе и это не плохо. Спасибо за науку.!
plaz вне форума  
 
Автор темы   Непрочитано 16.09.2004, 11:16
#16
Lenich

Опер дир
 
Регистрация: 28.04.2004
Москва
Сообщений: 291


Цитата:
сохранять исходник как bas, и после каждого изменеия кода, заново компилировать.
Я не сохраняю bas (у меня их вообще нет), а при загрузке Microsoft Visual Basic из Када созданные мной модули видны и находятся в одном файле (4 модуля в одном dvb-файле) я их выбираю и редактирую и в ручную ничего не компилирую.

plaz, кстати, что за зверь МИФEditor ?
Lenich вне форума  
 
Непрочитано 16.09.2004, 11:34
#17
plaz

Проектирование обустройства нефтяных месторождений
 
Регистрация: 28.08.2003
Самара
Сообщений: 352


Цитата:
Сообщение от Lenich
при загрузке Microsoft Visual Basic из Када созданные мной модули видны и находятся в одном файле (4 модуля в одном dvb-файле) я их выбираю и редактирую и в ручную ничего не компилирую.
А у меня не так .При загрузке все чисто и сухо.

Цитата:
Сообщение от Lenich
кстати, что за зверь МИФEditor ?
МИФ=VBA посмотри на клаву
plaz вне форума  
 
Автор темы   Непрочитано 16.09.2004, 12:31
#18
Lenich

Опер дир
 
Регистрация: 28.04.2004
Москва
Сообщений: 291


Цитата:
МИФ=VBA посмотри на клаву
Надо же

Цитата:
При загрузке все чисто и сухо.
Странно!
Lenich вне форума  
 
Непрочитано 23.11.2004, 19:58
#19
bob


 
Сообщений: n/a


Apelsinov запустил вашу прогу вот что она мне выдала
Код:
[Выделить все]
Command: (plotml "HP DesignJet 430 (D_A11) by HP" "Custom 3: 215 x 302 mm"  
"1.CTB")
 Печать на HP DesignJet 430 (D_A11) by HP; Формат:Custom 3: 215 x 302 mm 
Стиль:1.CTB
 Первый угол рамки:
 Второй угол рамки:Unknown command "MILLIMETERS".  Press F1 for help.
Unknown command "LANDSCAPE".  Press F1 for help.
Unknown command "N".  Press F1 for help.
Unknown command "WINDOW".  Press F1 for help.
Unknown command "FIT".  Press F1 for help.
Unknown command "CENTER".  Press F1 for help.
Unknown command "YES".  Press F1 for help.
Unknown command "1.CTB".  Press F1 for help.
Unknown command "YES".  Press F1 for help.
Unknown command "NO".  Press F1 for help.
Unknown command "NO".  Press F1 for help.
Unknown command "NO".  Press F1 for help.
Unknown command "YES".  Press F1 for help.
Lenich не подскажешь как сделать чттобы VBA файл загружался при каждом открытие Акада, а то каждый раз запускать редактор не прикольно, или можно как-то изменить строку ^C^C-vbarun;AllPlotA4_L
И еще как сделать чтобы можно было выбирать рамкой область печати.
 
 
Непрочитано 23.11.2004, 20:04
#20
Apelsinov

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


>bob
проверьте название формата, возможно не точно забили,
запустите -plot , и на запрос формата жмите - ?, увидите все доступные форматы, скопируйте оттуда.
Apelsinov вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как распечатать несколько файлов за один раз.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск