Создание Автоматических осевых линий для вида на чертеже

Автор Тема: Создание Автоматических осевых линий для вида на чертеже  (Прочитано 3008 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
В API есть инструменты для работы с AutomatedCenterline
Вот примененный код позволяет изменить активные настройки, но выполнить отображение этих линий на виде пока не получается:
Код - vb.net [Выбрать]
  1. Dim oDoc As DrawingDocument
  2. oDoc = CType(m_inventorApplication.ActiveDocument, Inventor.DrawingDocument)
  3. Dim oView As DrawingView
  4. Dim oSheet As Sheet
  5. oSheet = oDoc.ActiveSheet
  6. Dim oCenterline As AutomatedCenterlineSettings
  7. For Each oView In oSheet.DrawingViews
  8.     Call oView.GetAutomatedCenterlineSettings(oCenterline)
  9.     oCenterline.ApplyToHoles = True
  10.     oCenterline.ApplyToPunches = True
  11.     oCenterline.ApplyToRectangularPatterns = True
  12.     oCenterline.ApplyToRevolutions = True
  13.     Call oView.SetAutomatedCenterlineSettings(oCenterline)
  14. Next
« Последнее редактирование: 31-07-2022, 11:54:29 от filat »

Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Я в ступоре! Почему макрос работает:
Код - Visual Basic [Выбрать]
  1. Public Sub CenterLineTest()
  2.     Dim drawDoc As DrawingDocument
  3.     Set drawDoc = ThisApplication.ActiveDocument
  4.    
  5.     Dim topView As DrawingView
  6.     Dim sectionView As DrawingView
  7.     Set topView = drawDoc.ActiveSheet.DrawingViews.Item(1)
  8.     Set sectionView = drawDoc.ActiveSheet.DrawingViews.Item(2)
  9.    
  10.     Dim settings As AutomatedCenterlineSettings
  11.     Set settings = drawDoc.DrawingSettings.AutomatedCenterlineSettings
  12.    
  13.     settings.ApplyToCylinders = True
  14.     settings.ProjectionParallelAxis = True
  15.     Call topView.SetAutomatedCenterlineSettings(settings)
  16.     Call sectionView.SetAutomatedCenterlineSettings(settings)
  17. End Sub

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Попробуй Documnt.Update и Documnt.Update2 вызвать в конце кода на VB.NET

Оффлайн filatАвтор темы

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Все ка всегда - похоже, это были не правильные пчелы!...
Дело оказалось в точке вызова кода:
я хотел сделать AutomatedCenterline после создания вида и использовал для этого событие UserInputEvents.OnTerminateCommand.
В нем переменная вида вроде как уже существует(не пустая), но вид, видимо, еще не отрисован. Поэтому настройки вносятся в файл, но сами линии не добавляются на вид.
Придется искать другое событие...