MicroGDS 11.5

Welcome to the MicroGDS 11.5.1 release from Informatix Inc.

For full details of how to use MicroGDS 11, in both single-user and multi-user modes, please see the Using MicroGDS 11 user guide.

Installing MicroGDS

MicroGDS 11.5.1 can be installed on any desktop version of Microsoft Windows which is supported by Microsoft. At release, the minimum versions are Windows 10 version 22H2 and Windows 11. Use Windows Update before and after installing MicroGDS, to make sure you install every important update from Microsoft.

New licence needed

You will need a new licence key to run MicroGDS 11.5. Licences for older versions of MicroGDS will not work. Contact sales@microgds.co.uk for details.

The first time MicroGDS 11.5 is run, you will be prompted to enter licence information. You can use MicroGDS for a few weeks as a trial, without a valid licence.

Older versions of MicroGDS

MicroGDS 11.5 can be installed without removing older versions such as 11.3 or 11.4, but in most cases it is best to uninstall 11.4 or older copies first. Version 11.5.1 upgrades 11.5(.0); you cannot install both of these together.

Installing beside older versions allows you to run both old and new versions, using independent licence details. If you later remove an older version of MicroGDS you may need to use the Windows Installer's Repair action on 11.5 afterwards, to make sure that, for example, Windows Explorer associates MicroGDS files correctly with 11.5.

32-bit and 64-bit versions of MicroGDS

There is a 64-bit version of MicroGDS that you can install onto a machine running a 64-bit version of Windows. This enables you to take advantage of the improved speed and memory handling of a 64-bit process. You can run the 32-bit version on 64-bit Windows, but not the other way around.

You should install the 32-bit version of MicroGDS if you have existing MicroGDS CPD databases that you want to continue to use. These databases are created with Jet 4.0 and Microsoft do not provide a 64-bit version of the Jet driver. You can install both the 32-bit and 64-bit versions of MicroGDS 11.5 on the same computer.

64-bit application support

If you install the 32-bit version of MicroGDS on a 64-bit operating system, you will be offered the option of installing the MicroGDS 11 64bit Application support module. This is highly recommended, because it includes the SketchUp import process and support for CadLink .NET applications including the samples which are part of the installation.

What's new in 11.5.1

Style and entity mapping tables

MicroGDS can now read style mapping files (.smt) and entity mapping (.emt) as UTF-8 or UTF-16 text, so names not in your usual code page can be used. The DXF Scan utility now writes these files as UTF-8. You can use mapping tables created by older versions of DXF Scan in MicroGDS 11.5.1, but older versions of MicroGDS will not process mapping tables created with this new utility, unless they are first converted to your Windows multi-byte code page.

AutoCAD data

HATCH entities are imported so as to observe their hatchstyle, by defining up to three different MicroGDS linestyles for each named hatch pattern. The DXF Scan utility has also been enhanced to support these.

LEADER entities imported include their hookline. Older versions of MicroGDS did not create this part of the line.

glTF export

Rotated the output view through 90 degrees compared with MicroGDS 11.5.0, to match the usual conventions of glTF viewing. The glTF X, Y and Z axes now match MicroGDS +X, +Z and -Y.

Inclusion list filter

