Welt der Fertigung
Sie sind hier: Startseite » Suchen » Lernen » Office & mehr

Word als flexibles CNC-Tool

Textverarbeitungsprogramm im Programmier-Alltag

Wer hätte gedacht, dass sich Textverarbeitungsprogramme eignen, um CNC-Programmierers Los zu erleichtern? Insbesondere Word von Microsoft ist eine mächtige Textverarbeitungssoftware, die sich nicht nur hervorragend zur umfassenden Bearbeitung jeder Art von Textprojekten eignet, sondern auch hilfreich zur Seite steht, wenn es gilt, CNC-Programme zu erstellen, umzuwandeln und zu manipulieren. Viel zu wenig bekannt ist beispielsweise die Vergleichen-Funktion, die jede Abweichung zweier augenscheinlich identischer CNC-Programme aufspürt. Mittels VBA-Makros kann zudem die Suchen-Funktion aufgebohrt werden, was Word zu einem flexiblen CNC-Tool verwandelt. Aber auch Word-Nutzer ohne CNC-Ambitionen sollten den Artikel lesen, wenn sie endlich die Feinheiten des Mustervergleichs kennenlernen wollen, schließlich wird dieses Thema in der käuflichen Fachliteratur nur spärlich behandelt. Dies ist unverständlich, da damit Textmanipulationen möglich sind, die staunen lassen.

CNC-Programm mit Klartext ergänzt

Wie oft ist es schon vorgekommen, dass CNC-Programme leicht verändert wurden und nicht klar dokumentiert war, wo welche Änderungen vorgenommen wurden? Normalerweise ist dies kein Problem, da alte Programme, die nicht mehr benötigt werden, dem elektronischen Papierkorb übergeben werden, um stets saubere und ausgetestete CNC-Programme im Einsatz zu haben. Schließlich gilt es, bereits früher getätigte teure Einfahrtprozeduren zu vermeiden und unnötige Maschinenschäden zu verhindern. Dennoch passiert es immer wieder, dass dies nicht der Fall ist und, aus welchen Gründen auch immer, CNC-Programme in unterschiedlichen Versionen vorliegen. In diesen Fällen ist guter Rat ganz und gar kostenlos, denn Word bietet eine Prüffunktion, um zwei Versionen einer Datei zu vergleichen. Diese Funktion ist relativ unbekannt. Sehr häufig werden stattdessen Spezialprogramme bemüht, um derartige Fälle zu lösen.

Der Vergleich zweier Programmversionen

Vielfach ist nicht bekannt, dass CNC-Programme in aller Regel Klartextdateien sind, die mit jedem Editor geöffnet und gelesen werden können. Häufig ist die Extension, das sind die Kürzel am Ende des Dateinamens wie etwa .txt oder .doc, schuld, dass dies nicht klar erkennbar ist. CNC-Dateien können jedoch problemlos geöffnet werden, was die Möglichkeit birgt, diese Dateien mit Word umfassend zu bearbeiten.

Das Vergleichen-Tool versteckt sich im Reiter „Überprüfen“. Durch Anklicken dieses Buttons öffnet sich eine Menüleiste die die beiden Funktionen „Vergleichen…“ und „Kombinieren…“ zur Auswahl anbietet. Zum Vergleichen die erstgenannte Funktion anwählen. In den nun erscheinenden Eingabefeldern werden die beiden zu vergleichenden Dateien ausgewählt. Nachdem die letzte Datei ausgewählt wurde, startet der Vergleichsvorgang.

Als Ergebnis erhält man eine Datei, in der alle Änderungen zwischen Originaldatei und geänderter Datei aufgelistet sind: Text, der entfernt wurde, wird in blauer Schriftfarbe und durchgestrichen dargestellt. Hingegen wird Text, der neu hinzugekommen ist, unterstrichen, jedoch ebenfalls in blauer Farbe dargestellt.

