Hallo
Ich möchte eine Notiz über ein Makro hinzufügen, das sich auf die Eigenschaft der Komponente bezieht, an die sie in einer SolidWorks Zeichnung angehängt ist.
Ich habe versucht, die SolidWorks Registrierungsmethode zu verwenden, aber der generierte Code funktioniert bei mir nicht. Dies liegt daran, dass das Teil basierend auf seinen Koordinaten ausgewählt wird, und wenn ich dieses Makro auf eine andere Zeichnung anwenden möchte, in der sich das Teil befindet, funktioniert es nicht, wenn das Teil nicht auf die gleiche Weise auf dem Blatt platziert wird.
Hier ist der von SolidWorks generierte Code:
Dimmen swApp als Objekt
Teil als Objekt dimmen
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long
Sub main()
swApp = _ setzen
Anwendung.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.418950851731392, 0.261697604464967, -499.977072134691, False, 0, Nichts, 0)
myNote als Objekt dimmen
myAnnotation als Objekt dimmen
MyTextFormat als Objekt dimmen
Set myNote = Part.InsertNote("$PRPMODEL:""Orientierungspunkt""")
Wenn nicht, ist myNote nichts, dann
myNote.LockPosition = Falsch
myNote.Winkel = 0
boolstatus = myNote.SetBalloon(0, 0)
Setze myAnnotation = myNote.GetAnnotation()
Wenn nicht myAnnotation nichts ist, dann
longstatus = myAnnotation.SetLeader3(swLeaderStyle_e.swSTRAIGHT, 0, Wahr, Falsch, Falsch, Falsch)
boolstatus = myAnnotation.SetPosition(0.304559076486096, 0.311886588479215, 0)
boolstatus = myAnnotation.SetTextFormat(0, Wahr, myTextFormat)
Ende, wenn
Ende, wenn
Part.ClearSelection2 Wahr
Part.WindowRedraw
Ende Sub
Ich habe versucht, boolstatus = Part.Extension.SelectByID2("", "EDGE", 0.418950851731392, 0.261697604464967, -499.977072134691, False, 0, Nothing, 0) zu ersetzen
bis
boolstatus = Part.Extension.SelectByID2("Teil2-1", "KOMPONENTE", 0.418950851731392, 0.261697604464967, -499.977072134691, False, 0, Nichts, 0)
Aber es funktioniert nicht.
Kennt jemand eine Lösung?
Vielen Dank