OakPDT Drawing
From Just Solve the File Format Problem
(Difference between revisions)
Ccawley2011 (Talk | contribs) |
Ccawley2011 (Talk | contribs) |
||
| Line 56: | Line 56: | ||
! colspan="3" | Symbol table entry | ! colspan="3" | Symbol table entry | ||
|- | |- | ||
| − | | 0 || Byte || | + | | 0 || Byte || Data type |
|- | |- | ||
| − | | 1 || Byte || | + | | 1 || Byte || Pen colour |
| + | * In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111. | ||
|- | |- | ||
| − | | 2 || Byte || | + | | 2 || Byte || Layer number |
| + | * In v1.0 and v1.1, the symbol is deleted if the layer number is 16. | ||
|- | |- | ||
| − | | 3 || Byte || | + | | 3 || Byte || Line type |
|- | |- | ||
| − | | 4 || Integer || | + | | 4 || Integer || Address in drawing definition |
|- | |- | ||
| − | | 8 || Integer || | + | | 8 || Integer || Length in drawing definition (ignored in later versions) |
|- | |- | ||
! colspan="3" | Window definition | ! colspan="3" | Window definition | ||
| Line 94: | Line 96: | ||
! colspan="3" | Text information | ! colspan="3" | Text information | ||
|- | |- | ||
| − | | 0 || Double || | + | | 0 || Double || Text width |
|- | |- | ||
| − | | 8 || Double || | + | | 8 || Double || Text height |
|- | |- | ||
| − | | 16 || Double || | + | | 16 || Double || Butterfly limit |
|- | |- | ||
| − | | 24 || Integer || | + | | 24 || Integer || Text precision |
|- | |- | ||
! colspan="3" | Dimension information | ! colspan="3" | Dimension information | ||
| Line 144: | Line 146: | ||
! colspan="3" | Layer information (v1.0 and v1.1) | ! colspan="3" | Layer information (v1.0 and v1.1) | ||
|- | |- | ||
| − | | 0 || Array || 16 bytes | + | | 0 || Array || 16 bytes containing the status of each layer. |
| + | * If bit 0 is set then the layer is on. | ||
| + | * If bit 1 is set then the layer is locked. | ||
|- | |- | ||
| − | | 16 || Array || 16 bytes | + | | 16 || Array || 16 bytes containing the default pen colour for each layer. |
|- | |- | ||
| − | | 32 || Byte || | + | | 32 || Byte || The active current layer. |
|- | |- | ||
| − | | 33 || Array || 10 bytes | + | | 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry. |
|- | |- | ||
! colspan="3" | Layer information (v1.2) | ! colspan="3" | Layer information (v1.2) | ||
|- | |- | ||
| − | | 0 || Array || 64 bytes | + | | 0 || Array || 64 bytes containing the status of each layer. |
| + | * If bit 0 is set then the layer is on. | ||
| + | * If bit 1 is set then the layer is locked. | ||
|- | |- | ||
| − | | 64 || Array || 64 bytes | + | | 64 || Array || 64 bytes containing the default pen colour for each layer. |
|- | |- | ||
| − | | 128 || Byte || | + | | 128 || Byte || The active current layer. |
|- | |- | ||
| − | | 129 || Byte || | + | | 129 || Byte || The active points layer. |
|- | |- | ||
| − | | 130 || Byte || | + | | 130 || Byte || The active construction layer. |
|- | |- | ||
| − | | 131 || Array || 10 bytes | + | | 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry. |
|- | |- | ||
! colspan="3" | Function table entry | ! colspan="3" | Function table entry | ||
Revision as of 10:41, 12 October 2022
Overview
OakPDT is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD ("PDT Dwg").
Format details
| File Header | ||
|---|---|---|
| 0 | Byte | Major version number of the file format (always 1) |
| 1 | Byte | Minor version number of the format
|
| 2 | Null-terminated string | The_Design_System or Oak_P_D_T_Drawing
|
| 20 | Integer | Number of symbols (s)
|
| 24 | Array | s symbol table entries
|
| Integer | Size of drawing definition (v)
| |
| Array | v bytes
| |
| Byte | Paper size | |
| Struct | Window definition | |
| Struct | Grid information | |
| Struct | Text information | |
| Struct | Dimension information | |
| Struct | Line style information | |
| Integer | Number of scalars (n)
| |
| Array | n scalar table entries
| |
| Struct | Error information | |
| Struct | Layer information | |
| Double | Dimension scale (only in v1.1 or later) | |
| Integer | Number of functions (n) (only in v1.2 or later)
| |
| Array | n function table entries (only in v1.2 or later)
| |
| Symbol table entry | ||
| 0 | Byte | Data type |
| 1 | Byte | Pen colour
|
| 2 | Byte | Layer number
|
| 3 | Byte | Line type |
| 4 | Integer | Address in drawing definition |
| 8 | Integer | Length in drawing definition (ignored in later versions) |
| Window definition | ||
| 0 | Double | |
| 8 | Double | |
| 16 | Double | |
| 24 | Double | |
| Grid information | ||
| 0 | Double | |
| 8 | Double | |
| 16 | Double | |
| 24 | Double | |
| 32 | Integer | |
| 36 | Integer | |
| Text information | ||
| 0 | Double | Text width |
| 8 | Double | Text height |
| 16 | Double | Butterfly limit |
| 24 | Integer | Text precision |
| Dimension information | ||
| 0 | Double | |
| 8 | Double | |
| 16 | Double | |
| 24 | Double | |
| 32 | Integer | |
| 36 | Integer | |
| 40 | Integer | |
| 44 | Integer | |
| Line style information | ||
| 0 | Integer | |
| 4 | Integer | |
| 8 | Integer | |
| 12 | Integer | |
| Scalar table entry | ||
| 0 | Integer | |
| 4 | Null-terminated string | |
| Error information | ||
| 0 | Integer | |
| 4 | Null-terminated string | |
| Layer information (v1.0 and v1.1) | ||
| 0 | Array | 16 bytes containing the status of each layer.
|
| 16 | Array | 16 bytes containing the default pen colour for each layer. |
| 32 | Byte | The active current layer. |
| 33 | Array | 10 bytes mapping each pen colour to a 16 colour palette entry. |
| Layer information (v1.2) | ||
| 0 | Array | 64 bytes containing the status of each layer.
|
| 64 | Array | 64 bytes containing the default pen colour for each layer. |
| 128 | Byte | The active current layer. |
| 129 | Byte | The active points layer. |
| 130 | Byte | The active construction layer. |
| 131 | Array | 10 bytes mapping each pen colour to a 16 colour palette entry. |
| Function table entry | ||
| 0 | Null-terminated string | |
| Integer | ||
| Integer | ||