Das Ergebnis des Vergleichsvorgangs kann als Word-Datei abgespeichert werden, was zur Dokumentation nützlich sein kann. Weniger zu empfehlen ist die Speicherung als reine Textdatei, da hier die gelöschten Textabschnitte nicht übernommen werden und zudem der geänderte Text nicht mehr in blauer Schriftfarbe hervorgehoben wird.

Wenn hingegen der erzeugte Text wieder in eine CNC-Steuerung eingelesen werden soll, dann ist selbstverständlich dafür nur eine reine Textdatei geeignet und daher das Ergebnis in diesem Format zu speichern.

Das Vergleichen von Textdateien ist eine wichtige Hilfe beim CNC-Programmieren. Doch gibt es in Word noch mehr Dinge, die Programmierers Alltag erleichtert.

Vergleichen-Funktion aufrufen

Unbekannte Programme rasch dokumentieren

Wer hat sich nicht schon einmal gewünscht, dass ein etwas umfangreicheres CNC-Programm mit einem Kommentar versehen wäre, wenn dies nicht der Fall ist? Insbesondere noch nicht ganz so sattelfeste CNC-Aspiranten würden für diese Möglichkeit wohl einiges in Bewegung setzen, um ein derartiges Tool zu erwerben. Via Word lässt sich dieser Wunsch rasch erfüllen.

Zu diesem Zweck muss jedoch ein tiefer Einstieg in die Kunst der VBA-Programmierung getätigt und zudem ein Ausflug in die Heimat der Platzhalterzeichen unternommen werden, um das Muschelgehäuse zu den zahlreichen Perlen von Word zu öffnen.

VBA erlaubt es, Word-Makros zu erstellen, die gezielt nach CNC-Schlüsselwörtern suchen, um ein CNC-Programm automatisch mit einem erklärenden Kommentar zu versehen. Dadurch wird dessen Bedeutung nach längerer Zeit der Nichtbenutzung und fehlender Dokumentation leichter ermittelt. Zu diesem Zweck ist es allerdings unbedingt nötig, sich mit den Platzhalterzeichen zu beschäftigen, um an das gewünschte Ziel zu kommen.

Platzhalter verwenden

Alte Bekannte

Viele Platzhalter sind wohl schon bekannt, da diese in diversen anderen PC-Programmen ebenso verwendet werden. Beispielsweise steht das Fragezeichen ? für ein beliebiges Zeichen. H?nd findet etwa „Hand“ ebenso wie „Hund“.

Der Asterisk * findet beliebige Zeichen. So wird per Auto* der Begriff „Autobahn“ ebenso gefunden, wie „Automatik“ oder „Automat“.

Ganze Bereiche können bestimmt werden, wenn dieser in eckige Klammern [] eingeschlossen wird. So wird etwa per [0-9] nach Ziffern von null bis neun gesucht, während hingegen das vorangestellte Ausrufezeichen [!0-9] gerade diese Ziffern ausschließt.

Spitze Klammern <> suchen nach Wörtern am Wortanfang beziehungsweise Wortende. <(Zeichen) findet „Zeichensatz“, „Zeichenbüro“ und „Zeichenübung“, während hingegen (zeichen)> die Wörter „Verkehrszeichen“ und „Ausrufezeichen“ findet. Internet[aA]dresse findet „Internetadresse“ und „InternetAdresse“ jedoch nicht „Internet-Adresse“, da das Bindezeichen „-„ (das ja ein Minuszeichen ist) nicht in der eckigen Klammer enthalten ist. Der naheliegende Gedanke, das einfache Ergänzen, etwa [aA-] wäre falsch, das ein Minuszeichen ein reserviertes Platzhalterzeichen ist und die Funktion „bis“ ausübt.

Zum Beispiel würde [a-z] alles Zeichen von a bis z einschließen. Um dennoch nach dem Bindestrich suchen zu können, muss diesem der Backslash \ vorangestellt werden. Der Backslash bewirkt, dass reservierte Zeichen, die Word für seine Suchbefehle verwendet, nicht als solche interpretiert werden und daher für die Suche verwendet werden können. Dies funktioniert übrigens mit allen anderen Platzhaltern, wie etwa ? oder *. Internet[aA\-]dresse findet nun aber immer noch nicht den Ausdruck „Internet-Adresse“.

