EdPlt

Ein weitere Baustein für das problemlose Fräsen und Gravieren.

Zuerst will ich das Problem schildern. Um an einer Fräsmaschine die Arbeitsplatte bestücken zu können ist es von Vorteil wenn der Fräskopf nicht im Arbeitsbereichs ist.
Legt man den 0-Punkt nach unten-links, ist das Einspannen eines Fräsobjektes schwer weil die Sicht immer versperrt ist.
Legt man den 0-Punkt unabhängig von der Home-Position muß die Fräsmaschine kalibriert werden (wie weit ist der 0-Punkt von der Home-Position entfernt?).
Das ganze läßt sich umgehen wenn der 0-Punkt oben links ist und die Y-Richtung somit 'umgedreht' wird.
Das hört sich einfacher an, als es ist! Die übliche Software zum erzeugen von PLT-Dateien berücksichtigt dies nicht. Per Software seine Zeichnung zu 'kippen' sollte nicht problematisch sein (so denkt man). Leider trifft man in der Praxis auf erhebliche Probleme.

Das erste Problem: welche Software unterstützt denn das einlesen von HPGL? Hier gibt es einiges auf dem Markt. Entweder ist diese Software kostenpflichtig, nicht tauglich oder schlicht weg wird das HPGL nicht richtig interpretiert. Corel Draw hört man immer als Allzweckwaffe hierfür (kostenpflichtig) . Meine Versuche haben jedoch ergeben das das HPGL welches hier ausgegeben wird ehr fraglich ist.

Das zweite Problem: wie wird denn die HPGL-Ausgabe skalliert? In einigen Draw-Programmen wird die PLT-Ausgabe trotz richtiger Einstellung in nicht reproduzierbaren Größen ausgegeben (wenigsten stimmen die X-Y-Proportionen). Bisher war ich auch der (offensichtlich irrigen) Annahme das ein Standard-PLT-File mit 40 Schritten pro mm ausgegeben wird. Dem ist aber nicht so. Früher kannte ich hier nur sehr einfache Befehle für den Plotter. Offensichtlich wurde von jedem Hersteller von Plottern (incl. HP) eine Erweiterung der Sprache generiert.

Meine einfachen Dateien aus CAD-Programmen konnten nicht über einen einfachen und reproduzierbaren Weg weiter verarbeitet werden. Die Anzahl der nötigen Softwarepaketen und Zusatzoptionen stieg mit jeder Software die Verwendet wird.

Oft ist ein solches Ärgernis der erste Antrieb um tätig zu werden. Auch hier war das der Anstoß für 'edplt'.

Eine kurze Auflistung der Funktionen:

einlesen von HPGL-Dateien
entfernen von ungewünschten Linien
Skalieren durch ein Referenzmaß (Markierung setzen und eingeben wie viel mm das sind)
Speichern der Datei in einem bereinigten HPGL-Format und ausfiltern der Zusatzinformationen
Ausgabe der PLT-Datei auf eine serielle Schnittstelle.
Setzen von 0-Punkten und verschieben der PLT-Ausgabe basierend auf diesen Punkt.
Klappen der Y-Achse zur 0-Punkt-Bereinigung.
MDI-Applikation zum Bearbeiten von mehreren Dateien gleichzeitg
Quelltext verfügbar

Die Liste kann man natürlich durch eine feinere Auflistung verlängert werden, was aber die Software nicht besser macht. Die Software ist in TurboC++ von Borland erstellt. der Compiler ist kostenfrei (eine kostenlose Registrierung ist nötig) und kann von Borland auf ihrer Webseite bezogen werden.  Wer lust hat, kann diese Software nach belieben erweitern und seinen Bedürfenissen anpassen. Wem die oben genannten Funktionen ausreichen, der kann sich die Software einfach downloaden.

Eine Installation ist nicht nötig. Laden, entpacken und verwenden ;-) . 

Natürlich kann die Software auch sofort die auf diesen Seiten beschriebene Steuerung ansteuern.

Die neue Version 1.1.0.0 wurde erweitert um die Möglichkeit der Sortierung. Soll ein Durchbruch zuerst gefräst werden, muß dieser Makiert werden und das Symbol (linke Symbolreihe) angeklickt werden. Durch diese Aktion werden die Linienzüge zuerste abgearbeitet.

