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

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

Как из VBA получить доступ к "Прозрачности при печати" параметра листа.

Ответ
Поиск в этой теме
Непрочитано 26.05.2015, 15:06 #1
Как из VBA получить доступ к "Прозрачности при печати" параметра листа.
doctorraz
 
электрик
 
Волгоград
Регистрация: 19.02.2010
Сообщений: 2,299

Пытаюсь сделать пакетную печать средствами VBA из модели и возник вопрос:
Как из VBA получить доступ к "Прозрачности при печати" параметра листа?
т.е. при копировании параметров листа если установлена прозрачность, то в новом наборе она естественно стоит, а вот как программно установить-отменить прозрачность параметрам листа или настроек принтера?
можно конечно перед началом публикации:
Код:
[Выделить все]
ThisDrawing.SetVariable "PLOTTRANSPARENCYOVERRIDE", 2
по окончании опять вернуть в 1, но если форматов много и часть из них с прозрачностью, а печатать надо с и без прозрачности.
Может есть доступ к этому свойству из VBA поэлегантнее?
__________________
Мастерская СПДС
Просмотров: 5168
 
Непрочитано 26.05.2015, 18:18
#2
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,435
Отправить сообщение для maratovich с помощью Skype™


1. Собственно зачем это ?
2. В соседней теме есть макрос для печати, посмотрите его, возможно там что то есть.
3. И как Вы определите какую рамку прозрачную, а какую нет ?
4. Я собственно не очень понял что Вы хотите, но возможно Вам нужно "object.PlotHidden"
maratovich вне форума  
 
Автор темы   Непрочитано 26.05.2015, 19:18
#3
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


Offtop: ну почему на один вопрос как программно управлять галочкой прозрачности в параметрах листа и настройках печати надо ответить на другие четыре вопроса?
Хотя если это поможет найти ответ, то почему бы и нет )))

Цитата:
Сообщение от maratovich Посмотреть сообщение
1. Собственно зачем это ?
затем, что мне нужна адекватная печать из модели на разные плоттеры, в зависимости от моих настроек, плюс мне необходим вывод форматов чертежа в многостраничный PDF, DWF стандартными средствами AutoCAD
Цитата:
Сообщение от maratovich Посмотреть сообщение
2. В соседней теме есть макрос для печати, посмотрите его, возможно там что то есть.
там есть много чего интересного, но задачу вывода на печать на разные плоттеры с разными настройками решает (частично ) только программа от bargool
Цитата:
Сообщение от maratovich Посмотреть сообщение
3. И как Вы определите какую рамку прозрачную, а какую нет ?
можно выбором, можно по слою и т.д.
Цитата:
Сообщение от maratovich Посмотреть сообщение
4. Я собственно не очень понял что Вы хотите, но возможно Вам нужно "object.PlotHidden"
мягко говоря это не совсем то, мне нужно при печати получить для некоторых параметров листа прозрачность->TRANSPARENCY, а PlotHidden->"скрыть для печати" (вольный перевод)
=========================
Перефразирую вопрос возможно ли программно (VBA) управлять "галочкой"-свойством прозрачного вывода на печать (при PLOTTRANSPARENCYOVERRIDE=1) в параметрах листа и настройках печати?
Если возможно то как?
Есть куча способов это обойти, но некрасиво как-то (колхозно получается)
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 26.05.2015, 19:30
1 | #4
maratovich


 
Регистрация: 12.07.2009
г. Самара
Сообщений: 2,435
Отправить сообщение для maratovich с помощью Skype™


Цитата:
Сообщение от doctorraz Посмотреть сообщение
но задачу вывода на печать на разные плоттеры с разными настройками решает
1. Решает полностью РЕВЕРС.
2. Надо было сразу принтскрин приложить. (ну не понятливые мы).
3. Ответ на Ваш вопрос находится здесь :
http://forums.autodesk.com/t5/progra...i/td-p/3473472
maratovich вне форума  
 
