SilverScreen Solid Modeler

Version History

Version History

Previous topic This is the last topic  

Version History

Previous topic This is the last topic JavaScript is required for the print function  



Version History



The following table lists version changes since 11.0.02 in reverse chronological order:







A problem with group fencing was resolved.
There was a problem with icon_persist that manifested itself as blank (white) icon buttons.


The Edit > Polyline > Unlink command now allows you to select polylines in addition to polygons.
SilverScreen's static memory footprint was reduced slightly.


Shadow handling of solid objects which contained transparent nodes was improved.
The Render > Clip View command had its' mouse-wheel behavior fixed.
A rare-case crash in DWG import was fixed. This case was triggered by the presence of specialty-formatting characters (i.e. %s) within text-based fields, which also contained data errors.
When c-space alignment is set to automatic and the user splits the screen (i.e. 4-way, 6-way, 9-way) then the c-space is appropriately-aligned for the current window on the newly created screen.
SilverScreen variables had their performance boosted, particularly in heavy-use cases.


The system which cross-references the annotation system with the hierarchical geometry database after geometry-modifying activities (i.e. relocate, rename, delete, scale, rotate) has been optimized. This can lead to dramatic increases in performance when modifying geometry in a heavily annotated drawing.
The rendering of view-parallel lines that resolved to a single pixel on the screen was changed to provide results positionally consistent with the other rendering activities.


Minor update to repair SilverEngine platform linkage problem in Release edition of engine10.DLL.


Minor update to repair out-of-synch problem with engine.txt.


Image handling for very large images has been improved, particularly load speed for image types supported by a Windows Codec.
The texture manager will now properly save 24-bit texture images to disk.


When a triangulation results in unavoidable slivers, the algorithm now retries with rotated points, which often produces more satisfactory results.
The coalesce command now uses better testing to decide when two polygons are coplanar. It was brought into logical consistency with the 2D/3D Boolean operations.


The triangulation of polygons with very small holes  was improved.


Color map table extensions were not used consistently. In prompting we displayed extension .CMT, but when saving the extension .MAP was used as the default. This meant newly created color mapping tables were not seen via the user interface. The save code has been changed to use the proper .CMT extension. Color mapping files with extension .MAP can be renamed to .CMT files to make them visible to the u/i.
The view > explore command now uses OpenGL rendering with displaylists for all the different rendering options.
There is a rudimentary Alias/WaveFront Object File import command. This will allow people to gauge interest in the format and import supported geometry, but does not import all of the material properties.
The xcopy internal prompting in its non-absolute forms improperly formatted the source drawing name, which generated error #25.
DWG/DXF Exports improperly set some vertex IDs in polygon-mesh primitives when a non-solid object contained a mixture of lines and complex polygons.


Sometimes the switch between filled and unfilled items was mishandled while printing, resulting in geometry being filled when it should not have been.
The page setup dialog did not properly restore the previously-used color mapping table.


The dialog used to insert text erroneously displayed a "Field cannot be left blank" message if the edit box used for  horizontal text was empty.
Bos-level picking improperly filtered away choices when: A) Multiple items were "closest" and B) The choices were not decreased by the cursor-in-bos test.
The insert symbol command overran a character buffer when the model name exceeded 20 characters.
Secondary units/notation were not properly loaded from an annotation environment file, which caused new details to display the wrong units/notation when enabled (unless they happened to be the default secondary-units type).
We no longer translate a symbol definition by the model base point for AcDbBlockReferences. This was causing symbols to appear in the wrong locations when importing some DWG/DXF files.
Wireframe rendering via OpenGL did not always render details with the proper color.
Text lines now wireframe-render using a box when the screen height is 3 or fewer pixels. This can speed the presentation of text-heavy drawings which are fully zoomed out, and which therefore display mostly-illegible text.


If enabled via the environment file, then the solid modeler will colorize primitives referenced in error messages. That makes it easier to locate, for instance, an edge not shared by an even number of faces. The undo system will remove any colorization.
More changes made to light sources (including ambient) will  generate automatic screen refreshes when light-based rendering (such as OpenGL).
The view explorer handles the transition between normal operation and exploring more smoothly.
The coalesce command handles holes in a manner that better accommodates triangulation algorithms.
Background images now automatically flip when their images  are bottom-left-aligned so they are displayed right side up.
Both textured backgrounds and background images are now saved/restored with Screen Definition Files. Developers wishing to load textured backgrounds or background images will want to append the "background" keyword to their existing "screen open" commands.
The "convert drawing" command did not properly handle file path information for the model library.
The "library create model" command did not properly handle file path information for the model library.
When a model was replaced for a symbol it didn't always repaint unless the drawing were saved/reloaded.
When the last-write-time of an external model library changes and one of the models it contains is in-use, then the model will be automatically reloaded.
The depth-precision of OpenGL scenes was improved by considering just the visible geometry.
Linestyle with dots were not showing up on lines that had a width setting of 1.
The secondary units and notation were not initializing correctly for the detail properties dialog.
A placeholder did not appear around text-lines during interactive commands like move.
Several of the annotate commands did not properly appear on user-defined ribbons. Any ribbons defined with these commands should auto-correct with the new code (an erroneous button will disappear).
The paint_entity() SilverC API routine will now work in conjunction with DETAIL_NODEs. This change allows developers to make a particular detail easily stand out.


SilverScreen will now automatically triangulate line-based polygons that reference a vertex that is being moved, scaled, or rotated in a manner that would create a non-planar polygon. This step can preserve the meaningful boundary representation of the modified object and allow it to validate. Note: This applies to move/scale/rotate vertex, edge, or face only.
The text replace command did not work properly for centered text lines.


Commands that generate groups on-the-fly via the use of wildcard characters are processed as a single command if the number of items in the group resolves to one. This is to allow interactive commands that are specified via the pound character '#' to execute correctly.
Although binary STL files should never begin with "solid ", many were encountered in practice. If a file starts with "solid " we now additionally check for a few common STL keywords to help disambiguate this erroneous condition.
Setting the height while drawing a chord did not always work correctly.
Exporting a Stereo Lithography (STL) file did not properly  handle file names that contained spaces in the file name or  path.


The previous version contained an incorrectly-linked SilverEngine DLL. The file engine10.DLL was incorrectly linked with btree10D.DLL, which is appropriate only for the Debug platform.


The 3D cursor will now display a tooltip with the position, or else appropriate drawing information, if enabled via the environment file. This setting is disabled by default.
The camera develop command did not display frames when executing a program.
The camera develop command now has the ability to develop to the screen, rather than to disk.
The dockable tree didn't always update when it should have, particularly when hidden.
Changing the phong shading attributes now invalidates any display list so the rendering is regenerated to accommodate the change.
The render > record/develop commands now prompt the user to first save any unnamed drawing. This is because the corresponding frame file will reference the drawing by name, and therefore requires one to function properly.


Version 11.04 introduced a memory error to the DXF/DWG import and export code. This error can cause SilverScreen to crash or become unstable.


The save-as command has been expanded to offer the choice of different formats.
The save command now restores the activation status of the C-space.
The save command now restores the W-space cursor position, provided it was on the screen when the drawing was saved.
The select command was placed on the standard structure ribbon, in order to have a visual way to select the current block and/or object.
A startup problem in fullscreen mode has been fixed. When starting in fullscreen mode interactive operations left lines behind on the screen.
Version 11.03.02 introduced a courtesy save dialog that impacted an exiting application.


