Hallo Kollegen,
ich will mich über die Winterzeit, endlich mal tiefer mit dem Thema Makroprogrammierung auseinander setzen, bisher hat mir die Zeit und eine herausfordernde Aufgabe gefehlt. Eine Aufgabe für eine Makro habe ich jetzt und in den langen Winterabenden hoffentlich auch Zeit zum Probieren und Lernen.
Als Aufgabe habe ich mir gestellt, ein Makro zu schreiben (zusammen zu kopieren) mit dem auf die Positionslinie in einer Zeichnung, ausgehend von der Blase ein Beschriftung mit einem Wert aus der Stückliste eingefügt wird.
Das Makro soll im groben wie folgt ablaufen:
1. Anfangs und Endpunkt einer Beschriftungsfahne ermitteln
2. Ermitteln welcher Wert in der Blase angezeigt wird.
3. In der Stückliste in der entsprechenden Zeile den Wert auslesen, der auf die Linie geschrieben werden soll.
4. Winkel des Beschriftung berechne und ob der Einfügepunkt vorne oder hinten sein muss.
Hört sich eigentlich leicht an, aber die Schwierigkeiten kommen noch.
Ich habe bisher (auch in der „normalen“ Bedienoberfläche) keine Möglichkeit gefunden, den eingefügten Text so mit der Positionslinie zu verknüpfen, dass der sich Winkelrichtig mit bewegt, wenn die Blase verschoben wird.
Eine Möglichkeit wäre, eine Aktualisierungsfunktion mit ein zu bauen. Dazu müssten die Beschriftungen einem eigenen Layer zugeordnet werden. Beim Aktualisieren, werden dann alle Texte die sich auf dem Layer befinden gelöscht und anschließend neu eingefügt.
Aber….So weit bin ich noch lange nicht! Ich scheiterte schon viel früher :-(
Ich habe mal damit angefangen, dass ich mir dieses Makro:
http://forum.cad.de/foren/ubb/Forum2/HTML/025421.shtml
noch mit weiteren Werten ergänzt habe die ich hier gefunden haben:
http://help.solidworks.com/2012/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.INote~GetBalloonInfo.html
Weil ich mir nicht sicher war, für welche Stelle die Koordinaten bei der Position auf der Seite der Blase gelten (Zentrum, oder Ende Linie) habe in die Zeichnung eine Skizze eingefügt und als Anfangs und Endpunkt die Werte übernommen, die das Makro ermittelt hat.
Das Ergebnis war ernüchternd… Meine Skizze ist an einer ganz anderen Stelle gesessen. Von welcher Null aus ermittelt das Makro den die Positionen?
Kann mir da jemand ein bisschen weiter helfen?
Ich erwarte nicht dass mir jemand das Makro auf dem Tablett serviert, ich will ja selber lernen wie man Makros schreibt.
Die Daten sind mit Solidworks 2013 erstellt.
Grüße OLL
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP