Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: R.I.Chernov от 30-08-2016, 14:05:16

Название: Как задать формат листа?
Отправлено: R.I.Chernov от 30-08-2016, 14:05:16
Доброго времени суток, уважаемые форумчане! Помогите пожалуйста с вопросом, указанным в теме. Создаю лист чертежа, не могу разобраться, как изменить его формат.
Название: Re: Как задать формат листа?
Отправлено: Александр Ривилис от 30-08-2016, 14:24:07
Речь не об этом: http://adndevblog.typepad.com/manufacturing/2012/06/change-the-width-and-height-of-a-sheet-by-inventor-api.html ?
Название: Re: Как задать формат листа?
Отправлено: R.I.Chernov от 30-08-2016, 14:28:55
Спасибо, Александр! Да, в этом примере меняют размеры листа. Но я думал, что можно использовать стандартные форматы.
Название: Re: Как задать формат листа?
Отправлено: Александр Ривилис от 30-08-2016, 14:36:11
Можно. Когда-то Владимир Ананьев написал такой код:
Код - Visual Basic [Выбрать]
  1. Private Sub ChangeSheetSize()
  2.  
  3.   Dim oDoc As DrawingDocument
  4.   Set oDoc = ThisApplication.ActiveDocument
  5.  
  6.   Dim oSheet As Sheet
  7.   Set oSheet = oDoc.ActiveSheet
  8.  
  9.   'get current size
  10.  Dim Size As DrawingSheetSizeEnum
  11.   Size = oSheet.Size
  12.  
  13.   'set new size
  14.  oSheet.Size = DrawingSheetSizeEnum.kA0DrawingSheetSize
  15.  
  16.   'update sheet to see results
  17.  oSheet.Update
  18.  
  19. End Sub 'ChangeSheetSize
Название: Re: Как задать формат листа?
Отправлено: R.I.Chernov от 30-08-2016, 14:47:43
Можно. Когда-то Владимир Ананьев написал такой код:
Еще раз спасибо. Но я не могу понять, зачем нужна строка под заголовком " 'get current size", код же работает и без него:
Код - Visual Basic [Выбрать]
  1. Private Sub My_ChangeSheetSize()
  2.     Dim oDoc As DrawingDocument
  3.     Set oDoc = ThisApplication.ActiveDocument
  4.     Dim oSheet As Sheet
  5.     Set oSheet = oDoc.ActiveSheet
  6.  
  7.     oSheet.Size = DrawingSheetSizeEnum.kA4DrawingSheetSize
  8.     oSheet.Update
  9. End Sub

Для чего требуется получить текущий размер листа?
Название: Re: Как задать формат листа?
Отправлено: Александр Ривилис от 30-08-2016, 14:53:37
Для чего требуется получить текущий размер листа?
В данном случае совершенно незачем. Наверное предполагалось вывести сообщение о текущем формате листа. Вот откуда "растут рога": http://forums.autodesk.com/t5/inventor-customization/vba-change-sheet-size/td-p/3637570
Название: Re: Как задать формат листа?
Отправлено: R.I.Chernov от 30-08-2016, 15:10:19
Вот откуда "растут рога":
Понятно, спасибо за пояснение. Как я понял свойство DrawingSheetSizeEnum выдается в определенной кодировке? Где-то можно ее посмотреть?
Название: Re: Как задать формат листа?
Отправлено: Александр Ривилис от 30-08-2016, 15:16:05
Как я понял свойство DrawingSheetSizeEnum выдается в определенной кодировке?
Как я понимаю - это перечисление (enum). Смотри в справке или в Object Browser. Точнее сказать не могу, т.к. с Inventor'ом не работаю.
Название: Re: Как задать формат листа?
Отправлено: R.I.Chernov от 30-08-2016, 15:23:00
Точнее сказать не могу, т.к. с Inventor'ом не работаю.
Ок, понял. Спасибо за помощь!
Название: Re: Как задать формат листа?
Отправлено: Александр Ривилис от 30-08-2016, 15:27:10
Вот что об этом говорит источник знаний - Справка! Она есть внутри Inventor - в данном случае 2017 версии!

(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F45537%2F7842324.7%2F0_1345e9_f545a0ab_orig.png&hash=cf86341fde4330e95157f4d3ffac602f)

Название: Re: Как задать формат листа?
Отправлено: R.I.Chernov от 30-08-2016, 15:42:45
Вот что об этом говорит источник знаний - Справка!
Нормальный такой булыжничек в мой огород! :) Заслужил! Не знаю почему, но не жмякнул F1 на этом свойстве, что я обычно делаю, если что. Спасибо.