SolidWorks Programme - Schriftfeld ausfüllen

Swtool.gif (1531 Byte) Auf diesen Seiten stelle ich einige von meinen Beispielprogrammen zur Verfügung. Um die Dateigrößen für den Download möglichst klein zu halten (und auch, weil ich nicht beliebig viel Webspace zur Verfügung habe) kommen die Programm ohne Installationsroutinen oder die notwendigen Visual Basic Laufzeitbibliotheken.

Programm: schriftfeld
Kompiliert: schriftfeld.exe
Sourcecode: Visual Basic 6 Sourcecode liegt dem Download bei
Beispiele: Beispielvorlagen, Einzelteil und Zeichnung liegen dem Download bei
Download: sf990509.zip (94.296 Bytes)

Makro: jetzt auch als SolidWorks 2001 Makro zum anpassen, wenn kein Visual Basic zur Verfügung steht. Download auf der Makroseite zum Schriftfeld ausfüllen.

Das kompilierte Programm schriftfeld.exe benötigt keine spezielle Installation, sondern sollte aus jeden beliebigen Ordner heraus lauffähig sein. Scannen Sie sicherheitshalber den Download und die EXE nach dem Herunterladen auf Viren, ich habe alles mit Norton Antivirus und McAffee gescannt, bei mir scheint alles klar zu sein, aber man weiß ja nie.

Wenn Sie keine eigene VB6 Entwicklungsumgebung haben benötigen Sie noch zusätzlich die VB6-Laufzeitbibliotheken. Diese findet man heutzutage auf jeder 2. Heft-CD (und sicherlich auch bei Microsoft) deswegen habe ich es mir verkniffen komplette Installationspakete zu machen (3 Megabyte statt 92 Kilobyte). Wenn Sie das aber nirgendwo finden, mailen Sie mir doch einfach oder laden sich ein Paket mit der kompletten Installationsroutine von der SolidWorks Website im Nereich Support/Model Library.

Die erste öffentliche Version vom 19.06.1998 wurde von mir noch in VB5 als Beispiel entwickelt und steht auch im Downloadbereich von SolidWorks mit dem Sourcecode der Allgemeinheit zur Verfügung.

Änderungen 09.05.1999

  • Programm in Homepage aufgenommen
  • Code neu kompiliert unter VB6 SP2
  • Eingabefelder erweitert (Combobox und Datumsfüllen als Beispiel)
  • Funktion zum Erzeugen der Dateieigenschaften zugefügt
  • optionales Rebuild eingefügt (war zu langsam bei großen Zeichnungen)
  • zur Veranschaulichung mehrere SolidWorks-eigene Attribute (Maßstab,
    Blattnummer, Format) mit in die Vorlage eingefügt
sf.gif (6140 Byte)

Was soll das überhaupt?

In dem Unternehmen, in dem ich beschäftigt bin, setzen wir seit einiger Zeit SolidWorks als 3D-Modeller ein und sind damit sehr zufrieden. Als langjährige Anwender und Systembetreuer des überaus mächtigen 2D-CAD-Systems MEDUSA (heute PTC) sind wir jedoch was die Zeichnungserstellung angeht ziemlich verwöhnt. So gibt es dort ein (selbstgeschriebenes) Programm zum Ausfüllen des Schriftfeldes.

Die Zeichnungserstellung von SW ist recht gut, aber das Ausfüllen des Schriftfeldes ist ein echter Graus. Bisher mussten die Texte im Schriftfeld einzeln angepackt und editiert werden. Hier tauchen mehrere Probleme auf:

Alle uns bisher bekannten Methoden haben gravierende Nachteile, so ist das komplette Generieren des Blattrahmens aufwendig, ein Greifen auf Texte an bestimmten Koordinaten ist auch nicht der Bringer (wenn sich doch mal das Layout ändert oder mit unterschiedlichen Vorlagen gearbeitet werden muss) und so weiter. Von einer Änderung der Vorlage auf ein anderes Format wollen wir mal gar nicht reden.

Also musste für eine saubere und vor allem von unseren Usern akzeptierte Möglichkeit eine andere Methode ausgeknobelt werden. Das EDM-System, welches bei uns die Dokumentenverwaltung neben einigen anderen Dingen erledigt, kann hier zum Teil dieses Problem beheben, aber es ist gut noch ein As im Ärmel zu haben.

An dieser Stelle der Überlegung entdeckten wir mehr durch Zufall die Möglichkeit, Texte im 3D-Modell mit einem benutzerdefinierten Dateiattribut verknüpfen zu können. Und siehe da, das funktionierte auch mit Texten in einer Zeichnung und auch einer Vorlage!

Daraus wurde die Idee geboren, einfach auf allen Zeichnungsvorlagen im Schriftfeld bereits diese Texte einzusetzen und alle benötigten Texte auch als Dateiattribute IN DER VORLAGE einzutragen und nur noch die Attribute über ein Programmchen zu ändern. Eh voila, fertig.