Der Grund ist, dass die Zeichen in der eckigen Klammer mit einer ODER-Funktion verknüpft sind. Die Bedingung ist also nur erfüllt, wenn das Zeichen „a“ oder das Zeichen „A“ oder das Zeichen „-„ gefunden wird, nicht jedoch, wenn zwei oder mehr Zeichen gleichzeitig im überprüften Wort vorkommen.

Um die ODER-Funktion abzuschalten, muss nach der schließenden eckigen Klammer der sogenannte „Klammeraffe“ @ gesetzt werden. Internet[aA\-]@dresse findet nun endlich alle gesuchten Schreibvarianten eines gesuchten Wortes, da das @-Zeichen bewirkt, dass die Suchfunktion eine unbegrenzte Zahl der gesuchten Zeichen einliest.

Wichtig ist, dass bei der Eingabe von Suchbegriffen auf die korrekte Groß- und Kleinschreibung geachtet wird, um erfolgreich die gesuchten Begriffe zu finden.

Platzhalterzeichen und deren Bedeutung

Noch mehr Möglichkeiten

Natürlich gibt es auch die Möglichkeit, nach einer ganz bestimmten Anzahl vorkommender Zeichen zu suchen. Dazu wird die geschweifte Klammer {} benötigt. In dieser Klammer werden die Unter- und die Obergrenze der Zeichenzahl, nach der gesucht wird, festgelegt.

Die beiden Werte werden bei deutscher Ländereinstellung mit einem Semikolon voneinander getrennt. {3;5} bedeutet demnach, dass mindestens drei und höchstens fünf Mal das gesuchte Zeichen vorkommen darf. Hier kann ebenfalls ein Zeichenbereich für die Suche angegeben werden.

Zum Beispiel werden mit „S[0-9]{3;5}\-[A-Z]{3} die Teilenummern „S123-ABC“, „S12345-DEF“ oder „S7891-GHZ“ gefunden, nicht jedoch „S12-JHZ“ oder „S7853-ASDE“, da diese Nummern vom Filter überlesen werden. Schließlich sind einmal zu wenig Zahlen und einmal zu viele Buchstaben im Text enthalten.

Zu beachten ist auch, dass ein simples Komma nach einer Teilenummer das Finden einer eigentlich korrekten Zahl verhindert. „S7814-ADDR,“ würde also nicht gefunden werden, da die Zeichenkette durch das Komma als nicht zutreffend gewertet und daher überlesen wird.

Ascii-Code bis 127

Bedeutung des Ascii-Codes

  • 00 – NUL – Null character (Nullzeichen)
  • 01 – SOH – Start of heading (Anfang Dokumentkopf)
  • 02 – STX – Start of text (Textanfang)
  • 03 – ETX – End of text (Textende)
  • 04 – EOT – End of transmission (Ende der Übertragung)
  • 05 – ENQ – Enquiry (Anfrage)
  • 06 – ACK – Acknowledgment (Bestätigung)
  • 07 – BEL – Audible bell (Tonsignal)
  • 08 – BS – Backspace (Rückschritt)
  • 09 – HT – Horizontal tab (Horizonaltabulator)
  • 10 – LF – Line feed (Zeilenvorschub)
  • 11 – VT – Vertical tab (Vertikaletabulator)
  • 12 – FF – Form feed (Seitenvorschub)
  • 13 – CR – Carriage return (Wagenrücklauf)
  • 14 – SO – Shift out (Dauerumschaltung)
  • 15 – SI – Shift in (Ende Dauerumschaltung)
  • 16 – DLE – Data link escape (Datenverbindungs-Fluchtsymbol)
  • 17 – DC1 – Device control 1 (Gerätekontrollcode 1)
  • 18 – DC2 – Device control 2 (Gerätekontrollcode 2)
  • 19 – DC3 – Device control 3 (Gerätekontrollcode 3)
  • 20 – DC4 – Device control 4 (Gerätekontrollcode 4)
  • 21 – NAK – Negative acknowledgment (Negative Bestätigung)
  • 22 – SYN – Synchronous idle (Synchronisationssignal)
  • 23 – ETB – End of transmission block (Ende des Übertragungsblockes)
  • 24 – CAN – Cancel (Abbruch)
  • 25 – EM – End of medium (Ende des Mediums)
  • 26 – SUB – Substitute character (Ersetzen)
  • 27 – ESC – Escape (Fluchtzeichen)
  • 28 – FS – File separator (Dateitrenner)
  • 29 – GS – Group separator (Gruppentrenner)
  • 30 – RS – Record separator (Datensatztrenner)
  • 31 – US – Unit separator (Einheitentrenner)
  • 127 – DEL – Delete (Entfernen/Löschen)

