OCAD 11 Dateiformat: Unterschied zwischen den Versionen

Aus OCAD 11 Wiki - Deutsch
Zur Navigation springen Zur Suche springen
Zeile 68: Zeile 68:
 
| FirstSymbolIndexBlock: integer;|| file position of the first symbol index block
 
| FirstSymbolIndexBlock: integer;|| file position of the first symbol index block
 
|-
 
|-
| ObjectIndexBlk: integer;|| file position of object index block -> TObjectIndexBlock    // max 65536 * 256 objects
+
| ObjectIndexBlock: integer;|| file position of object index block
 
|-
 
|-
| Res0: integer;|| not used
+
| OfflineSyncSerial: integer;|| serialNumber for offline work in Server mode
 
|-
 
|-
 
| Res1: integer;|| not used
 
| Res1: integer;|| not used
Zeile 78: Zeile 78:
 
| Res3: integer;|| not used
 
| Res3: integer;|| not used
 
|-
 
|-
| FirstStringIndexBlk: longint;|| file position of string index block -> TStringIndexBlock    // max 256 strings
+
| FirstStringIndexBlock: longint;|| file position of string index block
 
|-
 
|-
 
| FileNamePos: integer;|| file position of file name, used for temporary files only
 
| FileNamePos: integer;|| file position of file name, used for temporary files only

Version vom 9. Februar 2012, 16:48 Uhr

Version: 2012-02-09

General

This is a description of the file format of OCAD 11 files.

Be aware that this is an internal format and may change in future versions.

Data types used

OCAD is written in 32-bit Delphi and this description uses the names for the data types as they appear in Delphi. However the same data types are available in other development systems like C++.

Integer 32-bit signed integer
SmallInt 16-bit signed integer
Word 16-bit unsigned integer
WordBool 16-bit boolean
String[x]

Widestring. The first byte contains the number of characters followed by the characters. The string is not zero-terminated. The maximum number of characters is x. It occupies x + 1 bytes in the file.

Double 64-bit floating point number
TDPoly A special data type (64-bit) used for all coordinates and text. It is defined as

TDPoly = record
x, y: integer;
end;

The lowest 8 Bits are used to mark special points:

Marks for the x-coordinate:
1: this point is the first bezier curve point
2: this point is the second bezier curve point
4: for double lines: there is no left line between this point and the next point
8: this point is a area border line or a virtual line gap

Marks for y-coordinate:
1: this point is a corner point
2: this point is the first point of a hole in an area
4: for double lines: there is no right line between this point and the next point
8: this point is a dash point

The upper 24 bits contain the coordinate value measured in units of 0.01 mm.

Note: all file positions are in bytes starting from the beginning of the file.

File Header

OCAD files start with a file header.

TFileHeader = record Size = 48 Byte
OCADMark: SmallInt; 3245 (hex 0cad)
FileType: Byte; file type (0: normal map, 1: course setting project, 8: file is saved in Server)
FileStatus: Byte; not used
Version: SmallInt; 11
Subversion: Byte; number of subversion (0 for 11.00, 1 for 11.1 etc.)
SubSubversion: Byte; number of subsubversion (0 for 11.0.0, 1 for 11.0.1)
FirstSymbolIndexBlock: integer; file position of the first symbol index block
ObjectIndexBlock: integer; file position of object index block
OfflineSyncSerial: integer; serialNumber for offline work in Server mode
Res1: integer; not used
Res2: integer; not used
Res3: integer; not used
FirstStringIndexBlock: longint; file position of string index block
FileNamePos: integer; file position of file name, used for temporary files only
FileNameSize: integer; size of the file name, used for temporary files only
Res4: longint; not used

Symbols

TODO

Objects

TODO

Parameter Strings

TODO