Extended Object 128 "Parametric Compound" (Entity Type "Extended Object")

www.CAD6.com

 

The extended object "Parametric Compound" 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 parametric compound stores general information:

Data Block 1000( Description )

Data Block 1001( Options, FreedomIndex )

 

For every freedom:

Data Block 1002( Type, Mode, OriginEntityIndex, OriginPointIndex )

Data Block 1003( Name )

Data Block 1004( Comment )

Data Block 1005( Actual )

Data Block 1006( Target )

Data Block 1007( Point1, Point2 )

Data Block 1008( { EntityIndex, PointIndex }[1 .. 1000] )

 ...

Data Block 1008( { EntityIndex, PointIndex }[1 .. 1000] )

 

Data block 1008 is added as often as necessary to include all selected points. The maximum number of EntityIndex / PointIndex pairs per data block is 1000. To total number of selected points is virtually unlimited.

 

The order of freedoms here is the order in which they will be applied to the data – first freedom first.

 

Parameters

Description

[MKI_COMMENTLONG] Description of the parametric compound as entered by the user.

Options

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

0x00000000

No special option.

0x00000001

All freedoms shall be ignored for now, show the original entities without modification.

0x00000002

Show only primary freedoms in all lists.

FreedomIndex

[__int32] Zero-based index of the currently "active" freedom (selected for editing).

Type

[__int32] Type of freedom. Possible values are:

0"Reference". This is a reference for other freedoms only (like a local variable), it does not effect the entities directly.
1"Movement". Movement along the vector.
2"Linear Scaling". Linear scaling along the vector.
3"Radial Scaling". Radial scaling relative to the start point.
4"Rotation". Rotation around the start point.
5"Visibility". Sets visibility of all selected points (or outlines with a least one selected point).

Mode

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

0x00000000

No special mode.

0x00000001

This is a "primary" freedoms which will always be listed.

OriginEntityIndex

[__int32] Zero-based index of the entity in the data list that contains the dynamic origin point for this freedom. If negative, the freedom uses Point1 instead.

OriginPointIndex

[__int32] Zero-based index of the point in the entity that is the dynamic origin point for this freedom. If negative, the freedom uses Point1 instead.

Name

[MKI_COMMENTSHORT] Name of the freedom.

Comment

[MKI_COMMENTLONG] Comment on the freedom.

Actual

[MKI_COMMENTLONG] Actual value of the freedom.

Target

[MKI_COMMENTLONG] Target value of the freedom. Any freedom can access the current target values of all preceding freedoms of that compound by using their name enclosed in the ~ character (like variables). See also Advanced Text Capabilities.

Point1

Point2

[MKI_POINT] Coordinates of the static vector start and end point for the freedom in millimeters.

EntityIndex

[__int32] For every selected point: Zero-based index of the entity in the data list that contains this point.

PointIndex

[__int32] For every selected point: Zero-based index of this point in the entity.

 

Data List Contents

In its data list, a parametric compound stores all the original entities it is made of.

 

Interface Command Sequence

MKI_ExtOpen, OwnerID = MKI_DB_OWNER_MK, Type = MKI_OBJ_EXT_PARAMETRIC, Flag = MKI_EXTFLAG_PARAM | MKI_EXTFLAG_INSTPROP

MKI_ExtAddText, Type = 1000, Size = 256, Static = true

MKI_ExtAddInt32, Type = 1001, ElemCount = 2

 

For every freedom:

MKI_ExtAddInt32, Type = 1002, ElemCount = 4

MKI_ExtAddText, Type = 1003, Size = 64, Static = true

MKI_ExtAddText, Type = 1004, Size = 256, Static = true

MKI_ExtAddText, Type = 1005, Size = 256, Static = true

MKI_ExtAddText, Type = 1006, Size = 256, Static = true

MKI_ExtAddPoint, Type = 1007, ElemCount = 2

MKI_ExtAddInt32, Type = 1008, ElemCount = 1 .. 1000

         ...

MKI_ExtAddInt32, Type = 1008, ElemCount = 1 .. 1000

 

To copy all entities to the compound's data list, use:

MKI_ExtDataAddEntity

 

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

 

MKI_BLOCK_ENUM b1000( f_pExt ),

               b1001( f_pExt );

b1001.SetNext( b1000 );

 

__int32 nOptions = b1001.Int32(0);

__int32 nFreedomIndex = b1000.Int32(1);

 

...

 

CAD6interface 2026.1 - Copyright 2026 Malz++Kassner® GmbH