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
), которые не имеют никакого эффекта, поэтому я не знаю, куда идти дальше.