Zusätzlich wurde die Ausgabe eines weiteren Datei-Formats integriert. Dies ist eine Erweiterung von HPGL. Genau genommen wird HPGL reduziert auf nur noch zwei Befehle und die Befehle angepaßt. Diese Datei-Format erlaubt ein Fräsen von 2,5-D und auch die angabe der Fräsgeschwindigkeiten.
Dateiformat:
XHPGL;
PA x,y,z,a,sp;

Die Datei beginnt mit XHPGL;. Jede Zeile endet mit einem ;. Parameter werden durch ein , abgetrennt. Die Einheit ist fest auf 1/40 mm für x,y,z festgelegt. A wird in 1/40 Grad angegeben (im Augenblick noch nicht implementiert, wird aber als Parameter erwartet). Der Letzte Parameter ist die Geschwindigkeit in mm pro Minute. Nachdem dieses Format die Möglichkeit bietet z und die Geschwindikeit zu definieren, kann die Software auch mit netten Funktionen erweitert werden; was hiermit auch geschehen ist.

1. Es können mehrer Dateien verbunden werden (Merge).
2. Es kann eine XHPGL-Datei eingelesen werden (abhängig von der Kennung XHPG;)
3. Es können Fräsgeschwindigkeit, Move-Geschwindigkeit und Senk-Geschwindigkeit definiert werden.
4. Es kann eine Zustellung definiert werden (Gesamttiefe und Zustellung). 
5. Es können Stege definiert werden. Die Stege sind (bei Verwendung von Zustellung) optimiert und können auch auf einen Bruchteil der Frästiefe erhalten bleiben. z.B. 3mm Frästiefe und 0,2 mm Steghöhe.
6. Linien die aneinander stoßen werden zu einer Linie Optimiert.
7. Linien (bei Zustellung) die bereits eine Fräsung in der Tiefe haben, werden entfernt.

Durch die Optimierungen, die auch abschaltbar sind, kann sehr einfach eine Fräsung aus einem Material definiert werden. Die Fräsungen haben nicht die lästigen 0-Positionierungen und setzen auch nicht neu an wenn zugestellt wird. Stege sind Wegoptimiert und heben den Fräser nur soweit es nötig ist um den Steg stehen zu lassen.

Um diese neuen Möglichkeiten nutzen zu können muß in XHPGL gespeichert werden. Ein Steg wird definiert durch das Positionieren der Maus auf die Linie die unterbrochen werden soll. Durch die eingabe von 'S' (Set) wird ein Marker auf die Linie gesetzt. Durch die Eingabe eines 'R' (Remove) kann dieser Steg wieder gelöscht werden. Wird unter 'File' das Speichern als XHPGL gewählt, erscheint ein Fenster in dem die nötigen Einstellungen gemacht werden können. Die Fräserbreite und die Stegbreite sind nur nötig wenn Stege defniert werden. Diese Angaben in Verbindung mit der Tiefe für den Steg werden beim Speichern die Daten errechnet. Die Tiefe der Stege beschreibt wie tief der Fräse Fräsen soll ohne einen Steg zu belassen.

 

Beschreibung edplt

Die Software erklärt sich eigentlich selbst. Für alle die vorher einen Einblick haben wollen, hier ein kurze Beschreibung:

Starten der Software:

Für das Starten der Software ist keine Installation nötig. Es zeigt sich nur die Oberfläche der Software in der die einzelnen PLT-Dateien geladen werden.

Nach dem Öffnen einer PLT-Datei stellt sich diese wie folgt dar:

Durch einen Doppelklick auf den blauen balken läßt sich das Fenster auf die volle Größe vergrößern.
Im linken Bereich sind 7 Symbole. Die Symbole haben folgende Bedeutung:
1.) Vergrößern das die ganze PLT-Datei dargestellt wird.
2.) Vergrößern das die PLT-Datei vertikal auf die maximale Größe vergrößert wird.
3.) Vergrößern das die PLT-Datei horizontal auf die maximale Größe vergrößert wird.
4.) Markierungen entfernen
5.) alle Markierten Bereiche löschen
6.) Markierungen umkehren
7.) Scalieren (Messen eines Bereiches und die Ausgabe dafür umrechnen) 

Zoomen:

