Extended Object 112 "Table" (Entity Type "Extended Object")

www.CAD6.com

 

The extended object "Table" is defined by CAD6studio and CAD6industrie.

 

Creation of this extended object is not supported in CAD6starter and CAD6engine Eco! If already created, it can be displayed and modified generally, but not modified parametrically.

 

Data Block Sequence

In its basic data blocks, a table stores general information on the table:

 

Data Block 1000( Matrix )

Data Block 1001( CellWidth, CellHeight )

Data Block 1002( TableMode, AutoWidth, AutoHeight, RowMode )

Data Block 236( FontF1 )

Data Block 236( FontF2 )

Data Block 1003( PropertyH1 )

Data Block 1004( PropertyH2 )

Data Block 1005( PropertyH3 )

Data Block 1006( PropertyH4 )

Data Block 1007( PropertyV1 )

Data Block 1008( PropertyV2 )

Data Block 1009( PropertyV3 )

Data Block 1010( PropertyV4 )

Data Block 1011( PropertyV5 )

Data Block 1012( PropertyV6 )

Data Block 1013( PropertyB1 )

Data Block 1014( PropertyB2 )

 

The properties will be used as follows:

 

 

If properties for an edge are "filling" or "eraser" only, the edge will be omitted. If properties for a background area are "outline" only, the background area will be omitted.

 

Parameters

Matrix

[double[6]] A matrix that will be applied to the outline data.

CellWidth

[double] Default width of a cell (column) in millimeters.

CellHeight

[double] Defaul height of a cell (row) in millimeters.

TableMode

[__int32] A bit-wise OR combination of options. It can be any combination of the following values:

0x00000000

No special mode.

0x00000001

The first row of the table is "special" and uses special properties.

0x00000002

The table will be filled bottom to top (inverted).

AutoWidth

[__int32] If non-zero, new columns will by default be auto-width.

AutoHeight

[__int32] If non-zero, new rows will by default be auto-height.

RowMode

[__int32] Determines how the number of rows in the table is calculated. Possible values are:

0"Minimum". The number of rows is determined by the column with the least entries.
1"Maximum". The number of rows is determined by the column with the most entries.
2"Static". The number of rows is determined by the number of currently existing row entries.

FontF1

[MKI_TEXTFRAME] Options for text in the first row.

FontF2

[MKI_TEXTFRAME] Options for text in all other rows.

PropertyH1

PropertyH2

PropertyH3

PropertyH4

PropertyV1

PropertyV2

PropertyV3

PropertyV4

PropertyV5

PropertyV6

PropertyB1

PropertyB2

[MKI_XPROPERTY] Extended property sets for different aspects of the table, see image above (H = horizontal line, V = vertical line, B = background).

 

Data List Contents

In its data list, a table stores additional (partly optional) information as a sequence of MKI_OBJ_CONTAINER objects. Every container contains either data for one column, one row, or one cell. Properties will overwrite each other with the smallest element winning (table > column > row > cell).

 

The type of the first data block in each container defines its use.

 

Column Data (1100)

Mandatory:

Data Block 1100( ColIndex, RowOffset, FirstRow, AutoWidth, FlagF1, FlagF2 )

Data Block 1101( CellWidth )

Data Block 110( DatabaseName )

Optional:

Data Block 236( FontF1 )

Data Block 236( FontF2 )

Data Block 1003( PropertyH1 )

Data Block 1004( PropertyH2 )

Data Block 1005( PropertyH3 )

Data Block 1006( PropertyH4 )

Data Block 1008( PropertyV2 )

Data Block 1011( PropertyV5 )

Data Block 1013( PropertyB1 )

Data Block 1014( PropertyB2 )

 

A table may have up to 50 columns. There must be a set of column data for every column.

 

Parameters

ColIndex

[__int32] Zero-based column index in the database that shall be used to fill this column (ignored if DatabaseName is empty).

RowOffset

[__int32] A row offset that will be added to the row number before accessing the database to move the database's content vertically in this column of the table (ignored if DatabaseName is empty). May also be negative.

FirstRow

[__int32] If non-zero, the first row of the database is a title and does not contain data (ignored if DatabaseName is empty)..

AutoWidth

[__int32] If non-zero, the column's width will be calculated automatically based on its contents.

FlagF1

[__int32] Determines which text frame properties of FontF1 shall be applied, using the flags defined in MKI_MULTI_TEXTFRAME.

FlagF2

[__int32] Determines which text frame properties of FontF2 shall be applied, using the flags defined in MKI_MULTI_TEXTFRAME.

CellWidth

[double] Width of the column in millimeters (ignored if AutoWidth is non-zero).

DatabaseName

[MKI_DATABASENAME] Name of the database from which the column shall be filled with data. If empty, the column is initially empty.

 

The (optional) font information and properties will be used as follows:

 

 

Row Data (1200)

Mandatory:

Data Block 1200( AutoHeight, FlagF2 )

Data Block 1201( CellHeight )

Optional:

Data Block 236( FontF2 )

Data Block 1004( PropertyH2 )

Data Block 1010( PropertyV4 )

Data Block 1011( PropertyV5 )

Data Block 1012( PropertyV6 )

Data Block 1014( PropertyB2 )

 

A table may have up to 1,000 rows. It is not necessary to have a set of row data for every row.

 

Parameters

AutoHeight

[__int32] If non-zero, the row's height will be calculated automatically based on its contents.

FlagF2

[__int32] Determines which text frame properties of FontF2 shall be applied, using the flags defined in MKI_MULTI_TEXTFRAME.

CellHeight

[double] Height of the row in millimeters (ignored if AutoHeight is non-zero).

 

The (optional) font information and properties will be used as follows:

 

 

Cell Data (1300)

