    Formate

    Codes
    Dateiformate
    Binärformate

    __________________________________________________________________________

    Dateiformate

    Alle Objekte werden intern in analytischer Form mit allen
      Definitionsparametern als Ascii-Text gespeichert.

    Das Dateiformat .gcad ist identisch mit dem internen Format.

    Die Objekte können auch als Mockup-Elemente ausgegeben werden;
      tesseliert; dadurch beschleunigtes Laden bei Assemblies,
      jedoch keine Parametrik mehr.

    Andere analytische Ausgabeformate: .gcad, .iges.

    Mockup-Ausgabeformate: VRML-1, VRML-2, obj, tess.

    Wenn eine Datei als {base}/tmp/Model abgespeichert wird,
      wird das Modell beim Start automatisch geladen.
      {base} ist im Normalfall ~/gCAD3D/.

    __________________________________________________________________________
    Format .gcad

    Das Hauptmodell mit allen Submodellen, NC-Prozessdaten und den Daten
      von Zusatzprogrammen (plugins) wird im Modellfile gespeichert.

    Die Modellfiles enthalten alle Daten und Objekte in Textform (Ascii).

    Submodelle, NC-Prozessdaten und Applicationsdaten sind in Abschnitte
      (SECTION - SECTIONEND) eingebettet, dann folgt das Hauptmodell.

    Alle Abschnitte vor dem Hauptmodell beginnen mit einer Zeile:
    SECTION {sectionTyp} {parameter}
    und enden mit:
    SECTIONEND

      - Submodelle         SECTION MODEL {modelname}
      - PunkteTabellen     SECTION PTAB  {modelname} {ObjID}
      - Meshes             SECTION MESH  {modelname} {ObjID}
      - Processes (eg NC)  SECTION PROCESS {processName}
      - applicationData    SECTION APPDAT {pluginName}
      - Hauptmodell        ..

    SECTION MODEL {modelname}
    - Dynamic-Dataspace (settings, standards, End: ":DYNAMIC_DATA")
    - Objectdata
    SECTIONEND

    SECTION PTAB {modelname}_{ObjID}
    ptnr={nr of points}
    {pointCoords, one point per line}
    SECTIONEND

    SECTION MESH  {modelname}_{ObjID}
    faces={nr of faces} edgelines={nr of edgelines}
    {faces (3 indices for one face per line)}
    edgeline={nr of edgeline} points={nr of points} edgetyp={edgetyp}
    {edgeline (indices for points)}
    SECTIONEND

    SECTION PROCESS {processName}
    - Objectdata
    - process-specific-commands
    SECTIONEND

    SECTION APPDAT {pluginName}
    - beliebige Daten;
      werden nur von der Applikation {pluginName} geschrieben, gelesen.
    SECTIONEND

    Das Hauptmodell enthält die Objektcodes, siehe Beispiele.

    ____________________________________________________________________________

    Dateiformate Hauptmodell / Submodelle:

    - Abschnitt DYNAMIC_DATA (optional)
    - Objektdaten

    Abschnitt DYNAMIC_DATA:

    Kann folgende Records haben:

    - MODSIZ                 Modelsize
    - DEFTX                  Textsize
    - VIEW                   aktuelle Ansicht
    - CONST_PL               aktuelle Konstruktionsebene
    - GATAB                  Tabelle graf. Attribute
    - :DYNAMIC_DATA          beendet den Abschnitt DYNAMIC_DATA

    Objektdaten:
      siehe Codes,
      siehe Beispiele.

    ____________________________________________________________________________

    Dateiformat der Attribute:

    Die Grafik-Attribute definieren Linientypen, Farben, Transparenz, Texturen.

    GATAB      starts the grafic-attributes-table,
    ENDGATAB   end of table.

    Grafic-Attributes-Records for Lines, Curves:

     [H] [T#]
     H  hidden
     T  index Linetyp; 2=dash, 3=dashDot; see file cfg/ltyp.rc

    Grafic-Attributes-Records for surfaces:

     [C [H] [T#] [S#] [X"filename"<,parameters>]
     H  hidden
     C  R-G-B-Colors as 3 x 2 hex-chars; eg. green is C00ff00
     T  transparent; 0=not, 1=50% transparent, 2=full transparent
     S  symbolic; 0=not, 1=symbolic display
     X  textured surface; Format:
        X"",X-scale,Y-Scale,X-Offset,Y-Offset,RotAng[,X-vec,Z-Vec]
            consists of "/"
          Offsets are Values from 0-1
          RotAng in degree

    Beispiel Linie mit Linientyp 2 (strichliert):
    GATAB
    L20 T2
    ENDGATAB
    :DYNAMIC_DATA
    L20=P(0 0 0) P(100 10 0)
    #eof

    Beispiel Fläche mit Farbe:
    # example GATAB: surface A20 has color e2dc27; surf. A21 is symbolic (not shaded)
    GATAB
    A20 Ce2dc27
    A21 S1
    ENDGATAB
    :DYNAMIC_DATA
    C20=P(50 100) 25
    C21=P(100 100) 25
    A20=C20
    A21=C21
    #eof

    __________________________________________________________________________

    Beispiele:

    Beispiel nur Hauptmodell:
    # 2010/11/29-18:37:05
    P1=P(0 0)
    P2=P(200 20)
    # Linie von 2 Punkten
    L1=P1 P2
    # Kreis von Center, Radius
    C1=P(50 100) 25
    # Fläche von Kreis
    A1=C1
    # Ende

    Beispiel Modelldatei mit subModell:
    # 2010/11/29-18:37:05
    SECTION MODEL SM1
    # Cone from 1 Points 2 radius
    B1=CON P(0 0) P(0 0 12) VAL(16) VAL(12)
    SECTIONEND
    # 2 references of submodel
    M1="SM1" P(0 0)
    M1="SM1" P(50 0)
    # Ende

    Beispiel Modelldatei mit Mesh:
    SECTION PTAB _A1
    ptnr=4
    78.206807 -215.069439 0
    75.797808 -206.220382 0
    82.125568 -204.36855 0
    83.557688 -210.647853 0
    SECTIONEND
    SECTION MESH _A2
    faces=2 edgelines=1
    3 2 1
    3 1 0
    edgeline=0 points=4 edgetyp=5
    3 2 1 0
    SECTIONEND
    # mainmodel
    A1=PTAB
    A2=MSH A1
    # eof

    _____________________________________________________________________
    Senden sie Fehlerberichte, Verbesserungsvorschläge
      an franz.reiter@cadcam.co.at