Перейти к публикации

Как указать SolidWorks'у принтер и бумагу?


Рекомендованные сообщения

Писал это на парочке других форумов, никто не ответил внятно.

Посоветовали сюда заглянуть:

Скажите кто знает, как указать Солиду на какой принтер выводить, и какой формат бумаги выбрать.

Я настраиваю в классе PageSetup все, но пока не пойму где указать принтер. Мне в зависимости от формата нужно пускать автоматом либо на принтер А3 либо на А0.

Есть свойство PrinterPaperSource, но я не понял для чего оно.

P.S. есл итема така уже был заранее извиняюсь но поиском не проходил. Посему будьте добпы если есть аналогичный вопрос с ответами указать на него ссылку

Ссылка на сообщение
Поделиться на других сайтах


Как указать SolidWorks'у принтер и бумагу?

...

Посему будьте добпы если есть аналогичный вопрос с ответами указать на него ссылку

Имена принтеров заданы фиксировано, при не совпадении печать не происходит:

http://fsapr2000.ru/index.php?s=&show...ost&p=87316

http://fsapr2000.ru/index.php?s=&show...st&p=227563

Список принтеров берётся из системы через WinAPI:

http://fsapr2000.ru/index.php?s=&show...st&p=227611

Ссылка на сообщение
Поделиться на других сайтах

Писал это на парочке других форумов, никто не ответил внятно.

Посоветовали сюда заглянуть:

Скажите кто знает, как указать Солиду на какой принтер выводить, и какой формат бумаги выбрать.

Я настраиваю в классе PageSetup все, но пока не пойму где указать принтер. Мне в зависимости от формата нужно пускать автоматом либо на принтер А3 либо на А0.

Есть свойство PrinterPaperSource, но я не понял для чего оно.

P.S. есл итема така уже был заранее извиняюсь но поиском не проходил. Посему будьте добпы если есть аналогичный вопрос с ответами указать на него ссылку

Речь идет об API или "ручной" печати ?

Если об API, то есть пример, где определяется и ориентация и формат бумаги и можно указать на какой принтер выводить...

См. также в справке по API :

"

ModelDoc2::Printer

See Also

Example

Availability

Description

This property gets or sets the default printer for this document.

...

"

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

Есть еще одна функция: status = ModelDocExtension->IPrintOut2 ( ArraySize, PageArray, Copies, Collate, Printer, PrintFileName)

Угу, уже нашел по примерам выше.

Теперь другая проблема : не могу выставить размеры бумаги

Вот моя тема про проблему выбора формата бумаги на принтере:

http://fsapr2000.ru/index.php?showtopic=28967&hl=Stilet

и проблема с выставлением толшин линий перед печатью

http://fsapr2000.ru/index.php?showtopic=28980&hl=Stilet

К этому добавлю что сейчас мучаю вот такой код:

Dim swApp As Object

Sub main()

Dim ModelDoc2 As SldWorks.ModelDoc2

Dim ps As SldWorks.PageSetup

Dim DrawDoc As SldWorks.DrawingDoc

Dim swSheet As SldWorks.Sheet

Dim wd, ht As Double

Dim tipdoc As Integer

Set swApp = Application.SldWorks

Set ModelDoc2 = swApp.ActiveDoc

Set DrawDoc = swApp.ActiveDoc

Set ps = ModelDoc2.PageSetup

Dim v As Double

Dim vSheetProps As Variant

Set swSheet = ModelDoc2.GetCurrentSheet

vSheetProps = swSheet.GetProperties

wd = vSheetProps(5)

ht = vSheetProps(6)

tipdoc = vSheetProps(0)

'Debug.Assert 0

'Debug.Print ps.PrinterPaperSize

ModelDoc2.SetUserPreferenceDoubleValue swPageSetupPrinterThickLineWeight, 0.6

ModelDoc2.SetUserPreferenceDoubleValue swPageSetupPrinterThinLineWeight, 0.3

'swApp.SetUserPreferenceDoubleValue swPageSetupPrinterThickLineWeight, 0.0006

'swApp.SetUserPreferenceDoubleValue swPageSetupPrinterThinLineWeight, 0.0003

v = ModelDoc2.GetUserPreferenceDoubleValue(swPageSetupPrinterThickLineWeight)

Debug.Print "Thick = " & v

v = ModelDoc2.GetUserPreferenceDoubleValue(swPageSetupPrinterThinLineWeight)

Debug.Print "Thin = " & v

Dim sh(1) As Long

sh(0) = 1

ps.ScaleToFit = True

If tipdoc = 7 Then

ps.Orientation = swPageSetupOrient_Portrait

Else

ps.Orientation = swPageSetupOrient_Landscape

End If

'ps.Scale2 = 70

'ps.PrinterPaperSize = 256

ps.PrinterPaperLength = wd * 100

ps.PrinterPaperWidth = ht * 100

