# gCAD3D

Version 1.18 / 2008-09-07

Allgemeines

- Lizenz

- Funktionsweise

- Einstellungen / Standards

- Erste Schritte

- Fehler / Offene Punkte

- Versionsinfos

- Autoren / Support

Viewer / Grafikfunktionen

- Ansicht verschieben, vergrößern, drehen

- Z-Ebene der Ansicht definieren

- vordefinierte Ansichten

- Display -Menü

- Hide / View

Ein-/Ausgabefunktionen

###
- Open / Save Model
- compress native models
- Export NC-ISO
- Print

  ###

Funktionen VWR / CAD / MAN

- GO - STEP - END

- Konstruktionsebene ConstPln

- Funktionen VWR

- Funktionen CAD

- Funktionen MAN

- Suchen Messen Löschen S/M/DEL

- Analyze

- Modify (Surface-Style / Color / Transparenz / Texture)

NC-Funktionen

- Funktionen NC

- Funktionen NC-Wcut

- Funktionen NC-Tech

MultiModelsupport

- Interne Submodels

- Externe Submodels

Programmfunktionen

- Format

- Geom.Definitionen

- Interaktionen

- Graf. Attribute

- Programmierumgebung

- NC-Bearbeitungsfunktionen

- NC-Hilfsfunktionen

### 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

- eigene Import-/Exportprogramme,

- einen integrierten 3D-OpenGL-Viewer,

- einen Programminterpreter für Geometrie und NC-Bearbeitung in 3D,

- einen eigenen integrierten NC-Prozessor

- ein Programminterface für Anwenderseitige Zusatzprogramme (Plugins)

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

- interaktiv erzeugte geometrische Objekte oder

- manuell erzeugte Befehlestexte oder den

- Importmodule (Dxf, Iges, Step ..) oder durch einen

- per Programm erzeugten Datenbestand oder durch

- spezielle Importprozessoren (Anwenderprogramme)

Der Programminterpreter bietet die Funktionen zur

- Erzeugung der geometrische Objekte

- NC-Bearbeitung, direkt und programmgesteuert

- Aufbereitung der Daten (Konturbildung ..)

- Analyse der Daten

- Programmierfunktionen

Für Dokumentationen existieren folgende Funktionen:

- Darstellung von 2D-Zeichnungen, 3D-Modellen und Fotos (Bitmaps)
  im gleichen Darstellungsraum.

- alle Darstellungen können dynamisch generiert werden

- alle Darstellungsobjekte können mit Interaktionen verbunden werden

Mit Modellobjekten verknüpfte Interaktionen ermöglichen:

- Modellaufrufe (wie HTML - HREF)

- Programmaufrufe (Plugins starten)

- Ansichtsposition (Viewport) verändern

- dynamisches Verändern der Modellparameter

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

- Implementierung jeder beliebigen Bearbeitungsstrategie

- Kombinierte Zyklen (zB Vorschnitte, Nachschnitte, Trennen)

- Erzeugung von parametrierten Konturteilen (zB. Langloch ..)

Die Ausgabe der Daten erfolgt über den -

- einen Exportmodul (Dxf, Iges)

- Standard - ISO - Postprozessor

- spezialisierte Exportfunktionen (Anwenderprogramme)

- das systemeigene Format APT3D (Ascii-Textformat)

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 -

- Erzeugen und Analysieren geometr. Objekte

- interaktive Dialogfunktionen (Selektionen ..)

- automatisches Kompilieren und Linken zur Programmlaufzeit

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.

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:

- Selektion eines Vertexpunktes als neuen Mittelpunkt (Vertices sind Polygonpunkte, alle Kurven / Kreise werden als Polygone dargestellt. Linien jedoch haben nur an den Endpunkten Vertices). Oder -

- Eingabe des neuen Z-Wertes in das Z-Eingabefeld (neben den Ausgabefeldern für die aktuelle Cursorposition, mit Return abschliessen) oder:

- selektieren der neuen Darstellungsebene:
  Schieben Sie jenen Punkt, um den nun gedreht werden soll, genau in die Bildschirmmitte.
  Checkbutton RotCen aktivieren.
  Nun Ansicht drehen; der rote Punkt in der Bildschirmmitte wird zu einer Kette von Punkten.
  Nun jenen roten Punkt auswählen, der dem gewünschten Drehpunkt am nächsten liegt.

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ü

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:

- PS (ab V.076 Vektorformat)

- PCL5 (GL-Format)

- HP-GL

Auswahl Format:

A4 oder A3 (nur für Ausgabeformat PCL5)

Auswahl Funktion:

- mit Viewer anzeigen (nur für Ausgabeformat PS, voreingestellt ist der Postscriptviewer gv)

- ausgeben in Datei (voreingestellt ist Dateiname /tmp/print.dat)

- direkt ausdrucken (voreingestellt ist Command "lpr -l -P<Defaltdrucker>")

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