gCAD3D


Version 1.18 / 2008-09-07





Allgemeines

Viewer / Grafikfunktionen

Ein-/Ausgabefunktionen

Funktionen VWR / CAD / MAN

NC-Funktionen

MultiModelsupport

Programmfunktionen






Lizenz

gCAD3D ist kostenlos (Freeware).
gCAD3D darf ohne Einschränkung für private und kommerzielle Zwecke genutzt werden.
gCAD3D darf kopiert und weitergegeben werden.
Zusatzprogramme zu gCAD3D (DLL's) unterliegen keiner Einschränkung von gCAD3D.

JEDE HAFTUNG WIRD AUSGESCHLOSSEN.
JEDE GEWÄHRLEISTUNG WIRD AUSGESCHLOSSEN.


Copyright (C) 1999-2007 CADCAM-Services Franz Reiter
http://www.gCAD3D.org
franz.reiter@cadcam.co.at








Funktionsweise

gCAD3D verfügt über



Die Erzeugung der Geometrie / des NC-Programmes erfolgt über -



Der Programminterpreter bietet die Funktionen zur



Für Dokumentationen existieren folgende Funktionen:


Mit Modellobjekten verknüpfte Interaktionen ermöglichen:


Der NC-Prozessor ist eine Makroprogramminterpreter; die Makroprogramme befinden sich im Verzeichnis <base>/wc/*.mac. Makroprogramme bestehen aus Ascii-Texten zur:



Die Ausgabe der Daten erfolgt über den -


Programmintern werden  ausschliesslich die im Editorfenster befindlichen Textdaten gespeichert und bearbeitet.
Die Darstellung wird ausschliesslich aus diesen Textcodes generiert.
Analytische Kurven und Flächen (Ellipsen, Ruled und Revolved Surfaces) werden NICHT in Splines / NURBS umgewandelt sondern immer analytisch bearbeitet und auch in Orignalform exportiert / gespeichert.

Das Programminterface ermöglicht -

Detailinformationen dazu befinden sich in Datei xa/gCAD3D_prog_de.txt.

Automatisierung:
gCAD3D kann automatisch ein Modell laden oder ein Plugin-Programm starten; die dazu erforderlichen Startparameter sind in Datei gCAD3D_prog_de.txt, Kapitel Startup dokumentiert.


Programmstart:
Beim Programmstart wird automatisch Modell <base>tmp/Model eingelesen. Submodels haben die Dateinamen <base>tmp/Model_<submodelname>.
Sie können diese Dateien durch beliebige Vorlaufprogramme erstellen.
Datei <base>tmp/Model wird am Programmende automat. erstellt.












Einstellungen / Standards


Einstellungen

Standards / Tolerances

Standards / Text

Standards / Directories

Standards / Linetypes





Einstellungen:

Div. Voreinstellungen (Print-Befehl, Browser) werden aus Datei <base>/tmp/xa.rc eingelesen.

Die Fontgrösse kann in Datei <base>/xa/xa.rc verändert werden.

Verzeichnisse auf die zB mit File/Open zugegrifen werden soll sind in die Datei <base>/xa/dir.lst einzutragen (Format: "symbolischerPfadname /vollerPfadname/").
Die interaktive Funktion dazu ist Standards/Directories (Schreibrecht ?)

Standardwerte für Z-Buffersize, Modelsize, Textsizes befinden sich in Datei <base>/xa/gCAD3D.rc.
Die interaktiven Funktionen dazu sind Standards/Tolerances und Standards/Text.

Die Setup-Datei für die Postscript-Ausgabe ist <base>/xa/psv.setup.

 


Standards / Tolerances

Einstellung der (maximalen) Modelsize. Es werden automatisch die Toleranzen davon abgeleitet.

Modify

 Das gesamte Modell wird sofort neu berechnet.

Reset
 Es werden die (in Datei <base>/xa/gCAD3D.rc) verdefinierten Werte geladen.




Standards / Text

Es können die Default-Textgrößen und ein Skalierungsfaktor definiert werden.
Die Default-Textgröße bei Notes wird aktiv, wenn keine explizite Textgröße definiert ist.

Modify
 Das gesamte Modell wird sofort neu berechnet.

Reset
 Es werden die (in Datei <base>/xa/gCAD3D.rc) verdefinierten Werte geladen.



Standards / Directories

Alle Verzeichnisse, auf die mit File/OpenModel zugegriffen werden soll, müssen hier definiert werden.
Es muss für jedes Verzeichnis eine symbolische Bezeichnug definiert werden (kann frei gewählt werden).
Beim Laden von Modellen innerhalb der Programme muss das Symbol verwendet werden.

Es wird der Systemeditor mit Datei <base>/xa/dir.lst aufgerufen.

Im File/OpenModel - Dialog kann mit dem Button "<<---" das Verzeichnis gewechselt werden.

Beispiel Unix:
Data     /usr/home/gCAD3D/dat/
IGS      /mnt/win_d/gCAD3D/Models/igs/

Beispiel MS-Windows:
Data     F:\Programme\gCAD3D\dat\
IGS      F:\Models\gCAD3D\igs\
CD0      D:\

Das symbolische Verzeichnis '.' wird durch das momentan aktive Verzeichnis ersetzt
(z.B. um Texturen aus dem gleichen Verzeichnis wie das native Model zu laden).






Standards / Linetypes

Im Verzeichnis <base>/tmp/ltyp.rc befindet sich die Linientypentabelle.
Die Originaldatei ist <base>/xa/ltyp.rc.

Es wird der Systemeditor mit dieser Datei aufgerufen, es können zusätzliche Linientypen (bis dzt max 50) definiert werden.

Diese Tabelle ist für alle momentan geladenen Submodelle gültig.
Diese Tabelle wird nicht mit den Modellen abgespeichert; im Modell wird nur der Tabellenindex gespeichert.

Beispiel:
Die Objekte L20 und L21 sind dünn,strichliert:
Linetyp 2 (G2) ist definiert in Datei ltyp.rc mit:
2 0 2 1   (Index 2, Farbe Standard (0=schwarz), Linetyp strichliert (2), Liniendicke Standard (1=dünn)).




Erste Schritte

- Laden sie ein Modell (File / Open Model / sample1.gcad, OK).


- END - Button:

Es wird das gesamte Programm, beginnend in der ersten Zeile,  bis zum Dateiende abgearbeitet. Dadurch erst wird auch die Geometrie dargestellt.



- Scal.All - Button:

Vergrößerung und Darstellungsmittelpunkt werden optimiert.



Weiter mit Ansicht verschieben, vergrössern, drehen.





Fehler / Offene Punkte


- Funktionen zur Erzeugung von Kreisen tangential an Polygon, Ellipse, Spline fehlen.
    (Kreise können dzt nur tangential an Linien und Kreise erzeugt werden).

- Funktionen zur Erzeugung von Kreisen tangential an drei Objekte fehlen.
    (dzt nur Kreis durch 3 Punkte).

- Funktionen zur Erzeugung von Tangenten an Ellipse und B-Spline fehlen noch.

- Curve = Intersection Surface X Surface fehlt noch.

- Project und Mirror dzt nur für einzelne Objekte, nicht für CCV (dzt nur Translate).

- Zur Modifikation von B-Splines ist ein interaktiver Editor zu erstellen

- Transformation von 3D-Text: werden dzt immer in die X-Y-Ebene gesetzt.

- NC: NC-Bearbeitungen werden grafisch noch nicht ins aktive Referenzsystem transformiert.

- NC-Funktionen für Submodels (NC-Unterprogramme) noch nicht fertig implementiert

- Funktionen zur Erzeugung von Schnittkurven von Flächen noch nicht fertig implem.

-  Funktion zum interaktiven Positionieren von subModellen bis zu einer Kontaktposition

- Zeichnungsableitung 2D -> 3D noch nicht implementiert.

- bei Schraffuren keine Inseln möglich

- Die Programmierschnittstellen sind nur teilweise dokumentiert.





Autoren / Support



Autoren:

Franz Reiter
UserInterface, gtk-Interface, OpenGL-Interface, Integration.

franz.reiter@cadcam.co.at

Thomas Backmeister
Alle Spline- und Bezier-Funktionen,
subDivisionSurfaces (coming soon ..)

t.backmeister@gmx.at

Karl Sauer
Wertvolle Tips zur Konturverarbeitung




Vielen Dank auch den Entwicklungsteams von Gtk, Mesa, Vim, Gcc und Gdb.

Primäre Entwicklungsplattform ist Linux;
  jede Version wird nach MS-Windows portiert.

Wenn Sie zu weiteren Funktionen oder zur Dokumentation beitragen möchten, schicken Sie bitte eine Mail an franz.reiter@cadcam.co.at.






Ansicht verschieben, vergrößern, drehen


Verschieben
der gesamten Grafik durch Drücken der Shifttaste und verschieben der Maus.
(Halten Sie die Shifttaste gedrückt, keine Maustaste drücken).


3D-Rotation
der gesamten Grafik durch Drücken der Controltaste ("Strg") und verschieben der Maus.
Horizontales verschieben der Maus dreht den Teil um seine Z-Achse.
Der Drehmittelpunkt ist immer automatisch der Bildschirmmittelpunkt.
Vertikales verschieben der Maus kippt den Teil in der Bildebene.
Siehe: Bestimmen der Z-Ebene der Drehung.


Vergrößern / Verkleinern
der gesamten Grafik durch Drücken der Shifttaste und der Controltaste.
Von oben nach unten verschieben bewirkt ein Vergrössern.


Scal.All - Button:
bewirkt ein Zurücksetzen der Grafikverschiebung und Vergrößerung auf einen optimalen Wert.
Es werden die Vergrösserung und der Darstellungsmittelpunkt automatisch berechnet.


Scal.Fix - Button:
Einstellen einer fixen, vordefinierten Vergrösserung, entsprechend dem Wert MODSIZ (ungefähre Maximalgröße des Modells). Standardwert ist 500 mm.
Änderung MODSIZ durch Funktion Standards / Tolerances oder durch Command
MODSIZ <wert>


Clear - Button:
Zum Löschen der gesamten Grafik. Es können nun im STEP - Mode einzelne Objekte dargestellt werden;





Z-Ebene der Ansicht definieren


Die momentan aktive Ebene für das interaktive Drehen wird durch ein gelbes Rechteck angezeigt.
Verändern durch:

Die Darstellungsebene (erkennbar durch ein gelbes Rechteck) wird verschoben, die Drehachse für das interaktive Drehen wird in die definierte Ebene verlegt.




vordefinierte Ansichten

TopView - Draufsicht (Ansicht X-Y)
FrontView - Seitenansicht (Ansicht X-Z)
SideView - Seitenansicht (Ansicht Y-Z)
AxoView - Axonometrische Ansicht




Display - Menü

Save / Restore
Die momentane Ansicht kann gespeichert / zurückgesetzt werden.

Names:
  Darstellung der Namenstexte der Elemente; also zB "P20".
  Darstellung der Richtung aller Bearbeitungswege durch Richtungspfeile.

NC-Text:
  Darstellung der NC-Hilfsfunktionen (als Text) an den jeweiligen Positionen.
  Dargestellt werden z.B. alle Insert-Texte, STOP, ....



Hide / View

Hide: es werden beliebige graf. Objekte ausgeblendet.

View:
es werden nur alle momentan ausgeblendeten Elemente angezeigt; selektieren Sie Elemente, die wieder dargestellt werden sollen.








compress_native_models

Der Dateityp unkomprimierter Dateien ist .gcad;
Der Dateityp komprimierter Dateien ist .gcaz.
Die Komprimierung erfolgt mit "gzip -qc {unkompr.} > {kompr.}"
Die DeKomprimierung erfolgt mit "gzip -dqc {kompr.} > {unkompr.}"
Somit kann man in Unix und MS-Windows Modelle auch mit der
Standardfunktion gzip komprimieren / dekomprimieren.

Die Kompressionsrate ist etwa 70 %.

------------------
the filetype for uncompressed files is .gcad;
the filetype for the compressed files is .gcaz;
compression is done with "gzip -qc  > "
decompression is done with "gzip -dqc  > "
This works for Unix and MS-Win and you can compress and
decompress the models at any time without a cad-system.

The compressionrate is around 70 percent.




Open / Save Model



File / New
Modelspace und alle Submodelspaces löschen.


File / Open Model
Laden oder importieren eines Modells. Dateien werden entsprechend dem Filetyp automatisch umgewandelt,
für Mockup-Modelle und Bitmaps wird ein  Import-Befehl generiert.
Verzeichnis: siehe Standards/ Directories.

Import / Export DXF
Import / Export Iges
Import Step
Import STL (Ascii)
Import 3DS
Import LWO

Mockup-Modelle:
Mockup-Modelle sind fertig tesselierte Modelle, die besonders schnell importiert werden.
Ein Modell kann als Mockup-Modell in den Formaten VRML-1 oder WaveFront-OBJ oder TESS importiert / exportiert werden. Ein Mockup-Modell selbst kann nicht mehr exportiert werden.
Mockup-Modelle können nur aus Verzeichnissen, die mit einem symbolischen Pfad definiert sind, importiert werden.

Import / Export VRML-1
Export VRML-2 (VRML-97)
Import / Export WaveFront-OBJ
Import / Export TESS



Bitmap-Modelle:
Damit können Pixel-Images in den 3D-Raum geladen werden.

Import Bitmaps





File / Open Model new Dir
Laden eines Modells aus einem allgemeinen Verzeichnis.
Nach der Dateiauswahl wird  ein symbolischer Pfadname abgefragt, der dann bei den Standardverzeichnissen eingetragen wird.
Verzeichnis: siehe Standards/ Directories.



File / Insert:
SubModelle werden nicht gelöscht.
Mockup-Modelle (wrl): Es wird ein entsprechender Ladebefehl zugefügt.
Iges,Step-Modelle: die Modelldaten werden an das bestehende Modell zugefügt.
Native Modelle (.gcad): werden derzeit als Hauptmodell geladen.
  Mehrere native Modelle laden:
    Insert, dann subModels/move_main_-->_new-subModel, internes subModel positionieren.





Import Mockup native
Schalterstellung EIN: das nachfolgend geladene Modell (dzt nur OBJ) wird als native Modell geladen.
Damit kann es wieder zB als WRL oder TESS exportiert werden.

Schalterstellung AUS:
(Standard) Nachfolgend wird ein obj-Modell als Mockup-Modell geladen (wird somit besonders schnell galden, kann aber nicht mehr verändert / exportiert werden).




Save Model
abspeichern (nur native) mit dem aktuellen Modelnamen.
Für native Daten sollte Dateiendung .gcad verwendet werden.
Native Daten sind die im Editfenster angezeigten Texte).



Save Model as
abspeichern mit einem neuen Modelnamen. Das Format wird entsprechend dem Filetyp gewählt.
Bereits tesselierte Modelle (Mockups) können nicht mehr tesseliert werden.
Es wird das Hauptmodell mit allen internen Submodellen gespeichert.



Save Model new Dir
abspeichern in einem allgemeinen Verzeichnis.




Import / Export - DXF

Liste der unterstützten DXF - Objekttypen:

Typ

Import

Export

POINT

X

X

VERTEX

X

X

LINE

X

X

CIRCLE

X

X

ARC

X

X

POLYLINE

X

X

3DLINE

X

X

TEXT

X

X

3DFACE

X

X

DIMENSION

X

X

HATCH

-

-

ELLIPSE

X

-

LWPOLYLINE

X

-

MTEXT

X

-

BLOCK/INSERT

-

-


Ellipsen und B-Spline-Kurven werden als POLYLINE ausgegeben.

Gedimmte ("DIM") und mit DRAW OFF ausgeblendete Objekte werden nicht exportiert.

Export: es werden die tesselierten Surfaces als 3DFACE's ausgegeben.
    (Anzahl 3-Ecke: Standards/Tolerances).



Import / Export - Iges


Liste der unterstützten Iges - Objekttypen:


Typ


Import

Export

Punkt

116  

X

X

Linie

110

X

X

Kreis

100

X

X

Par.Spline

112

X

X

B-Spl.Kurve

126

X

X

B-Spl.Fläche  

128

X

X

Polylines

106 Form 11,12  

X

X

CompositeCurve

102

X

X

Text

212

X

X

Ebene

108

X

X

Ellipse

104 Form 1

X4

X

Subfig.Def.

308

X

X

Subfig.Ref.

408

X

X

RuledSurface

118

X

X

Rev.Surface

120

X

X

Zylinderfläche

122

X

5)

CurveOnSurf

142

X

X

TrimmedSurf.

144

X

X


X4    dzt noch nicht: Hyperbel, Parabel (Form 2, 3).
5)    Ausgabe als Rev.Surf oder RuledSurf.



Getestet mit CATIA-V4 und CATIA-V5 (V5: Subfigures werden aufgelöst (kopiert)).
Referenzen auf Externe SubModels werden noch nicht exportiert.
Gedimmte ("DIM") und mit DRAW OFF ausgeblendete Objekte werden nicht exportiert.



Import Step

Es können STEP ISO-10303-21 - AP203 - AP214 - Files importiert werden.
Die Import-Funktionen basieren nicht auf den Express-Funktionen.
Getestet mit CATIA-V4 und CATIA-V5.



Import / Export VRML-1

VRML-1-Modelle werden als Mockups (Modell nicht veränderbar) importiert / exportiert.


EXPORT:
 - kann Assemblies (subModels) exportieren
 - kann Mockup-Submodelle (WRL/OBJ/TESS) nicht reexportieren



Export VRML-2  (VRML-97)

- kann Assemblies(subModels) exportieren
- kann Mockup-Submodelle (WRL/OBJ/TESS) nicht reexportieren
- kann Texturen noch nicht exportieren





Import / Export WaveFront-OBJ

Es werden derzeit nur OBJ-Ascii-Dateien importiert / exportiert.
OBJ-Dateien können als Modelle (veränderbar) und Mockup-Modelle (nicht veränderbar) geladen werden.

Es werden nur die folgenden Objekttypen importiert / exportiert:
v    (Vertices)
f     (Faces)


EXPORT:
 - kann dzt exportierte Submodelle nicht positionieren
 - kann Mockup-Submodelle (WRL/OBJ/TESS) nicht reexportieren



Import / Export TESS

Es werden die Binärdaten der fertig tesselierten Flächen in eine Datei mit Dateityp .tess ausgegeben (also nur Mockup-Modelldaten).
Beschreibung Dateiformat in Datei gCAD3D_prog_de.txt.
Demo-Programm folgt.

EXPORT:
 - kann dzt nur single Models (keine subModels) exportieren
 - kann Mockup-Submodelle (WRL/OBJ/TESS) nicht reexportieren





Import Bitmap

Bitmaps werden im normal zur Ansichtsfläche dargestellt (2D-Raum), werden am linken unteren Eckpunkt im 3D-Raum positioniert.
Bitmaps werden dynamisch oder fix skaliert.

Es können Files im Format JPG oder BMP importiert werden.





File / Export NC-ISO

  Ausgabe der NC-Bearbeitungscodes in Datei <base>/tmp/pp.iso.
  Weitere Postprozessoren auf Anfrage.




Print


Auswahl Ausgabformat:

Auswahl Format:

A4 oder A3 (nur für Ausgabeformat PCL5)


Auswahl Funktion:


Es werden keine schattierten Flächen ausgegeben (dazu kann zB Programm ksnapshot benutzt werden).

Funktionsweise:

Es wird eine Zwischendatei <base>/tmp/print.tmp erzeugt; diese wird dann in das gewählte Ausgabeformat umgewandelt.
Die Ausgabe kann um 90 Grad gedreht werden, skaliert und (mit Offset) verschoben werden.









GO - STEP - END

Diese Buttons bewirken die Bearbeitung bestimmter Programmteile. Die Verarbeitung bewirkt die Darstellung der Objekte.


GO

Mit dem GO - Button wird das gesamte Programm, beginnend in der ersten Zeile,  bis zur aktuellen Zeile abgearbeitet.
Mit der ESCAPE-Taste kann der Ablauf unterbrochen werden.



STEP

Mit dem STEP - Button können die APT-Zeilen einzeln ausgeführt werden.
Zum Darstellen eines einzelnen Elementes aktivieren sie CLEAR, dann STEP; es wird nur die aktuelle Zeile dargestellt.



END

Mit dem END - Button wird das gesamte Programm, beginnend in der ersten Zeile,  bis zum Dateiende abgearbeitet.
Mit der ESCAPE-Taste kann der Ablauf unterbrochen werden.





Funktionen VWR

gCAD startet in diesem Modus.
Im Modus VWR  ("Viewer") können Objekte nicht modifiziert / gelöscht werden.
Von selektierten Objekten werden nur die Objektnamen angezeigt.

Der Toolbar und der Messagebar können ausgeblendet werden (Menü Options).

Die Standardwerte (Modelsize ..) können verändert / abgespeichert werden.






Funktionen CAD



Aktivieren Sie die CAD-Checkbox.



Erzeugen von Objekten:
Selektieren sie eine Funktion. Es werden nun alle erforderlichen Eingabefelder angezeigt; die Eingaben erfolgen durch Selektion, Indicate  oder mit der Tastatur. (Indicate: Anzeige einer Position mit der Maus; linke Maustaste).
Schliessen Sie Tastatureingaben mit der Tab-Taste ab.
Sind alle erforderlichen Eingaben gemacht, wird das Element angezeigt.
Alle Eingabewerte können noch verändert werden, die Anzeige wird sofort korrigiert (die Werte werden mit der Tab-Taste übergeben).
Mit der Esc-Taste wird das zuvor belegte Eingabefeld gelöscht.
Mit dem OK-Button oder der Eingabetaste ("Return") oder RechteMaustaste wird das Objekt erzeugt.
Bei der Eingabe von Vektoren, Variablen oder Modifikatoren können Sie mit Hilfe der PageUp  oder PageDown - Tasten aus den vorhandenen Werten auswählen.



Modifikation von Objekten:
Selektieren Sie die Checkbox S/M/DEL, dann selektieren sie das geometrische Objekt.

Wenn Sie nun Modify selektieren (oder rechte Maustaste) wird die erzeugende CAD-Funktion gerufen und alle erzeugenden Parameter in die Eingabeboxen eingetragen.

Als aktive Funktion wird "MODIFY" angezeigt.
Modifizieren Sie die Parameter (- wie Funktion Erzeugen).
Button Exit (oder Ctrl rechte Maustaste) schalten zurück in die Funktion "ADD" (hintanfügen).


Selektion von Objekten:
Im Menü "Select" gibt es folgende Hilfsfunktionen:
PT <-- ObjectPoint
       Es wird der dem Cursor nächstliegende Objektpunkt selektiert (zB Startpunkt einer Linie)
PT <-- Vertex
       Es werden die Koordinaten des dem Cursor nächstliegenden Vertexpunkts ausgegeben
PT <-- Position
       Es werden die Koordinaten des Cursor auf der aktiven Konstruktionsebene ausgegeben





Löschen von Objekten:
Aktivieren Sie S/M/DEL, selektieren Sie das zu löschende Objekt; drücken Sie Taste "Entf" (Delete).
Es werden nun alle vom selektierten Objekt abhängigen Objekte gezeigt; wird kein weiteres abhängiges Objekt mehr gefunden, werden alle gelöscht.

Wieder zurückholen mit Esc .

Entfernen aller gelöschten Zeilen mit "Alt" + "Esc"   (Modify / APT-Clean).




Checkbox newObj:
Nur für den Funktionsblock CUT/Translate/Project/Mirror.
Modifiziert das Objekt (Eingabeobjekt Nr. 1) oder erstellt ein neues, modifiziertes Objekt.



LineEdit-Box (zur Eingabe von Konturen / Punkteketten):
durch setzen der Cursorposition (ins Textfenster klicken) wird die Grafik bis zur Cursorposition dargestellt.





Funktionen MAN

Erzeugen von Objekten:
Eingabe der Programmcodes im Editfenster.

Die Objektheader werden mit Alt-P (Punkt) bzw Alt-L (Linie), Alt-C (Kreis) erzeugt (nur am Beginn einer neuen Zeile).
Die rechte Maustaste impliziert am Dateiende ein CR (die Return-Taste).
Es können folgende Editfunktionen benutzt werden:
Selektieren mit ShiftCursorLinks oder rechts;
Selektieren mit der Maus, inur Unix: mittlere Maustaste zum Einfügen;
Ctrl X zum Ausschneiden und Kopieren
Ctrl C zum Kopieren;
Ctrl V zum Ausgeben.
Taste Delete ("Entf") zum Löschen;
mit Ctrl-Entf/Delete können gelöschte Programmcodes wieder eingefügt werden.
Die Esc-Taste löscht die zuletzt eingegebene Zeile.

Suchen von Objekten:  S/M/DEL.


Modifikation von Objekten:
Selektieren Sie die Checkbox S/M/DEL, dann selektieren sie das geometrische Objekt.
Wenn Sie nun Modify selektieren (oder rechte Maustaste) wird der Programmcode selektiert dargestellt und der Cursor gesetzt. Die Korrektur muss manuell erfolgen.


Löschen von Objekten:  Löschen.


Programmcode erzeugen:

Beispiel:
Geben Sie mit der Tastatur ein:
Alt-P    (erzeugt den Objektheader "P20=");
Linke Maustaste im Grafikfenster (erzeugt  " P(100 100)");
Rechte Maustaste (impliziert Return-Taste; der entsprechende Punkt wird angezeigt).
P20=P(100 100)



Programmcodes: siehe Programmfunktionen.


In MAN wird (von gtk) charset UTF8 verwendet.

Achtung: Parametrische Definition für Punkte werden nur im Modus CAD erzeugt !





Suchen Messen Löschen S/M/DEL


Selektieren Sie die Checkbox S/M/DEL und das geometrische Objekt -
oder Selektieren Sie das Objekt mit gedrückter Control-Taste;

Es wird nun das folgende Menü angezeigt:

<<--prv

zeigt alle DefinitionLines, die zuletzt generierten zuerst

nxt-->>

zeigt alle vom selektierten Objekt abhängigen Objekte (dependant)

Modify

Obj. Modifizieren / Return-Taste od. rechte-Maustaste

Delete

Obj. löschen / Lösch-Taste (Entf/Delete)

Done

S/M/DEL beenden / Ctrl-rechte-Maustaste




Delete: Es wird das Objekt und alle seine Hilfsobjekte angezeigt.
Es muss auch jedes einzelne Hilfsobjekt explizit mit der Lösch-Taste entfernt werden.
Zurückholen der gelöschten Objekte mit Taste Ctrl-Y.

Beispiel:
1  P1=..
2  P2=..
3  L1= P1 P2
4  L1=CUT L1 L2

Objekt L1 hat 2 DefinitionLines mit je 2 Hilfsobjekten; die Zeilen 3 und 4. Beide sind abhängig von den Punkte P1 und P2.






Modify


Surface-Style
  shaded
  symbolic  (es werden nur Aussenkonturen dargestellt)



Surface-Color
  define Color (Definition der aktiven Color)
  change Color (es wird die aktive Color übernommen)
  remove Color (es wird wieder die Default-Color (Standards/Color) übernommen)



Surface-Transparenz
  solid
  50% - transparent
  transparent  (voll transparent)


Surface-Texture





ANALYZE - Funktionen:


Analyze Point / Posi.
    Anzeige der Position von Punkten auf Linie, Polygon, Kreis (Endpunkt, Eckpunkte).


Analyze Obj
    Es werden die geometr. Parameter des selektierten Objekts angezeigt.


Analyze Dist. Point-Point
    Es wird der Abstand zwischen von 2 Punkten angezeigt.


Analyze Dist. Point-Object
    Es wird der Normalabstand von Punkt - Objekte angezeigt. Derzeit nur:
    Punkt/Linie - Normalabstand
    Punkt/Kreis - Normalabstand


Analyze Vertex
    Anzeige der Position der Vertexpunkte (der Punkte der 3D-Darstellung; keine analytische Genauigkeit; abhängig vom Darstellungsmaßstab (Scale))





Funktionen NC



Funktion ist derzeit nicht aktiv.



Alle NC-Funktionen sind entweder im Menü NC-Tech oder auch als Direktcommands (Man) verfügbar.


Die momentan aktive NC-Bearbeitungsposition wird durch eine rote senkrechte Linie angezeigt.

Im Programmverlauf wird die aktuelle Position immer im Punkt P0 gespeichert.
Dieser Punkt kann normal benutzt werden; Beispiel:
PRI P0
# ausdrucken der aktuellen Position
P21[P0 P20 12]
# vom momentanen Punkt weg in Richtung P20 12 mm weit gehen




FROM
  Erzeugen einer FROM - Befehlszeile. Selektieren oder indizieren
  Sie einen Punkt.
  Die FROM-Position wird als Dreieck dargestellt, die aktuelle Bearbeitungsposition wird mit einem Kreuz dargestellt.


RAPID
  Erzeugen einer RAPID - Befehlszeile. Selektieren oder indizieren
  Sie einen Punkt.







Funktionen NC-Wcut



Funktion ist derzeit nicht aktiv.







Funktionen NC-Tech



Funktion ist derzeit nicht aktiv.




TEC

Eine Liste der Makroprogrammfiles. Vor dem Start eines NC-Programms muss (mindestens ein) Makrofile selektiert werden. Die in den gewählten Makrofiles enthaltenen Makroprogramme werden im folgenden in der Liste Work angezeigt.
(Makrofiles: <base>/wc/<macname>.mac).

Program
Der NC-Programmname. In jedem Modell können mehrere NC-Programme definiert werden.
Befindet sich noch kein NC-Programm im Modell, so muss eine neuer Programmname definiert werden. Es muss zuvor mindestens ein Makroprogrammfile (aus Liste TEC) selektiert worden sein.

Work
Eine Liste aller geladenen Zyklen. Wird ein Zyklus selektiert, so werden alle für diesen Zyklus erforderlichen Parameter in eigenen Eingabfeldern angefordert.
Wird eine Eingabe nicht automatisch zugeordnet, muss der Cursor vorher in das entsprechende Eigabefeld gesetzt werden (Beispiel: Cursor in das Eingabfeld "Radius" setzen, Kreis selektieren).
Der erste Zyklus sollte der FROM-Startpunkt sein.

Contour
Eine Liste der im Modell verfügbaren Konturen (S20 ..). Bei Selektion wird der gewählte Konturname an ein Eingabefeld "Konturname" übergeben.


OK  (oder rechte Maustaste oder Entertaste)
den aktuellen Zyklus speichern.

prev / next
aktiviert den vorherigen / nächsten Zyklus; es könnenn nun die Parameter geändert werden; Zyklus abspeichern (überschreiben) mit OK.

RUN
Mit RUN kann jederzeit das gesamte NC-Programm dargestellt werden.

List
zeigt eine Liste aller aktiven Zyklen mit allen Parametern.

Ins
Zyklus einfügen (vor den momentan aktiven Zyklus),

Del
den momentan aktiven Zyklus löschen.

PP
startet den Postprozessorlauf. Im ersten Schritt (auch ohne installierten Postprozessoren) wird eine NC-ISO-Datei erzeugt (Datei <base>/tmp/pp.iso).

Save/Exit
beenden / abspeichern des gesamten Programms im Modell.




Erste Schritte - NC-Tech  (Kurzbeispiel):
- aus Liste TEC "Demo1" selektieren
- NewProg selektieren, "prog1" eingeben, OK.
- aus Liste Work "Kreis" selektieren,
- ins Eingabefeld "Startpunkt" die Koordinaten 30,30 eingeben, Entertaste drücken
- aus Liste Work "Kreis" selektieren,
- ins Eingabefeld "Startpunkt" die Koordinaten 60,30 eingeben, Entertaste drücken
- RUN-Button drücken
- prev-Button drücken (retour zu Zyklus 2)
- Koordinaten 60,30 in 80,30 verändern, Entertaste drücken, RUN drücken.
- shade - Checkbox selektieren
- PP (Postprozessorlauf), Beenden (ISO-Code nun in tmp/pp.iso)
- Save/Exit, OK; verlassen mit Checkbox Man.

Modifizieren von NC-Prog "prog1":
- Checkbox NC-Tech,
- aus Liste Program "prog1" selektieren,
- RUN, prev, ...




Programmfunktionen



Format


Definitionszeilen:
A=Area (Fläche)
B=Body (Solid)
C=Circle (Kreis)
D=Direction (Vektor)
I=Interaktion
L=Line
M=Model, Submodel, Mockup-Model
N=Note, Tag, Bitmap-Image
P=Point
R=Refsys (Referenzsystem)
S=Spline (Parametr., B-Spline, Polygon, Kegelschnitte)
T=Transformation (Translation od Rotation)
V=Variable  (numer. Wert)


- Gross- oder Kleinschreibung egal



Modifikator: eine Zahl (wird im CAD-Modus durch die PageUp und PageDown-Tastebereitgestellt)
Beispiele:
MOD(1)
MOD(2)




Geom.Definitionen


Grundlagen 2D - 3D
Texte/Symbole/Image
Vermaßung
Abbildungen (JPG/BMP-Bitmaps)
Punkte
Linien
Vektor - Richtung
Transformationen
Kreise
Kurven
                                         (Ellipse, Polygon, B-Spline, Kontur)
Achsensysteme - Ebenen
Flächen
Solids
Models
Geom.Modifikationen
                 (Cut (Trim),  Intersect, Transform, Project, Mirror)
Variablen



Elemente ohne eigenen Kennbuchstaben:

Winkel   -   ANG()



Löschen von geometr. Objekten:
durch eine leere Definitionsangabe; zB Löschen des Punkt Nr. 12:
P12=







Grundlagen 2D - 3D


Die Raumgrösse (Standardwert ist 300 mm) wird zum Errechnen von Toleranzen benutzt (Kurvendarstellung, Identische-Punkte-Toleranz usw). Raumgrösse ändern auf 10m:
MODSIZ 10000
Defaultwert in der Datei <base>/xa/gCAD3D.rc.


Die aktuelle Arbeitsebene kann im 3D-Raum mit Hilfe eines Referenzsystemes definiert werden. Sobald dieses aktiviert wird, werden alle ab nun definierten 2D-Koordinaten in diese Ebene transformiert.

Die Referenzsysteme erhalten eine Nummer. Referenzsystem Nr. 0 ist das Hauptachsensystem und kann nicht definiert / verändert werden.
Jedes Referenzsystem sollte nur einmal definiert und nicht mehr verändert werden
 (dies würde Fehler beim EXPORT verursachen).


Beispiel:
# Definition Achsensystem Nr.1
R1=Z(100)

# Aktivierung Achsensystem Nr.1
R1

# Punkt (wird ins aktive Achsensystem übertragen !)
P1=100 100

# Rücksetzen Achsensystem
R0


Definition Achsensystem ist ident mit Definition Ebene. Siehe Achsensysteme.





Texte

Texte und Vermaßung verwenden den Kennbuchstaben N.

Die Schriftgröße für Texte und Vermaßung wird definiert durch
DEFTX <Textsiz> <DimTextSiz> <TextGeneralScale> <AnzahlNachkommstellen>
oder interaktiv in Standards/Text. (Defaultwerte in der Datei <base>/xa/gCAD3D.rc).

 

2D-Texte:
Fixe Textgröße.
Immer in Draufsicht.
Als Sonderzeichen für 2D-Texte sind derzeit nur "[n" (Zeilentrennzeichen) verwendbar.
Selektieren von 2D-Texten ist derzeit nur am linken unteren Startpunkt des Textfeldes möglich.





3D-Texte:
Textgröße skalierbar und entsprechend den Standards/Text.
Sonderzeichen lt. Tabelle


Sonderzeichen:
Ein Sonderzeichen wird durch eine Folge von 2 Zeichen generiert.
 [d         Durchmesserzeichen
 [g         Gradzeichen (Winkel)
 [+         +- Zeichen
 [/          hochgestellt
 [\          tiefgestellt
 [n          neue Zeile (Return, CR)
 [%         wird durch Standardtext ersetzt. Wenn im Text kein [% enthalten ist,
             wird der Standardtext ganz an den Textbeginn gestellt.
 [-          keinen Standardtext einfuegen.
 [[          ein "["
 [0 bis [9   nur N=DIM3 und N=LDRP: Anzahl Nachkommastellen der MassZahlen
            (muss am Beginn des Textblocks stehen)
[V20]     expandieren einer numer. Variablen (V20 im Beispiel)


Beispiel:
# "Winkel 60 <Gradzeichen> <"+0.123" <hochgestellt> "0.5"<tiefgestellt>>"
N20=P(100 0) "Winkel 60[g [/+0.123[\-0.5"



3D-Text mit variabler Grösse, Richtung und Sonderzeichen:

N# = Textpunkt Size [Richtung] "Text"
Defaultrichtung ist 0 Grad. Keine Hilfslinien.

Beispiel:
N10=P5 "Text an Punkt P5"
N11=P(100 100) 10 ANG(15) "Text Size 10, Richtung 15 Grad"



TXG Textpunkt SIZE, RICHTUNG, TEXT
(Diese Texte werden nicht gespeichert - nicht exportiert).


TXA Textpunkt "Text"
(Diese Texte werden nicht gespeichert - nicht exportiert).





Text mit 1 od 2 2D-Hilfslinien; mit oder ohne Pfeilsymbol.
 N=LDR StartpunktLinie EndPunkt1 [EndPunkt2] [Textwinkel] [PfeilTyp] [Text]
  PfeilTyp: 0=kein Pfeilsymbol, 1-3 Pfeilsymbol
 Hilfslinie und Kreis sind (dzt) immer in der XY-Ebene.
 Beispiel:
 N21=LDR P(50 10 0) P(100 50 0) ANG(0) 0 "abc"





Text mit Kreis und 2D-Hilfslinie.
 N=LDRC TextPosition [Linienstartpunkt] [Linetyp] [Text]
 Es wird eine Line von Linienstartpunkt nach TextPosition erzeugt,
 an TextPosition ein Kreis, in dem der Text ausgegebn wird.
 Hilfslinie und Kreis sind (dzt) immer in der XY-Ebene.
 Beispiel:
 N22=LDRC P(150 50 50) P(100 10 0)  "P21"


2D-Text/Textblock mit Hilfslinie.
 N=TAG TextPosition [Linienstartpunkt] [color] [Text]
  color - Textblockfarbe (keine Angabe: nur Text, kein Block)
   0 = schwarz
   1 = DefCol
   2 = rot
   3 = grün
   4 = blau
   5 = gelb
   6 = violett
   7 = hellblau
   8 = weiss
 Beispiel:
 N23=TAG P(150 50 50) P(100 10 0)  "P21"
 N24=TAG P(250 50 50) P(200 0 0) VAL(7) "N24[nP25"


Symbol.
 N=LDRS SymbolPosition [symbolTyp] [color] [Endpoint Vector]
  symbolTyp
   0 = Stern klein,
   1 = Dreieck klein
   2 = Kreis klein
   3 = Rechteck gross
   4 = Vektor normiert (immer gleich lang)
   5 = Vektor (mit korrekter Laenge)
  Endpoint_Vector:
   nur fuer symbolTyp 4 und 5
 Beispiel:
 N25=LDRS P(350 50 50) 1 2

Image
 N=IMG ImagePosition Filename [scale]
 Es wird ein (BMP-)Image dargestellt. Immer normal zum Betrachter.
 Beispiel:
 N32=IMG P(500 0 0) "Data/sample_bmp1.bmp" VAL(0.5)




Vermaßung:


3D-Punktkoordinaten (Kote; mit 3D-Hilfslinie, 3D-Text mit Sonderzeichen)
N=LDRP TextPosition [Punkt] [Linetyp] ["ZusatzText"]
 Es wird eine Line von <Punkt> nach <TextPosition> erzeugt;
 an der <TextPosition> werden die X/Y/Z-Kordinaten von <Punkt> ausgegeben.
 Beispiel: Position von Punkt 20 mit 3 Nachkommastellen:
 N20 = LDRP P(50 50 50) P(10 10 0.12345) "[3"



3D_Maß:
N# = DIM3 p1 p2 p3 [DimPlane] ["Zusatztext"]

p1,p2 die Punkte
p3    Position des Textblocks
DimPlane   X oder Y oder Z oder keine ('P' = Default = parallel)
keine DimPlane: die Textebene geht durch die Punkt1 p1 und p2 und liegt
      normal zum Betrachter.
X     es wird der Abstand von p1-p2 auf der X-Achse vermaßt;
      der Texblock liegt in der X-Y oder X-Z-Ebene.
Y     es wird der Abstand von p1-p2 auf der Y-Achse vermaßt;
      der Texblock liegt in der X-Y oder Y-Z-Ebene.
Z     es wird der Abstand von p1-p2 auf der Z-Achse vermaßt;
      der Texblock liegt in der Y-Z oder X-Z-Ebene.

Für alle Maßtexte wird jene Textebene ausgewaehlt, die rechtwinkeliger zum
  Betrachter liegt.



Linearmaß 2D:
N# = DIM Punkt1 Punkt2 Textpunkt [Winkel Mpfeile Mlinien "Zusatztext"]
Punkt1 - Maßpunkt1
Punkt2 - Maßpunkt2
Textpunkt - linker unterer Startpunkt Maßtext
alle folgenden Paramter sind optional:
Winkel - ANG(0) = Horizontal, ANG(90) = Vertikal; keine Angabe: Parallelmaß.
Mpfeile: 2 Ziffern fuer die beiden Maszpfeile: 0=keiner, 1=<, 2=>, 3=/, 4=o; Default ist 12.
Mlinien: 2 Ziffern fuer die beiden Maßhilfslinien: 0=keine, 1=Volllinie; Default ist 11.
Zusatztext (zB. "[+ 0.2").
 Beispiel:
 P1=P(100 100)
 P2=P(200 200)
 N1=DIM P1 P2 150 50 ANG(0) "[+ 0.2"
 N2=DIM P1 P2 250 150 ANG(90)
 N3=DIM P1 P2 100 180




Winkelmaß 2D:
N# = DIMA Punkt1 Richtg1 Punkt2 Richtg2 Textpunkt [Mpfeile Mlinien "Zusatztext"]
N20=DIMA P20 ANG(L20) P21 ANG(L21) P22 12 11 "[+ 0.5"
Die Maßlinie (ein Kreisbogen) wird im Gegenuhrzeigersinn (CCW) angelegt. Richtung1/2 definiert, wo sich der Endpunkt des Kreisbogen befindet (ausgehend von Punkt1/2).
Beispiel:
L20=P(330 100 0) P(380 130 0)
P20=P(400 100 0)
N20=DIMA P20 ANG(0) P(L20 MOD(2)) ANG(L20) P(444 128 0)


Durchmesser/Radiusmaß 2D:
N# = DIM Kreis Textpunkt [Mpfeile "Zusatztext"]
Beispiel:
# außen:
C20=P(-200 100) 12
P27=P(-175 125)
N30=DIMR C20 P27 "[+0.5"
P28=P(-175 70)
N31=DIMD C20 P28 "[+0.5"
# innen:
C21=P(-200 200) 32
P29=P(-210 190)
N32=DIMR C21 P29 "[+0.5"



VERMASZUNG WIRD NOCH NICHT NACH IGS, DXF EXPORTIERT.
Für interaktive Modifikation der Parameter Mpfeile, Mlinien und Zusatztext sollte ein Userinterface erstellt werden.




Abbildungen (JPG/BMP-Bitmaps)


N# = IMG Bildposition [Startpunkt_Linie Linientyp] BMP-Filename [Scale]
Bildposition: als Punkt links unten
BMP-Filename: der Dateiname einer JPG-oder BMP-Bitmap; aktivieren des Filedialog mit der mittleren Maustaste.
Das Verzeichnis ist als Symbol zu definieren (Siehe Symbolische Dateibezeichnungen).
Scale: wird kein Scale (oder Wert 0) definiert, so wird die Bitmap dynamisch skaliert.
Wird ein Maßstab angegeben, so wird dieser Maßstab fixiert (kein dynamisches skalieren).

Beispiel:
N20=IMG P(0 0 0) "Data/Bild1.bmp"
# Windows-Bitmap <base>/dat/Bild1.bmp wird dargestellt.



Kein Export von Bitmaps.




Punkte

P1=P(10,20)
    2D-Punkt absolut

P21=P(10,20,30)

    3D-Punkt absolut


P2=P1,D1

    Punkt P1 um den Vektors D1 verschieben.


P2=P1,D1,Abstand

    Punkt P1 in Richtung des Vektors D1 um den Abstand abst verschieben.


P11=R1 P10
Transformation des Punktes P10 in das Referenzsysten R1 (Ebene R1).
P11=R1 10 0  - Punkt P11 wird auf der X-Achse des Referenzsystems R1 liegen.


P11=P10 R1
Projektion des Punktes P10 auf die Ebene R1.


P3=P2,X(10),Y(10)
    Punkt relativ (im Abstand 10,10 von p2)


P5=P4,ANG(90),Abstand
    Polar relativ (Basispunkt, Winkel, Abstand)


P3=P1,P2
    Punkt in der Mitte erzeugen.


P3=P1,D(P1,P2),Abstand
Eine Strecke abtragen.
Punkt mit bestimmtem Abstand von P1 in Richtung P1 -> P2 abschlagen.
Die Richtung wird bestimmt durch den Winkel der Strecke P1 -> P2.


P11=P1,D(L1),Abstand
    Eine Strecke von einem Punkt weg entlang einer Linie mit bestimmtem Abstand abtragen.


P2=P1,D(L1),Abstand,Normalabstand
Eine Strecke von einem Punkt weg abtragen. Der Abstand wird in die Richtung der Linie abgetragen, der Normalabstand wird normal zur Linie abgetragen. Beispiel:
p1=p1,d(l1),val(100),val(50)
P1 wird 100 mm in Richtung l1 verschoben, dann wird er 50 mm in Richtung normal zu l1 verschoben


P3=P1,P2,Winkel
Punkt drehen (Mittelpunkt,Ausgangsposition,Winkel) Beispiel:
P3=P1,P2,ANG(180)
P2 wird 180 Grad um P1 gedreht.


P1=L1,Seite
   Anfangs- oder Endpunkt einer Linie (entsprechend Seite)

P2=P1,L1
   Punkt auf Linie projizieren.

P4=L1 L2
   Schnittpunkt Linie - Linie

P41=L20 A20
   Schnittpunkt Linie - B-SplineFläche

P6=C1
   Kreismittelpunkt

P7=P1 C1 [Seite]
Punkt normal auf Kreis (wird auf den Kreis projiziert). Die Standardlösung ist der nähere Punkt.
MOD(2) definiert den entfernten Punkt.


P5=L1 C1 Seite
    Schnittpunkt Linie- Kreis.


P6=C1 C2 Seite
    Schnittpunkt 2-er Kreise

Anfangs- / Endpunkt einer Line; 1 = Startpunkt; 2 = Endpunkt.
P20=L20 MOD(1)

Anfangs- / Endpunkt eines Kreises: 1=Startpunkt, 2=Endpunkt.
P28=C22 MOD(2)


Punkt eines Polygons:
S20=POL ..
P10=S20 MOD(<PunktNummer>)


Anfangs- / Endpunkt einer Kurve, entsprechend Seite. Punkt = Kurve [punktNummer] P10=S10 MOD(1) Punkt auf Kurve projizieren. Punkt = Punkt Kurve [punktNummer] P11=P1 S10 MOD(1) P1-P11 bilden nun eine Normale auf S10 im Punkt P11. MOD(1) = Seite - erste Lösung. (Nichtimplementiert: Kommt P11 ausserhalb von S10 zu liegen, so wird die Kurve mit einer Tangente durch den Endpunkt verlängert.) Punkt auf Fläche projizieren. Punkt = Punkt Fläche [punktNummer] P12=P1 A20 MOD(1) Einen Punkt auf einem Objekt durch Parameter erzeugen Objekt: Linie/Kreis/Kurve/Fläche Parameterbereich ist 0 bis 1; 0.5 definiert also die Mitte. Bei Flächen sind zwei Parameterwerte erforderlich (U und V; Laengs- und Querrichtung). Beispiel: # Mittelpunkt einer Linie: P23=C20 VAL(.5) # Mittelpunkt einer B-SplineFläche: P23=A20 0.5 0.5



Der Punkt mit Index 0 ist zu jeder Zeit die aktuelle Position, kann also
nur für einen Arbeitsschritt verwendet werden.



Implizite Punktdefinitionen:
Beispiel für Endpunkte der Linie mit P(L20 MOD(1)):
L20=P(-300 10) P(-260 40)
N21=DIM P(L20 MOD(1)) P(L20 MOD(2)) P(-280 -40) ANG(0)

Eckpunkt eines Polygon aus einer CCV:
P# = P(S<ccv> MOD(<ccvSegNr>) MOD(<polgonPtNr>))

Punkt parametrisch auf BasisObjekt:
P# = P(<baseObj> <lpar>)
Beispiel - Punkt in der Mitte des Objekt Line-20:
P20=P(L20 0.5)
P = P(S<ccv> MOD(<ccvSegNr>) <lpar>)






Linien


L1=P1 P(100 100)
Linie zwischen 2 Punkten


L2=Y(10)
L2=DX P20 Y(10) Z(10)
Linie parallel zur aktuellen X-Achse; durch einen Punkt.
Es kann ein Y-Offset und/oder Z-Offset definiert werden.


L1=X(10)
L2=DY P20
Linie parallel zur aktuellen Y-Achse; durch einen Punkt.
Es kann ein X-Offset und/oder Z-Offset definiert werden.


L2=DZ P20
Linie parallel zur aktuellen Z-Achse; durch einen Punkt.
Es kann ein X-Offset und/oder Y-Offset definiert werden.


Linie durch Punkt mit fixem Winkel
L3=P1 ANG(45)


Linie durch Punkt mit Richtung (Vektor)
L4=P1 D(L1)                             # parallel zu Linie L1 oder
L = P L


Line durch Punkt und die Z-Achse von Kreis/Ebene:
L = P C
L = P R


L4=P1 D(L1) ANG(90)
Linie durch Punkt mit Winkel relativ zu anderer Linie.
ANG(0): parallel zu Linie L1; ANG(90): normal.


Linie parallel zu Linie mit Abstand.
L8=L1 Abstand Seite
L8=L1 VAL(10) HIY



Linie als Mittellinie (wenn l1, l2 parallel) oder als Winkelhalbierende (durch den Schnittpunkt).
L9=L1 L2



Linie als Winkelhalbierende, zusätzlich drehen.
L9=L1 L2 ANG(90)



Line tangential an Kreis, parallel zu Linie.
L1=C1 D(L1) Seite



Linie tangential an Kreis mit fixem Winkel
L1=C1,D(ANG(45)),Seite



Linie durch Punkt tangential an Kreis
L5=P1 C1,Seite



Linie tangential an 2 Kreise       (Ort: in out)
L5=c1,c2,Ort,Seite



Schnittlinie zwischen zwei Ebenen.
L10=R20 R21



Projektion einer Linie auf eine Ebene.
L21=L20 R20



Linie tangential durch Punkt P10 an Kurve S10.
L10=P10 S10 MOD(1)



L20=L(Startpunkt Endpunkt)



Implizite Liniendefinitionen:

Line in einer CCV:
L(S<ccv> MOD(<ccvSegNr>))

Polygonsegment aus einer CCV:
L(S<ccv> MOD(<ccvSegNr>) MOD(PolgonSegNr))






Vektor - Richtung

Vektoren benutzen den Kennbuchstaben D ("Direction").

Vektoren werden nur temporär dargestellt; Normierte Vektoren (mit Länge 1) in schwarz, sonst rot. Immer in Bildmitte.

Als letzter Parameter kann bei allen Vektordefinition "REV" angegeben werden (Vektor wird verkehrt = Revers dargestellt).

Als vorletzter Parameter kann bei allen Vektordefinition die Vektorlänge angegeben werden.


Es gibt folgende Standardvektoren:

DX DY DZ

entsprechen den Standardachsrichtungen

DIX DIY DIZ
entsprechen den inversen Standardachsrichtungen
  Beispiel:
D1=DIX

Definition Vektor durch Richtung und Länge. D=D(dx,dy[,dz]) [Länge] ["REV"]
  Beispiele:
D1=DX 100
D2=D(10 0)
D3=D(0.7 0 0.7) 100


D3=ANG(30) 100

Definition 2D-Vektor durch 2D-Winkel und Vektorlänge (optional).
Der Winkel definiert die Richtung in der X-Y-Ebene.



D4=ANG(90) ANG(30) 100

Definition Vektor durch Drehwinkel, Kippwinkel und Vektorlänge (optional).
Der Drehwinkel definiert den Verdrehwinkel in der X-Y-Ebene; 0 (Grad) entspricht also der X-Richtung, 90 enspricht der Y-Richtung; 180 ist die inverse X-Richtung.
Der Kippwinkel ist jener Winkel, den der Vektor mit der X-Y-Ebene einschliesst.
Alle Vektoren mit gleichem Kippwinkel (bei variablem Drehwinkel) bilden also einen Kegel um die Z-Achse.
Die Z-Achse hat einen Kippwinkel von 90 Grad (unabhängig vom Drehwinkel).
Im Beispiel (90,30) wird die X-Achse um 90 gedreht (um die Z-Achse);  der
Vektor entspricht nun der alten Y-Achse. der Vektor wird nun in jener Ebene,
den er nun mit der Z-Achse einschliesst, um 30 Grad hochgekippt.
Vektoren mit positivem Kippwinkel liegen im positiven Z-Halbraum,
Vektoren mit negativem Kippwinkel im negativen Z-Halbraum.

D5=P1 P2
D5=P1 P2 100

Vektor D5 als Strecke von P1 nach P2. Länge optional.


D6=L10 100

Vektor in Richtung der Linie; Länge optional.


Haupt/Nebenachsen von Circ, Ellipse, Plane durch Modifier:
  1 = Z-Achse,
  2 = X-Achse (Ellipse: Hauptachse),
  3 = Y-Achse (Ellipse: Nebenachse),
  4 = inverse X-Achse
  5 = inverse Y-Achse
 Beispiel: "D20 = C20 MOD(2)"   liefert die X-Achse des C20

Normalvektoren:
D=Circle
D=Plane
D=Point Point Point
D=Line Line
D=Line Point
D=Vector Line
D=Vector Point Point

(Alle zusätzlich mit Länge und "REV" möglich).

  Beispiele:
D7=C10 100
# Vektor in Richtung der Z-Achse von Kreis C10, Läge 100


D7=R10 REV
# Vektor in die umgekehrte Richtung der Z-Achse von Ebene R10.




Transformationen:

Werden angewendet mit Modifikation Transform



Translation:

T=TRA Translationsvektor [Vektorlänge]
T20=DZ VAL(100)
# Translation in Richtung Z um 100 mm

Rotation:
T=ROT DrehAchse DrehWinkel
T20=ROT L20 ANG(30)
# Definition einer 30-Grad-Rotation um Linie L20





Kreise


Parameter Drehrichtung:

CW   (clockwise, im Uhrzeigersinn) oder
CCW  (counterclockwise, Gegenuhrzeigersinn)
Die Angabe von CCW ist nicht erforderlich (Standard).

Der Drehsinn ist gültig, wenn die Drehachse zum Auge des Betrachters zeigt.


Kreise (360 - Grad):

# Mittelpunkt, Radius [Z-Achsvektor]
C20=P20 VAL(25) DZ


# Kreis kopieren
C2=C1


# konzentr. Kreise. Negative Radiusdifferenz verkleinert den Kreis.
C2=C1 <Radiusdifferenz>


# Mittelpunkt, Punkt am Umfang [Z-Achsvektor]
C3=P1 P2
C3=P1 P2 D(1 0 1)


# Mittelpunkt, tangential  an Line / Circ
C1=P1 L1
C1=P1 C1


Kreisbogen durch Startpunkt, Startrichtung und Radius.

Startrichtung: die Tangente an den Kreis im Starpunkt. Ein Vektor. Angle: Öffnungswinkel, optional; Standard ist 360 Grad. Achsvektor optional. [CW/CCW] ist die Drehrichtung; optional ("CW"). # Beispiel: Endtangente einer Klothoide als Startrichtung. S20=CLOT P(0 0 0) DX ANG(30) 0 10 P20=P(S20 1) D20=TNG P20 S20 C20=ARC P20 D20 25 ANG(30)

# Tangential an 2 Elemente, Radius.
# C1=P1,L1,Radius,Seite
# C2=P1,C1,Radius,Seite
# C5=L1,L2,Radius,Seite
# C5=L1,C1,Radius,Seite
# C5=C1,C2,Radius,Seite
L1=X(10)
L2= Y(10)
C1=L1 L2 VAL(5) MOD(1)



# 2 Punkte am Umfang, Radius. Seite: auf der sich der Mittelpunkt befindet.
# C1=P1 P2 Radius Seite Z-Achs-Vektor
P20=P(98.6 5.4 0)
P21=P(114.5 -15.2 0)
C22=P20 P21 VAL(12) MOD(1) DZ


# Punkt am Umfang, Tangente, Radius.
# C1=P1 L1 Radius Seite
L20=P(44.6 -32.8 0) P(86.5 -69.3 0)
P26=P(56.2 -35.5 0)
C21=P26 L20 VAL(8) MOD(2)



# Punkt am Umfang, tangential an Kreis.
# C2=P1 C1 Radius Seite
C20=P(114.5 -15.2 0) VAL(12) DZ
P27=P(96.9 -19.7 0)
C21=P27 C20 VAL(8) MOD(1)


# Kreis durch drei Punkte am Umfang
C20=P(0 0) P(10 0) P(10 10)




Kreisbögen (begrenzte Kreise):

# Mittelpunkt Startpunkt Drehwinkel Z-Achs-Vektor
C21=ARC P20 P21 ANG(90) DZ



Circ=ARC Startpunkt Endpunkt Mittelpunkt [Z-Achse] [Drehrichtung]
Kreisbogen aus Startpunkt Endpunkt Mittelpunkt (Mittelpunktsachse, Drehrichtung)
Drehrichtung: CW (Uhrzeigersinn) oder CCW (Gegenuhrzeigersinn, Standard).
Der Drehsinn ist gültig, wenn die Drehachse zum Auge des Betrachters zeigt.
C20=ARC P1 P2 P3
C31=ARC P(10,0,10) P(0,10,10) P(0,0,10)
C32=ARC P(10,0,0) P(0,0,10) P(0,0,0) D(0,1,0) CW


Circ = ARC Startpunkt, Endpunkt, Radius, Z-Achse
Kreisbogen aus Startpunkt Endpunkt Radius Mittelpunktsachse, Info180.
Radius: positiv fuer Uhrzeigersinn, negativ fuer Gegenuhrzeigersinn.
C21=ARC P(251 23 0) P(189 75 0) VAL(50) DZ


# Kreisbogen durch drei Punkte am Umfang
C20=ARC1 P(0 0) P(10 0) P(10 10)


Implizite Definition von Kreisen / Kreisbögen:

C(Startpunkt Endpunkt Mittelpunkt [Z-Achse] [Drehrichtung])
C(Endpunkt Mittelpunkt [Z-Achse] [Drehrichtung])

Punkte hier nur mit Index "P20" oder direkt "xKoord yKoord [Z(zKoord]"
Beispiel:  C(25 0 0 25 0 0)
Fehlt der Startpunkt, so wird der Endpunkt der letzten P(), L() oder C() - Definition benutzt.


Circ aus CCV:
C(S<ccv> MOD(<ccvSegNr>))



Sehnentoleranz:

Die Sehnentoleranz für die Darstellung der Kreise kann direkt gesetzt werden in Standards/Tolerances mit "Toleranzen zur Darstellung - Polygon".

Weiters wird auch durch Verändern der Modelsize (MODSIZ) die Sehnentoleranz gesetzt.






Kurven


Ellipse aus Mittelpunkt, Endpunkt Hauptachse, Endpunkt Nebenachse:
S1=ELL P(100 0) P(150 0) P(100 20)


Ellipse aus Mittelpunkt, Vektor Hauptachse, Vektor Nebenachse:
S1=ELL P(100 0) D(10 0) D(0 5)
(die Vektoren definieren Richtung und Länge der Haupt- und Nebenachse)


Begrenzte Ellipse aus Mittelpunkt, Vektor Hauptachse, Vektor Nebenachse, Startpunkt, Endpunkt:
S1=ELL P(0 0) D(10 0) D(0 5) P(10 0) P(-10 0)


Ellipse aus Projektion von Kreis auf Ebene:
S20 = ELL C20 R20



Parallelogram aus einem Punkt und 2 Vektoren:
S= RECT pt1 vec1 vec2
(Vektoren: Richtung und Länge !)

Beispiel:
S20=REC P(100 0 0) D(50 0 0) D(0 12 0)



2D-Polygon aus Punkten:
S#=POL2,2D-point1,2D-point2<,2D-point3, .. 2D-pointn>

Beispiel:
P20= 10,10
S20=POL2, P20, P(10,0) P(20,10) P(30,30)



3D-Polygon aus Punkten:
S#=POL,point1,point2<,point3, .. pointn>

Beispiel:
P20=P(10,10)
P21=P(20,20,15)
P22=P(25,20)
S24=POL P20 P21 P22 P(30,12,0) P(30,10,10) P(40,30,10)



Polygon auf Ebene projizieren:
S#=POL Polygon Refsys
Beispiel:
S20=POL P(30,0) P(30,10,10) P(40,30,20)
S21=POL S20 R0


3D-Polygon aus B-Spline:
S#=POL,B-Spline,Toleranz






S Clotoid                                  CLOT

 Klothoid-Kurve erzeugen (eine planare Spirale durch Fresnel-Integrale).
   StartPoint   Startpunkt
   StartVector  StartRichtung  (Vektor oder Winkel)
   Angle        Differenzwinkel Startrichtung - Richtung am Endpunkt
                positiv: Uhrzeigersinn (CW); negativ: Gegenuhrzeigersinn (CCW).
   StartRadius  Radius beim Startpunkt oder 0 für unendlich
   EndRadius    Radius beim Endpunkt oder 0 für unendlich
   [Z-Axis]     Normalvektor; optional.


Hilfsfunktionen zum Erzeugen einer Klothoid-Kurve:
  Erzeugen des Startpunktes mit "PT cartes"
    Selektieren Sie den Endpunkt des vorhergehenden Elementes.
  Erzeugen des StartVector mit "VEC tangent"
    Selektieren Sie den Endpunkt des vorhergehenden Elementes und das
    vorhergehende Element; mit "OK" wird der Auslaufvektor erzeugt.


Beispiel:
S20=CLOT P(0 0 0) ANG(0) ANG(30) 0 10

Beispielmodel siehe sample_cloth1.gcad

Export einer Klothoid-Kurve:
  DXF:  Ausgabe als POLYLINE.
  Iges: Ausgabe als Entity 106 (CopiousData, Form 12 = 3D-Polygon).



Polynomische Kurve aus Polynomwerten:

S#=PSP3,arc1<,arc2, .. arcn>
  Polynomische Kurve mit 1-n Arcs.
  Ein Arc besteht aus 13 Zahlen; dem Abstandswert und den Polynomwerten
  xa, ya, za, xb, yb, zb, xc, yc, zc und xd, yd, zd.
  xa, ya, za definieren einen Durchgangspunkt.
Beispiel:
S20=PSP3,0,3.84815,0.967105,0,0.577021,0.207039,0,0,0,0,-0.169071,0.140166,0,
 1,4.2561,1.31431,0,0.069808,0.627537,0,-0.507212,0.420498,0,0.341924,
 -0.327596,0,2,4.16062,2.03475,0,0.081155,0.485747,0,0.518559,-0.562288,0,
 -0.183075,0.224101,0,3,4.57726,2.18231,0,0.56905,0.033474,0,-0.030664,
 0.110016,0,-0.060996,-0.13481,0,4,5.05465,2.19099,0,0.324734,-0.150924,0,
 -0.213651,-0.294414,0,0.071217,0.098138,0,5,5.23695,1.84379,0,0.111083,
 -0.445338,0,0,0,0,0.427303,0.588828,0




B-Spline aus Kontrollpunkten / Knotenvektor:

S-bsp = BSP,ptNr,degree,controlpoints,knotvector,Startparameter,Endparameter
  ptNr = Anzahl von Kontrollpunkten
  controlpoints: die Kontrollpunkte; Anzahl = ptNr, 3 Werte (X/Y/Z).
  knotvector: die Abstandsparameter; Anzahl = ptNr + degree + 1.

Beispiel:
S20=BSP,6,3,-178,109,0,-166,128,0,-144,109,0,-109,112,0,-106,134,0,-119,138,
 0,0,0,0,0,0.333333,0.666667,1,1,1,1,0,1


B-Spline aus Punkten:
S-bsp = BSP {points} [,degree] [,CTRL]
  CTRL: ob die definierten Punkte Durchgangspunkte oder Kontrollpunkte sind.

Beispiel:
P20=P(78,9)
P21=P(66,28)
P22=P(44,9,25)
P23=P(9,12)
P24=P(6,34)
# B-Spline from Points
S20=BSP,P20,P21,P22,P23,P24


B-Spline aus Polygon:
S-bsp = BSP {Polygon} [,degree] [,CTRL]
  CTRL: ob die definierten Punkte Durchgangspunkte oder Kontrollpunkte sind.

Beispiel:
P20=P(78,9)
P21=P(66,28)
P22=P(44,9,25)
P23=P(9,12)
P24=P(6,34)
# B-Spline from Points
S20=BSP,P20,P21,P22,P23,P24
# Polygon from Points:
DRAW OFF
S21=POL,P20,P21,P22,P23,P24
# BSpline from Polygon
DRAW ON
S22=BSP,S21


B-Spline = Isoparametrische Kurve aus einer Flaeche
Dzt nur aus B-SplineFläche, Punkteingabe statt Parameterwert noch nicht implementiert
S-bsp = ISO {B-SplineFläche} {Parameterwert} [,CX]

Eingaben:
Fläche: Dzt nur B-SplineFläche
Parameterwert: (0 - 1)
Optional: Richtung.
Keine Angabe: LängsRichtung; "CX" definiert QuerRichtung.
(Modifier CX = across; Default = along)


Beispiel:
# Querschnittkurve in der Mitte der Surface A20:
S20=ISO A20 .5 CX





Kontur ("Concatenated Curve" - CCV)
S#=CCV <Konturelemente>

Die Kontur beginnt und endet an einem Punkt.
Elemente: Punkte, Linien, Kreise, Kurven.
Im Anschluss an Kreise und Kurven kann die Drehrichtung (CW oder CCW) definiert werden. Es werden automatisch Normalen an Linien und Kreisbögen gebildet.
Beispiel:
C20=P(39,26) VAL(22)
S20=CCV P(7,25) C20 CW P(35,58)









2D-CompositeCurve aus 2D-Polygon:
Eine 2D-CompositeCurve besteht aus Kreisen/Linien

S#=CCV2, 2D-Polygon, Toleranz

Beispiel:
P20=P(78,9)
P21=P(66,28)
P22=P(44,9,25)
P23=P(9,12)
P24=P(6,34)

# Poly <- Points
DRAW OFF
S20=POL,
& P20,P21,P22,P23,P24

# BSpline <- Poly
DRAW ON
S21=BSP,S20,2

# Poly <- BSpline
DRAW OFF
S22=POL,S21,0.05

# 2DPoly <- Poly
DRAW OFF
S23=POL2,S22,R22,0.05

# 2DCirc/Line <- 2DPoly
DRAW ON
S24=CCV2,S23,0.05






Achsensysteme - Ebenen

Vordefinierte Ebenen sind:
RZ         Basisebene XY
RY         Ebene XZ
RX         Ebene YZ

R = Nullpunkt
Es wird eine Ebene mit dem angegebenen Nullpunkt und den Achsen des Hauptachsystems erzeugt.


Definition einer Ebene durch den Nullpunkt und einen Normalvektor:
R = Nullpunkt Normalvektor/Linie
Normalvektor: Vektor oder Linie.
Beispiele:
R10=P(100 100 100) D(0 0 1)
R11=P154 D(ANG(90) ANG(45))
R12=P(100 100 100) L(P(0 0 0) P(0 0 100))


Ebene aus Nullpunkt, Normalvektor der Ebene und einem Punkt auf der X-Achse der neuen Ebene:
R=po vz px
Beispiel: R11=P(100 100 100) D(0 0 1) P(101 100 100)


Ebene aus Nullpunkt, Normalvektor und X-Achsvektor:
R=PERP Origin Z-Achse X-Achse
Beispiel:
R21=PERP P(50 50) DX DY



Definition einer Ebene durch den Nullpunkt, den X-Vektor der Ebene und einen weiteren Vektor in der neuen Ebene:
R=po vx vc
Beispiel:
R12=P(100 100 100) D(1 0 0) D(0 1 0)
R20=P(100 100 25) DX DY

Ebene/Referenzsystem durch drei 3D-Punkte;
R=po, px, pt
po = der Nullpunkt,
px = ein Punkt auf der X-Achse der neuen Ebene,
pt = ein Punkt in der Ebene (der nicht in einer Linie mit po - px liegen darf).
Beispiel:  R4=P(100 100 100) P(101,100,100) P(100,101,100)


Ebene/Referenzsystem verschieben (die Achsenrichtungen bleiben):
R = Refsys Nullpunkt
Beispiel:
R21=R20 P(100 100 50)


R = Z(Z_Abstand)

Die neue Ebene ist parallel zur X-Y-Ebene, alle Achsenrichtungen sind hier gleich wie bei der Hauptachse. Der Abstand auf der Z-Achse wird angegeben.
Beispiel: R5=Z(100)


R = X(X_Abstand)

Ebene parallel zur Y-Z-Ebene; die neue X-Achse entspricht der 3D-Y-Achse, die neue Y-Achse entspricht der 3D-Z-Achse. Die neue Z-Achse entspricht der Hauptachse -X.


R = Y(Y_Abstand)

Ebene parallel zur X-Z-Ebene; die neue X-Achse entspricht der 3D-X-Achse, die neue Y-Achse entspricht der 3D-Z-Achse. Die neue Z-Achse entspricht der Hauptachse -Y.


R12

Aktivieren von Refsys Nr. 12.


RZ

Entspricht der Hauptachse = Rücksetzen.









Flächen - Area:



Planare Flächen; getrimmt, ungelocht und gelocht:
A = Randkurve [Inseln ...]
Randkurve, Inseln:

ein Kreis, eine Ellipse, ein geschlossener B-Spline oder eine geschlossene CCV (S=CCV ..).


# Beispiel Planare Fläche:

P20=P(-120 -160)
# Die Randkurve:
S20=CCV P20 P(233 -186) P(223 -95) P(104 -81) P(135 134) P(-122 162) P20
# die planare Fläche:
A20=S20

# Beispiel:  Aussenrand C29, Insel C28.

C29=P(-252.2 -580.9 0) VAL(12)
C28=P(-255.9 -606.8 0) VAL(66)
A20= C28 C29





Ruled Surface aus zwei Grundelementen (PT/LN/AC/CV)
A#=SRU Objekt1 Objekt2

Beispiel:
L20=P(0 -10 20) P(0 10 20)
C20=ARC P(0 -10) P(0 10) P(0 0)
A20=SRU C20 L20

Ruled Surface aus Grundelement und Vektor:
Beispiel:
L30=P(0 -10 20) P(0 10 20)
D30=D(10 10 60)
A30=SRU L30 D30




Drehflächen:

Zylinderfläche
A = CYL Achse Radius drehWinkel1 drehWinkel2 Hoehe1 Hoehe2
Zylinderflaeche;
Achse        Linie od Kreis od Ebene od PT+PT od PT+LN od PT+VC
Radius        KeyIn Radius oder Punkt.
drehWinkel1  KeyIn Startwinkel (Def = 0) oder Punkt.
drehWinkel2  KeyIn Endwinkel (Def = 360) oder Punkt.
Hoehe1      KeyIn Hoehe (ab position; Def = 0) oder Punkt.
Hoehe2      KeyIn Hoehe (ab position) oder Punkt.
R22=P(105 129.2 0) D(1 1 1)
A22=CYL R22 12 0 360 0 30


Kugelfläche
A = SPH Achse
Radius [drehWinkel1 drehWinkel2 [HoeheWinkel1 HoeheWinkel2]]
Kugelflaeche; Parameter wie Zylinderflaeche.
Achse       Linie od Kreis od Ebene od PT+PT od PT+LN od PT+VC
Radius       KeyIn Radius oder Punkt.
drehWinkel1  KeyIn Startwinkel (Def = 0) oder Punkt.
drehWinkel2  KeyIn Endwinkel (Def = 360) oder Punkt.
HoeheWinkel1 KeyIn Startwinkel (Def = 0) oder Punkt.
HoeheWinkel2 KeyIn Endwinkel (Def = 180) oder Punkt.
P20=P(68 68.9 0)
A21=SPH R(P20) 12



Revolved - Surface  (Rotationsfläche, Drehfläche)

A= SRV Achse [Kontur drehWinkel1 drehWinkel2 [Hoehe1 Hoehe2]]
Achse       Linie od Kreis od Ebene od PT+PT od PT+LN od PT+VC
Kontur       Linie, Kreis od. B-Spline.
drehWinkel1  KeyIn Startwinkel (Def = 0)
oder Punkt.
drehWinkel2  KeyIn Endwinkel (Def = 360)
oder Punkt.
Hoehe1       KeyIn Startparameter (Def = 0.) oder Punkt.
Hoehe2       KeyIn Endparameter (Def = 1.) oder Punkt.

Der Startpunkt des Konturelementes liegt in Winkelposition 0 Grad; die Drehrichtung ist CCW.

Beispiel:
L20=P(20 0) P(20 20)
L21=P(50 0) P(40 20)
A20=SRV L20 L21 270 0





B-Spline-Fläche:
A#=BSP,pt1Nr,pt2Nr,degree1,degree2,controlpoints,knotvector1,knotvector2
  pt1Nr = Anzahl von Kontrollpunkten in Richtung 1
  pt2Nr = Anzahl von Kontrollpunkten in Richtung 2
  degree1 = Grad der B-Splinekurven in Richtung 1
  controlpoints: die Kontrollpunkte; Anzahl = pt1Nr * pt2Nr, 3 Werte (X/Y/Z).
  knotvector1: die Abstandsparameter fuer Richtung 1; Anz. = pt1Nr + degree1 + 1




Fläche supported, trimmed, punched:
A = FSUB Stützfläche Randkurve [Inseln ...]


A = FSUB A S             // Stützfläche  (SRU, BSP) getrimmt
A = FSUB A S S           // Stützfläche  getrimmt und 1 Loch
A = FSUB A A S           // Stützfläche nicht getrimmt, 1 Loch

A = FSUB B               // Konus od. Torus (unbegrenzt, ungelocht)
A = FSUB B S             // getrimmt
A = FSUB B S S           // getrimmt, gelocht
A = FSUB B B S           // ungetrimmt, gelocht

Stützfläche:

Es ist immer eine Stützfläche erforderlich.
kann sein: A=SRU A=BSP oder
Fläche auf Kegel (konisch): einen Solidkörper "Conus" wählen (B=CON ..).

Fläche auf Torus (Kreisring): einen Solidkörper "Torus" wählen (B=TOR ..).

Randkurve, Inseln:

ein Kreis, eine Ellipse, ein geschlossener B-Spline oder eine geschlossene CCV (S=CCV ..).
Die Randkurve muss sich auf der Stützfläche befinden. Ist die Aussenkontur mit der Begrenzung der Stützfläche ident, kann die Stützfläche auch als Randkurve angegeben werden.

# Beispiel Konusfläche:
P20=P(100 0 0)
P21=P(200 0 0)
P22=P20 Y(120)
P23=P21 Y(60)
P24=P20 P22 ANG(135) DX
P25=P21 P23 ANG(135) dx
C20=ARC P23 P25 P21 dx
C21=ARC P22 P24 P20 dx
# Der Grundkörper:
B20=CON C21 C20
# Die Randkurve:
S20=CCV P23 P22 C21 P24 P25 C20 P23
# Die Konusfläche:
A20=FSUB B20 S20
#


Kreisähnliche Fläche aus 3 - n Punkten.
A#=RCIR,P#,P#,P#<,P#>
 
  Vom ersten Punkt gehen alle Strahlen aus (zB Konusmittelpunkt).

Beispiel:
P20=P(5, -2)
P21=P(9, -1)
P22=P(8, 3)

A20=RCIR,P20,P21,P22,P(4 3)



Streifenförmige Fläche aus 1-n Streifen.

A#=RSTRIP,ptNr,P#,P#,P#<,P#>
Jeder Streifen besteht aus zwei Reihen von je <ptNr> Punkten. Min. Anzahl von Punkten ist 2 * ptNr. Für 2 Streifen sind (3*ptNr) Punkte erforderlich.

Beispiel:
P20=P(2 0)
P21=P(4 0)
P22=P(6 0)
P23=P(8 0)

P30=P(2 0 5)
P31=P(4 1 5)
P32=P(6 1 5)
P33=P(8 0 5)

A21=RSTRIP,4, P20,P21,P22,P23, P30,P31,P32,P33



Freiformflaeche aus Laengsschnittkurven und Querschnittkurven.
Typisch: 2 + 2 Randkurven.
Sonderform: 3 Randkurven.

Alle Laengs- und Querschnittskurven muessen ein Netz bilden -
  - je einen gemeinsamen Punkt haben.

Eingabekurven koennen Linien, Kreisboegen oder Freiformkurven sein
(dzt nicht CCV - zusammengesetzte Kurve).

Beispielmodelle:
  sample_area_bsp3 (5 x 4 Kurven)
  sample_area_bsp5 (2 x 1 Randkurven)
  sample_area_bsp7 (2 x 2 Randkurven)



Freiformflaeche aus Querschnittkurven. Eingabekurven koennen Linien, Kreisboegen oder Freiformkurven sein (dzt nicht CCV - zusammengesetzte Kurve). Beispielmodell: sample_area_bsp4 sample_area_bsp6

Schraffur / Hatch:
A# = HAT Kontur Abstand Richtung
Richtung = Schraffurwinkel in Grad

Beispiel:
P20=P(-500 500)
S21=CCV P20 P(400 900) P(400 300) P20
A20=HAT S21 VAL(50) VAL(45)


Derzeit noch keine Import / Export - Funktion für Schraffuren.
Derzeit noch keine Funktion für gelochte Schraffuren.







Solids- Body:



Kugel:

# Kugel aus Mittelpunkt Radius:
B1=SPH P(0 0 0) 12

# Kugel aus Kreis:
C1=P(0 0 0) 12
B2=SPH C1



Konischer Körper (Kegel):


B1=CON BasisKreis Punkt_Kegelspitze

B2=CON Mittelpunkt_1 Mittelpunkt_2 Radius_1 Radius_2

B3=CON Kreis_1 Kreis_2

Beispiel:
B20=CON P(0 0 0) P(100 0 0) VAL(60) VAL(40)

C20=P(0 0 0) VAL(100) DX
C21=P(100 0 0) VAL(40) DX
B20=CON C20 C21




Torus / Kreisring:


B#=TOR Mittelpunkt Hauptachse Radius_Hauptkreis Radius_Nebenkreis

B#=TOR L C                                 // Achse Aussenkreis
B#=TOR C C                                // Hauptkreis Aussenkreis
B#=TOR R C                                // Basisebene Aussenkreis

Die Achse des Hautkreises ist die Hauptachse.
Die Nebenkreisachse liegt immer normal auf Hauptachse.
Radius_Hauptkreis ist ganz an der Aussenseite; ist also immer positiv.
Modifikator_Aussen_Innen: erforderlich zur Auswahl einer Variante, bei der der Radius_Hauptkreis kleiner als der Radius_Nebenkreis ist.


Beispiel:
B20=TOR P(0 0 0) DZ VAL(100) VAL(25)
C20=P(100 0 0) VAL(25) DY
B20=TOR P(0 0 0) DZ C20






Prisma:

B=PRISM planare_Basisflaeche Vektor/Point/Dicke

planare_Basisflaeche: geschlossenes Polygon / Kreis /Ellipse
Die gegenüberliegende Fläche kann ein Punkt sein oder durch einen Vektor oder die Dicke (z.B. Blechdicke) definiert sein.


Beispiele:

# Prisma aus Parallelogram und Vektor
S20=REC P(100 0 0) D(50 0 0) D(0 12 0)
B20=PRISM S20 D(0 0 10)



# Prisma aus Kreis mit Dicke (Zylinderhöhe)
C20=P(289 -20.8 0) VAL(125) DZ
B20=PRISM C20 25



# Prisma konisch aus Polygon
P20=P(768 -457 0)
S20=POL P20 P(930 -474 0) P(1029 -251 0) P(971 -246 0) P(891 -412 0) P(801 -407 0) P20
B21=PRISM S20  P(900 -500 200)







Models

Siehe Interne Modelle  / Externe Modelle



M# = "<modelname>" Position [Scale] [Z-Vektor [X-Vektor] ]
M# = "<modelname>" Position [Scale] [Refsys]

Modelname: siehe Symbolische Dateibezeichnungen.

Beispiel internes Submodell:
M20="Submodel1" P(100 0)

Beispiel externes Model:
M20="Data/Niet1.gcad" P(100 0) 0.5 DZ DIY

Beispiel Mockup-Model:
M21="Data/clocktwr.wrl" P(0 0 0) R20






Geom.Modifikationen   (Cut (Trim),  Intersect, Transform, Project, Mirror)


CAD-Modus: Checkbox newObj bestimmt, ob das Element modifiziert wird oder ob ein neues Element erzeugt wird.



CUT

Lineare Elemente (Linien, Kurven) begrenzen, mit einem oder zwei Schneidelementen:
obj=CUT obj Schneidelement (Variante) (Schneidelement (Variante))

Beispiel:
L20=P(-60 30 0) P(20 70 0)
C20=P(-14 40 0) VAL(32) DZ
C20=CUT C20 L20 L20
# Kreis C20 wird an beiden Enden begrenzt (getrimmt).


Parameterwerte als Schneidelemente: dzt nur für B-Splines:
S21=CUT S20 0.33 066

CUT noch nicht für Flächen.


INTERSECT
<ErgebnisObjekt>=INT <Obj1> <Obj2> [MOD(#)] [POL]
Mehrere Objekte (zB mehrere Flächen) können mit  U(obj1 obj2 ..) zu einer Gruppe zusammengefasst werden.
Mit MOD() wird definiert, welches Teilstück ausgegeben wird; zB MOD(2) wüde die zweite Teilkurve ausgeben. (Offen: alle Teil-Lösungen als Gruppe ausgeben).
Mit POL wird Polygon statt Spline ausgeben

# Beispiel Intersection:
P20=P(-62.5 -63.7 0)
S20=CCV P20 P(-20 -70) P(-40 -15) P20
A20=S20
#
P21=P(-60 -110 20)
P22=P(S20 MOD(2) 1)
S21=POL  P21 P20 P22 P21
A21=S21
#
R20=X(-35)
#
S22=INT U(A20 A21) R20 POL
#




TRANSFORM

Translation:
# Objekte um einen Vektor verschieben (REV: Gegenrichtung).
# obj=TRA obj vec/traVC [REV]
P20=P(100,0,0)
P21=TRA P20 D(0 0 100)

T20=D(10 10 10)
P22=TRA P21 T20

# traVC (T20 im Beispiel): siehe Transformation


Rotation:

Objekte um eine Achse drehen.
obj=TRA obj traRot
L20=P(50 0 0) P(50 0 10)
P20=P(100 0 0)
T20=ROT L20 ANG(90)
P21=TRA  P20 T20

# traRot (T20 im Beispiel): siehe Transformation



Transformation:
# Objekt aus einem Referenzsystem in die Hauptlage transportieren.

# Als Referenzsystem kann jede Ebene benutzt werden.
# obj=TRA obj refSys REV
R20=P(100 100 25) D(-1 0 2)
L20=P(100 100 25) P(100 120 25)
L21=TRA L20 R20 REV

# Objekt (aus dem Hauptachsensystem) in ein anderes Referenzsystem transportieren
# obj=TRA obj refSys
P21=TRA P(0 0 10) R20


 

PROJECT
Lineare Elemente auf eine Ebene projizieren.
obj=PRJ obj Plane
S20=PRJ S20 R20
# Kurve S20 wird auf die Ebene R20 projiziert.



MIRROR
Lineare Elemente um eine Ebene spiegeln.
obj=MIR obj Plane
S20=MIR S20 R20
# Kurve S20 wird um die Ebene R20 gespiegelt.

Derzeit nicht für Flächen.




Variablen


Direktzuweisung:
V20=10

 
Rechnen mit Operatoren:
V21=V20+10
 

ACHTUNG: es ist Klammerung entspechend der Operatorpriorität erforderlich !
V22=10+(V21*3))                                  // ergibt 70
V22=10+V21*3                                     // ergibt 90


Rechnen mit Funktionen (sqrt, sin, cos, tan):
V23=SQRT(9)


Absolutwert (das Vorzeichen ist immer positiv)
V24=ABS(V20)
 
Integerzahl - den Rest hinter dem Komma abschneiden;
V25=FIX(1.8)                            // ergibt 1.0
 

Runden. Beispiel: 1.3 wird zu 1.0, 1.8 wird zu 2.0, -1.3 wird zu -1.0, -1.8 wird zu -2.0.
V26=RND(V20)
 

Abstand Punkt-Punkt:
V5=P1 P2

 
Normalabstand von Punkt zu Linie:
V6=P1 L2

 
Länge einer Linie:
V7=L10


Radius eines Kreisbogens:
V9=C10

 
Die X / Y / Z - Koordinaten eines Punktes:
V7=X(P1)
V8=Y(P2)
V9=Z(P2)
 

Vordefinierte Variablen: PI (3.1415..)
V1=PI*180


Durchmesser errechnen zB:
V10=C10
V10=V10*2
PRI V10                               // anzeigen
 

 
 Numer. Variablen werden indirekt durch Funktion VAL() benutzt; Beispiel:
 C10=P10 VAL(C5)
 (es wird der Radius des C5 übernommen).
 

In den CAD-Eingabefeldern können als Zahlenwerte (zB für Radius) nur Variablen, PI, die Grundrechnungsarten und mathemat. Funktionen benutzt werden (nicht die Funktionen X,Y,Z sowie L, C).
 




Winkel   -   ANG()

Bei allen Varianten kann zusätzlich angegeben werden:
REV  (revert, umdrehen) oder
ANG(Winkelwert). Der Winkelwert wird dem Ergebniswert aufaddiert.


# Winkelwert
ANG (Winkelwert [REV])

# Richtungsvektor
ANG (D [ANG()/REV])

# Linie (Richtung)
ANG (L [ANG()/REV])

# 2 Punkte (Richtung)
ANG (P P [ANG()/REV])

Im Modus CAD kann durch die PgUp / PgDown - Taste eine zusätzlicher (relativer) Winkelwert von jeweils +90 Grad aufaddiert werden. (Es muss zuvor eine Angabe gemacht worden sein (zB eine Linie selektieren)).



Beispiel:
P20=P(69.9 -60.7 0)
P21=P(119 -20.3 0)
P22=P(122.1 -65.1 0)
L20=P22 ANG(P20 P21)
L21=P22 ANG(P20 P21 ANG(90))





Interaktionen

Jedes CAD-Objekt kann mit einer Interaktion verbunden werden.
Interaktionen benutzen Typ "I".
Bei Selektion des CAD-Objekts (Ankerobjekts) wird die Interaktion ausgelöst.
Beispiele für Interaktionen sind:
 - Ein Folgemodell laden (wie HTM-HREF; LDMOD)
 - Viewposition wechseln (Ansicht ändern, VIEW)
 - Ein Plugin-Programm (DLL) starten / ausführen   (EXECM)


Format Interaktion:
I20 = <Ankerobjekt> "<Command>"

Commands:
  Ein Modell laden:
    LOAD "symbol.Verzeichnis/Modelname"

  Den Viewport verändern:
    VIEW <viewPortDaten>
    Mit Insert/ViewPort (oder Alt-Shift-V) kann man die aktuellen Viewport-Daten generieren.

  Ein Plugin-Programm (DLL) starten / ausfuehren:
    EXECM DLL-Name
    Achtung: das Programm darf keine Rekursion enthalten
    (zB "UI_butCB (NULL, (void*)"butEND");").

  Die gleiche Interaktion für ein weiteres Objekt aktivieren - Beispiel:
    I20 = N20 "VIEW ..."
    # Bei Selektion von N20 Ansicht ändern
    I21 = N21 I20
    # Auch bei Selektion von Objekt N21 die gleiche Interaktion I20 ausführen.


Beispiele:
 I1 = M1 "VIEW ...."
 # Bei Selektion von Model1 wird der angegebene Viewport aktiviert.

 I2 = P20 "LDMOD "Data/Assy_H86""
 # Bei Selektion von Punkt 20 wird Model Assy_H86 geladen.

 I3 = N20 "EXECM tst3"
 # Bei Selektion von Note 20 wird Plugin-Programm tst3.so gestartet.





Graf. Attribute


DRAW OFF

Darstellung aller folgenden Objekte aus / einblenden (ON).



MODE DISP_PT OFF

Darstellung Punkte abschalten;

MODE DISP_PT ON

Zurücksetzen mit ON. Standard ist ON.

MODE DISP_PT ptSize

Definition Punktgrösse.



Layer
Farben, Linientypen, Strichstärken







Layer

Es gibt 265 Layers (0-255), Standard ist Layer 0.
Es können bei einigen Befehlen alle Layer mit "ALL" angesprochen werden.

LAY 12

ab jetzt alles dem Layer 12 zuordnen

LAY 0

ab nun wieder alles dem Standardlayer 0 zuordnen



LAY 12 OFF

Layer 12 ausblenden (ALL: alle Layer).

LAY ALL ON

Alle Layer einblenden.



LAY 12 HILI ON

alle Objekte in Layer 12 hiliten

LAY 12 DIM OFF

alle gedimmten Objekte in Layer 12 normal darstellen

LAY 12 NOP ON

alle Objekte in Layer 12 nicht selektierbar machen



LAY 12 ADD Eigenschaften  



Eigenschaften (ein oder mehrere der folgenden):


LAY 8 Input nur von Layer 8


TYP PT nur Punkte (LN=Lines, CI=Kreise, AC=Kreisbögen)


COL 2 nur Farbe 2 (rot)


LTYP 2 nur Strichtyp 2 (strichliert kurz)


THICK 2 nur Liniendicke 2


Beispiel - alle roten Obj von Layer 5 dem Layer 12 zufügen :
LAY 12 ADD LAY 5 COL 2






Farben, Linientypen, Strichstärken

Es existiert eine Tabelle für die Linienattribute.
Diese Tabelle besteht aus je einem Wert für Farbe, Strichtyp und Strichdicke.

G21=Farbe, Strichtyp, Strichdicke

Farbe:
0=keine
1=schwarz
2=rot
3=grün
4=blau
5=gelb
6=magenta
7=cyan
8=weiss
9=Hilite
10=dimmen
11=Fläche blau
12=Fläche rot
13=Fläche grau.


Strichtyp: 0 = Vollinie
1 = Strich-Punkt-Linie
2 = strichliert kurz
3 = strichliert lang.


Strichdicke:
1 bis max. 15.




Beispiel:
 

G20=2,0,4          

Rote Vollinie mit Dicke 4.

G20

Aktivieren des Attributtabelleneintrages 20; alle


nachfolgend erzeugten Elemente erhalten diese Attribute.








 Die Tabellenplätze 0 bis 12 sind vordefiniert:

   0 = Default; Defaultfarbe, Vollinie, normal.
   1 = Defaultfarbe, Vollinie, dünn.
   2 = Defaultfarbe, strichliert, dünn.
   3 = Defaultfarbe, Strich-Punkt-Linie, dünn.
   4 = Tool left;  Fläche blau
   5 = Tool right; Fläche rot;
   6 = Tool off;   Fläche grau.
   7 = Symbole, Schwarz, Voll, Dicke = 2.
   8 = Aktives Element; Grün, Voll, Dicke 3.
   9 = Selektiert; Hilite-farbe, Voll, Dicke 4.
  10 = gedimmt; Farbe gedimmt, Voll, Dicke 1.
  11 = 2. Farbe Bearbeitung Oberseite; Default, Voll, Dicke 2.
  12 = dick, rot, strichliert



HILI

Aktivieren der Farbe "Selektiert".
Entspricht auch dem "G9".
Rücksetzen mit G1 (aktivieren Default).


DIM

Aktivieren der Farbe "DIM" (abdunkeln).
Entspricht auch dem "G10".
Rücksetzen mit G1 (aktivieren Default).
Diese Objekte werden nicht exportiert !


NOP ON           

Aktivieren "NOPICK"; die folgenden Elemente sind nicht selektierbar.
Rücksetzen mit NOP OFF.



Defaultfarbe für Flächen:

DEFCOL  <rot>  <blau> <grün>
Rot/Blau/Grün sind als Zahlenwerte von 1 bis 255 zu definieren; 1,1,1 ist schwarz.
Beispiel stahlblau:
DEFCOL 200 200 220


 




MultiModelsupport



Interne Submodels

Die Modelbezeichnung darf keinen Pfad (und kein Pfadtrennzeichen "/" oder "\") enthalten.
Während der Bearbeitung werden Submodelle in <base>/tmp/Mode_<submodelname> zwischengespeichert.
Alle internen Submodels werden im Modelfile abgespeichert.


Erzeugen von Submodels:

- move main --> new submodel
    alle Objekte des aktiven Mainmodel in ein Submodel umkopieren.
- create new submodel
    Ein neues Submodel anlegen und aktivieren.
- load submodel from file
    Ein natives Model aus einer Datei in eine neues Submodel laden.


Benutzen von internen Submodels im CAD-Modus:

mit der Funktion 'M-int.Modell'

Auswahl eines Submodels aus Liste (durch mittlere Maustaste) oder durch Selektion eines bereits vorhandenen Submodels.



Benutzen von internen Submodels im MAN-Modus:
durch Key-In von zB:

M20="subModel1" P(0 0 0) DZ DIY





Externe Submodels

Für diese Models muss es eine (externe) Modelldatei geben.
Die Modellbezeichnung muss einen symbolischen Pfad enthalten.
Die Modelldatei muss in einem Verzeichnis liegen, das über ein Symbol angesprochen werden kann.
Siehe Symbolische Dateibezeichnungen.
Externe Modelle dürfen dzt nur Mockup-Modelle (zB WRL), jedoch keine internen oder externen Submodelle beinhalten !
Externe Submodels werden nicht intern zwischengespeichert.

Benutzen von externen Submodels im CAD-Modus:
mit der Funktion 'M-ext.Modell'

Auswahl eines Submodels eines Submodels aus Liste (durch mittlere Maustaste, im Grafikfenster) oder durch Selektion eines bereits vorhandenen Submodels.

Benutzen von externen Submodels im MAN-Modus:
durch Key-In von zB:
M20="Data/Mod1.gcad" P(0 0 0) DZ DIY




Symbolische Dateibezeichnungen:

Eine symbolische Dateibezeichnung besteht aus
"<symbolischer_Pfad>/<Dateiname>"

Alle symbolischen Pfade sind in Datei <base>xa/dir.lst definiert.
Das Symbol ist frei wählbar.
Pfad interaktiv definieren mit "Standards/Directories".

Standardverzeichnis ist <base>/dat; das Zugriffsysmbol für dieses Verzeichnis ist "Data".
Eine Modelbezeichnung wäre also zB "Data/Niet1.gcad".









Programmierumgebung



stat
Statusanzeige; Anzahl der freien / belegten Elemente anzeigen.




Variablen
Unterprogrammtechnik
Programmierfunktionen





Unterprogrammtechnik

Unterprogramme können zum Erzeugen von Geometrieelementen und NC-Bearbeitungswegen benutzt werden.



MAC unterprogrammName
Beginn allgemeines Unterprogramm. Im Unterprogramm kann auf alle Variablen zugegriffen werden. Allgemeine Unterprogramme werden für den Postproz. aufgelöst. Verschachtelungstiefe:  bis max 10 Ebenen tief.
UnterprogrammName muss aus mindestens 2 Buchstaben bestehen, dann können Ziffern folgen.
Geometr. Elemente werden in die DB gespeichert, aber nicht angezeigt.

END
Ende allgemeines Unterprogramm.

CALL unterprogrammName
Aufruf allgemeines Unterprogramm an der momentanen Position.
Achtung: der Unterprogrammname muss auch betreff Gross / Kleinschreibung völlig ident sein.



CALL "Dateiname"
Ein in einer Datei befindliches Unterprogramm ausführen. Das Unterprogramm ist ohne MAC und END abzuspeichern. Derzeit kann in solchen Unterprogrammen nicht in ein weiteres Unterprogramm verzweigt werden.

--------------------------------------------------------------------------------------

GEO UnterprogrammName
Beginn Geometrieunterprogramm. Das erste Element ist die Startlinie, dann die Kontur, das letzte Element dieses Unterprogrammes ist die Ausfahrlinie. Entlang der Startlinie wird die Korrektur aufgebaut, entlang der Kontur wird mit Korrektur geschnitten (G40, G41 oder G42), entlang der Ausfahrlinie wird die Korrektur wieder abgebaut.
UnterprogrammName muss aus mindestens 2 Buchstaben bestehen, dann können Ziffern folgen.
Im Unterprogramm kann auf alle Variablen zugegriffen werden. Verschachtelungstiefe: bis max 10 Ebenen tief. Geometrieunterprogramme werden für den Postprozessor als Unterprogramme angelegt.

Innerhalb der Geometrieunterprogramme wird eine Kontur mit CON0 - CONEND definiert.

END
Ende Geometrieunterprogramm.




Beispiel MAC:
MAC Kreis1
V2=V1*2
PRI "V2=" V2
P1=V1 V2
END
V1 = 16
CALL Kreis1
V1 = 20
CALL Kreis1
PRI "P1=" P1


ZSUR2 20
P20=P(100 100)
P21=P(200 100)
MAC Kreis1V
# V1=Rad
TL 1
P1901=P0
V2=V1*2
PR V1,0
AR -V2,0,-V1,0
AR V2,0,V1,0
TL 0
END
TL 0
FROM 50,50
RP P20
V1=16
CALL Kreis1V
RP P21
CALL Kreis1V
RP P21


Programmierfunktionen:

# Kommentar 
   

# Testausgaben von Texten / Variableninhalten:
# (nur zu Testzwecken im Meldungsfenster)
PRI "Text"
PRI "Punkt1 =" p1                 
PRI "Var 1 =" v1




#  Verzweigen, unbedingter Sprungbefehl.
JUMP Labelname
..
:Labelname 
# Das Sprungziel. Achtung: muss auch betreffend 
# Gross / Kleinschreibung völlig ident sein.





# Programm beenden (alle folgenden Zeilen ignorieren)
EXIT



Bedingte Verzweigung mit if
if Wert Bedingung Wert ; Befehl
 Es gibt folgende Bedingungen: 
  eq      gleich,
  ne      nicht gleich,
  lt      kleiner,
  gt      groesser,
  l_e     kleiner oder gleich,
  g_e     groesser oder gleich.

# Beispiel
V20=10
:Next
PRI "Var 20 =",V20
V20=V20+10
IF V20 LT 55 ; JUMP Next
 
 

Ausgeben/Einlesen von Befehlscodes in/aus Datei:
Mit Write kann in eine Datei ausgegeben werden; die Datei
wird im Temorärverzeichnis von gcad angelegt, der Dateityp
.write ist fix. Diese Dateien werden beim Laden des nächsten
Modells automatisch gelöscht.
Es werden alle Textzeilen von WRITE bis ENDWRITE in die
Textdatei {filNam}.write ausgegeben.
Der Dateiinhalt kann mit dem Befehl CALL geladen werden.

# Beispiel WRITE/CALL: save Parameters to File
WRITE "TestPar1"
V20=15
V21=16
ENDWRITE

# load Parameters from File
CALL "TestPar1"
PRI "V20=",V20

# use Parameters
P20=0 0 0
#V20=5
#
P20=P20
P21=P20 Z(12)
B20=CON P20 P21 VAL(V20) VAL(V20)
#


NC-Bearbeitungsfunktionen


Die aktuelle Position kann jederzeit über den Punkt P0 abgefragt
  und somit später wiederbenutzt werden.


TL 1
Werzeugwechselbefehl (mit Werzeugnummer);
TL 0
das Werkzeug entladen.





FROM FromPunkt

Definiert die angegebene Position als Startpunkt eines Konturprogrammes. Diese Anweisung darf nur einmal im Hauptprogramm und einmal in jedem Geometrieunterprog. definiert werden. Beispiel:  " FROM 100,100" oder "FROM P20"

RP Punkt
Rapid - Verfahranweisung absolut. Darstellung: oben blau / strichliert, unten rot.

RPR X-Abstand,Y-Abstand
Rapid - Verfahranweisung relativ.




WORK P10
WORK P(100 100)
Direktverfahranweisung über Angabe von Koordinaten oder eines APT-Punktes.

PR xAbstand, yAbstand
Definition einer relativen Verfahrstrecke.

NICHT AKTIV:
A Endpkt Mittelpkt <Drehrichtung>
Definition Kreisbogen, Absolutkoordinaten. Der Kreisbogen beginnt an der momentanen Position.
Standarddrehrichtung ist Gegenuhrzeigersinn (CCW)

NICHT AKTIV:
AR Endpkt Mittelpkt <Drehrichtung>
Kreisbogen mit relativen Koordinatenangaben. Der Kreisbogen beginnt an der momentanen Position, Endpunkt und Mittelpunkt werden relativ zu diesem Startpunkt definiert. Wird, beginnend an der momentanen Position, sofort abgearbeitet. Beispiel:
AR -10 10 -10 0 CW
AR 10,10,0,10
Viertelkreis (von 270 bis 360 Grad) im Gegenuhrzeigersinn.


POCKET Randabstand Schnittabstand
Definiert die Parameter für nachfolgende Pocketzyklen.

WORK Beabeitungtyp UnterprogrammName [Parameter]
Aufruf Geometrieunterprogramm an der momentanen Position. Die Startposition ist also vorher mit "RP .."  od. "P1" anzufahren.
Konturen können in Unterprogrammen (GEO) abgelegt und mit WORK mehrfach aufgerufen werden.

Bearbeitungstypen:

CUT KonturName [Parameter]
REV KonturName [Parameter]
SEP_CUT KonturName [Parameter]
SEP_REV KonturName [Parameter]
POCK KonturName KonturStartpunkt
CUT_CIR Radius Startrichtung Umfahrungswinkel Ausfahrstrecke [Stopwinkel]
POCK_CIR Radius_aussen Radius_Bohrloch [Mittelpunkt]

Pocketzyklen siehe auch POCKET-Befehl.

KonturName:  muss dzt ein Polygon oder eine CCV sein. Siehe Beispiele.

Parameter:
<winkelwert>             Verdrehen. Direkt den Winkel angeben.
xmir                     um die X-Achse spiegeln
ymir                     um die Y-Achse spiegeln

Beispiel; Macro S20 um X gespiegelt, um 30 Grad gedreht an der momentanen Position abarbeiten. Wird gespiegelt und gedreht, so wird zuerst die Spiegelung, dann die Drehung ausgeführt.
WORK S20 30 XMIR

SEP_ sind Trennschnitte (es wird automatisch ein Konturprogramm erzeugt, das eine offene Kontur schliesst).

Die Position nach dem Unterprogramm kann über den Punkt P0 abgefragt und so später wiederverwendet werden.
WORK Beabeitungtyp "Dateiname"
Ein in einer Datei befindliches Unterprogramm ausführen.
Das Unterprogramm ist ohne GEO und END abzuspeichern.
Derzeit kann in solchen Unterprogrammen nicht in ein weiteres Unterprogramm verzweigt werden.


Beispiele:

S2=BSP P(2,1) P(1,1) P(0,0) P(-1,1) P(-2,1)
S3=CCV S2
ZSUR2 1
FROM 16 -2
RP 16 0
WORK CUT S3
WORK CUT P(10 0)









NC-Hilfsfunktionen

Funktionen, die an den Postprozessor weitergegeben werden:

mch <machine>


pn <Partname>




stop




osp

operational stop

osp on / off




TL RI

Tool right, G42

TL LE

Tool left, G41

TL OFF

Werzeugkorrektur aus, G40



zsur1 <Z-Wert>

Definiert den Abstand der unteren Werkstückebene


von der Z=0 - Ebene.

zsur2 <Z-Wert>

obere Werkstückebene



zsur2

Die obere Werkstückebene wird zur aktiven Ebene definiert



cool on / off




fed <Vorschubwert>




"M01"

Insert

"(Stop ",x(p0),y(p0),")"




TEC <Tooldef>

Tooldef oder allg. Technologiedefinition



tcpos < Punkt>

Def. Werkzeugwechselpunkt



drill






clear <Z-Wert>

Clearence



deep <Z-Wert>




cycle off

nur off



TL 0

Werkzeug entladen

TL 1

Werkzeug Nr. 1 laden





INL "Text"

Insert Line; es wird eine eigene Zeile ausgegeben.


Auch bei allen Insert - Versionen kann Text zusammengesetzt werden.



INS "G40 "

Insert to start of line;


am Zeilenanfang (der nächstfolgenden Zeile) einfügen.

INE " F12.5"

Insert to end of line;


am Zeileende (der nächstfolgenden Zeile) einfügen.






Versionsinfos




Neu in Version 1.12 / 2007-10-20
neue Funktionen:
- import Mesh from Landmark-XML-Files
- create Clothoid-Curve
  (see CAD - "S Clotoid" - Help)
- compress/decompress native modelfiles (with gzip)
- 1-n Objekte zu B-Splinekurve verbinden
  (see CAD - "S BSpline < join obj's" - Help)
- Circ from startpoint, tangent and radius
  (see CAD - "ARC PT Tang Radius Angle" - Help)
- Vectors tangential to curves
  (see CAD - "VEC tangent. (Circ, Elli, Bsp, Cloth) - Help"
- import mesh from Landmark.xml - files

Bugfixes:
- Iges-Import-Bug with Qmax/Qflex3D-files fixed
- VRML2-Export-Bug with big surfaces fixed
- DXF-Import-Bug limiting to 10000 input-objects fixed.



Neu in Version 1.100 / 2007-09-01
neue Funktionen:
- Delete/Restore-Funktionen neu implementiert (Ctrl-Z/Ctrl-Y)
- Konstruktionsebene (ConstructionPlane, UserCoordinateSystem) neu in CAD
- B-SplineKurven exact durch Definitionspunkte
- Freiformflaechen durch Querschnittkurven
- Freiformflaechen durch Laengs- und Querschnittkurven
- Freiformflaechen durch 4 oder 3 Randkurven
- B-SplineKurven aus isoparametrischen Flaechenkurven
- Projektion Punkt auf Freiformflaeche
- Schnittpunkt Linie / Freiformflaeche



Neu in Version 1.08 / 2007-05-08
neue Funktionen:
- Normteilbibliotheksfunktionen Catalog (Catalog_de.htm)
- Modify subModelPosition (Translate/Rotate/Surface-to-Surface)
- Export im Format STL; subModels werden exploded (f. Blender)
- WRL-Export: es werden auch Mockup-subModels (wrl,stl,..) exportiert
- neue Funktion WRITE/CALL zur Erzeugung von Parametrikmodellen (gCAD3D_de.htm)
- neue Konstante Variablen (RAD_1 SR_3 .. siehe Doku Variablen)
- Linuxversion nun mit gcc4.1.1
Fehlerkorrekturen:
- Fehler bei JUMP in subModels korr.
- alle DLL's (.so) nun im Unterverzeichnis bin



Neu in Version 1.06 / 2007-03-27
neue Funktionen:
- Import STL-Files (Ascii)
- neue interaktive Help-Funktion fuer CAD
- Dateityp ".dat"fuer das native Format geaendert in ".gcad"
- Samplemodell fuer texturierte Flaechen.
- Fehler MS-Win CAD-GruppenEingabe korrigiert
- MS-Win: Portierung auf Express-2005-Compiler (VC8)
- MS-Win: Portierung auf GTK-Version 2.10



Neu in Version 1.04 / 2007-01-01
neue Funktionen:
-Intersection Surface X Plane

style="font-family: helvetica,arial,sans-serif;">
KeyIn Objektname bei Dump/Obj und Group/Add -Linux: erste Version mit Installer gxInstall. Neuin Version 1.02 / 2006-09-13 neue Funktionen: -VRML2-Export (VRML-97; noch keine Texturen, noch kein VRML2-Import) - DXF-out: Flaechen werden als 3DFACE's exportiert (nicht subModels) - interaktiv Farbe und Transparenz fuer Flaechen setzen - neues Objekt 3D-Dimension (NOTE N DIM3) - neues Objekt Note mit 3D-Punktkoordinaten (N PointPos; N=LDRP) - neues Objekt Note mit Kreis (N Text,LN,Circle; N=LDRC) - neues Objekt Symbol Stern, .. Vektoren (N Symbol; N=LDRS) geändert: - BlockNote (N=TAG); Parameterreihenfolge geaendert. Neu in Version 1.00 / 2006-05-10 neue Funktionen: - CAD: Linetyp interaktiv modifizieren - CAD: SurfaceStyle (shaded od. symbolic)  interaktiv modifizieren - CAD: Parametrische Definition für Punkte auf Line,Circ, Curve. - CAD: Parametrische Definition für Segmente von Polygon, CCV. geändert: - Displayprobleme bei modifierten Elementen (CUT ..) korrigiert - STEP-Import: Fehler bei sehr grossen Modellen korrigiert - NC-Replay-Fehler korrigiert Neu in Version 0.98 / 2006-02-24: neue Funktionen: - STEP-Import: Assemblies und Rational-B-SplineCurves/Surfaces; - VRML1-Export: Assemblies (subModels). - Interaktiv: Gruppe bilden und (native) exportieren. - Interaktiv: Circ - neue Funktionen geändert: - Keyword MOCK obsolet -Fehlerkorrekturen .. Neu in Version 0.96 / 2005-11-10: neue Funktionen: - STEP-Import (ISO-10303-21 - AP203). Getestet mit CATIA-V4 und CATIA-V5. Noch nicht unterstützt: Rational-B-SplineCurves. - CAD-Funktion Prisma (Solid) geändert: - VRML1: Problem grosse Importmodelle korr. Neu in Version 0.94 / 2005-06-17: neue Funktionen: - MS-Win: NISI-Installer - Parallelogramm  (S=RECT vec1 vec2) - Solids: Kugel (B=SPH center radius) - Solids: Prisma von Parallelogramm (B=PRISM parallelogramm vektor) - VRML1: Sphere und Cone neu zu. geändert: - Linux: GTK+2 (bisher GTK+1.2); gtkglarea statisch gelinkt. - MS-Win: GTK+2 + GtkGLExt (bisher GTK+1.2 + gtkglarea) - Fehlerkorrektur bei Import VRML1 und Import Iges - Fehlerkorrektur bei NC (siehe Modell sample_nc0.dat) Neu in Version 0.93 / 2005-05-11: neue Funktionen: - Symbole als selektierbare Objekte (N=TAG ..) geändert: - Fehlerkorrektur bei Import VRML1 und Import Iges - Fehlerkorrektur bei Import Bitmaps (padding) - Fehlerkorrektur bei Export Mockup (VRML1, OBJ, TESS) Neu in Version 0.92 / 2005-04-11: neue Funktionen: - Import/Export von VRML-1-Files als Mockup-Modelle (nur FaceSets) - Import/Export von WaveFront-OBJ-Files (nur Faces) - Transformation von Kurven und Flächen (Translation, Rotation, Transformation) - Transformation in anderes Referenzsystem - Transformation aus Referenzsystem in das Hauptachsensystem - Darstellung von Bitmaps (BMP-Files) fuer Dokumentationen - Toolbar und der Messagebar können ausgeblendet werden (Vollbild) geändert: - Aufbau der Flächen vom Typ_SURCIR und Typ_SURSTRIP - Bitmap-Notes; "N#=TXA .." ersetzt durch "N#=TAG 0 .." Neu in Version 0.90 / 2004-12-30: neueFunktionen: - Iges/Dxf-Modelle können als Startparameter angegeben werden (für Start aus einem Filebrowser) - neuer Funktionsmodul "Viewer" - File/Open: DXF/IGS - Modelle werden nun entspechend Filetyp automatisch importiert. - Dimensions fertiggestellt (Linear-, Winkel-, Radiusvermaßung) - Texte: Sonderzeichen, Textsize nun in den Defaults. - CAD-Funktion Suchen/Löschen/Modfizieren verbessert - CAD: direkte Selektion von Objektendpunkten, Polygonpunkten .. - DXF-Import von LWPOLYLINE u DIMENSION u MTEXT - neue Kreisdefinition: Circ = Mittelpunkt Startpunkt Drehwinkel Z-Achs-Vektor geändert: - Definition Alfatext   (N#=TXA <Position> <Text>- TXA kommt dazu) - Kreisdefinition Circ = Mittelpunkt Radius: - Z-Achsvektor hinzu ("DZ"). - struct Dimen: char dtyp zu. Neu in Version 0.86 / 2004-10-10: neue Funktionen: - Viewer: Mittelpunkt für 3D-Rotation durch Selektion eines beliebigen Vertex - CAD: RevolutionSurfaces (Rotationsflächen) - CAD: Funktion CUT (trimmen von linearen Elementen) - CAD: Funktion TRANSLATE (verschieben / drehen von linearen Elementen) - CAD: Funktion PROJECT (lineare Elemente auf Ebene projizieren) - CAD: Funktion MIRROR (lineare Elemente um Ebene spiegeln) - CAD: Analysefunktionen (Objekt dekodieren,  Abstand / Normalabstand messen) - Iges-Import: Getrimmte, gelochte RuledSurfaces (144 - 118) und getrimmte, gelochte RevolutionSurfaces (144 - 120). - Iges-Export: B-Spline Flächen Ent. 128 und Rev.Surfaces, Ent. 120. - DXF-Export: Ellipsen und B-Spline-Kurven werden als POLYLINE ausgegeben. geändert: - Objekttyp "T" zur Definition geometr. Transformationen (war ToolDef). - struct Circ: Öffnungswinkel ango zugefuegt Neu in Version 0.84 / 2004-07-08: neue Funktionen: - begrenzte, gelochte Flächen mit Stützfläche (Ruled, B-Spline, Konisch Toroid). - Definition f. gelochte planare Flächen Neu in Version 0.82 / 2004-04-30: neue Funktionen: - Planare gelochte Flächen aus CIRC / Ellipse / B-Spline / CCV (A = FSUB) - Iges-Import u. Export von planaren gelochten Flächen (Ent. 144, 142, 102) - automatisches Vergrössern aller Datenfelder (realloc) - automatisches Laden von Modellen / Programmen (durch Startparameter) Neu in Version 0.80 / 2004-02-02: neue Funktionen: - interne und externe Submodels - Konstruktionsebene frei definierbar - neue Iges-Import-Elemente 118,122,144,308,408 - neue Iges-Export-Elemente 118,308,408 - RuledSurface aus Grundelement und Vektor geändert: - Startupfile nun <base>tmp/Model (war <base>tmp/xa.apt) - File/Open nur auf Verzeichnisse in Datei <base>/xa/dir.lst - Definition Torus abgeändert Neu in Version 0.77 / 2003-11-14: Neue Plattform MS-Windows. neue Funktionen: - neue Printertreiber (Postscript(Vektoren), PCL5(via GL), HPGL). Programming: - neues Beispiel Postprozessor (DemoPostProc.*, mit Sourcecode). - struct Ellipse geändert in struct CurvElli (see VC98\include\wingdi.h) - struct Polygon geändert in struct CurvPoly (see VC98\include\wingdi.h) Neu in Version 0.74 / 2003-09-15: - CAD_Interface für planare Flächen, Fläche auf Konus, Fläche auf Torus(Menü Flächen - A) - CAD-Interface für die Objekte Konus, Torus (Menü Solids - B) - Darstellung getrimmter Flächen durch integrierte Dreieckszerlegung (Tesselation) für planare Flächen, Flächen auf Konus, Flächen auf Torus. - neues Auswahlmenue (Popup) bei Selektion graf. Objekte, wenn mehrere Objekte genau übereinander liegen. - CAD-Interface für neue Funktion Schraffur (Menü Flächen - A) - Eingabefenster für div. Toleranzwerte (Standard/Tolerances) - Definition Drehmittelpunkt (ViewZ) verbessert. - Fehler beim Resolv Contours korr. Neu in Version 0.72 / 2003-08-04: - Schnittpunkte Circ/B-Spline, Circ/Ellipse, Ellipse/Ellipse, Ellipse/B-Spline. - interaktives Objekt Polygon (im Menü Kurven - S) - proj. PT-> Polygon, Tangente an Polygon - Schnittpunkte Polygon - Line, Circle, Ellipse, B-Spline, Polygon. - Kreise: Bei Vollkreisen mit Z-Vektor nach -Z nun Z-Vektor immer nach +Z  Neu in Version 0.70 / 2003-06-25: - Neue Funktion HIDE / VIEW (Ausblenden / einblenden von Objekten) - CAD-Menue Curves("S") grundlegend erneuert - Kontur (CCV- CompositeCurves) neu zu (im Menue "S" - Curves) - Neuen CAD-Menüpunkt Ruled Surface. - NC-Funktionen geändert; Konturen integriert. - Neuer interaktiver NC-Editor (Menü NC-Tech) - Neu Iges Import CCV's (Typ 102) Neu in Version 0.6.2 / 2003-04-18: - Modul CAD grundlegend erneuert - Fehler "erzeugt nur 2D-Punkte" korrigiert - mehrere neue und korrigierte Vektordefinitionen. - neue Transformationsfunktion für Punkte: P=R P - neue Projektionsfunktion für Punkte: P=P R - Ellipse neu - Dimensions neu (Entwurf) - Neu IgesImport / Export 108 (Plane), 104 (Ellipse) Ende Dokumentation gCAD3D