Hat die Maus ein Scrollrad, kann die Zeichnung mit diesem gezoomt werden. Ist kein Scrollrad vorhanden, kann mit der taste 'Bild auf*' und 'Bild ab' der Zoom geändert werden.

Markieren:

Wird ein Bereich ausgewählt (Klick auf den Beginn und mit gehaltener Maustaste einen Bereich auswählen durch ziehen der Maus auf den End-Punkt), werden die Linien innerhalb dieses Bereichs Markiert.
Prinzipiell ist anzumerken das nicht einzelne Linie selektiert oder gelöscht werden können. Es können nur Linienzüge Markiert werden. Das bedeutet das zusammenhängende Linienzüge auch im Selektierbereich liegen müssen! Wird über ein Rechteck eine Markierung gelegt, und das Rechteck liegt nicht komplett innerhalb des Markierbereichs, wird dieses nicht selektiert. Die hört sich als Nachteil an, ist aber in der Praxis von Vorteil. Hat z.B. (aus der Praxis) eine Zeichnung auch Bemaßungen, können diese aus der Zeichnung extrahiert werden wenn die Bemaßten elemente nicht ganz im Selektierbereich sind.

Wird eine horizontale Linie,  vertikale Linie oder ein Eckpunkt einer Linie angeklickt, wird der damit zusammenhängende Linienzug markiert. Damit eine Markierung möglich ist (ohne Lupe) wird der erste Punkt/die erste Linie die in einem Bereich ist, gewählt. Das hat zur Folge das bei engen Linienzügen die falsche Linie 'getroffen' wird. In diesem Fall nicht verzweifeln... nochmals Klicken und die richtige Linie zusätzlich markieren; dann die Shift-Taste (Umschalt-Taste) drücken und nochmals Klicken. Bei der ersten gefunden Linie in der Nähe (die falsch Markierte Linie) wird nun die Markierung zurückgenommen. Durch das halten der Shift-Taste während des Klicks wird eine Markierung entfernt.   

Löschen:

Wird 'Entfernen' gedrückt, werden alle markierten Linien gelöscht. Die gleiche Funktion wird durch das Klicken auf das 5. Symbol ausgelöst.
Durch eine Bereichsauswahl und das drücken der 'Strg-Taste' während dem Loslassen der Maustaste wird dieser Bereich sofot gelöscht.

Löschen rückgängig machen:

Wird ein Bereich ausgewählt und während dem Loslassen der Maustaste 'Shift' und 'Strg' gedrückt, werden alle gelöschten Liniezüge innerhalb des Markierten Bereichs wieder sichtbar. Ich hatte lange darüber nachgedacht ob ich eine übliche 'undel'- Funktion implementieren soll, habe mich aber dagegen entschieden da das zurückholen von Linieen meist nicht mit Arbeitsschritten in Verbindung stehen. Man löscht und löscht und stellt vor der ausgabe fest, das doch eine Linie fehlt. Eine Undel-Funktion würde jetzt schritt für schritt die Linien wiederherstellen, bis ich bei der fraglichen bin... und dann fange ich wieder von vorne an mit dem Löschen!

0-Punkt definieren:

Wird während dem Klick die 'Alt'-Taste gedrückt, wird an diesem Punkt der Neue 0-Punkt definiert. Wurde ein 0-Punkt definiert, werden die Ausgaben (Speichern oder an RS232) so umgerechnet, das dieser neue Bezugspunkt genommen wird. Wurde kein 0-Punkt definiert, werden die Ausgaben ohne Umrechnung ausgegeben.
Um den 0-Punkt an jeder Seite definieren zu können, kann man die Richtungen der Achsen durch 'F2' geändert werden. Jeder Tastendruck auf 'F2' ändert dabei die Richtung der Achsen. Wird die Achse rot dargestellt, wird auch diese Achse 'geklappt'. In meinem Fall weil der 0-Punkt der Frasmaschine links-oben ist. 

Ausgabe an RS232:

Diese Funktionen konnte ich nicht vollständig testen, gehe aber davon aus das hier alles entsprechend der normalen Windows-Funktionen alles korrekt ist.
Es wird durch diese Funktion die gleiche Ausgabe die in eine Datei erfolgen würde an die RS232 gesendet. Die Anzahl der ausgegebenen Linie kann in der Statuszeile verfolgt werden. Die Ausgabe kann durch 'Abort' abgebrochen werden. Leider lassen sie die bereits gesendeten Daten nicht zurückholen; es kann also noch ein bischen dauern bis die Fräsmaschine aufhört.

