Danke für die Antworten, habe das Problem aber gelöst
(Anfangs- und Endpunkt eines Teilkreises waren vertauscht).
Es gibt keine Methode zur Erstellung eines Langlochs! Überhaupt gibt es nur zwei Methoden zur Erstellung eines Kreises: CreateClosedCircle() und CreateCircle(). Letztes entspricht der Funktion „Arc“.
Hier also meine Unterroutine ErstelleLangloch():
Sub ErstelleLangloch(Mittelpunkt, RefMittelpunkt, Richtung, Bezeichnung, Ebene) ' "Richtung" ist Normale der "Ebene"
Dim SketchLangloch 'As Sketch
Set SketchLangloch = MeinPart.MainBody.Sketches.Add(Ebene)
SketchLangloch.Name = "Sketch.Langloch"
Dim RefSketchLangloch 'As Reference
Set RefSketchLangloch = MeinPart.CreateReferenceFromObject(SketchLangloch)
Dim KoordinatenMittelpunkt(2)
Mittelpunkt.GetCoordinates KoordinatenMittelpunkt
Dim FeldFuerSketchdefinition(8) ' Reihenfolge der Werte siehe Definition der Methode SetAbsoluteAxisData
FeldFuerSketchdefinition(0) = KoordinatenMittelpunkt(0)
FeldFuerSketchdefinition(1) = KoordinatenMittelpunkt(1)
FeldFuerSketchdefinition(2) = KoordinatenMittelpunkt(2)
FeldFuerSketchdefinition(3) = 1 'x-Wert H-Vektor
FeldFuerSketchdefinition(4) = 0 'y-Wert H-Vektor
FeldFuerSketchdefinition(5) = 0 'z-Wert H-Vektor
FeldFuerSketchdefinition(6) = 0 'x-Wert V-Vektor
FeldFuerSketchdefinition(7) = 1 'y-Wert V-Vektor
FeldFuerSketchdefinition(8) = 0 'z-Wert V-Vektor
SketchLangloch.SetAbsoluteAxisData FeldFuerSketchdefinition 'Sketchdefinition
'Sketch öffnen
Dim BearbeitungSketch
Set BearbeitungSketch = SketchLangloch.OpenEdition
'Sketch-Geometrie erzeugen
Dim Halbkreis1, Halbkreis2 'As Circle2D
Dim RefHalbkreis1, RefHalbkreis2 'As Reference
Dim Pi
Pi = 3.14159
' CreateCircle(xMittelpunkt, yMittelpunkt, Radius, StartParam, EndParam)
Set Halbkreis1 = BearbeitungSketch.CreateCircle(0, 0, 10, 0 * Pi, 1 * Pi) 'Start- und Endpunkte werden unten definiert; Angaben hier daher unrelevant
Set RefHalbkreis1 = MeinPart.CreateReferenceFromObject(Halbkreis1)
Set Halbkreis2 = BearbeitungSketch.CreateCircle(20, 0, 10, 1 * Pi, 2 * Pi)
Set RefHalbkreis2 = MeinPart.CreateReferenceFromObject(Halbkreis2)
Dim Punkt(4) 'As Point2D 'Punkte für Beginn/Ende der Linien. Der Wert im Feld Punkt(0) bleibt leer
Set Punkt(1) = BearbeitungSketch.CreatePoint(0, 10)
Set Punkt(2) = BearbeitungSketch.CreatePoint(0, -10)
Set Punkt(3) = BearbeitungSketch.CreatePoint(20, 10)
Set Punkt(4) = BearbeitungSketch.CreatePoint(20, -10)
Dim RefPunkt(4)
Set RefPunkt(1) = MeinPart.CreateReferenceFromObject(Punkt(1))
Set RefPunkt(2) = MeinPart.CreateReferenceFromObject(Punkt(2))
Set RefPunkt(3) = MeinPart.CreateReferenceFromObject(Punkt(3))
Set RefPunkt(4) = MeinPart.CreateReferenceFromObject(Punkt(4))
Dim Linie1, Linie2 'As Line2D
Dim RefLinie1, RefLinie2 'As Reference
Set Linie1 = BearbeitungSketch.CreateLine(0, 10, 20, 10) ' CreateLine(iX1 As Double, iY1 As Double, iX2 As Double, iY2 As Double) As Line2D
Set RefLinie1 = MeinPart.CreateReferenceFromObject(Linie1)
Set Linie2 = BearbeitungSketch.CreateLine(20, -10, 0, -10)
Set RefLinie2 = MeinPart.CreateReferenceFromObject(Linie2)
Halbkreis1.StartPoint = Punkt(1)
Halbkreis1.EndPoint = Punkt(2)
Halbkreis2.StartPoint = Punkt(4)
Halbkreis2.EndPoint = Punkt(3)
Linie1.StartPoint = Punkt(3)
Linie1.EndPoint = Punkt(1)
Linie2.StartPoint = Punkt(4)
Linie2.EndPoint = Punkt(2)
Dim ConstraintCoincidence1, ConstraintCoincidence2, ConstraintCoincidence3, ConstraintCoincidence4 'As Constraint
Dim ConstraintTangency1, ConstraintTangency2, ConstraintTangency3, ConstraintTangency4 'As Constraint
Set ConstraintCoincidence1 = SketchLangloch.Constraints.AddBiEltCst(catCstTypeOn, RefLinie1, RefPunkt(1))
Set ConstraintTangency1 = SketchLangloch.Constraints.AddBiEltCst(catCstTypeTangency, RefLinie1, RefHalbkreis1)
Set ConstraintCoincidence2 = SketchLangloch.Constraints.AddBiEltCst(catCstTypeOn, RefLinie2, RefPunkt(2))
Set ConstraintTangency2 = SketchLangloch.Constraints.AddBiEltCst(catCstTypeTangency, RefLinie2, RefHalbkreis1)
Set ConstraintCoincidence3 = SketchLangloch.Constraints.AddBiEltCst(catCstTypeOn, RefLinie1, RefPunkt(3))
Set ConstraintTangency3 = SketchLangloch.Constraints.AddBiEltCst(catCstTypeTangency, RefLinie1, RefHalbkreis2)
Set ConstraintCoincidence4 = SketchLangloch.Constraints.AddBiEltCst(catCstTypeOn, RefLinie2, RefPunkt(4))
Set ConstraintTangency4 = SketchLangloch.Constraints.AddBiEltCst(catCstTypeTangency, RefLinie2, RefHalbkreis2)
'Erstellen eines Extrudes aus dem Sketch
Dim Langloch ' As HybridShapeExtrude
Set Langloch = MeinPart.HybridShapeFactory.AddNewExtrude(RefSketchLangloch, 50, 50, Richtung)
Bauteilgeometrie.InsertHybridShape Langloch
Langloch.Name = Bezeichnung
SketchLangloch.CloseEdition
MeinPart.Update
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP