einfaches scripting plus Steigerung "Text in Zeichnung"

Bitte benutzen Sie dieses Forum für Fragen, Kommentare und Probleme im Zusammenhang mit QCAD Professional

Moderators: andrew, Husky

Forum rules

Immer Betriebssystem und QCAD Version angeben.

Zeichnungsdateien und Bildschirmfotos beifügen.

Eine Frage pro Topic.

Post Reply
QTrain
Newbie Member
Posts: 4
Joined: Tue Oct 27, 2015 8:59 am

einfaches scripting plus Steigerung "Text in Zeichnung"

Post by QTrain » Fri Feb 12, 2016 12:41 pm

Hallo zusammen,
ich versuche, die Scripting tutorials zu verstehen, drehe mich irgendwie immer im Kreis. Habe scheinbar nicht verstanden wie ich eine .js aufbaue, um entsprechende entities über ./qcad -autostart xyz.js zeichnen zu lassen.

Ich brauche folgendes:
1. Wie kann ich in eine bestehende .dwg oder .dxf einen Text "DiesistderBeispieltext" an Position x,y zeichnen lassen?
2. Wie kann ich in eine bestehende .dwg oder .dxf mehrere Texte "DiesistderBeispieltext1"; "DiesistderBeispieltext2" an Position x1,y1 bzw. x2,y2 zeichnen lassen? Die Texte und Positionen sollen in einer Text-Datei hinterlegt sein und zum Beispiel mit ; getrennt sein.
Beispiel: text.txt
"DiesistderBeispieltext1";0;0
"DiesistderBeispieltext2";0;5
"DiesistderBeispieltext3";0;10
3. Krönender Abschluß:
Wie kann ich Texte, die in einer mysql-DB hinterlegt sind automatisch in ein .dwg oder .dxf übernehmen lassen?

Mir wäre schon bei 1 und 2 gut geholfen, da ich annehme, dann das scripting auch verstanden zu haben, so daß ich die DB-Verbindung und die Übernahme der Texte selbst hinbekomme.
Danke vorab für die Unterstützung.

User avatar
andrew
Site Admin
Posts: 9052
Joined: Fri Mar 30, 2007 6:07 am

Re: einfaches scripting plus Steigerung "Text in Zeichnung"

Post by andrew » Fri Feb 12, 2016 1:13 pm

QTrain wrote:Habe scheinbar nicht verstanden wie ich eine .js aufbaue, um entsprechende entities über ./qcad -autostart xyz.js zeichnen zu lassen.
Mit dem Argument -autostart wird die QCAD Applikation ersetzt durch das autostart Skript. D.h. es wird keine Benutzeroberfläche geöffnet. Dies wird verwendet für Kommandozeilenwerkzeuge (z.B. 'merge', 'dwg2pdf, 'dwg2bmp', 'dwg2svg', etc. Ein solches Autostart Skript kann irgendwelchen Code enthalten. In einfachsten Fall z.B.:

Code: Select all

print("Hello World");
Wenn QCAD ganz normal mit Benutzeroberfläche gestartet werden soll und anschliessend ein Skript ausgeführt werden soll kann stattdessen -exec verwendet werden. Dieses Beispiel öffnet die Datei examples/flange.dxf und startet dann das Skript um alles zu selektieren:

Code: Select all

./qcad examples/flange.dxf -exec scripts/Select/SelectAll/SelectAll.js
Ein solches Skript muss eine Klasse definieren mit demselben Namen wie dem Dateinamen. Die Klasse muss ausserdem von EAction abgeleitet sein.

Zunächst muss also entschieden werden, ob ein Kommandozeilenwerkzeug (resp. eine eigene Applikation) erstellt werden soll oder ein Werkzeug welches mit in der QCAD Benutzeroberfläche ausgeführt wird und evtl. auch über einen Menüeintrag oder eine Schaltfläche gestartet werden kann. Die erste Struktur des Skriptes hängt sehr stark von dieser Entscheidung ab.

QTrain
Newbie Member
Posts: 4
Joined: Tue Oct 27, 2015 8:59 am

Re: einfaches scripting plus Steigerung "Text in Zeichnung"

Post by QTrain » Thu Feb 18, 2016 2:10 pm

Danke für die schnellen und kompetenten Antworten!
Für mich ist zielführend das Kommandozeilenwerkzeug. Wie z.B. im Tutorial das Zeichnen eines Dreiecks.

Mir würde für das erste schon mal reichen bei diesem Beispiel "Dreieck" das Script so zu ergänzen, dass an den
drei Eckpunkten jeweils der Text "A", "B", "C" automatisch hinzugeschrieben wird.
Die drei Positionen sind ja definiert. Und jetzt, idealerweise auf einem Layer "Text", die drei Texte eingetragen werden.
Welchem "var ...TextEntity( .....)" bzw. "operation.addObject(new ...Entity(...))" kann man das dann in das Beispielscript einbinden? Und wie werden die Parameter gesetzt?
Ich denke wenn ich da einen Einstieg habe kann ich mir das Andere erschliessen.

Danke vorab!

User avatar
andrew
Site Admin
Posts: 9052
Joined: Fri Mar 30, 2007 6:07 am

Re: einfaches scripting plus Steigerung "Text in Zeichnung"

Post by andrew » Thu Feb 18, 2016 3:20 pm

Beispiel Skript zum Hinzufügen eines Layers:
https://github.com/qcad/qcad/blob/maste ... ayerAdd.js

Beispiel Skript zum Hinzufügen von Text (Misc > Script Examples > Draw > Text):
https://github.com/qcad/qcad/blob/maste ... /ExText.js

Post Reply

Return to “QCAD Professional”