Автор темы   Непрочитано 26.05.2015, 19:36
#5
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от maratovich Посмотреть сообщение
1. Решает полностью РЕВЕРС.
стоит аж 150 рублей, но не в этом проблема, никто мне его на работе ставить не позволит (((
Цитата:
Сообщение от maratovich Посмотреть сообщение
2. Надо было сразу принтскрин приложить. (ну не понятливые мы).
виноват, в следующий раз будут картинки
Цитата:
Сообщение от maratovich Посмотреть сообщение
3. Ответ на Ваш вопрос находится здесь :
http://forums.autodesk.com/t5/progra...i/td-p/3473472[/quote]
спасибо! все понятно ответ НЕВОЗМОЖНО программно менять прозрачность, но варианты в обход:
можно решить через PLOTTRANSPARENCYOVERRIDE
или через копирование параметров листа (с включенной прозрачностью) хотя то же колхоз ((
и даже лисп не поможет, умирающему вебеа (((
====================
Достаточно бегло просмотрел Реверс:,
1. сходу не увидел возможности создавать DWG to PDF многостраничный (может плохо смотрел)
2. про DWF и DWFx он то же ничего не знает.
3. Форматы СПДС распознает, но автоматически масштаб печати в зависимости от масштаба формата не меняет (возможно не нашел галочку где поставить) PS fit to page не то же самое.
4. Про прозрачность реверс то же не в курсе ((
Offtop: Комбайн мощный, но хочу попроще и более узкоспециализированное. Буду пилить гирю дальше
__________________
Мастерская СПДС

Последний раз редактировалось doctorraz, 26.05.2015 в 23:12.
doctorraz вне форума  
 
Непрочитано 27.05.2015, 08:29
1 | #6
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,616


как на счет vba не знаю, но из .NET API есть доступ к свойству acPlSet.PlotTransparency
Если все равно гирю пилить, так может еще не поздно перейти на эту платформу?
тут подробнее: ссылка
Boxa вне форума  
 
Непрочитано 01.06.2015, 14:58
#7
skkkk


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


Цитата:
Сообщение от doctorraz Посмотреть сообщение
все понятно ответ НЕВОЗМОЖНО программно менять прозрачность, но варианты в обход:
можно решить через PLOTTRANSPARENCYOVERRIDE
или через копирование параметров листа (с включенной прозрачностью) хотя то же колхоз ((
и даже лисп не поможет, умирающему вебеа (((
Почему, невозможно? В последнем посте той темы предложено описание решения при помощи лиспа. Не проверял.
skkkk на форуме  
 
Автор темы   Непрочитано 01.06.2015, 15:57
#8
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от doctorraz Посмотреть сообщение
стоит аж 150 рублей, но не в этом проблема, никто мне его на работе ставить не позволит (((
или через копирование параметров листа (с включенной прозрачностью) хотя то же колхоз ((
[/offtop]
через копирование параметров листа с последующим SetWindowToPlot такая фигня получается (((
но во общем задачу решил. PLOTTRANSPARENCYOVERRIDE=2 и производительность ведь не главное, в 1 ставить конечно получше, но параметру листа прозрачность из VBA не поставить ((, поэтому в 2, потом возвращаем как было.
Всем спасибо
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 01.06.2015, 22:35
1 | #9
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от doctorraz Посмотреть сообщение
но параметру листа прозрачность из VBA не поставить ((, поэтому в 2, потом возвращаем как было.
Там вроде сказано, что можно прозрачность поставить листу через расширенные данные: http://forums.autodesk.com/t5/visual...x/td-p/3615656
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 02.06.2015, 13:26
#10
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


ох уж эта русификация автокада ))
Набор параметров листа (Page Setup)- PlotConfiguration
в VBA у него нет свойства прозрачность, возможно в Lisp есть аналог и там есть это свойство
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 02.06.2015, 17:37
#11
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от doctorraz Посмотреть сообщение
в VBA у него нет свойства прозрачность, возможно в Lisp есть аналог и там есть это свойство
Какое свойство? Расширенные данные!
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 03.06.2015, 16:06
#12
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,299
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Какое свойство? Расширенные данные!
в чертеже сделал два PlotConfiguration один с прозрачностью другой нет
Код:
[Выделить все]
Sub Example()
 
    Dim xtypeOut, xdataOut
    ThisDrawing.ActiveLayout.RefreshPlotDeviceInfo

   Set PCs = ThisDrawing.PlotConfigurations 'два PlotConfiguration один с прозрачностью другой нет

    Set p0 = PCs.Item(0) 'этот прозрачный
    Set p1 = PCs.Item(1) 'этот нет


p0.GetXData "", xtypeOut, xdataOut 
p1.SetXData xtypeOut, xdataOut
ThisDrawing.ActiveLayout.RefreshPlotDeviceInfo

p1.GetXData "", xtypeOut, xdataOut 'вижу, что xdataOut(0)="PLOTTRANSPARENCY" свойства пришли, но в настройках параметров листа ничего не изменилось и на печать естественно идет без прозрачности

End Sub
не получается, что-то я не то похоже делаю
__________________
Мастерская СПДС
doctorraz вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как из VBA получить доступ к "Прозрачности при печати" параметра листа.

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить доступ к таблице Access Cleper Программирование 22 02.02.2016 07:05
Как получить доступ к вложенным блокам из VBA? vicont-s Программирование 3 25.04.2009 23:29
Получить доступ к разделу палитры СВОЙСТВА->Геометрия через ком-строку ki AutoCAD 4 17.03.2009 23:56