Stolpersteine beachten

Darüber hinaus ist es noch wichtig zu wissen, dass passende Zeichen auch dann als gültig gewertet werden, wenn diese sich in einer Zeichengruppe befinden. So führt etwa a{2;3} dazu, dass aus der Zeichengruppe aaaaaa zwei Mal die Zeichen aaa als gültig eingelesen werden und diese Zeichen gegen das Ersetzen-Zeichen getauscht werden.

Aus mehreren Elementen zusammengesetzte Suchterme müssen in runden Klammern () zu so genannten "Ausdrücken" gruppiert werden. Nach diesen kann dann gesucht werden. Die Ergebnisse werden von Word in Variablen festgehalten, die bei 1 beginnen.

Jedes Klammerpaar bekommt demnach automatisch eine eigene fortlaufende Variable zugeordnet, in der das Suchergebnis gespeichert wird. Dies bedeutet, dass etwa die Ausdrücke (Ort) (Vorname) (Nachname) gesucht werden können und diese per \3 \2 \1 in die neue Reihenfolge (Nachname) (Vorname) (Ort) gebracht werden können. Natürlich muss für eine lange Liste, die umgebaut werden soll, ein raffinierterer Aufbau der Ausdrücke gewählt werden, um dies zu erreichen.

Zum Beispiel so: (<*>) (<*>) (<*>). Hier werden alle Orts- und Rufnamen einer dreispaltigen Namensliste getauscht. Dieses Beispiel funktioniert auch, wenn statt eines Namens eine Zahl vorhanden wäre. Sobald in dieser Zahl jedoch ein Punkt oder Komma vorhanden ist, versagt diese Lösung. Der Suchcode muss in diesem Fall anders aufgebaut werden und etwa diese Form besitzen: (<*>) (<*>) (<*>[?]<*>[?]<*>).

Damit werden Ziffern, die in der Form 123.456.789 vorkommen erkannt. Natürlich können durch die Verwendung des Asterisk-Zeichens * die Stellenzahl der Ziffern beliebig lang sein. Durch die Verwendung des ?-Zeichen ist es zudem egal, welches Zeichen als Trennzeichen verwendet wird. Ein Komma wird ebenso wie ein Punkt erkannt.

Leerzeichen entfernen

Nicht auf der Tastatur vorhandene Zeichen lassen sich durch Eingabe ihres Ascii-Codes suchen. So kann zum Beispiel per ^32 nach Leerzeichen gesucht werden. Diese Funktion ist nützlich, da von unerfahrenen Anwendern gerne Dokumente damit überladen werden, da diesem Personenkreis der Umgang mit dem Tabulator fremd ist. Sollen dann die überflüssigen Leerzeichen durch ein einziges Leerzeichen ersetzt werden, genügt die Eingabe von \1 in das Feld „ Ersetzen durch“.

Es ist allerdings zu beachten, dass hier eine runde Klammer verwendet werden muss, damit die gefundene Zeichenkette als Einheit verwendet und in die entsprechende Variable abgelegt wird: (^32)@. Das @-Zeichen bewirkt, dass solange Leerzeichen gesammelt werden, solange kein anderes Zeichen eingelesen wird. Per \1 oder ^32 oder ein (allerdings unsichtbares) Leerzeichen im Ersetzen durch-Feld kann dann diese ganze Zeichenkette gegen ein einziges Leezeichen ersetzt werden. Dadurch sind Dokumente schnell bereinigt.

