MKI_ENUM_* (Enumeration Mode) Changed in Version 2021.1

www.CAD6.com

This value determines the way that entities are enumerated. It indicates what types of geometrical data the plug-in can handle, and what type of entities shall be enumerated. It can be a bit-wise OR combination of the following flags:

 

Flags for Geometrical Data Type

These flags tell the application what kind of geometrical data the plug-in is able to handle. All other geometrical data will be converted to those types. If, e.g., the plug-in cannot handle circular arcs but Bézier curves, all circles and circular arcs will be converted to a sequence of Bézier curves.

 

MKI_ENUM_NATIVE

The plug-in can handle native object data, i.e. only the addresses of the entities will be passed.

This overrides all other flags for geometrical data type as well as most property-based flags such as MKI_ENUM_TO_SCREEN, MKI_ENUM_VISIBLE and MKI_ENUM_HIDDEN! Only MKI_ENUM_WINDOW will work.

 

MKI_ENUM_LINES

The plug-in can only handle solid polylines with line color and line width, i.e. lines using line types will be resolved to single line segments. This is the basic mode which can be combined with one or more of the following modes to allow more complex geometric data.

 

MKI_ENUM_ENDLESS

If this flag is set, Construction Aid endless lines will be passed to the plug-in in form of endless lines (MKI_ENUMDATA_ENDLESS). Otherwise, they will be passed as normal lines clipped to a coordinate range of ±1e10.

 

MKI_ENUM_BEAMS News in Version 2019.1

If this flag is set, Construction Aid beams (and endless lines) will be passed to the plug-in in form of beams (MKI_ENUMDATA_BEAM). Otherwise, they will be passed as normal lines clipped to a coordinate range of ±1e10.

 

MKI_ENUM_FILLS

The plug-in can handle filled polygons. Otherwise, filled polygons will be enumerated as polygons outlined with fill color.

 

MKI_ENUM_ARCS

The plug-in can handle circular arcs in polylines / polygons. Otherwise, arcs will be resolved into Bézier curves or polylines.

 

MKI_ENUM_BEZIERS

The plug-in can handle Bézier curves in polylines / polygons. Otherwise, Bézier curves will be resolved into polylines.

 

MKI_ENUM_LINETYPES

The plug-in can handle line types. Otherwise, lines with line types will be resolved into separate short lines.

 

MKI_ENUM_BLOCKLINES New in Version 6.22

The plug-in can handle block-based line types (this implies the MKI_ENUM_LINETYPES mode also).

 

MKI_ENUM_OPTIMIZELINES New in Version 2012.2

Line types shall be optimized during output. Will only work if neither MKI_ENUM_LINETYPES nor MKI_ENUM_BLOCKLINES is set.

 

MKI_ENUM_MARK_CORNERS New in Version 2012.2

Corners within polylines / polygons (i.e. non-smooth connection points) will be marked as MKI_DB_POINT_CORNER / MKI_DB_FIXED_CORNER instead of MKI_DB_POINT_END / MKI_DB_FIXED_END. These points shall be used during line type optimization.

 

MKI_ENUM_SOLID_CHARS

The plug-in can handle solid characters, i.e. characters that are filled and non-distorted and can thus be displayed using standard system fonts. Appropriate texts will not be resolved into polylines / polygons, but passed to the plug-in as single characters.

Can be combined with MKI_ENUM_OTHER_CHARS to allow the passing of all types of characters, and with either MKI_ENUM_SIMPLE_TEXTS or MKI_ENUM_COMPLEX_TEXTS to enable the passing of complete strings.

 

MKI_ENUM_OTHER_CHARS

The plug-in can handle non-solid characters, i.e. characters that are framed or distorted and can thus not be displayed using standard system fonts. Appropriate texts will not be resolved into polylines / polygons, but passed to the plug-in as single characters.

Can be combined with MKI_ENUM_SOLID_CHARS to allow the passing of all types of characters, and with either MKI_ENUM_SIMPLE_TEXTS or MKI_ENUM_COMPLEX_TEXTS to enable the passing of complete strings.

 

MKI_ENUM_SIMPLE_TEXTS Changed in Version 6.32

The plug-in can handle null-terminated, single-line text strings without format information. Enumerated texts will not be resolved into single characters, but passed to the plug-in as multiple single-line text strings, one per format and position.

Must be combined with MKI_ENUM_SOLID_CHARS and/or MKI_ENUM_OTHER_CHARS to indicate which types of text the plug-in can handle (non-distorted and/or distorted).

 

MKI_ENUM_COMPLEX_TEXTS

The plug-in can handle null-terminated multi-line text strings with format information. Enumerated texts will not be resolved into single characters, but passed to the plug-in as a single multi-line text string with HTML-like format tags (see Text Formatting).

