Использование AutomatedCenterlineSettings в чертежах

Автор Тема: Использование AutomatedCenterlineSettings в чертежах  (Прочитано 3352 раз)

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

Оффлайн filat

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Я решил реализовать нанесение осевых линий на вид чертежа с использованием AutomatedCenterlineSettings.
Повесил код на кнопку и все сработало как надо:
Код - Visual Basic [Выбрать]
  1.                         Dim oDoc As DrawingDocument
  2.                         oDoc = m_inventorApplication.ActiveDocument
  3.                         Dim oView As DrawingView
  4.                         Dim oViews As DrawingViews
  5.                         Dim oSheet As Sheet
  6.                         oSheet = oDoc.ActiveSheet
  7.                         oViews = oSheet.DrawingViews
  8.                         Dim oCenterline As AutomatedCenterlineSettings
  9.                         For Each oView In oViews
  10.                             If oView.ReferencedDocumentDescriptor.ReferencedDocumentType = DocumentTypeEnum.kPartDocumentObject Then
  11.                                 'MsgBox(oView.Name)
  12.                                Call oView.GetAutomatedCenterlineSettings(oCenterline)
  13.                                 oCenterline.ApplyToBends = True
  14.                                 oCenterline.ApplyToCircularPatterns = True
  15.                                 oCenterline.ApplyToCylinders = True
  16.                                 oCenterline.ApplyToFillets = True
  17.                                 oCenterline.ApplyToHoles = True
  18.                                 oCenterline.ApplyToPunches = True
  19.                                 oCenterline.ApplyToRectangularPatterns = True
  20.                                 oCenterline.ApplyToRevolutions = True
  21.                                 oCenterline.ApplyToSketches = True
  22.                                 oCenterline.ApplyToWorkFeatures = True
  23.                                 oCenterline.ProjectionNormalAxis = True
  24.                                 oCenterline.ProjectionParallelAxis = True
  25.                                 Call oView.SetAutomatedCenterlineSettings(oCenterline)
  26.                             End If
  27.                         Next

Для большей автоматизации захотел повесить его на событие после нажатия кнопки "Создание нового вида":
Код - Visual Basic [Выбрать]
  1. Private Sub m_UserInputEvents_OnTerminateCommand(ByVal CommandName As String, ByVal Context As Inventor.NameValueMap) Handles m_UserInputEvents.OnTerminateCommand
  2.            If CommandName = "DrawingBaseViewCmd" Then ' Команда создания нового вида на чертеже
  3.            ...
И вот тут незадача - отслеживание кода, показывает, что создаваемые виды проходят через код, но результатов его работы не появляется на чертеже - с чем это может быть связано?
« Последнее редактирование: 06-11-2020, 11:57:14 от Александр Ривилис »

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
может Document.Update попробовать?

Оффлайн filat

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Не, не помогло. Да и на кнопке без апдейта работает.

P.S. Ты куда из скайпа пропал!?  :-X :D

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Влад, там в утилитах в SDK в АПИ есть эвент-вотчер, запусти его и посмотри какие события вызываются при создании вида.
Может не только к событию OnTerminateCommand можно привязаться будет.

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Ну посмотрел эвэнт вотчер? Если ничего подходящего не найдешь, то готовь тестовый код причесаный и файлы модели и чертежа я отправлю в тех поддержку твой вопрос.

Оффлайн filat

  • ADN Club
  • ****
  • Сообщений: 265
  • Карма: 2
Я подумал-подумал над применением этой функции и решил, что мне хватит(а может даже и удобнее!) использования кнопки. - для себя вопрос пока закрыл и дальше копать не буду.