Hallo,
probier es mal hiermit:
Voraussetzung ist, das ein Part geöffnet ist und ein offener Körper
mit dem Namen "Punkte" existiert.
Bei mir lief es fehlerfrei!
' Makro zum Erzeugen eines Punktes auf einer Linie/Kurve
Sub CATMain ()
Dim partDocument1 As Document
Set partDocument1 = CATIA.ActiveDocument
Dim part1 As Part
Set part1 = partDocument1.Part
Dim hybridShapeFactory1 As Factory
Set hybridShapeFactory1 = part1.HybridShapeFactory
Dim HB as HybridBody
Set HB = part1.HybridBodies.Item ("Punkte")
' Auswahl festlegen -----------------------------------------------
Dim Was(0)
Was(0) = "HybridShape"
' Selektion definieren und leeren ---------------------------------
Dim UserSel As Selection
Set UserSel= CATIA.ActiveDocument.Selection
UserSel.Clear
' Selektion vornehmen lassen --------------------------------------
Dim E As CATBSTR
E = UserSel.SelectElement(Was, "Bitte Linie auswählen!", true)
If E = "Normal" Then
MsgBox(UserSel.Item(1).Value.Name & " wurde ausgewählt!")
Else
MsgBox ("Abbruch")
End If
Dim Ref as Reference
Set Ref = part1.CreateReferenceFromObject(UserSel.Item(1).Value)
' Selektion freigeben --------------------------------------------
UserSel.EndSelectElement
UserSel.Clear
Dim Abstand
Abstand = inputbox("Bitte Abstand eingeben!")
Dim PunktaufLinie
Set PunktaufLinie = hybridShapeFactory1.AddNewPointOnCurveFromDistance(Ref,Abstand,true) ' Invertieren mittel Schalter true/false
HB.AppendHybridShape PunktaufLinie
part1.Update
End Sub
Die Invertierung der Richtung kann man mit dem Schalter TRUE/FALSE steuern.
Gruß
Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP