Wählen Sie ein Teil aus, um eine SolidWorks VBA-Notiz hinzuzufügen

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

Hallo

Ich schlage eine Idee vor; Aber wenn Siedie Ursprünge anzeigen und Ihr Makro mit dem Haken des Ursprungs des Stücks neu erstellen, würde es nicht funktionieren??? Ich bin neu bei Makros....

Hallo manu67,

Vielen Dank für Ihre Antwort, die fast funktioniert.

Ursprünglich habe ich meine Notiz hinzugefügt, indem ich mein Makro aufgezeichnet habe, das mir eine Codezeile gibt, die dem entspricht, was ich wollte, d.h. das Teil wird nach seinem Namen und nicht nach seinen Koordinaten ausgewählt.

Auf der anderen Seite funktioniert es nur mit Teilen ohne Konfiguration. Ich möchte es mit konfigurierten Teilen machen.

Hallo

Wäre es nicht am einfachsten, eine Notiz durchzugehen, die Sie in die Bibliothek legen?

Hier ist die Vorgehensweise in der angehängten Datei

Ich hoffe, ich habe dir geholfen.


note_en_bibliotheque.docx

Am Ende war es kein Problem der Konfiguration, sondern der Sprache im Raum. Ich habe einen Teil heruntergeladen, der auf Englisch ist, daher heißt der Ursprung "Origin". Aus diesem Grund wurde das Makro für diesen Teil nicht berücksichtigt.

@fliard: Vielen Dank für Ihre Antwort, ich behalte den Tipp, der mir später nützlich sein kann. Auf der anderen Seite entspricht es für diese Anwendung nicht dem, was ich erwarte, da ich bereits ein Makro habe, das Dimensionen hinzufügt, und ich vervollständige es, um Notizen hinzuzufügen. Außerdem befinden sich die Noten, die ich hinzufüge, nicht immer auf demselben Stück.

Einen schönen Tag noch:)

Hallo

Ist es möglich, das Makro, das funktioniert, beispielsweise in einer Textdatei zu posten?

Vielen Dank!

Angehängt ist das Makro, das funktioniert


macronote.txt

Hallo

Danke, dass Sie mich als die beste Antwort ausgewählt haben, aber ich glaube nicht, dass ich Ihnen eine große Hilfe war, aber danke...