Da der User im Allgemeinen die Vorlage nicht editiert, verändert er nicht mehr unabsichtlich das schöne Layout (gegen DAU's ist kein Kraut gewachsen, wer will, kann natürlich immer noch auf die Vorlage ...). Auch werden die Werte direkt in alle Blätter übernommen und eine Kontrolle auf sinnvolle Werte ist bereits bei der Eingabe im Programm möglich.

So, genug erzählt, gehen wir ins Eingemachte.

Vorbereitung

Sinnvollerweise funktioniert dieses Programm mit Zeichnungen, auch wenn die Funktion mit Parts oder Assemblies genauso gut arbeitet.

Zunächst sollte eine Vorlage (Beispiel a3q.slddrt im Download) erstellt werden. Hier das Schriftfeld nach den eigenen Wünschen gestalten.

Anschließend für alle wichtigen Daten, die vom User im Schriftfeld einzutragen sind, benutzerdefinierte Dateiattribute anlegen. Dies geschieht über Datei/Eigenschaften/Benutzerdefiniert.

In der Version 1.10 (vom 09.05.1999) können die Attribute auch vom Programm aus erstellt werden, dann müssen die verketteten Texte aber anschließend hinzugefügt werden.

Bitte merken sie sich die Namen der Attribute, die müssen später im Programm genauso wieder aufgerufen werden. Belegen Sie die Attribute mit irgendwelchen Default-Werten, damit man auf der Vorlage nachher in den Texten auch irgendwas sieht: Leerzeichen sind so schwer zu erkennen ;-)J

Jetzt wieder auf die Vorlage und im Schriftfeld Texte einfügen, die sie mit dem entsprechenden Attribut verknüpfen. Diese Funktion ist ziemlich gut versteckt: gehen Sie in die Eigenschaften des Textes und klicken auf den unteren rechten bunten Knopf. Gefunden?? Wenn nicht, rufen sie einfach die Hilfe auf oder schauen Sie in der FAQ nach. Dort ist das zwar für Standardwerte von SolidWorks beschrieben, funktioniert aber hier genauso.

properties.gif (8639 Byte)

So, Vorlage haben wir, nur noch abspeichern. Wenn Sie diese Datei im Paket mit dem VB-Programm und den Templates bekommen haben, gibt es hier eine vorbereitete Zeichnungsvorlage "a3q.slddrt" Ach ja, damit das Beispielprogramm funktioniert sollten Sie genau diese Vorlage benutzen oder in Ihrer eigenen mindestens folgende 4 Attribute  eintragen: Benennung, Zeichnungsnummer, Konstrukteur, Datum.

Der Rest ist ziemlich simpel:

Benutzen des Programms

Erstellen Sie mit dieser Vorlage eine Zeichnung und rufen Sie das Schriftfeld-Ausfüll-Programm auf (schriftfeld.exe oder laden Sie die Sourcen in ihr eigenes VB und starten von da aus). Füllen Sie die Edit-Felder mit aussagekräftigen Werten und klicken dann auf auf den Knopf "Werte eintragen". Wenn alles korrekt gelaufen ist, sollten Sie jetzt in ihrem Schriftfeld die gerade eingetragen Werte sehen können. znr-kopf.gif (9977 Byte)

BTW, das Programm dient eigentlich nur dem bequemen Ausfüllen. Sie können genauso gut die Werte der benutzerdefinierten Eigenschaften unter "Datei/Eigenschaften/Anpassen" innerhalb SolidWorks oder sogar auf Dateiebene verwenden. Aber Sie sehen an dem Beispielprogramm schon einige Vorteile: Sie können die Eingaben schon direkt bei der Eingabe auswerten, Standardwerte vorgeben (wie zum Beispiel das aktuelle Datum) oder den User aus einer Liste von Werten auswählen lassen, wie am Beispiel des Konstrukteurs im Programm gezeigt. (Ich weiß, ich weiß, aber ich steh nun mal echt auf Star Trek)

Wie funktioniert das genau?

Tja, keine Hexerei, nur ein paar API-Aufrufe. Bitte schauen sie sich fürs bessere Verständnis einfach mal den Sourcecode an, ich hoffe, es ist so gut dokumentiert, dass Sie damit zurecht kommen.

Feedback

Wenn Sie nicht mehr aus noch ein wissen können Sie mich auch gerne anmailen, die Adresse ist ganz unten aufgeführt. Auch für Anregungen, Kritik (bitte konstruktiv) und Lob bin ich offen und hoffe auf einige Resonanz. Für eine komplette Installation der ursprünglichen Fassung (mit zusätzlichen englischen Labels und noch in VB5) gehen Sie am besten in den Downloadbereich der Supportseiten von SolidWorks, ich hab es leider nicht mehr.

Ach ja, da fehlt noch etwas unvermeidliches:

DISCLAIMER

Die Software, Beispielprogramme und Dokumente stehen "so wie sie sind" zur freien Verfügung. In keinem Fall kann der Autor für irgendwelche Schäden oder auch nur Funktionen zur Verantwortung gezogen werden. Der Benutzer trägt das gesamte Risiko, wenn er dieses Programm benutzt.

Zurück zum Seitenanfang

hr.gif (4491 Byte)

counter Kritik und Anregungen bitte an Stefan Berlitz. Letzte Änderung dieser Seite am Donnerstag, 01. Februar 2007 17:40