Improved F1 handling when inchar is active.
RETURN wasn't selecting the first point of Geometry > Measure > Distance after Undoing the first selection
The code which parsed text for the bubble u/i had an error in it, sometimes causing whitespace substitution.
Point sizes for text and details are now consistently handled.
Replacing a text-line's font via the properties dialog with a SilverScreen standard one (i.e. roman1) no longer erroneously generates error #97 - "Font library [] not found".
Moving a vertex that belonged to a phantom no longer generates a memory error.
Restructured paint code to use multimedia timer, which improved Direct2D throughput substantially.
You are now prompted to save macros after editing them, and also when exiting SilverScreen (if you haven't done so previously).
C_J and C_CRETURN are the same keycode, so the macro system now handles either as Ctrl-J.
The screen tabs toolbar has been revived, and is controlled via the Tools > Interface ribbon item.
The dockable tree now has an auto-hide mode, which can be selected via the Tools > Interface ribbon item.
Added -wipeui command-line option to remove toolbar, ribbon, gallery, and MFC-related data from the registry. This will remove all user interface customizations and window placements. It is intended to recover from catastrophic startup problems caused by erroneous interface definitions. The user will be prompted before the interface is wiped.
SilverEngine now establishes a default error-message handler in engine_initialize. This will allow error messages displayed by engine_initialize itself to appear. The API routine set_show_error_handler will override this behavior.
There are now user-definable toolbars which can be configured via the Tools > Interface ribbon item. Toolbar defintions are saved/restored via the import/export custom ribbon file commands.
The screen close command now prompts to save modified drawings.
The SilverC API screen-text routines (i.e. wstring, wstringc, etc.) were redone to fix display problems.
Improved CControlBar handling for SilverPlus applications
The SilverC API paint routines which accept  COLOR_INVERSE now modify the paint color to be a non-background color if COLOR_INVERSE is set. This is to reclaim legacy behavior
Export and Import DWG/DXF now export and import the AutoCAD variables LTSCALE, LUNITS, LUPREC,  ORTHOMODE, and INSUNITS. This change was made to  allow units of measure and notation to be preserved
There was a problem zooming a drawing which contained sprites. Results were unpredictable.
The mouse wheel forewards/backwards events have been standardized to zoom in and out. This means they can no longer be tied to a macro, but they will be available when jumping, picking, drawing, and in a ready state.
A problem in the code that flashes a bos, such as when making a selection in the dockable tree, has been corrected.
Improved appearance of some polylines containing arcs which are imported via DXF or DWG.


There was a memory error in the code which highlighted a p-group, which lead to unpredictable behavior and sometimes related in crashing. An example operation affected was the move p-group command.
Changes to the standard directories via the file > paths command are now reflected in the open dialogs. So, if you change the drawing directory and then open a drawing you will be presented with the new location as the default (provided there are drawings present in that location).



This version was released to correct a mistake in extents computations introduced in version 11.0.09, which could lead to very bad zooming.


Solid modeler received performance update which will be most notable on large objects
Render clip-view command prompting was improved for rear-facing views. Now the default clipping plane faces forwards (with respect to the view) and positive increments move the plane forward (with respect to the view). This feels more natural and consistent than the previous technique.
The code which generates model names and matches symbols to them has been improved. Model names could sometimes get mixed up during a DWG or DXF import, resulting in self-referential models.
The view tab of environment files now have an option to auto-algin the c-space to a view. This mechanism is triggered when switching windows and/or screens and can ease drawing in multi-window settings. You simply click the view in which you wish to draw and the construction space automatically aligns accordingly. The default setting for this new feature is "never" to be backwards-compatible with existing environments.
Machines with multiple active network cards may have had startup problems due to a memory leak.
The view > visibility > enable command had prompting errors when rendering was enabled for non-opengl renderings (such as hidden-line).
Extents computations have been sped up which can modestly affect the performance of operations such as zoom.


Ribbon editor fixes had an initialization problem which impacted icon sizes.


The XYZ coordinate entry dialog was rewritten to fix errors with move and draw commands when working with a rotated c-space.
The Geometry > Coalesce command had a performance update. The effects are most notable with large objects.
The DWG import command removed underscore as a default hierarchy separator. The command syntax was expanded to allow [separator "list-of-separator characters"] to be appended and enforce earlier behavior. This change was made because bos-level entities which contained an underscore in their name yielded unintended organizational layers.
DWG Import performance was improved for files with a high number of layers.
The ribbon editor sometimes crashed when making changes to a user-defined ribbon.


Improved response of context-sensitive help system (F1 help) to Ribbon Interface
Fixed display problems in draw polygon equilateral and draw circle tangent commands
Improved responsiveness of swing and truck during interactive prompting
Fixed a paint problem with isolate reset
SilverC programs may once-again include files with a .C extension.
Fixed a problem with SilverC API message areas
Temporary screen saves/restores were made more efficient
OpenGL wireframe rendering now handles reference drawings
Offscreen entities were not properly added to OpenGL displaylists.
Import DWG now generates warnings when 3D points and vectors exceed the boundaries of a single-precision floating point numeral. This isn't necessarily an error, but often does indicate an uninitialized or poorly set elevation.


Introduction of OpenGL-based wireframe rendering
Introduction of Geometry > Reduce Vertices command to simplify geometry while maintaining the shape. This can be particularly useful importing point clouds or .STL files.
Fixed problems with interactive drawing experienced on some systems.
Fixed a memory error redrawing the properties of a p-group.
Environment paths will now be created, if possible, when starting up. This helps configure a new user on a multi-user system.
Added [SkyDrive] and [SkyDriveDocuments] to path variables for environment files, for example, the drawing directory may be specified as [SkyDrive]/drw.
Improved error reporting of invalid edge and vertex numbers in load drawing.                      


Introduction of a modern ribbon interface, with dockable hierarchial tree explorer. See Screen Appearance for more information
Introduction of anti-aliased lines using Microsoft Direct2D,which is "a hardware-accelerated, immediate-mode, 2-D graphics API that provides high performance and high-quality rendering for 2-D geometry, bitmaps, and text."
Improved OpenGL-rendered printing performance and screen throughput with display-list rendering



The following table lists version changes since 10.20.00:







A memory leak in code which saved/restored screens was fixed. The memory in question was not released until SilverScreen exited, which means the longer it ran while performing tasks like picking p-group or q-groups, the more memory it consumed.
There was a problem with OpenGL reflections (only accessible to developers) that has been fixed.


Version 10.30.00 introduced a bug to the handling of compiled variable files. It made .VARX the default extension when writing, rather than forcing it as the extension when writing.
The conversion to GDI+ greatly slowed the splice command performance. It has now been optimized for GDI+.
A few toolbar commands (i.e. xcopy, rotate c-space) were  inadvertently removed in version 10.30.07. The commands have been restored.
The Structure > New Q-group command was breaking the main menu in version 10.30.07. This has been fixed.


Fixed a 2D boolean bug involving arc/line intersections.
Added real-time light editing when OpenGL display lists are in use.
Changed the declaration of SilverCExec because "export" is a VC10 keyword. SilverPlus samples have been updated to reflect the change.
The Windows Aero interface is now supported, though it does not perform as well as the non-Aero interface and users are warned to take that into consideration.
You may now use OpenGL window rendering in mutli-window screens.
Prompting improvements, mostly affecting menu depth of some commands on the menus.
Improved background-image handling and OpenGL rendering
Faster printing of OpenGL display-list drawings
Implemented a better naming convention for DXF/DWG imports.
Many dual-monitor problems fixed, including 3d cursor movement
Better triangles produced via triangulation command
read_pixel removed from SilverC
The solid orientation fix on 10/23/2012 did not handle a special case properly and the result was a solid model that failed to validate. This has been fixed.
Choosing "New Base" in the XYZ prompter sometimes locked the user out of the dialog.
Solids are more intelligently separated when considering edges that are shared more than twice. Two diamonds which share an edge and do not otherwise interfere can be considered one valid solid or two. The modeler will now separate them as two objects, preferring the simpler forms.


All items on the view explorer in version 10.30.02 were inactive and this has been fixed.


The interactive interface for center details has been repaired. The properties menu option and 'reorient marker' option now work properly.


Fixed bugs in the light editor for directed lights.

Fixed bug in XLB library insertion


OpenGL textures are no longer loaded with a drawing, but are instead loaded when first referenced. This improved load speed for drawings with many textures, and required less memory when such drawings are not rendered.


Removed recursion from solid orientation because it caused a stack overflow in some situations, for instance in an object with 50,000+ polygons.


Sped up solid validate for very large objects.


Fixed temp-file cleanup for non-adminstrator users.


Reduced the menu depth for several commands, and introduced dialogs for "draw hole" and "sweep spiral".


You may now drag-to-truck, or use Ctrl+Left+Drag to swing the drawing. The single-line help message has been changed to reflect that. Note: You must undefine any Mouse+Left macros for the behavior to take effect.


Changes were made to support a more Windows-centric approach to saving files. SilverScreen is now installed with an environment file in the [MyDocuments]\sdc\silverscreen folder, which becomes the default environment file. Whenever a file is saved, there is a check to ensure it is not the application installation directory, or a sub-directory. If the new environment file is removed, then previous behavior is restored.


Also, two new variables sdc_mainwnd and sdc_viewwnd were added to the API. The first is an HWND handle to the mainframe window and is available to SilverPlus and SilverEngine platforms. The second is an HWND handle to the view window, and is available to SilverPlus only.


There is also a new File > Open dialog, which loads faster and allows for easy directory-switching. The standard Windows open dialog is available via the Browse... button.


Finally, the installation works on Windows 8 systems.


Changes were made to reduce the usage of OpenGL p-buffers in dialogs. This improves performance on some systems (i.e. those with insufficient p-buffer space).


Versions of SilverScreen tied to Visual Studio 2010 now require the existence of Windows XP SP3. That is per Microsoft guidelines and was formerly set for SP2.


The solid validation code was improved to handle a rare scenario that yielded an inside-out solid.


A crash was fixed in the geometry measure volume command.


The id numbers of lines belonging to polygons were improperly incremented upon load. This behavior was introduced in version 10.10.2, and caused dynamic details linked to the lines to fail to resolve.