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

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

Как импортировать средствами VBA настройки печати из другого чертежа?

Ответ
Поиск в этой теме
Непрочитано 15.10.2009, 14:10 #1
Как импортировать средствами VBA настройки печати из другого чертежа?
Luntik
 
Регистрация: 15.10.2009
Сообщений: 2

Поскажите пожалуйста, каким образом средствами VBA можно импортировать настройки печати чертежа из другого файла-чертежа (вручную это делается через Plot - Page setup name - Add... - Import) и применить их.

Может как-то через PlotConfigurations?

Последний раз редактировалось Luntik, 15.10.2009 в 14:43.
Просмотров: 3431
 
Непрочитано 15.10.2009, 15:34
#2
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,335


мне их оказалось проще сгенерить чем импортировать см тему http://forum.dwg.ru/showthread.php?t=24737
Sleekka вне форума  
 
Непрочитано 15.10.2009, 16:04
#3
Сергей Богатов


 
Регистрация: 21.02.2009
Сообщений: 825


Цитата:
Сообщение от Luntik Посмотреть сообщение
Поскажите пожалуйста, каким образом средствами VBA можно импортировать настройки печати чертежа из другого файла-чертежа (вручную это делается через Plot - Page setup name - Add... - Import) и применить их.

Может как-то через PlotConfigurations?
Всё верно через них. Я сделал 2 шаблонных файла (для реальных принтеров, плоттеров и для пдф-ного принтера) c настройками листов(page setups). И теперь любую настройку листа или листов(оптом) можно с большой скоростью переназначить на нужные с помощью макроса. Т.е.
сначала считываем в шаблоне
Код:
[Выделить все]
 
Dim tPLOTCONFIG As AcadPlotConfigurations
Dim Config_file_Path As String
 
Sub read_plot_configs()
Dim fPath As String
Dim cFile As AcadDocument
Dim i As Integer
fPath = "\\S000916\неслужебное по фио\Богатов С.Н\Утилиты\Шаблоны\0000_переопределение на HP.dwg"
Set cFile = Documents.Open(fPath)
Set tPLOTCONFIG = cFile.PlotConfigurations
'cFile.Close (False)
Beep
i = InStrRev(fPath, "\")
Config_file_Path = Right(fPath, Len(fPath) - i)
'Call smartPLOT
'cFile.Close (False)
End Sub
а затем заносим в нужный файл настройки листа
Код:
[Выделить все]
 
Sub smartPLOT(fPath, lName As String)
Dim cLayout As AcadLayout
Dim cFile As AcadDocument
Dim pageW As Double
Dim pageH As Double
Dim cPLOTCONFIG As AcadPlotConfigurations
Dim page_setup As String
Set cFile = Documents.Open(fPath)
'cfile.v
Set cLayout = cFile.Layouts(lName)
cLayout.GetPaperSize pageW, pageH
ThisDrawing.ActiveLayout = cLayout
'__________________________________________________________________________________________
'Формат А4
If (Round(pageW, 0) = 210 And Round(pageH, 0) = 297) Or (Round(pageH, 0) = 210 And Round(pageW, 0) = 297) Then
Set cLayout_config = tPLOTCONFIG.Item("A4")
cLayout.CopyFrom cLayout_config
cLayout.RefreshPlotDeviceInfo
End If
If (Round(pageW, 0) = 630 And Round(pageH, 0) = 297) Or (Round(pageH, 0) = 630 And Round(pageW, 0) = 297) Then
Set cLayout_config = tPLOTCONFIG.Item("A4x3")
cLayout.CopyFrom cLayout_config
End If
.....
.....
End Sub
ЗЫ
это только куски кода - красным выделено нужное
__________________
Я-проектировщик бывший проектировщик!
Сергей Богатов вне форума  
 
Автор темы   Непрочитано 15.10.2009, 16:10
#4
Luntik


 
Регистрация: 15.10.2009
Сообщений: 2


Спасибо, Sleekka, но что-то указанный Вами код мне VBA совсем не напоминает...


Спасибо, Сергей, буду пробовать.
P/S/ Я сам сейчас как раз подобрался к CopyFrom...


Вот что у меня получилось (при желании код можно унифицировать):

' Процедура импорта настроек печати из другого чертежа
' (документ, в который импортируются настройки печати должен быть открыт)

Sub Import_Plot_Configs()
Dim PlotConfigurations As AcadPlotConfigurations
Dim newPlotConfig As AcadPlotConfiguration, defPlotConfig As AcadPlotConfigurations
Dim defPath As String ' Файл-шаблон, из которого берётся конфигурация
Dim defFile, curFile As AcadDocument ' Документы автокада

Set curFile = ThisDrawing.Application.ActiveDocument
defPath = "D:\A3 default.dwg" ' Файл-шаблон, из которого берутся настройки

Set defFile = Documents.Open(defPath)
Set defPlotConfig = defFile.PlotConfigurations

Set newPlotConfig = curFile.PlotConfigurations.Add("A3", True) ' Создаем новый профиль настроек
newPlotConfig.CopyFrom defPlotConfig.Item("A3 default") ' Копируем нужные настройки из коллекции
newPlotConfig.RefreshPlotDeviceInfo ' Обновляем...

defFile.Close (False)


End Sub

Последний раз редактировалось Luntik, 16.10.2009 в 12:53. Причина: Доработка кода
Luntik вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как импортировать средствами VBA настройки печати из другого чертежа?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вес линии и стиль печати Barbi AutoCAD 22 26.04.2012 17:56
Как именно настроить параметры нового чертежа? Макс_Северянин AutoCAD 31 01.09.2010 10:16
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46
Настройки печати и др. kminas AutoCAD 10 28.08.2006 15:07