![]() |
Object 12 "Curve" (Entity Type "Object") Changed in Version 2021.0 |
www.CAD6.com |
A curve is in fact a list of several curves. Each curve starts with a start-point followed by a sequence of curve elements. Three types of curve elements are available:
Line
Bézier curve
Point = (1-t)³ × Start + 3t(1-t)² × Pivot1 + 3t²(1-t) × Pivot2 + t³ × End (0<=t<=1)
Circular arc
Center.x = 0.5 * ( Start.x + End.x ) - Curvature * ( End.y - Start.y ) Center.y = 0.5 * ( Start.y + End.y ) + Curvature * ( End.x - Start.x )
Each curve ends if either a new curve is started by a new start-point or the complete entity is ended (by a data block of type 999).
If a curve is drawn with a non-solid line type, this line type has to be continued along the complete curve. A curve may contain up to 10,000 nested curves made of up to MKI_MaxEntityPoints data blocks in total.
A curve is by definition an "open" object, i.e. it has a non-closed outline and cannot be filled.
Data Block Sequence Data Block 001( Start )
LineData Block 002( End )
Bézier curveData Block 007( Pivot1 ) Data Block 008( Pivot2 ) Data Block 002( End )
Circular arcData Block 009( Arc ) Data Block 102( Orientation, Curvature )
ParametersStart [MKI_POINT] Start point of one curve. Pivot1 [MKI_POINT] First pivot point of a Bézier curve. Pivot2 [MKI_POINT] Second pivot point of a Bézier curve. End [MKI_POINT] End point of a line or a Bézier curve. Arc [MKI_POINT] End point of a circular arc. Orientation [double] Direction of the arc. If Orientation >= 0, the arc is drawn counter-clockwise from the start angle to the end angle. If Orientation < 0, the arc is drawn clockwise. Curvature [double] Indirect definition of the arc's radius, see section "Circular Arc" above. Valid range is -1e100 <= Curvature <= +1e100.
Attributes New in Version 2021.0A curve may contain attribute data blocks (see MKI_BLOCK_ATTRIBUTE) of types "local", "outline", and "point". Their position in the list of data blocks must be as follows:
The total number of attributes of each type (local, outline, point) per respective element (entity, outline, and point) is limited to MKI_ATTRIBS_PER_OBJECT.
Interface Command SequenceMKI_ObjectOpen, Type = MKI_OBJ_CURVE MKI_ObjectAddPoint, Type = MKI_DB_POINT_START ... MKI_ObjectAddPoint, Type = MKI_DB_POINT_END ... MKI_ObjectAddPoint, Type = MKI_DB_POINT_PIVOT1 MKI_ObjectAddPoint, Type = MKI_DB_POINT_PIVOT2 MKI_ObjectAddPoint, Type = MKI_DB_POINT_END ... MKI_ObjectAddPoint, Type = MKI_DB_POINT_ARC ...
|
CAD6interface 2025.1 - Copyright 2025 Malz++Kassner® GmbH