Must be combined with MKI_ENUM_SOLID_CHARS and/or MKI_ENUM_OTHER_CHARS to indicate which types of text the plug-in can handle (non-distorted and/or distorted).

 

MKI_ENUM_PATCHES New in Version 6.31

The plug-in can handle patches, i.e. it is able to handle their invisibility information. In this case, the serving application will pass the patches directly to the plug-in instead of converting them to a surface and/or curve(s).

 

MKI_ENUM_MATRIX

The plug-in can handle 3×2 matrices, i.e. it is able to apply them to all types of data. In this case, the serving application will pass the display matrix directly to the plug-in instead of applying it to each entity.

 

MKI_ENUM_COLORMODES New in Version 6.60

The plug-in can handle color mode information, i.e. it will recognize and correctly handle RGB, HSB, CMYK, and GRAY color definitions (see MKI_XPROPERTY). If this flag is not set, all colors will automatically be converted to RGB.

 

MKI_ENUM_NO_BASELINE New in Version 6.60

The plug-in cannot handle text vertically aligned relative to its baseline, so all text positioning shall be corrected to be relative to the character cell top edge instead. This will only apply to texts that can use vertical alignment relative to the baseline, i.e. not to frame texts!

 

MKI_ENUM_PATCH_EDGES New in Version 2016.0

If patches are enumerated as surfaces, all their edges shall be enumerated, even the invisible ones (using the filling color of the patch as line color) to avoid gaps.

 

MKI_ENUM_HYPERLINKS New in Version 2019.1

Hyperlinks shall be enumerated. Otherwise, they will be ignored.

 

MKI_ENUM_COMMENTS New in Version 2019.1

Comments shall be enumerated. Otherwise, they will be ignored.

 

Flags for Handling of Blocks and Instances

These flags tell the application how to handle instances and blocks. If required, the application recurses through the calling tree of instances and blocks and resolves it.

 

MKI_ENUM_PLAIN

If this flag is set, all blocks and instances will be resolved before passing data to the plug-in, i.e. no instances will be passed.

 

MKI_ENUM_STRUCTURED

If this flag is set, instances will directly be passed to the plug-in. It's the plug-in's duty to retrieve the corresponding block definition if required.

Usually, a plug-in being able to handle instances and blocks will first make an enumeration by means of MKI_EnumerateAll with MKI_ENUM_USED_BLOCKS set in order to get information about the blocks used. Then it will enumerate all blocks reported manually by means of MKI_EnumerateBlock. Finally, it enumerates the objects and instances by calling MKI_EnumerateAll again with MKI_ENUM_STRUCTURED set.

 

MKI_ENUM_OUTLINED

If this flag is set, bitmap references will be passed to the plug-in in form of a quadrangular outline. Otherwise, they will be enumerated with MKI_ENUMDATA_BITMAP.

 

If neither MKI_ENUM_PLAIN nor MKI_ENUM_STRUCTURED is set, no object enumeration will be performed. In this case, only MKI_ENUM_USED_BLOCKS and/or MKI_ENUM_USED_FONTS will be recognized.

 

Flags for Retrieving Information

These flags tell the application to return information about blocks and fonts used in the entities. This can be used to determines what blocks have to be exported or whether all fonts used are available.

 

MKI_ENUM_USED_BLOCKS

If this flag is set, the procedure will list all block references found. This can be used by the plug-in to find out what blocks are used in the entities to be enumerated. If a block is used several times, it will be enumerated more than once!

 

MKI_ENUM_USED_FONTS

If this flag is set, the procedure will list all font references found. This can be used by the plug-in to find out what fonts are used in the entities to be enumerated. If a font is used several times, it will be enumerated more than once!

 

MKI_ENUM_USED_BITMAPS

If this flag is set, the procedure will list all bitmaps found. This can be used by the plug-in to find out what bitmaps are used in the entities to be enumerated. If a bitmap is used several times, it will be enumerated more than once!

 

MKI_ENUM_USED_REFS

If this flag is set, the procedure will list all drawing references found. This can be used by the plug-in to find out what drawings are references in the entities to be enumerated. If a drawing is referenced several times, it will be enumerated more than once!

 

MKI_ENUM_USED_GROUPS New in Version 2017.0

If this flag is set, the procedure will list all groups found. This can be used by the plug-in to find out what groups are used in the entities to be enumerated. If a group is referenced several times, it will be enumerated more than once!

 

MKI_ENUM_USED_CLIPS New in Version 2021.1

If this flag is set, the procedure will list all clipping surfaces found. This can be used by the plug-in to find out what clipping surfaces are used in the entities to be enumerated. If a clipping surface is referenced several times, it will be enumerated more than once!

 
If either MKI_ENUM_USED_BLOCKS, MKI_ENUM_USED_FONTS, MKI_ENUM_USED_BITMAPS, MKI_ENUM_USED_REFS, MKI_ENUM_USED_GROUPS, and/or MKI_ENUM_USED_CLIPS is set, the flags MKI_ENUM_PLAIN and MKI_ENUM_STRUCTURED will be ignored, i.e. no objects or instances will be passed.

 

