Сценарии Autodesk Inventor VBA

Я пытаюсь соединить два профиля твердотельной модели в Autodesk Inventor с помощью сценариев VBA. Я дошел до того, что нарисовал 3D-линии, которые позже должны были выступать в качестве профилей. После того, как сценарий закончит рисовать, я могу выбрать две петли и соединить их с помощью операции чердака через графический интерфейс. Я думаю, что это тоже должно быть возможно из сценария, но я просто не могу понять, как это сделать. Вот мой сценарий на данный момент:

Sub loft()

  Set oDoc = ThisApplication.Documents.Add(kPartDocumentObject, , True)
  Set oPartDef = oDoc.ComponentDefinition

  Dim osketch3D As Sketch3D
  Set osketch3D = oPartDef.Sketches3D.Add()

  Set oTG = ThisApplication.TransientGeometry
  Dim wire(198) As SketchLine3D

  Set wire(0) = osketch3D.SketchLines3D().AddByTwoPoints(oTG.CreatePoint(0, 0, 0), oTG.CreatePoint(10, 0, 0))
  Set wire(1) = osketch3D.SketchLines3D().AddByTwoPoints(oTG.CreatePoint(10, 0, 0), oTG.CreatePoint(10, 10, 1))
  Set wire(2) = osketch3D.SketchLines3D().AddByTwoPoints(oTG.CreatePoint(10, 10, 1), oTG.CreatePoint(0, 10, 0))
  Set wire(3) = osketch3D.SketchLines3D().AddByTwoPoints(oTG.CreatePoint(0, 10, 0), oTG.CreatePoint(0, 0, 0))

  Set wire(4) = osketch3D.SketchLines3D().AddByTwoPoints(oTG.CreatePoint(0, 0, 5), oTG.CreatePoint(10, 0, 5))
  Set wire(5) = osketch3D.SketchLines3D().AddByTwoPoints(oTG.CreatePoint(10, 0, 5), oTG.CreatePoint(10, 10, 5))
  Set wire(6) = osketch3D.SketchLines3D().AddByTwoPoints(oTG.CreatePoint(10, 10, 5), oTG.CreatePoint(0, 10, 5))
  Set wire(7) = osketch3D.SketchLines3D().AddByTwoPoints(oTG.CreatePoint(0, 10, 5), oTG.CreatePoint(0, 0, 5))

' .....    
' Select wires 0-3 and 4-7 as profiles, put them in an object collection and call the loft op.

End Sub

person zeus300    schedule 12.09.2014    source источник


Ответы (1)


person    schedule
comment
Вы должны прокомментировать измененные части кода и указать, почему это решает проблему. - person Nathaniel Ford; 26.08.2015
comment
Я думаю, это могло бы прояснить ситуацию, но это решение довольно простое, поэтому я не думал, что здесь есть место для комментариев. Поскольку вы указали на это, я сейчас изменю свой ответ. - person J-SHould; 26.08.2015