ModelDoc2.Extension.PrintOut2 sh, 1, False, "pdfFactory Pro", ""

'ModelDoc2.Extension.PrintOut2 sh, 1, False, "Canon MF3200 Series", ""

End Sub

Но линии не выставляются, и формат бумаги на принтере не меняется.

Что я делаю не так?

Если можно примерчиками покажите мою ошибку.

Ссылка на сообщение
Поделиться на других сайтах

ModelDoc2.SetUserPreferenceDoubleValue swPageSetupPrinterThickLineWeight, 0.6

ModelDoc2.SetUserPreferenceDoubleValue swPageSetupPrinterThinLineWeight, 0.3

должно быть:

swApp.SetUserPreferenceDoubleValue swPageSetupPrinterThickLineWeight, 0.0006

swApp.SetUserPreferenceDoubleValue swPageSetupPrinterThinLineWeight, 0.0003

'ps.PrinterPaperSize = 256

ps.PrinterPaperLength = wd * 100

ps.PrinterPaperWidth = ht * 100

должно быть:

ps.PrinterPaperSize = 256

ps.PrinterPaperLength = wd * 100

ps.PrinterPaperWidth = ht * 100

а также принтер должен поддерживать формат с произвольным размером.
Ссылка на сообщение
Поделиться на других сайтах

Kelny, не работает, все равно не меняется ширины линий

Насчет поддержки формата с произвольным размером, могу сказать что в свойствах есть user-defined и там я могу ручками задать ширину и длину бумаги. Но код:

ps.PrinterPaperSize = 256

ps.PrinterPaperLength = wd * 100

ps.PrinterPaperWidth = ht * 100

Не прокатывает... Все равно распечатывается на формате по умолчанию. хотя wd и ht берутся правильно из свойст листа.

Может это от версии Солида зависит? у меня 2009-я.

Может кто-нить знает как менеджер печать Солида работает?

Изменено пользователем Stilet
Ссылка на сообщение
Поделиться на других сайтах

Kelny, не работает, все равно не меняется ширины линий

SW2007 меняет, только:
Sub main()



Dim swApp As Object

Set swApp = Application.SldWorks



swApp.SetUserPreferenceDoubleValue swPageSetupPrinterThinLineWeight, 0.0001 'Тонкая

swApp.SetUserPreferenceDoubleValue swPageSetupPrinterNormalLineWeight, 0.0005 'Нормальная

swApp.SetUserPreferenceDoubleValue swPageSetupPrinterThickLineWeight, 0.0006 'Первая утолщенная



End Sub

Не прокатывает... Все равно распечатывается на формате по умолчанию. хотя wd и ht берутся правильно из свойст листа.

Может это от версии Солида зависит? у меня 2009-я.

Без применения API-интерфейса такой формат распечатывается? Например, из MS Word или из самого Solidworks.
Ссылка на сообщение
Поделиться на других сайтах

SW2007 меняет, только:

Опа!! Все вьехал я в свою ошибку.

Нужно было swPageSetupPrinterNormalLineWeight . Так с линиями разобрался

Без применения API-интерфейса такой формат распечатывается?

Да. Я нажимаю CTRL+P Кликаю по "Параметры страницы" и выбираю в свитке "Бумага" формат.

Могу выбрать User-Defined и установить самому размеры, а могу выбрать из нестандартных, но ранее в самом драйвере настроенных и добавленных в список.

Чесно говоря меня будет устраивать такой вариант: Есть список форматов настроенный мною, в котором есть скажем A2x3.

Мне достаточно было бы не задавать числами. а просто в каком-то свойстве указать этот формат и принтер.

Но PrinterPaperSize не принимает строку...

Я сейчас попробую выставить этот формат через debug.print посмотреть его число и пока что жестко прописать его в проге. но это же не лучший выход...

Мож есть другие идеи?

Ссылка на сообщение
Поделиться на других сайтах

Я сейчас попробую выставить этот формат через debug.print посмотреть его число и пока что жестко прописать его в проге. но это же не лучший выход...

Мож есть другие идеи?

Возможно так: <noindex>http://www.vbnet.ru/forum/show.aspx?id=23617</noindex>
Ссылка на сообщение
Поделиться на других сайтах
  • 9 лет спустя...

Беда!!! Вывожу на печать спецификацию, мне пустой лист распечатывается. Сохраняю в PDF, сохраняется пустой лист вместо спецификации. Что делать?

Ссылка на сообщение
Поделиться на других сайтах

@Tomat укажите, какую спецификацию печатаете.

Лучше со скриншотами.

Спецификаций к солиду, только обсуждаемых на этом форуме минимум три.

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Alex1986 сказал:

@Tomat укажите, какую спецификацию печатаете.

Лучше со скриншотами.

Спецификаций к солиду, только обсуждаемых на этом форуме минимум три.

 

1.jpg

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...