Flags for Entity Type Limitation

These flags tell the application to ignore special types of entities. In many cases, it is not useful to have fonts resolved and passed during enumeration, especially if only basic geometrical information is required like during hatching or surface generation.

 

MKI_ENUM_NO_OBJECTS

If this flag is set, the procedure will not enumerate objects, i.e. only instances and referenced blocks / instances / drawings will be enumerated.

 

MKI_ENUM_NO_BLOCKS

If this flag is set, the procedure will not enumerate instances and referenced blocks, i.e. only objects and drawing references will be enumerated.

 

MKI_ENUM_NO_CHARS

If this flag is set, the procedure will not enumerate characters of any type. This applies to characters in text objects as well as in dimensions.

 

MKI_ENUM_NO_REFS

If this flag is set, the procedure will not enumerate drawing references, i.e. only objects and blocks will be enumerated.

 

MKI_ENUM_NO_POINTS New in Version 6.60

If this flag is set, the procedure will not include the actual point data in the enumeration. This is a fast way to run through objects to determine used properties such as layers and pens.

 

MKI_ENUM_NO_EXTS New in Version 2012.1

If this flag is set, the procedure will not enumerate extended objects.

 

MKI_ENUM_NO_MAPCONTENTS New in Version 2010.0

If this flag is set, the procedure will not enumerate the contents of mappings, i.e. only MKI_ENUMDATA_MAP_START and MKI_ENUMDATA_MAP_END will be enumerated.

 

MKI_ENUM_NO_GROUPCONTENTS New in Version 2017.0

If this flag is set, the procedure will not enumerate the contents of groups, i.e. only MKI_ENUMDATA_GROUP_START and MKI_ENUMDATA_GROUP_END will be enumerated.

 

MKI_ENUM_NO_HATCHCONTENTS New in Version 2018.2

If this flag is set, the procedure will not enumerate the contents of hatches, i.e. only MKI_ENUMDATA_HATCH_START and MKI_ENUMDATA_HATCH_END will be enumerated.

 

MKI_ENUM_NO_CLIPCONTENTS New in Version 2021.0

If this flag is set, the procedure will not enumerate the contents of clipping surfaces, i.e. only MKI_ENUMDATA_CLIP_START and MKI_ENUMDATA_CLIP_END will be enumerated.

 

MKI_ENUM_NO_MODELSPACE New in Version 2020.0

If this flag is set, the procedure will not enumerate top-level entities from Model Space, only those assigned to a page.

 

Flags for Property Handling

These flags tell the application which property set to use. As pens and layers define two sets of properties (one for screen display and one for printer output), the resulting image depends on which property set is used. In addition, the serving application features several settings that influence the properties (e.g. layers transmitting properties) and the kind of entities used (e.g. whether to display Construction Aid or not).

 

MKI_ENUM_TO_SCREEN Renamed in Version 2017.1

If this flag is set, the procedure will use the application's current settings for screen display. If not, the procedure will use the application's current settings for printer output. This will determine whether Construction Aid objects will be visible, and whether layers will transmit properties or not.

 

Flags for Visibility Control

These flags tell the application whether to limit the number of enumerated objects by visibility. This can be used to enumerate only those objects that are visible in the currently active window, etc.

 

MKI_ENUM_VISIBLE

If this flag is set, the procedure will only enumerate those entities that are currently visible due to layer, pen and page visibility. Else, all entities will be enumerated regardless of their visibility.

 

MKI_ENUM_WINDOW

If this flag is set, the procedure will enumerate only those entities that are (partly) visible in the currently active window of the current drawing. Else, all entities will be enumerated regardless of their visibility.

 

MKI_ENUM_HIDDEN

If this flag is set, the procedure will enumerate all entities, even if they would usually not be visible due to display or output settings (applies especially to Construction Aid and Comments).

 

MKI_ENUM_GEOMETRY New in Version 2016.1

If this flag is set, the procedure will enumerate all Construction Aid objects, even if they would usually not be visible due to display or output settings.

 

MKI_ENUM_MODELSPACE New in Version 2017.1

If this flag is set, the procedure will enumerate all objects as if the application was in Layout mode with the Model Space being active. Only in this situation, the Model Space scaling options will be applied.

 

MKI_ENUM_TO_PRINTER New in Version 2021.0

If this flag is set, the procedure will omit all entities that are marked as non-printed (by means of MKI_ENTITYMODE_EXT_NO_PRINT). This does not imply the use of output properties, i.e. it will not affect the use or non-use of MKI_ENUM_TO_SCREEN.

 

CAD6interface 2024.2 - Copyright 2024 Malz++Kassner® GmbH