Skalieren:

Durch Klicken auf das Linke Symbol (7. Symbol) wird die Skalierung eingeleitet. Vorher sollte man die Zoom-Stufe so wählen das ein Bereich mit bekannter horizontaler Größe im ganzen Fenster sichtbar ist.  In dem Beispiel (rot umrandet) ist es die Außenabmessung der Platine. Ist die Skalierung angewählt, erscheint das 'Messsymbol' durch Klick in den linken Bereich kann das Messsymbol verschoben werden. Die grüne (vertikale) Linie sollte dabei deckungsgleich mit der linken Linie sein, die die bekannte Größe definiert. Durch ein Klick in den rechten Bereich des Messsymbols kann die rechte Linie verschoben werden. Diese Wird dann deckungsgleich mit der rechten Linie eingestellt, die die bekannte Größe definiert. Nun kann (oben Links) die Länge dieser Linie in Millimeter eingetragen werden. Erst durch das Klicken auf 'OK' wird dieser Wert übernommen. Soll das Skalieren abgebrochen werden, reicht ein erneuter Klick auf das 7. Symbol. Wurde keine Skallierung vorgenommen, werden die Daten ungefiltert ausgegeben.

Maße:

Die Ausgabe der Maße (Statuszteile) beziehen sich auf eine Skallierung von 40 Schritten pro Millimeter. Wir eine Skalierung angegeben, wird dies basierend auf eine Ausgabe von 40 Schritten pro Millimeter umgerechnet. Hat man einen Fräser oder Plotter, der nicht 40 Schritte pro Millimeter hat, ist es nicht sinnvoll eine Skalierung vorzunehmen! In diesem Fall muß die richtige Skallierung durch das Programm erfolgen das die Plottdatei erstellt.

Speichern:

Speichert man die Datei, wird der Orginalname mit vorangestelltem '_' vorgeschlagen.
Die Ausgabe erfolgt durch Folgende HPGL-Befehle:

PD; (Pen Down)
PU; (Pen UP)
PA X,Y; (Position Absolute)
SP x; (Set Pen)

Die Definition der Stifte (SP x;) aus der Orginaldatei bleiben soweit möglich erhalten. Ein Wechsel des Stifts während eines Linienzuges wird nicht unterstützt. Alle anderen Befehle (IN; usw.) werden aus der orginal-Datei entfernt.

Schlußbemerkung:

Ich hoffe das diese Software auch anderen hilfreich sein kann. Leider ist es nötig auch auf die Lizenzbestimmungen zu verweisen. Vorallem der Haftungsausschluß ist wohl bei freier Software wichtig. Wer nicht mit der Lizenzbestimmung einverstanden ist, darf diese Software nicht nutzen!

 

History

Version 1.0.0.0
Ursprungsversion

Version 1.0.1.0
HPGL 'IN;' Aufgenommen als 'PU;PA 0,0;'
Bug Fix: PD x,y ohne PU x,y hat die erste Linie verloren. Wird nun ein PD vor einem PU erzeugt, wird ein 'Pseudo-PU x,y' eingefügt.

Version 1.1.0.0

1. Es können mehrer Dateien verbunden werden (Merge).
2. Es kann eine XHPGL-Datei eingelesen werden (abhängig von der Kennung XHPG;)
3. Es können Fräsgeschwindigkeit, Move-Geschwindigkeit und Senk-Geschwindigkeit definiert werden.
4. Es kann eine Zustellung definiert werden (Gesamttiefe und Zustellung).
5. Es können Stege definiert werden. Die Stege sind (bei Verwendung von Zustellung) optimiert und können auch auf einen Bruchteil der Frästiefe erhalten bleiben. z.B. 3mm Frästiefe und 0,2 mm Steghöhe.
6. Linien die aneinander stoßen werden zu einer Linie Optimiert.
7. Linien (bei Zustellung) die bereits eine Fräsung in der Tiefe haben, werden entfernt.

Unter 'HPGL-Bearbeitung' ist näheres beschrieben.