Wer sich nun die Frage stellt, wohin die ganzen Leerzeichen entschwunden sind, die ja mit dem @-Zeichen gesammelt wurden, der ist auf dem besten Weg zu verstehen, wie die Feinheiten des Mustervergleichs funktionieren.

Feinheiten mit großer Wirkung

Wenn das @-Zeichen innerhalb der runden Klammer steht (^32@), werden alle Zeichen gesammelt und auch beispielsweise mit \1 wieder ausgegeben. Dadurch, dass das Zeichen jedoch außerhalb der runden Klammer steht, werden zwar die Leerzeichen gesammelt, jedoch nicht gespeichert und folglich auch nicht per \1 ausgegeben.

Die kurze Antwort lautet daher: Alles was in der runden Klammer steht, wird gesammelt und in einem Speicher abgelegt. In vielen dicken Büchern zu Word wird dieser Sachverhalt leider nicht ausführlich dargestellt, weshalb in der Handhabung der Suchen-Funktion sowie der Platzhalterzeichen viele Unsicherheiten bestehen, die hiermit ausgeräumt sind.

Der tiefe Griff in die Trickkiste von Word ermöglicht es, jeden Text entsprechend zu manipulieren, was sich nicht zuletzt für CNC-Programme anbietet. Schließlich gilt es hier, etwa unpassende Vorschübe oder Drehzahlen zu ersetzen. Doch viel interessanter ist es, CNC-Programme, die nicht mit Kommentaren versehen sind, diesbezüglich zu ergänzen.

Sprechende CNC-Programme

Die für das folgende Beispiel interessante Suchmaske ist unter „ersetzen“ zu finden. Schließlich sollen die gefundenen Wörter ersetzt beziehungsweise ergänzt werden. Wichtig ist in diesem Zusammenhang, dass der Button „erweitern“ betätigt wird, um die danach zum Vorschein kommende Funktion „Platzhalter verwenden“ zu aktivieren, wenn dies noch nicht der Fall sein sollte. Andernfalls würden die Platzhalter ignoriert werden.

Nun gilt es zunächst, ein kleines CNC-Programm zu schreiben oder ein entsprechendes zu laden. Wichtig ist, dass ausschließlich mit Kopien gearbeitet wird, um zu vermeiden, dass Originalprogramme zerstört werden.

Anschließend wird der Eintrag „G1“ unter „suchen“ und der Eintrag „Gerade“ unter „ersetzen“ eingetragen. Die Betätigung des Buttons „Alle ersetzen“ führt nun allerdings dazu, dass sowohl die gewünschten G1-Befehle aber auch G18- und G11-Befehle zum Opfer der Word-Suchfunktion werden.

Der Grund ist, dass Word jede Zeichenfolge, die zusammen G1 ergibt, mit dem Text „Gerade“ ersetzt. Erst die Abänderung von G1 nach G1> führt zum gewünschten Ergebnis. Die spitze Klammer nach rechts veranlasst, dass der gesuchte Ausdruck ausschließlich auf der rechten Seite einer zusammenhängenden Zeichenfolge stehen darf, ehe ein Treffer gemeldet wird. Daher bleiben die CNC-Befehle G18 und G11 im Gegensatz zum vorherigen Suchlauf unangetastet.

Wenn hingegen die spitze Klammer auf der linken Seite stehen würde, also so: <G1, dann wäre der Vorteil wieder dahin, da nun alle G1-Zeichenfolgen als Treffer gewertet werden, die sich auf der linken Seite eines Wortes befinden. Somit würde aus G18 wieder „Gerade8“, da jedes „G1“ durch „Gerade“ ersetzt wird und nur die „8“ stehen bliebe.

Makro aufzeichnen

Makros aufzeichnen

