![]() |
Object 13 "Surface" (Entities) Changed in Version 2021.0 |
www.CAD6.com |
Data Block SequenceData Block 001( x1, y1 ) - Start-point of a curve
LineData Block 002( x?, y? ) - End-point of a line
Bézier curveData Block 007( x?, y? ) - Pivot point 1 Data Block 008( x?, y? ) - Pivot point 2 Data Block 002( x?, y? ) - End-point of a Bézier curve
Circular arcData Block 009( x?, y? ) - End-point of the circular arc Data Block 102( Orientation, Curvature ) - Orientation and of curvature of the circular arc
A surface is a collection of several curves, each defining a closed area. Each curve starts with a start-point in a data block of type 001 followed by a sequence of curve elements. Three types of curve elements are available:
Line
Bézier curve
P = (1-t)³×S + 3t(1-t)²×P1 + 3t²(1-t)×P2 + t³×E (0<=t<=1)
Circular arc
x(M) = 0.5 * ( x(S) + x(E) ) - Curvature * ( y(E) - y(S) ) y(M) = 0.5 * ( y(S) + y(E) ) + Curvature * ( x(E) - x(S) )
Each curve ends if either a new curve is started by a new start-point (in a data block of type 001) or the complete surface is ended (by a data block of type 999). Each curve is closed, i.e. its start-point and end-point are connected with a line. When creating a surface, you should not end each curve with an extra point identical to the curve's start point (although you may).
If a surface consists of only one curve simply the inside area of that curve will be filled:
If a surface consists of multiple curves they will be filled alternately, i.e. only areas overlapped by an odd number of curve's insides will be filled. If, e.g., a small round curve lies inside a large one, this small round curve will be transparent, as its inside in overlapped by two curves (even number!):
If a surface is drawn with a non-solid line type, this line type has to be continued during each curve. A surface may contain up to 10000 nested curves made of up to MKI_MaxEntityPoints data blocks in total.
Attributes New in Version 2021.0A surface may contain attribute data blocks (see MKI_BLOCK_ATTRIBUTE) of types "local", "outline", and "point". Their position in the list of data blocks is 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_SURFACE 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 2024.2 - Copyright 2024 Malz++Kassner® GmbH