Mandatory:

Data Block 1300( ColIndex, RowIndex, FlagF2 )

Optional:

Data Block 110( CellText )

Data Block 236( FontF2 )

Data Block 1004( PropertyH2 )

Data Block 1011( PropertyV5 )

Data Block 1014( PropertyB2 )

 

A table may have up to 1,000 individual cell contents (while it can have up to 50,000 cells when filled automatically from databases). It is not necessary to have a set of cell contents for every cell.

 

Parameters

ColIndex

[__int32] Zero-based index of the column to which this cell data belongs.

RowIndex

[__int32] Zero-based index of the row to which this cell data belongs.

FlagF2

[__int32] Determines which text frame properties of FontF2 shall be applied, using the flags defined in MKI_MULTI_TEXTFRAME.

CellText

[MKI_STRLONGW] This text will be displayed in the cell and overwrites any possible text automatically gained via a database link.

 

The (optional) font information and properties will be used as follows:

 

 

Interface Command Sequence

MKI_ExtOpen, OwnerID = MKI_DB_OWNER_MK, Type = MKI_OBJ_EXT_TABLE, Flag = MKI_EXTFLAG_TEXT

MKI_ExtAddDouble, Type = 1000, ElemCount = 6

MKI_ExtAddDouble, Type = 1001, ElemCount = 2

MKI_ExtAddInt32, Type = 1002, ElemCount = 4

MKI_ExtAddTextFrame

MKI_ExtAddTextFrame

MKI_ExtAddXProperty, Type = 1003, ElemCount = 1

MKI_ExtAddXProperty, Type = 1004, ElemCount = 1

MKI_ExtAddXProperty, Type = 1005, ElemCount = 1

MKI_ExtAddXProperty, Type = 1006, ElemCount = 1

MKI_ExtAddXProperty, Type = 1007, ElemCount = 1

MKI_ExtAddXProperty, Type = 1008, ElemCount = 1

MKI_ExtAddXProperty, Type = 1009, ElemCount = 1

MKI_ExtAddXProperty, Type = 1010, ElemCount = 1

MKI_ExtAddXProperty, Type = 1011, ElemCount = 1

MKI_ExtAddXProperty, Type = 1012, ElemCount = 1

MKI_ExtAddXProperty, Type = 1013, ElemCount = 1

MKI_ExtAddXProperty, Type = 1014, ElemCount = 1

 

Column Data (1100)

Mandatory:

MKI_ObjectOpen, Type = MKI_OBJ_CONTAINER

MKI_ObjectAddInt32, Type = 1100, ElemCount = 6

MKI_ObjectAddDouble, Type = 1101, ElemCount = 1

MKI_ObjectAddTextShort, Static = false

Optional:

MKI_ObjectAddTextFrame

MKI_ObjectAddTextFrame

MKI_ObjectAddXProperty, Type = 1003, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1004, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1005, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1006, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1009, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1012, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1013, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1014, ElemCount = 1

Mandatory:

MKI_ExtDataAddOpenObject

 

Row Data (1200)

Mandatory:

MKI_ObjectOpen, Type = MKI_OBJ_CONTAINER

MKI_ObjectAddInt32, Type = 1200, ElemCount = 2

MKI_ObjectAddDouble, Type = 1201, ElemCount = 1

Optional:

MKI_ObjectAddTextFrame

MKI_ObjectAddXProperty, Type = 1004, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1010, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1011, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1012, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1014, ElemCount = 1

Mandatory:

MKI_ExtDataAddOpenObject

 

Cell Data (1300)

Mandatory:

MKI_ObjectOpen, Type = MKI_OBJ_CONTAINER

MKI_ObjectAddInt32, Type = 1300, ElemCount = 3

Optional:

MKI_ObjectAddTextLong, Static = false

MKI_ObjectAddTextFrame

MKI_ObjectAddXProperty, Type = 1004, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1011, ElemCount = 1

MKI_ObjectAddXProperty, Type = 1014, ElemCount = 1

Mandatory:

MKI_ExtDataAddOpenObject

 

Use code like the following to parse the data blocks of this entity in memory:

 

MKI_BLOCK_ENUM b1000( f_pExt ),

               b1001( f_pExt ),

               b1002( f_pExt ),

               b2361( f_pExt ),

               b2362( f_pExt ),

               b1003( f_pExt ),

               b1004( f_pExt ),

               b1005( f_pExt ),

               b1006( f_pExt ),

               b1007( f_pExt ),

               b1008( f_pExt ),

               b1009( f_pExt ),

               b1010( f_pExt ),

               b1011( f_pExt ),

               b1012( f_pExt ),

               b1013( f_pExt ),

               b1014( f_pExt );

b1001.SetNext( b1000 );

b1002.SetNext( b1001 );

b2361.SetNext( b1002 );

b2362.SetNext( b2361 );

b1003.SetNext( b2362 );

b1004.SetNext( b1003 );

b1005.SetNext( b1004 );

b1006.SetNext( b1005 );

b1007.SetNext( b1006 );

b1008.SetNext( b1007 );

b1009.SetNext( b1008 );

b1010.SetNext( b1009 );

b1011.SetNext( b1010 );

b1012.SetNext( b1011 );

b1013.SetNext( b1012 );

b1014.SetNext( b1013 );

 

MKI_MATRIX cMatrix;

cMatrix.m11 = b1000.Double(0);

cMatrix.m12 = b1000.Double(1);

cMatrix.m21 = b1000.Double(2);

cMatrix.m22 = b1000.Double(3);

cMatrix.m31 = b1000.Double(4);

cMatrix.m32 = b1000.Double(5);

 

...

 

CAD6interface 2026.1 - Copyright 2026 Malz++Kassner® GmbH