Die einfachste Art, zum gewünschten Makro zu kommen, führt über den Makro-Rekorder. Dazu ist es völlig ausreichend, nur den ersten Such- und Ersetzen-Vorgang für einen CNC-Befehl aufzuzeichnen und für die weiteren CNC-Befehle dann per Kopier- und Anpassaktion direkt im Makroeditor die entsprechenden Routinen zu erzeugen. Dieses Vorgehen führt wesentlich schneller zum fehlerfreien Makro. Darüber hinaus können mit diesem Vorgehen Befehlsschnipsel, etwa zum Einfärben von Text, erstellt werden und dem Makrobefehlscode zugefügt werden.

Der Makrocode kann genauso wie ein normaler Word-Text bearbeitet werden. Per [STRG]+[C] lassen sich Makroabschnitte kopieren und an geeigneter Stelle mit [STRG]+[V] wieder einfügen. Durch diese Vorgehensweise kann sehr rasch ein fehlerfreies Makro erstellt werden, das in der Lage ist, selbst ungewöhnliche Befehle mit Kommentaren zu versehen. Zudem ist noch zu beachten, dass Befehle in mehreren Schreibweisen vorkommen können. So muss etwa die Geradeninterpolation in der Form G1 oder G01 berücksichtigt werden. Für jeden Befehl ist eine eigene Such- und Ersetzen-Routine zu erstellen.

G1 mit Text "Gerade" ergänzen

Ergänzen statt ersetzen

Nun wäre es wohl nicht besonders Vorteilhaft, wenn die CNC-Befehle verschwänden und nur mehr der Kommentar zu lesen wäre. Dies würde das ehemalige CNC-Programm sicher nicht lesefreundlicher machen. In diesem Fall kommt die Zeichenkombination „\1“ zum Einsatz.

Abgesehen davon, dass der Backslash die Verwendung von Platzhalterzeichen als Suchen- oder Ersetzen-Zeichen gestattet, steht die Kombination aus Backslash und fortlaufender Zahl für verschiedene Speicherinhalte, die beim Suchvorgang gefüllt wurden.

Diese clevere Technik sorgt dafür, dass nach dem Löschen der gesuchten Zeichenfolge diese sofort wieder als Ergänzungstext an der alten Stelle erscheint, dem zudem der zusätzliche Ersetzen durch-Text angehängt wird. Zu beachten ist, dass auch Leerzeichen berücksichtigt werden. Ist dies nicht gewünscht, muss der Ersatztext direkt an die Zeichenkombination „\1“ geschrieben werden:\1=Gerade.

Um die Eigenschaften dieser bemerkenswerten Funktion zu demonstrieren, wird der Ersetzen-Text kurzerhand umgebaut: Gerade=\1. Als Ergebnis wird aus „G1“ der Text „Gerade=G1“. Nun ist es ein Leichtes, ganze CNC-Programme zu kommentieren, was jedoch nur mit einem Makro sinnvoll möglich ist.

Makros im Editor bearbeiten

Richtig speichern

Zu beachten ist zudem unbedingt, dass neue Word-Versionen die Makros nicht mehr automatisch mit dem Dokument abspeichern. In diesem Fall ist unbedingt die Option „Word-Dokument mit Makros“ zu wählen, um die mühevolle Kleinarbeit nicht umsonst getätigt zu haben. Die erstellte Word-Datei lässt sich künftig mit allen CNC-Programmen füllen und auf einfachste Weise mit Kommentaren versehen.

Download

Diesen Artikel können Sie hier im PDF-Format [1.137 KB] herunterladen. Die Word-Makros zum einfachen Einbinden in das eigene Projekt finden Sie hier [45 KB] . Diese sind auf die Befehle einer Philips 432-Steuerung abgestimmt, können jedoch leicht für jede beliebige Steuerung abgeändert werden. Die Verwendung erfolgt ausdrücklich auf eigene Gefahr. Welt der Fertigung übernimmt keine Gewähr für die jederzeitige korrekte Funktion und übernimmt keine Haftung für Schäden, die sich aus der Nutzung der Makros ergeben.

 

War dieser Artikel für Sie hilfreich?

Bitte bewerten Sie diese Seite durch Klick auf die Symbole.

Zugriffe heute: 1 - gesamt: 17887.