Inventor API / VBA AutoBendRadius на трехмерном эскизе - PullRequest
1 голос
/ 19 марта 2019
Option Explicit

Sub pipe()

'INVENTOR PERIPHERALS

'Create a new part file
Dim partDoc As PartDocument
Set partDoc = ThisApplication.Documents.Add(kPartDocumentObject, _
                  ThisApplication.FileManager.GetTemplateFile(kPartDocumentObject))

'Create a physical component within new part file
Dim partDef As PartComponentDefinition
Set partDef = partDoc.ComponentDefinition

'Define units of measurement



'PIPE 3D SPLINE PATHWAY

'input coordinate values BEFORE 3D sketch
Dim oCoor(1 To 8) As WorkPoint
Set oCoor(1) = partDef.WorkPoints.AddFixed(tg.CreatePoint(0, 0, 0))
Set oCoor(2) = partDef.WorkPoints.AddFixed(tg.CreatePoint(100, 0, 0))
Set oCoor(3) = partDef.WorkPoints.AddFixed(tg.CreatePoint(200, 50, 30))
Set oCoor(4) = partDef.WorkPoints.AddFixed(tg.CreatePoint(200, 700, 30))
Set oCoor(5) = partDef.WorkPoints.AddFixed(tg.CreatePoint(600, 700, 70))
Set oCoor(6) = partDef.WorkPoints.AddFixed(tg.CreatePoint(600, 700, 500))
Set oCoor(7) = partDef.WorkPoints.AddFixed(tg.CreatePoint(600, 900, 500))
Set oCoor(8) = partDef.WorkPoints.AddFixed(tg.CreatePoint(600, 1000, 600))

'Set up 3D sketch
Dim Sketch2 As Sketch3D
Set Sketch2 = partDef.Sketches3D.Add

'??????
'Set up Autobend as a variable
Dim UseAutoBend As Boolean

UseAutoBend = True
Dim oBend(1 To 8) As Double
oBend(1) = 500
oBend(2) = 500
oBend(3) = 60
oBend(4) = 50
oBend(5) = 50
oBend(7) = 30
oBend(8) = 50


'create line between coordinates
Dim PipePathSketch As SketchLine3D
Set PipePathSketch = Sketch2.SketchLines3D.AddByTwoPoints(oCoor(1), oCoor(2), UseAutoBend, oBend(1))
Set PipePathSketch = Sketch2.SketchLines3D.AddByTwoPoints(oCoor(2), oCoor(3), UseAutoBend, oBend(2))
Set PipePathSketch = Sketch2.SketchLines3D.AddByTwoPoints(oCoor(3), oCoor(4))
Set PipePathSketch = Sketch2.SketchLines3D.AddByTwoPoints(oCoor(4), oCoor(5))
Set PipePathSketch = Sketch2.SketchLines3D.AddByTwoPoints(oCoor(5), oCoor(6))
Set PipePathSketch = Sketch2.SketchLines3D.AddByTwoPoints(oCoor(6), oCoor(7))
Set PipePathSketch = Sketch2.SketchLines3D.AddByTwoPoints(oCoor(7), oCoor(8))

Trial bend
'Dim bend As String
'Set bend = partDoc.Sketch3DSettings.AutoBendRadius(50)

VBA в Autodesk Inventor. Я пытаюсь сгенерировать трехмерную трубу с помощью функции развертки, где путь представляет собой трехмерный эскиз, код которого показан выше. Этот код правильно генерирует трехмерный эскиз, но я хотел бы добавить изгибы / скругления между каждой прямой линией, отображаемой с помощью «AddByTwoPoints». Как вы можете видеть, у меня было несколько попыток сделать это с помощью различных методов (переменные UseAutoBend и bend), которые не имеют никакого эффекта, поэтому я не знаю, куда идти дальше.

...