<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <TITLE>RemoteControl_de.htm</TITLE> <style>body{font: 10pt Verdana,sans-serif;}</style> </HEAD> <BODY LANG="de-AT"> <PRE> Letzte Änderung: 2013-02-25 <h2>RemoteControl gCAD3D</h2> <A HREF='#rc1'>Was ist RemoteControl</A> <A HREF='#PRI'>PRINT</A>(text) // Text im CAD-Ausgabefenster anzeigen <A HREF='#ADD'>ADD</A>(code) // CAD-Objekte speichern und anzeigen <A HREF='#ADF'>ADDFILE</A>(filNam) // CAD-Objekte aus Datei speichern und anzeigen <A HREF='#MOD'>MOD</A>(code) // CAD-Objekte modifizieren, anzeigen NEW // das gesamte Modell löschen MODSIZ(newsize) // Modellgrößen ändern END // gesamtes Modell neu anzeigen <A HREF='#SYM'>GETSYMDIR</A>(sym) // liefert den absoluten Pfad des Verzeichnisses <sym> <A HREF='#SYM'>SETSYMDIR</A>(sym,path) // speichert neues symbolisches Verzeichnis <A HREF='#SYM'>DELSYMDIR</A>(sym) // löscht symbolisches Verzeichnis <sym> <A HREF='#LOA'>LOAD</A>(modelname) // löschen und neues Modell laden (native,step,iges,dxf ..) <A HREF='#LSM'>LOADSM</A>(submodel) // Submodell laden (muss natives Modell (.gcad) sein) <A HREF='#SAV'>SAVE</A> // Modell mit aktuellem Modellnamen speichern <A HREF='#SAV'>SAVE</A>(new_modelname) // Modell mit anderem Modellnamen speichern ZOOMALL // Zoomfaktor automatisch <A HREF='#VIE'>VIEW</A>(center, scale, rotAng, tiltAng) // Ansicht ändern <A HREF='#SHO'>SHOW</A>(obj,off) // Object unsichtbar machen <A HREF='#SHO'>SHOW</A>(obj) // Object sichtbar machen <A HREF='#ATL'>ATTL</A>(linetypNr,objects) // Linientype ändern <A HREF='#ATS'>ATTS</A>("code",objects) // Flächenattribute ändern (Farbe, Texture, Symbolisch) <A HREF='#LDT'>LOADTEX</A>(texFilNam) // Texturdatei (Bild) laden ERRCLR // Fehlercode abfragen / löschen; 0=OK GETMODSIZ // aktuelle Modellgröße abfragen <A HREF='#GOI'>GETOBJINDNXT</A>(P) // nächsten freien Objektindex abfragen <A HREF='#GLN'>GETLNR</A> // aktuelle Zeilennummer abfragen <A HREF='#DFO'>DELFOLL</A>(lnr) // alle Objekte ab Zeile <lnr> löschen <A HREF='#USE'>USER</A> // Objekt von Anweder abfragen; Selektion / Abbruch (Esc.) <A HREF='#DUM'>DUMP</A>(list) // Ausgabe einer List in das Konsolfenster <A HREF='#MOD'>MODE</A>(widget,off|on) // Ein/Ausblenden von CAD-Fenstern; Browser, Menü, Toolbars .. __________________________________________________________________________ <p><a name="rc1"></a></p> Was ist RemoteControl Mit RemoteControl kann gCAD3D programmgesteuert bedient werden. Es können alle Programmiersprachen benutzt werden; auch skript-shells. Es werden 2 Pipes (Linux; MS-Windows: Files) zur Ein- und Ausgabe benutzt. Die Eingabe und die Ausgabe erfolgt mit Textcodes, nicht binär. Linux: Die Eingabepipe ist ${HOME}/gCAD3D/tmp/CTRLpin die Ausgabepipe ist ${HOME}/gCAD3D/tmp/CTRLpout Windows: Eingabe über %APPDATA%\gCAD3D\tmp\CTRLpin Ausgabe nach %APPDATA%\gCAD3D\tmp\CTRLpout Mit einem normalen Terminalprogramm (Linux: xterm oder gnome-terminal; MS-Windows: cmd) können Kommandos an gcad geschickt werden (zB. aktives Modell löschen): Linux: echo 'new' > ~/gCAD3D/tmp/CTRLpin MS-Windows: echo new>"%APPDATA%\gCAD3D\tmp\CTRLpin" Eine Befehlsdatei (mehrere Befehle) schicken: - put the following 6 lines into file t1.dat: new add(P1=P(100 0 0)) add(C1=P1 50) #eof Datei schicken: Linux: cat t1.dat > ~/gCAD3D/tmp/CTRLpin MS_Windows: copy t1.dat "%APPDATA%\gCAD3D\tmp\CTRLpin" Empfang der Ausgaben von gcad (zB Anzeige der Ausgabe in einem Terminalfenster): Linux (Verbindung bleibt bestehen): cat ~/gCAD3D/tmp/CTRLpout MS-Windows (Datei wird nach jedem RemoteCommand neu erstellt): type %APPDATA%\gCAD3D\tmp\CTRLpout Gcad sendet nach jedem Kommando zumindest ein Neue-Zeile-Zeichen (newline, Ascii 10). <b>Programmierbeispiele:</b> VB.Net (MS-Windows): <A HREF="../../prg/Demo1gCadRemoteControl.zip">Demo1gCadRemoteControl.zip</A> Java (Linux): <A HREF="../../prg/DemoRC1.java">DemoRC1.java</A> Alle folgenden angeführten Beispiele sind Linux-Beispiele. Bitte senden Sie verbesserte Programme oder Programme für andere Programmiersprachen an support at gcad3d.org __________________________________________________________________________ <p><a name="PRI"></a></p> PRINT(text) // Text im CAD-Ausgabefenster anzeigen Objekte (Punkte, Vektoren, Variablen) werden dekodiert; die Werte werden angezeigt. Beispiel: echo 'print("TestPrint 1")' > ~/gCAD3D/tmp/CTRLpin # Anzeige der Koordinaten von Punkt P1 und Vektor D1: echo 'print("P1 = ",P1," D1 = ",D1)' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="GLN"></a></p> <p><a name="DFO"></a></p> GETLNR // aktuelle Zeilennummer abfragen DELFOLL(lnr) // alle Objekte ab Zeile <lnr> löschen # die Zeilennummer von GETLNR kann später mit DELFOLL zum Löschen der # danach erzeugten Objekte benutzt werden. __________________________________________________________________________ <p><a name="GOI"></a></p> GETOBJINDNXT(typ) // nächsten freien Objektindex abfragen # Beispiel: nächsten freien DB-index für Punkte abfragen: echo 'GETOBJINDNXT(P)' > ~/gCAD3D/tmp/CTRLpin # Siehe Liste <a href="CAD_Base_de.htm#Codeletters">Objekttypen</a> __________________________________________________________________________ __________________________________________________________________________ <p><a name="ADD"></a></p> ADD(code) // CAD-Objekte speichern und anzeigen # Code: ein gcad-ObjektText; siehe <a href="CAD_Base_de.htm#Codes">Codes</a> # zB Punkt erzeugen mit: echo 'add(P1=P(100 0 20))' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="ADF"></a></p> ADDFILE(filNam) // CAD-Objekte aus Datei speichern und anzeigen echo 'addfile("t1")' > ~/gCAD3D/tmp/CTRLpin Beispiel für Datei t1: MODE(MEN,off) MODE(BRW,off) MODE(BAR1,off) MODE(BAR2,off) new add(P1=P(100 0 0)) add(C1=P1 50) zoomall #eof __________________________________________________________________________ <p><a name="MOD"></a></p> MOD(code) // CAD-Objekte modifizieren, anzeigen Beispiel: echo 'MOD(V1=70)' > ~/gCAD3D/tmp/CTRLpin # Ändern der Zeile "V1=50" im Code (siehe unten) und Update der Variablen V1 # und des Kreises C1. P1=P(100 100 0) V1=50 C1=P1 V1 __________________________________________________________________________ <p><a name="SYM"></a></p> GETSYMDIR(sym) // liefert den absoluten Pfad des Verzeichnisses <sym> SETSYMDIR(sym,path) // speichert neues symbolisches Verzeichnis DELSYMDIR(sym) // löscht symbolisches Verzeichnis <sym> # Abfrage des (absoluten) Pfades des Symbols "Data" echo 'GETSYMDIR("Data")' > ~/gCAD3D/tmp/CTRLpin # Neues Symbol "myPath" auf Verzeichnis "/tmp/gcad/" setzen. echo 'SETSYMDIR("myPath","/tmp/gcad/")' > ~/gCAD3D/tmp/CTRLpin # Symbol "myPath" löschen: echo 'DELSYMDIR("myPath")' > ~/gCAD3D/tmp/CTRLpin # Fehler löschen: echo 'ERRCLR' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="LOA"></a></p> LOAD(modelname) // löschen und neues Modell laden (native,step,iges,dxf ..) Modell laden; Dateiname kann symbolisch, relativ oder absolut sein. # Beispiel symbolischer Dateiname: echo 'load("Data/sample_area1.gcad")' > ~/gCAD3D/tmp/CTRLpin # Beispiel relativer Dateiname: (verwendet das aktuelle symbolische Verzeichnis): echo 'load("../dat/sample_area2.gcad")' > ~/gCAD3D/tmp/CTRLpin # Beispiel absoluter Dateiname: echo 'load("/tmp/test1.gcad")' > ~/gCAD3D/tmp/CTRLpin echo 'MODSIZ(10000)' > ~/gCAD3D/tmp/CTRLpin echo 'END' > ~/gCAD3D/tmp/CTRLpin <p><a name="LSM"></a></p> LOADSM(submodel) // Submodell laden (muss natives Modell (.gcad) sein) # Submodelle müssen in einem Verzeichnis mit Symbol liegen. # Siehe SETSYMDIR. # Beispiel Submodelle laden, positionieren: echo 'new' > ~/gCAD3D/tmp/CTRLpin echo 'loadsm("Data/sample_mod_blech1.gcad")' > ~/gCAD3D/tmp/CTRLpin echo 'loadsm("Data/sample_mod_screw1.gcad")' > ~/gCAD3D/tmp/CTRLpin echo 'loadsm("Data/sample_mod_nut1.gcad")' > ~/gCAD3D/tmp/CTRLpin echo 'add(M20="sample_mod_blech1" P(0 10 0))' > ~/gCAD3D/tmp/CTRLpin echo 'add(M21="sample_mod_screw1" P(30 36.5 67))' > ~/gCAD3D/tmp/CTRLpin echo 'add(M22="sample_mod_nut1" P(36 36.5 67))' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="SAV"></a></p> SAVE // Modell mit aktuellem Modellnamen speichern SAVE(new_modelname) // Modell mit anderem Modellnamen speichern # Aktives Modell als "test1.gcad" im symbolischen Verzeichnis "Data" speichern. # Siehe SETSYMDIR. echo 'save("Data/test1.gcad")' > ~/gCAD3D/tmp/CTRLpin # speichern. echo 'save' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="VIE"></a></p> VIEW(center, scale, rotAng, tiltAng) // Ansicht ändern # Ansichts-maßstab ändern: echo 'view(0.25)' > ~/gCAD3D/tmp/CTRLpin # Ansicht über Verdrehwinkel und Kippwinkel ändern (in Grad) echo 'view(ang(45) ang(30))' > ~/gCAD3D/tmp/CTRLpin # Ansicht verschieben (Bildschirmittelpunkt ändern): echo 'view(P(38 49 7))' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="SHO"></a></p> SHOW(obj,off) // Object unsichtbar machen SHOW(obj) // Object sichtbar machen # Linie L21 unsichtbar machen echo 'show(L21,off)' > ~/gCAD3D/tmp/CTRLpin # Linie L21 sichtbar machen echo 'show(L21)' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="DUM"></a></p> DUMP(list) // Ausgabe einer List in das Konsolfenster DUMP("GA") // Ausgabe der Liste der graf. Attribute DUMP("DL") // Ausgabe Display-Liste DUMP("AT") // Ausgabe Linietypentabelle DUMP("TX") // Ausgabe Texturen DUMP("SD") // Ausgabe aller symbolischen Verzeichnisse # Ausgabe der Liste der graf. Attribute echo 'DUMP("GA")' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="MOD"></a></p> MODE(widget,off|on) // Ein/Ausblenden von CAD-Fenstern; Browser, Menü, Toolbars .. # Menü aus echo 'MODE(MEN,off)' > ~/gCAD3D/tmp/CTRLpin # Brwowser aus echo 'MODE(BRW,off)' > ~/gCAD3D/tmp/CTRLpin # Balken oben aus echo 'MODE(BAR1,off)' > ~/gCAD3D/tmp/CTRLpin # Nachrichtenfenster unten aus echo 'MODE(BAR2,off)' > ~/gCAD3D/tmp/CTRLpin # Nachrichtenfenster unten wieder Ein. echo 'MODE(BAR2,on)' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="ATL"></a></p> ATTL(linetypNr,objects) // Linientype ändern # Linientypen 0 - 12 sind vordefiniert in Datei ~/gCAD3D/cfg/ltyp.rc # See <a href="Settings_de.htm#Linetypes">Defaultsettings</a> # Linientyp = 8 setzen für L21 und L22 echo 'ATTL(8,L21,L22)' > ~/gCAD3D/tmp/CTRLpin # Linientyp ändern/erzeugen (G<linienTypNr> = Farbe,Linientyp,Dicke) # Linientyp G13 erzeugen: grün, Volllinie, Dicke = 4 mit: echo 'add(G13=3,0,4))' > ~/gCAD3D/tmp/CTRLpin # Linientyp = 13 setzen für L21 and L22 echo 'ATTL(13,L21,L22)' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="ATS"></a></p> ATTS("code",objects) // Flächenattribute ändern (Farbe, Textur, Symbolisch) Beispiel: # Typ der Fläche A21 auf Symbolisch ändern (nicht schattiert) echo 'ATTS("S" A21)' > ~/gCAD3D/tmp/CTRLpin # auf Standardfarbe zurücksetzen echo 'ATTS("C" A21)' > ~/gCAD3D/tmp/CTRLpin # Farbe grün setzen (Rot-Anteil-0, Grün-Anteil-255, Blau-Anteil-0) echo 'ATTS("C00ff00" A21)' > ~/gCAD3D/tmp/CTRLpin # Transparent setzen (T0=normal, T1=halb transparent, T2=voll transparent) echo 'ATTS("T2" A21)' > ~/gCAD3D/tmp/CTRLpin <p><a name="LDT"></a></p> # Textur laden und aktiv setzen. # Texturen müssen in einem Verzeichnis mit Symbol liegen. echo 'LOADTEX("DIR_BMP/Ziegel1.bmp")' > ~/gCAD3D/tmp/CTRLpin # Texture auf Fläche A21 aufbringen; hor./vert. Maßstab auf "0.5,0.5". # ATTS("X<Maßstab>,<Offsets>,<Winkel>",Objekte) // aktive Textur aufbringen echo 'ATTS("X0.5,0.5" A21)' > ~/gCAD3D/tmp/CTRLpin __________________________________________________________________________ <p><a name="USE"></a></p> USER // Objekt von Anweder abfragen; Selektion / Abbruch (Esc.) # vom Anwender ein Objekt auswählen lassen echo 'USER' > ~/gCAD3D/tmp/CTRLpin # liefert "SEL(P(-3.244327 -10.077265 0.000000))" bei Positionsanzeige # liefert "SEL(C16)" bei Auswahl von Objekt C16 # liefert "SEL()" bei Escape-Taste gedrückt </PRE> </BODY> </HTML> </PRE> </BODY> </HTML>