Text values in inclusion lists can now include quotation marks ("). Existing data files are unaffected. Files saved using " characters in newer versions of MicroGDS may not work correctly if opened in older versions of the product. The user interface no longer puts quotes around text values which can't be confused with numbers, dates or names.

Third-party software used in MicroGDS

ZLib 1.2.13

libpng 1.6.40

Libtiff 4.5.1

libjpeg 9e

What's new in 11.5

glTF export

3-D graphics can be exported from MicroGDS into the GL Transmission Format (glTF), as either .gltf or (more compact) .glb files. Clump primitives are written and material styles are written as a plain colour. Use the File > Export command and select the relevant file format.

There is one option for glTF output, whether to include smooth edge information in the output. Without smooth edges, the resulting files are smaller, but may take longer to process in your glTF viewer. With smooth edges, MicroGDS calculates vertex normals as well as positions, based on the smooth edge data in the drawing.

SketchUp import

MicroGDS 11.5 can read files produced by all versions of SketchUp (tested up to SketchUp 2021). SketchUp file reading is provided only for 64-bit Windows (by both 32-bit MicroGDS with its 64bit application support selected, and 64-bit MicroGDS). Older versions could not read files in the format created by SketchUp 2014 onwards.

Problems dialog

The Problems (Yellow Shriek) dialog now opens with the main window's current document, provided that has any warnings to be displayed, rather than just the first in the list of documents.

Windows clipboard

Clipboard copy and cut operations work even after changes to Microsoft Windows 10 and 11 which cause unpredictable failures in older versions of MicroGDS.

Settings files

Disabling the File > Open command in the File > Preferences dialog (or by editing a settings.xml file) now disables most interactive ways to open a single-user drawing file, specifically drag and drop, paste and the files listed in the Document Organizer. It does not limit other ways to open files, in particular the API, ADK, following the links in instances, photos or URL attributes, or the recent-files commands.

ADK styles

The ADK can read, modify, create and delete styles (see API section).

Licences

MicroGDS licences can be given expiry dates up to year 2999. Older versions were limited at the end of 2036.

Performance

There are small improvements to performance of almost every part of MicroGDS. Specific improvements are to the time and memory needs of most operations on Clump primitives and of the Trace Spaghetti commands.

What's new in 11.4

MicroGDS 11.4 uses a newer version of Microsoft .NET, one which is included automatically in current versions of Windows. This means it installs without needing any unusual Windows options to be set, unlike 11.3 and earlier.

Some MicroGDS operations go faster than version 11.3, especially

User interaction

The Set Grid dots are now drawn with the user-selected colour, or if no colour is selected, black on light backgrounds or white on dark. Older versions of MicroGDS draw the dots only in black.

The formatted-text editor more accurately locates characters from mouse clicks. It was interpreting justification between characters incorrectly, so this effect depended on the text, the font and the line length.

Snaps to Point text primitives allow the whole of the text area to be used, as well as the single justification point. New setting SnapPointTextArea (default = true) controls whether snaps to point-text primitives are resolved across the whole text area, or just within point-snap distance of the justification point. The default value maintains the behaviour of MicroGDS 10 for Point text primitives. Use <SnapPointTextArea>false</SnapPointTextArea> to match version 11.3.

New setting ShowAttributePrompts, default=true, controls whether attributes are labelled using their prompt text (where defined), rather than their mnemonic. This affects hover-tooltip, URL attributes and the Properties window.

The dialog for creating custom commands, and the options stored in the settings files for these, have been improved. You can now define any combination of the possible starting states, not just one of them, and there's a new state for commands which ashould be available during an API conversation.

Try up to 5 times to save current.mprofile when an interactive MicroGDS process is closed, in case of file lock congestion.

When a library alias is edited, MicroGDS now clears the selection. The reason is that the selected objects might include instances which change in meaning because a they are found in a different (library) MAN file. In rare cases this could cause confusing error messages.

(11.4.4) Disabling the File > Open command using the settings files now also disables opening drawing files using the Document Organiser, and drag and drop, paste or double-click from the Windows file manager. (This setting does not restrict file opening using the API or ADK, the last part of the File > New command, the recent-files commands, following a URL attribute which leads to a drawing file, nor opening the source drawing of a photo primitive or instance object.)

Output drawing quality

The Anti-aliased text option has, by mistake, only ever switched between two very similar anti-aliased presentations of text, rather than turning this algorithm on and off. In version 11.4, Off means Off.

The application preferences for raster-drawing options now apply also when when publishing drawings as bitmaps. Those are the four raster optimisations PlgBlt, StretchBlt, StretchDIBits and GDI+ and the general setting for Anti-aliased text.

One-line paragraphs in wrapped text primitives with the "justify" format are stretched to fill their space. The old behaviour can be restored by the setting JustifySingleLineParagraphs (default=true), "Stretch a single-line paragraph in justified text." (The last line of a multi-line flush-justified paragraph is always left-justified; this change affects only single-line text.)

Dimensions

Dimension text (DIM and ASSOCDIM functions) has a new parameter, to store the trailing-zero rule for the dimension. This can be 0 to use the document property (as in 11.3 and earlier), 1 to show trailing zeros, and 2 to hide trailing zeros. Line and radius dimensions created by DXF and DWG import use the DIMZIN (DXF 78) bit-value 8 from the dimension style to set this parameter. New setting "Copy trailing-zero document property" chooses whether new MicroGDS dimensions refer to the document property (as used up to 11.3) or copy it (freeze it into place). This allows creating DXF-like dimensions, where within one document, some suppress trailing zeros and others don't.

JPEG data

Adobe Photoshop "32 bit" JPEG image files (which use YCCK, more precisely Y/Cb/Cr/K colour format) can now be used in MicroGDS raster primitives. The incoming data are converted to RGB. Output to PDF is modified to match; for this, these JPEG files are converted to RGB or grayscale. CMYK data may also work, but is not tested and therefore not formally supported.

AutoCAD data

DXF import of a Dimension entity as (non-dimension) graphics now uses a better insertion point for the graphics block, if no insertion point is defined in the DXF record - i.e. codes 12,22,32 are omitted. This corrects the location if the dimension's not in the usual 2D drawing X-Y plane.

Rotated text in dimensions is imported and exported more reliably.

DXF and DWG dimensions now use the DIMZIN field, linked to the MicroGDS document and dimension properties which control whether to show trailing zeros.

Annotative dimensions (which use annotation scales) are recognised and read from DXF and DWG files.

DWG and DXF files in AutoCAD 2018 format can now be read and written.

Import multi-column MTEXT entities from AutoCAD 2013 DWG, and both DXF and DWG 2018 to match the behavior of DXF 2013. A separate text primitive is created for each column, because the MicroGDS data model does not have multi-column text primitives.

Support only

New settings (hidden in normal use) can alter the processing priority of the background threads which keep screen graphics up to date, calculate the hover-snap display, update 3D models and the "thumbnail" image of window definitions and layers.

What's new in 11.3

Autocad 2013 data

Added AutoCAD 2013 to the user interface and to the API as an export version. This adds "Release 2013" or "2013" to drop-down list controls, and "Release_2013" to XML and .NET data to control export.

In AutoCAD DXF and DWG input and output, interpret or use the new AutoCAD 2013 MTEXT code \K for strikeout and \k for end-strikeout. For output these are used only where the export format is AutoCAD 2013 since older versions will not interpret them.

For import, recognise \o (end-overline) but ignore it, since MicroGDS text does not include overline formatting.

Import ARC_DIMENSION and LARGE_RADIAL_DIMENSION entities from DXF files as plain graphics. This is a worthwhile improvement on discarding these entities and giving a warning message, but it loses any knowledge that these are dimensions and cannot generate these entities for export.

Adjust line spacing for charstyles created by AutoCAD import and based on TrueType fonts, to add a line spacing derived from the font. This increases Arial, for example (used for Standard) by 3% and more closely matches what AutoCAD uses for its line spacing.

Added alpha (transparency) to all colours in DXF and DWG output and input, specifically by adding argb<A>:<R>:<G>:<B> to the style mapping table (can be used wherever the existing rgb<R>:<G>:<B> syntax is allowed).

Entity mapping tables

Syntax errors in entity mapping table files (.emt) are reported more clearly. The entry number within the file section, and the text being processed when an error is detected, are reported as part of new messages which may help identify the mistake.

Import and export definition files

File names (paths) in all MicroGDS's XML-based import and export definitions files are now treated as relative to the directory containing the definition file. You can also specify absolute pathnames using the <*MICROGDS_COMMON_APPDATA>, <*MICROGDS_PROGRAM_FILES_COMMON> and <*MICROGDS_PROGRAM_FILES> prefixes. This affects MAN file import's ReferenceFileFallbackPath and RasterFileFallbackPath, DXF and DWG import's EntityMapping and StyleMapping, AIF and BIF StyleMapping, and DXF and DWG export and publish EntityMapping, StyleMapping, Linetypes, Chartypes, HatchDefinitions, HeaderVariables and FontFolder properties.

New standard file alias

There is a new standard file alias name, *MICROGDS_PROGRAM_FILES. This expands to the directory where MicroGDS is installed. (More precisely, it's the parent of the directory containing the copy of microgds.exe which you are running.) File paths in settings.xml files can now use <*MICROGDS_...> relative names. You can use the new name in all the places where *MICROGDS_COMMON_APPDATA and *MICROGDS_PROGRAM_FILES_COMMON can be used.

Custom commands

Files with the extension .mcommand can define both custom commands and user interface elements for these, such as menu entries and toolbar buttons. They are in the same XML format as settings.xml and .mprofile files; the supported XML elements are CustomCommands (with identical meaning to this element in settings.xml) and any of those allowed in a profile file.

These must be in one of the standard folders for settings files and are processed before the settings files in that folder (and before profile files). The intention is that they will be used to store custom command definitions with their corresponding menu, shortcut and toolbar entries.

Custom commands can now be set up with toolbar button images via the UI, and can be added to toolbars. Custom command images should be resources in a DLL or EXE file, or bitmap (.bmp) data files.

For an example of using these new files, look at SampleApplications.mcommand in the directory where you installed MicroGDS.

Start-up

Start-up of a new copy of MicroGDS is faster; the splash screen is not displayed for so long.

The Windows Shell file association for MicroGDS (used, for example, when you double-click a MAN file in Windows Explorer) is modernised to be faster and more reliable. It now uses DropTarget, rather than DDEEXEC.

The first time you start MicroGDS 11.3 after it is installed, there may be a long pause while Windows verifies the digital signatures on its files.

Windows Explorer

In the Properties information shown by Windows Explorer, expanded the layer link number and description to the layer name, when this occurs in the MicroGDS tab for an LYR or the Layers tab for a MAN file.

Switch User

MicroGDS now allows "switch user," on versions of Windows which provide it, to run copies of MicroGDS for several logged-in users at once; each logged-in user session counts one from your licence limit.

French and German

The resources for German and French in MicroGDS have been improved, although the translations are not complete (you get some new, or less common, messages still in English).

OLE photos

Create OLE (photo) primitives using enhanced metafile for their presentation if the server supports it, rather than leaving it to the OLE library default (usually 16-bit metafile picture). This seems to correct the long-standing problems with Excel spreadsheets shown truncated to no more than 327.67 mm high and wide.

Saved profile

Any control bar can be restored to any floating location, so long as part of it is on any monitor. Previously, every floating control bar was restored so as to be entirely on the primary monitor's work area.

Window saved axes

Newly created drawing windows, and drawing windows which have never had any saved axes stored (which include all drawings last saved by MicroGDS 10 or earlier), are not automatically given saved axes. Saved axes are never set except by the Window > Save Axes command; opening a window which does not have saved axes loads your settings.xml defaults into its working axes. MAN files, DRG files (in multi-user projects) and XML files all now remember the no-saved-axes state. There is no change to import and export of AutoCad file formats; saved axes are always defined for windows read from DXF and DWG.

Commands

Paste Special

The Edit > Paste Special command, when copying MicroGDS objects, with Keep style names of clipboard graphics not checked, creates any new objects with lightstyle NONE. It used to use the set lightstyle, but this is now consistent with all other commands which create new objects. The status bar now treats selected assemblies as having no lightstyle; in earlier releases it displayed the lightstyle of the plain objects contained in that assembly.

Added an Edit > Paste Special option (check box) to bypass the transform constructed from the set axes of copied data and the set axes of the target drawing. This feature is available only from the Paste Special command, not in Paste, drop-down button Paste Special, drag and drop, or the API. There is no way to start the Paste Special command with the check-box cleared; if you want several Paste Special without transforms, you have to click the box every time.

The Paste Special dialog used where MicroGDS data is found on the clipboard has a new check box, Include attributes normally not copied. This controls what to do with attributes whose mnemonics are not marked as Attribute copied with object. The normal state, observing this attribute, is with the box not checked. If set, the Paste operation includes all object attributes, even those not marked for copying. This option affects only pasting objects (not primitives, bitmap or metafile), and it is "sticky" – the setting stays for the rest of your MicroGDS session. This option also affects plain Paste commands.

Set Charstyle

A new setting, SetCharstyleResetScale or Reset selected text primitives' scales whenever the set charstyle is changed, controls whether changing the set charstyle (using the status bar, the Document Organizer, editing a character style or the Set > Charstyle command) should reset a scaled text primitive to the natural size of its new charstyle.

The set object and set axes

Three new settings, AutoSetAxesScale, AutoSetAxesAngle and AutoSetAxesOrigin or Changing set object also changes set axes scale etc, control whether to copy a clicked-on object's scale, rotation and origin to the current window definition's set axes.

Window Profile Select

In the dialog to choose a named profile, add an action for double-click on a profile name. This is equivalent to select and OK.

Alter Smooth command icons

Swapped the smooth mid point and vertex icons to match the actual commands.

Performance

There are significant improvements to MicroGDS speed and memory use, especially for multi-processor computers.

MicroGDS 11.3 allocates less memory for drawing OLE objects (as bitmap images) into PDFs. Now allocates one, where it used to use three, copies of the full, uncompressed bitmap. You are now less likely to have PDF publishing fail for lack of graphics memory.

Database administrator

The database administrator now follows the same rules as MicroGDS about what link number applies for a project layer file (.LYR). Each layer file stores its link number as well as being named to match. MicroGDS ignores the stored link number; the database administrator reports if the numbers differ.

The new behaviour affects adding layer files to the database in Database > Validate or File > Restore. A list of files it finds but does not use (e.g. because they come from a different project) is shown at the end of these commands.

Reinstating a deleted layer now renames the layer file to match its stored link number.

MicroGDS Viewer

The warnings shown in MicroGDS itself as "yellow shriek" messages now appear in the MicroGDS Viewer.

The 32-bit version of the Viewer no longer allows itself to be installed on 64-bit Windows, where it does not work. (You needed the 64-bit Viewer installation for this.)

Fixed a mistake in the Print dialog for the Viewer which prevented it printing on 64-bit Windows.

New and changed API features in 11.5.1

New functions

Cad.LastSnapMarkerColour and Cad.GetLastSnapMarkerColour [11.5.1]

These two functions write and read the last snap marker colour.

New and changed API features in 11.5

New and extended functions

Cad.SelectPoly and Cad.SelectPrimPoly

Added new SelectionPoly actions AddIn, AddOut, AddOn, RemoveIn, RemoveOut, RemoveOn, KeepIn, KeepOut and KeepOn.

Cad.CreateOleFromFile [11.5]

New function Cad.CreateOleFromFile creates a new OLE primitive, either an embedded object, a link, or a static, from a named file. This is the API equivalent of Edit > Insert Object... from file.

Cad.CreateManFile and Cad.CreateFile

These functions use the BLANK document template, if that's defined. This makes them consistent with the interactive command and the integrated ADK.

Cad.ScreenUpdateMode

Cad.ScreenUpdateMode(Bulk) shuts down more of the interactive parts of MicroGDS, for improved speed of API programs.

Cad.AddMenuCommand

Cad.AddMenuCommand("{/e100/mp}Example" ...) works better. The main change is to make /mp [pop-up menu] mean /mpmw [pop-up menu, with created command enabled in MAN and CPJ views]. This fixes a bug which appeared in version 11.0 marketed as version 2010.

Cad.RemoveMenuCommand

Some problems deleting /e custom commands have been corrected. This fixes a bug which appeared in version 11.0 marketed as version 2010.

Polyline point data

MicroGDS 11.5 removes the fixed limit on the amount of data that can be returned by one call to Cad.GetPolylinePts, Cad.GetCurPriPts, Cad.GetFacelooppts, Cad.GetFaceloopvertices, Cad.GetObjselection, Cad.GetPriselection, Cad.GetSelpoly and Cad.GetScanpoly. This restriction to about 8533 points has not been needed since upgrades to the API data transfer mechanism in version 10.

Cad.SetWndName

This function reliably searches all view windows for the requested name. It had not been reliable since version 10.0.

Cad.PasteSpecial

Crashes in Cad.PasteSpecial and errors in clipboard copy and cut operations both interactive and API, all provoked by changes to the way Windows 10 and Windows 11 use the clipboard, should no longer happen. (MicroGDS now detects the error if the clipboard is unpredictably locked by Windows, and tries again until it gets no error, or a different error.)

Function logging and tracing

API function call logging now uses function names for all, rather than the internal message code for many functions. API log file lines are written ("flushed") to the file system under control of the DebugMessages setting.

ADK

The ADK has added support for character, light, line and material styles, and for mnemonic definitions.

XML

The DTD used for XML data corrects the DateMnemonic to specify just one optional CurrentTimeComputation, and corrects a LinkMnemonic to use a MaxNumList attribute, not a WordList.

CadEvent

The mechanism for using the CadEvent OCX for .NET applications has been improved. It may be helpful to re-build Basic or C# applications which use CadEvent, for improved efficiency.

New and changed API features in 11.4

Function logging and tracing

MicroGDS can collect timing data for every API function, recorded by message number. The API cross-process messages are logged, not exactly the same as API functions. A time and an estimated function name are recorded for each API message, start and end; for exceptions, the exception text is recorded. Logging is controlled by two new settings.

ApiLogLevel

This defines the API log file level of detail.

Off
No logging. No API log files are created. This is, of course, the default.
None
MicroGDS process (session) start and end, and API exceptions are recorded. This is helpful for troubleshooting.
Info
As None, plus a record for the start of every API function and a summary of the call count, mean and standard deviation of processing time, and name for each function call or API message. This is usually the best setting for performance analysis.
All
As Info, plus a record for the end of every API function.

Log files are in plain text format. Each line in the file is one log file record and starts with a timestamp. Example log file records are

2019/09/04-10:30:05.428 Start: Cad.SetAxesScale

2019/09/04-10:30:05.500 Exception: The function requires an open, active document. (Cad.SetAxesScale)

ApiLogDirectory

This defines the Windows directory or folder where API log files should be created. The default directory is the same as the one used for personal MicroGDS settings and profiles, in the Windows-defined application "roaming" data. One log file is created for each MicroGDS process. The file is named microgds_YYYYMMDDHH_P.log, where YYYY is replaced by the year, MM by the month number, DD by the day, HH by the hour (24-hour clock) and P by the Windows process ID. For example, microgds_2019091816_15592.log.

New and extended functions

Cad.GetAttVal

Public Shared Function Cad.GetAttVal (ByVal mnemonic As String) As String

This is a new overload for Cad.GetAttVal which returns the (string) attribute value, or a null reference if the attribute is not present, without throwing an exception for the latter.

Cad.ScreenDrawing

New function which returns whether MicroGDS is drawing data for screen presentation ("background drawing").

Cad.GetCurPriColour and Cad.CurPriColour

Two new functions to read and alter the colour of the API program's current primitive.

Cad.PasteSpecial

Added new code PasteFormat.MetafilePicture to Cad.PasteSpecial. This is like PasteFormat.Metafile except that a 16-bit metafile picture is used as first choice, and enhanced metafile as second choice. (PasteFormat.Metafile is the reverse preference order.)

Cad.CreateOleFromFile (11.4.4)

This new function is the API equivalent of Edit > Insert Object... from file, and can create an embedded, linked or static OLE primitive.

New and changed API features in 11.3

New profile functions

void Cad.SaveProfile(string fileName)

void Cad.RecallProfile(string fileName)

void Cad.SetProfile(string name)

void Cad.GetProfile(string name)

The first 2 take a full path name and save or recall the profile, the second 2 set the profile with name name to the current profile and get a saved profile. The second two are equivalent to the interactive commands, the first two permit you to look in folders other than the standard paths.

Cad.SaveProfile and Cad.RecallProfile can handle strings containing the pseudo-logicals *MICROGDS_PROGRAM_FILES_COMMON and *MICROGDS_COMMON_APPDATA as with style search paths. For example, you could use

Cad.RecallProfile(@"<*MICROGDS_COMMON_APPDATA>project.mprofile");

Preferences functions

Cad.PrefCopyProjectColours, Cad.PrefColour, Cad.PrefColourEx and the Document Properties dialog "To document defaults" button now cause the edited palette to be saved in the appropriate settings.xml file. Fixes a bug in MicroGDS 11.0 (marketed as 2010).

Added PrefViewControl.DrawingStyle to Cad.PrefViewControl and Cad.GetPrefViewControl. This was forgotten from MicroGDS 11.0.

Make Cad.GetPref and Cad.Pref [7.1] case-insensitive, as documented, and correctly able to use the returned values for restoring original settings. The mechanism allows either the non-localisable XML representation or the local-language version of an enumerated type such as bool to be read in - so false, False and UnTruE might all be accepted (supposing Untrue to be the local language equivalent).

Cad.SetXMLLinestyle

Cad.SetXMLLinestyle checks more thoroughly that a linestyle pattern stroke is valid.

CAD Events

Fix problem that meant that all string arguments for CAD events (e.g. document name for change of current document) were passed as null. Fixes a bug in MicroGDS 11.0 (marketed as 2010).

The data type for CadEvent properties such as Initialize accidentally became SByte (signed 8-bit) in MicroGDS 2010 (11.0). These properties are now restored to Boolean.

Custom command numbers

Custom command numbers are shared between commands defined with API functions and those loaded from settings and .mcommand files. In MicroGDS 11.3 an API program is likely to find command numbers returned by Cad.GetFreeMenuEvent differ from earlier versions.

Typed input during an API conversation

Corrected unpleasant behaviour during API conversation. Discard typed input to MicroGDS while a conversation exists and no snaps are expected (by Cad.GetArg etc). That's while the cursor displays a padlock. Mouse clicks and hover-snaps are already disabled; this edit disables typed coordinates as well, which otherwise enter prompt mode and thus lock out all API operations.

Cad.Print

Fix problem in Cad.Print introduced in MicroGDS 11.1: return the documented XML warnings summary and add to it a PrintDoesntFitWarning if the view being printed does not fit within the printable area of the Windows printer. Up to 11.2 the warnings string was always empty; now it is never empty, but usually has no warnings in it. So far, this is the only warning which can ever be returned by Cad.Print, but others can be added. At 11.1 and 11.2, if the view does not fit, an unhelpful MAE_PRINTFAILED error is raised; that is now reserved for more serious failures.

Added interpretation to Cad.Print for the options ColourMode, Cutmarks, NumCopies, Rasterize and RasterResolution.

Added support for null margins for a "scalable" paper size (not print layout, and not perspective); these mean zero for export, but to use the Windows printer margins for printing.

The two line-thickness properties of the options to Cad.Print (LineThicknessMonochrome and LineThicknessColour) now affect just that print operation, rather than also affecting the MicroGDS session settings MinPrintThicknessMono and MinPrintThicknessColour. Interactive print operations continue to set both.

Cad.PasteSpecial

Enhance Cad.PasteSpecial so that:-

Cad.CurObjLight and Cad.SetSetLight

Cad.CurObjLight and Cad.SetSetLight now check for an invalid lightstyle name, and generate exception MAE_INVALIDSTYLENAME for it. In earlier versions of MicroGDS, invalid lightstyles would usually be rejected but with error MAE_CANTFINDSTYLE.

Cad.InsertMenuCommand

Cad.InsertMenuCommand can now insert a menu command between existing top-level menus.

Errors in Cad.InsertMenuCommand and Cad.AddMenuCommand to do with separators, and trying to modify a regular menu entry as if it were a submenu, are fixed.

Cad.RemoveMenuCommand

Fix bug where Cad.RemoveMenuCommand("**") followed by adding some new menu commands turned into just the remove, as soon as a new document is selected.

Export format options

Added Informatix.MGDS.ImportExport.Options.NumFacet.

Scans

Clump, saved view, window definition, layer and primitive scans all stop (behave as end of scan) if their current record is deleted, even if that deletion is because of an Undo or Redo operation. In earlier versions of MicroGDS it was not very predictable whether the scan would continue, whether it would halt with or without an error, or whether it could in rare cases return wrong data.

If the current primitive is invalidated by an Undo or Redo, any operation on it now gives error "No current primitive."

Cad.StartMicroGDS

Cad.StartMicroGDS uses IDropTarget registry entries, rather than DDE, to find MicroGDS. This means that MicroGDS 11.3's Cad.StartMicroGDS can start MicroGDS 11.2 or earlier, but older versions of the API cannot start MicroGDS 11.3. Allow a bootstrap program to start MicroGDS and return the process ID of the new MicroGDS process without confusing Cad.StartMicroGDS.

Visual Basic 6 and native-code C or C++

CadExport, CadGetSetEditColour, CadGetSetWndDefaultViewName, CadGetWarnings, CadImport, CadOpen, CadPrint, CadPrintF, CadSetWndViewNext and CadSetWndViewScanStart have been added to the functions available for VB6 and native C++ users of CadLink.

ADK

Add an adaptor to collect new-style (MicroGDS 11 onwards) document warnings and turn them into old-style application warning messages, so as not to confuse ADK applications such as the Viewer.

Bugs fixed in version 11.5.1

If all documents are closed, the Problems ("yellow shriek") dialog could sometimes crash MicroGDS. This is fixed.

MicroGDS could crash with errors if an inclusion list advanced filter value was typed in with strangely placed quotation marks, e.g. "test"|. This is fixed.

AutoCAD dimensions using custom text including the symbol <> now correctly substitute the dimension formula within the custom text.

For high-DPI displays, the default last-snap circle is now a little bigger, matching exactly the standard hit radius.

The setting for the guide colour now supports indexed colours better than older versions of MicroGDS.

The Cancel button in the File - Import - window name clash dialog disappeared in version 7. This button has been replaced and now cancels as much as possible of the file import (the window prompted for and all later windows in the file).

The DXF Scan utility now includes HATCH and HELIX entities within blocks in its analysis. Older versions could miss them.

Improve the choice of whether to place the text of an imported DXG or DXF linear dimension inside or outside the gap. The main difference is to apply the scale to the number text used to estimate where the text will fit, so that, for example, 4.5 metres shown as millimetres with a scale of 0.001 is fitted as its displayed value 4.5, not tested to fit as the bulkier 4500.0.

DXF and DWG import of TEXT and MTEXT primitives which use Windows TrueType @-prefixed fonts is improved. Also some attempts to get the scale right of the text primitives created from from TEXT entities.

Vertical text using some TrueType fonts, including @Yu Mincho, no longer causes exceptions.

Commands referred to by a .mprofile file, then hidden by menu deletions, are now restored by Cad.RestoreMenuState.

Some changes to the font and layout of the splash screen and the Help > About dialog make these look better on a high-resolution display.

Bugs fixed in version 11.5

Hidden-line drawing is more precise than any previous version of MicroGDS.

Adjusted the colours for all list-edit value entries, so that the label does not become invisible (selection-text white on window-background white) for the the selected item. It's now selection-text white over selection-blue (for editable items) and selection-blue over grayed-out grey (for readonly items). This fixes a look-and-feel user interface error from about version 9.

The layout of the Query commands' measurements dialog has been improved, and it now works much better on Windows 11 and slightly better on all versions of Windows.

Status bar layout is improved for high-DPI displays.

The drop-down list of translator options files (*.export_*) is presented in your locale's collation order. Older versions of MicroGDS showed this list in generic Unicode order.

The order of documents in the drop-down list of the Problems (Yellow Shriek) dialog was in meaningless order which could vary with compiler and run-time library updates. It's now in the order the documents were first opened in this MicroGDS session.

The MAN file window view in the Document Organizer is now aware that Undo and Redo commands can make drawing windows appear and disappear. Older versions of MicroGDS could give errors or crash.

Material styles read from XML use an RGB colour in the same way as reading the style from a MAN or STY file.

The Render command no longer modifies the RGB (shaded view) colour defined for a material style.

The AxesScale value saved in a .import_dwg settings file wasn't being copied to the dialog when browsing to a saved import settings file. This fixes a bug which appeared in version 11.0 marketed as version 2010.

The Trace Spaghetti command's dialog tolerance display no longer affects the precision of the number stored. For example, if you enter (4/3)mm and this is displayed as 1.3mm (rounded for presentation), the true value used remains at 1.3333... mm.

Importing exploded blocks from DXF and DWG data did not work in version 11.4.3, but is now fixed.

OLE Photo primitives are now drawn correctly into PDF files. This corrects an error in version 11.4.3.

XML output for a character style with a colour defined now works. This fixes a bug dating from version 11.2.

2D drawing options are not affected by 3D-specific choices such as the hidden-line mode. Fixes a bug going back to version 9 or earlier.

A very old bug in reading style names, layer, object and primitive links from MAN, STY and LYR files which could give error or warning messages about bad or ignored data has been fixed. The only known example of this gave problems reading a clump primitive which used a large number of different materials.

A rare (timing-dependent) cause of MicroGDS crashing has been corrected.

Checking and reporting some types of internal error is more reliable. (Example: "pure virtual function call" message and some cases of hangs should be improved.)

Bugs fixed in version 11.4

Several problems with editing user profiles (which include menus, toolbars, shortcut keys) are fixed, particularly the interaction between MCommand files and an individual user's profile edits.

Some cases where the vertexes of lines drawn with a thickened linestyle did not look right are corrected.

Saved view names with ampersand (&) characters no longer confuse the contents of the View menu.

Cad.GetPriLinks now works correctly even if there are more than 32 766 primitives in an object.

Cad.GetObjectLinks, Cad.GetObjectLinksArea, Cad.GetObjectLinksPoly, Cad.GetObjectLinksPrimPoly and Cad.GetObjectLinksVolume all now support returning more than 32 765 links.

A compatibility problem where MicroGDS 10 to 11.3 could not read versions 7 and 8 line primitives with exactly 4096 points has been fixed.

Using a snap to a line with a typed-in distance (from another reference point) is now consistent with the behaviour of X, Y and Z locks. In version 11.3 and earlier it might give an error message if the calculation reached the end of the line.

A problem where using custom commands could crash MicroGDS has been fixed.

A problem where reading a DWG file containing an entity reference to a spline curve with millions of points would lock up MicroGDS has been fixed.

Fractions of an inch measurements were not shown to the correct precision with Imperial units selected.

If MicroGDS is started by double-clicking a file in File Explorer, it observes its profile setting for maximised main window and command line option /app. (This bug appeared in version 11.2.1.)

Some text primitives with un-wrapped text which contained line-break characters could sometimes crash MicroGDS. This is now fixed.

Corrected Cad.RemoveMenuCommand for sub\sub\menu\**, to fix a bug in MicroGDS 11[.0].

In the API, the cause of a PInvokeStackImbalance warning has been fixed.

Ended the strange behaviour of the Window > Profile > Customize dialog, which was allowing controls to be dragged around immediately after bringing another window (such as a Web browser) in front, then shrinking that to an icon.

A problem where lines exactly along the edges of an enhanced metafile (used in copy to clipboard) could disappear (not be drawn) has been reduced.

Some exported DXF and DWG dimensions could get a bad text style name, if the MicroGDS name contained Unicode characters which did not exist in the current Windows multi-byte character set.

Imported DXF annotative text styles now arrive in MicroGDS with the correct font name, instead of AcadAnnotative.

Imported DWG text styles often used to translate to MicroGDS DEFAULT style. Where appropriate these now correctly use their Windows TrueType font.

Make the Help button move with the Ok and Cancel buttons when the File > Preference Files ... Command Availability [...] dialog is resized.

Correct "Record is deleted" exception message in hover-highlight code on using the Delete key (instant Edit > Delete command) during the Edit > Fence command, while moving the mouse around over a large selection.

Bugs fixed in version 11.3

Redraw windows or update hover-highlight status more consistently when preferences such as background colour are changed via File->Preference Files. Previously if you deleted a setting, for example, it wouldn't be noticed.

Improved the internal checks made on linestyle pattern stroke definitions, where faulty saved data could sometimes crash MicorGDS.

Redraw windows or update hover-highlight status more consistently when preferences such as background colour are changed via File > Preference Files. Previously if you deleted a setting, for example, it wouldn't be noticed.

Several detailed improvements to the "yellow shriek" warnings dialog.

For drawing text in hidden-line (or other non-wireline) mode, draw it as lines rather than keep it as text (i.e. behave the same as for perspective).

A crash in the Set > Lightstyle command is fixed.

Correct import and other parsing of ASSOCDIM so as not to get an undefined (not initialized) value for the optional 11th (round-to) parameter. Corrects a bug in 11.2.

Prevent stack-overflow or similar crash if a menu entry is dragged into itself (an impossible move or copy) by showing a cannot-drop cursor. Fixes a bug in MicroGDS 11.0 (marketed as 2010) to 11.2.

Avoid exceptions accessing deleted phase and layer records in the phase list (used in the window editor, mini window editor and photo phase editor) following Undo or Redo commands, or their API or ADK equivalents. The exceptions do not usually crash MicroGDS but can cause incorrect updates to the user interface. Fixes a bug in MicroGDS 11.1.

Make [X] [Y] and [Z] toolbar (status bar) buttons operate within the current command (including transparent commands), rather than cancelling it.

Read text attribute data which are empty so as to match saved data from this and all previous releases of MicroGDS. This fixes a serious bug in text attributes from MicroGDS 11.0 to 11.2.1.

Make Window > Profile > Select update control bars (toolbars, status bars, document organizer, etc) accurately. This fixes a bug introduced in MicroGDS 11.0.

Make it possible for the Profile status bar item to re-load a current profile when this is selected from the drop-down list. This matches the use of the menu command Window > Profile > Select > current, which always re-loads the profile from its last saved file. This fixes a bug in MicroGDS 11.0.

A switch between horizontal and vertical view toolbar now takes effect on screen immediately, rather than when drawing view windows are next resized. This bug appeared in MicroGDS 11.

Recalling a profile now updates the view controls for all drawing windows.

Recalling a floating status bar gives the right location on screen.

Remove special layout rule for Status Bar 1 and Status Bar 2, and replace it with better wrapping of all control bars. Long thin bars such as status bars now get a line on their own because of their size, not because of a special rule.

Document Properties dialog "To document defaults" button now causes the edited colour table to be recorded in your settings file.

Made project database reads slightly more robust against finding null values (missing fields) in the CPD or other project database. MicroGDS never writes null values, but thay have been found in the wild, possibly as a result of database file corruption.

Two Yes/No choices in the database administrator now have an effect. They used to be treated as Yes, even if you clicked No.

Fix an (almost) infinite loop trying to draw a thickened line at a vertex in a circle, fillet or similar curve where a curve radius is exactly equal to the offset to a linestyle boundary, and the line is continuous through the vertex.

Corrected Edit > Undo and Edit > Redo (and API equivalents Cad.Undo, Cad.CanUndo, Cad.Redo, Cad.CanRedo and Cad.UndoSetMarker) to avoid unwanted side-effects, where repeated Undo and Redo could alter the command name being recorded or refuse to carry out the Undo or Redo operation.

Correct "Unexpected arc in KRLineLike" error message during Alter > Transform > Stretch and (sometimes) dragging of an object containing a shorter-than-minimum length curved line.

The Attribute copied with object property of a Link mnemonic (applicability Reference or Object) was ignored in MicroGDS 11 (MicroGDS 2010) to 11.2. It now has the expected effect.

The DXFScan program processes text in DXF files from AutoCAD 2007 and later as UTF-8, based on the file $ACADVER header variable. In earlier releases it used the code page of your Windows locale.

Entity mapping tables convert DXF names in data later than AutoCAD 2000 to upper case.

Wherever MicroGDS reads string data from the Windows Registry, it now accepts REG_EXPAND_SZ (expandable string) as well as REG_SZ (literal string) data. Earlier releases could be confused by expandable strings, which are sometimes used for Windows system information.

Several cases of Record is deleted messages (which indicate an internal error in MicroGDS) have been fixed, especially to do with the use of the Edit > Undo and Edit > Redo commands or their API equivalents.

The View > Save View and View > Save View As... commands no longer make the Document Organizer window flicker.

If you use File > Preference Files to save a settings file, you won't be prompted to save settings again at exit (unless some other change is made to the preferences, of course).

Thickened lines which have a vertex where one or both line segments at a vertex are arcs and are parallel at that vertex are drawn with better mitred corners.

In the Edit > Copy and Edit > Cut commands and their API equivalents, correctly fill in the Windows clipboard object descriptor, even for projects, and even in Cad.CopySelectionNoOLE and Cad.CutSelectionNoOLE. This makes a presentation difference to the OLE Paste Special dialog, and a functional difference to MicroGDS Paste (not special) if there were no graphics selected for Copy. Fixes a bug introduced in MicroGDS 6.

Fixed a bug in version 8.0 onwards where bad XML was written for any charstyle with both an outline and a colour, and from 11.2, any charstyle with an outline.

Fixed a bug in version 9 onwards where XML processing for rich-text edits such as adjusting formulas for new link numbers would accidentally convert XML character entities such as &quot; into their literal text, sometimes producing invalid XML as a result.

Fixed a bug in version 9 onwards where HTML import, used for Paste or [drag-and-]drop of formatted text, incorrectly processed multiple font family names supplied as part of a CSS style. The intended effect is as for font/@face, to use just the first name in the comma-separated list; these now work correctly using shared code for parsing.

Edit > Paste Special... Objects into matching layers (and its toolbar equivalent) now give the pasted objects new link numbers where necessary to avoid clashes with existing objects.

The Attribute copied with object property of a Link mnemonic (applicability Reference or Object) now has the expected effect, consistent with other data types.

Reading SketchUp data is processed as an import (rather than a load) since the document being created may be created by a "blank" template MAN file – which could itself contain layers and data.

The suggested window names when importing DXF and DWG data into a MicroGDS project are based more literally on their equivalents in the incoming data. This can make a big difference if the data uses names with dots in.