What's new

History of Program Changes and Enhancements

v2.10.10 Current Release

  • Added Option->Settings->Setup controller option to generate g-code compatible with the GBRL controller.
  • Added option to position Origin relative to the selection boundary in addition to the current shape boundary on the Origin panel. The CTRL key is held down to activate the selection boundary option. Selection can be a single point or any combination of elements.
  • Added Modify->Add option to add points to the center of all or any selected arcs and circles. The added points can then be selected and moved to their own layer for drilling operations.
  • Fixed offset/pocketing issues where source had many significant decimal digits.
  • Fixed arc inverion bug when shape is flipped.
  • Fixed invalid tool number on reload for gear cutting tool.
  • Fixed DXF import where after the first import, the import was skipping the filtering options.
  • Improved DXF import element selection.
  • Improved DXF import layer selection.
  • Changed elements and chains are deselected at save. Removes persistent selection.
  • Changed 'push to' elements to another shape has target elements deselected after operation.
  • Changed feed and plunge adjustment precision to two decimal places to allow finer adjustment in the panel.


  • Added wizard - MILL - CL - Regular polygon.
  • Added wizard - MILL - CL - Regular polygon with corner removal.
  • Added wizard - MILL - CL - Rectangle with corner removal.
  • Added tool types "Gear Cutter" and "Thread Mill" to tool table.
  • Added controller setting to options setup tab. This will control the gcode output       to be compliant with the selected controller. Current options are Mach3/4,       LinuxCNC (EMC) and Generic (NIST standard).
  • Updated Wizard - MILL - CL - Precision Slot.
  • Updated Wizard - MILL - CL - Shape - Duplex US 5-15R Oval.
  • Updated Wizard - MILL - CL - Shape - Duplex US 5-15R Square.
  • Updated Wizard - MILL - CL - Shape - DB9.
  • Updated Wizard - MILL - CL - Shape - DB15.
  • Updated Wizard - MILL - CL - Shape - DB25.
  • Updated Wizard - MILL - CL - Shape - Centronics 36.
  • Updated wizard - MILL - CL - Spiral clearing.
  • Changed generator screens to only show tools with a type suitable for the operation.
  • Changed standard header to remove the G50 (reset scale) line for LinuxCNC and         generic controllers.
  • Changed standard header to remove the G91.1/G91.2 line for the generic controller.
  • Changed name of Units tab to Setup.
  • Fixed the error 'PlaceRampsinLD' sometimes caused when a ramp and tab occurred together on an arc segment or when an multi segment open shape contained ramps or tabs.
  • Fixed back plot rendering of ramps and tabs which occur on an arc.
  • Fixed how some screen elements are displayed on some older (XP) systems.
  • Removed include/exclude of standard header and footer from gcode options tab.


  • Added wizard - MILL - CL - Hole Array.
  • Added wizard - MILL - CL - Linear Hole Pattern.
  • Added wizard - MILL - CL - Rectangular Hole Pattern.
  • Fixed some processing errors that occurred when combining shapes.
  • Fixed shape library name contained and R interpreted as a repeat block in parser.
  • Fixed shape library parser for N and B blocks within the library shape.


  • Added a precision approach option to drill cycles and position/pause mode. The       precision approach option requires 3 parameters approach angle, distance and       feed. Such an approach method to the drill location eliminates any backlash error being introduced to the relative hole positions for all the holes in the cycle. Entered values are persistent until changed.
  • Added gcode generator for gear cutting. A generator is a new type of object in       D2nc. A generator creates machine queue entries from input values and differs       from D2nc wizards which create shape geometry. The new generator is found on the 'Path' panel and requires no source geometry.
  • Added scaling factors to the material table for coated HSS, carbide and coated       carbide. The factors are used in the speed and feed calculations
  • Added the option to set tool properties for tool 0 including material and coating.      Adjustment is made by clicking the units button alongside the tool diameter       value. The set values are used in the speed and feed calculations.
  • Added option to exclude the gcode header and footer from the generated code. This    allows the custom program header and footer to be used as the only header and footer.
  • Added an option to duplicate the current Machine Queue entry. If the MQ entry being duplicated is based on a global shape number, the source shape can be changed       to any other compatible shape. A local shape MQ entriy is duplicated as is. A       duplicated entry can be edited to adjust its values.
  • Changed some of the more conservative default material surface feet values to         slightly more aggressive values. The default values can still be changed in the material table to values appropriate for your setup. Existing users should use Use the menu Tools->Material Table and click Metal Defaults to update their existing values with the new values.
  • Changed all G00 moves to include a decimal point as required by some controllers.
  • Changed all feed rates to include a decimal point as required by some controllers.
  • Fixed Heading indicator missing after opening contour screen.
  • Fixed extra ‘calc’ button on screen when editing any drilling operation.
  • Fixed undo working across shapes. Undo stack is now reset when changing to another shape.
  • Fixed an offset issue introduced in the previous version.
  • Fixed shape zero slot being loaded with first non zero shape when file was saved without a shape zero defined.


  • Fixed offset where offset decomposes into more than two disjointed chains.
  • Fixed display of shape geometry options on the contour screen which were incorrect on some systems.
  • Fixed ramp distance calculation where shortest chain length was less that 8 times the tool diameter.
  • Fixed error produced using a contour of zero depth and zero step.
  • Added option to ramping to allow click on shortest chain length to set that value as the input ramp distance.
  • Added wizard - MILL - CL - Spiral clearing.
  • Fixed Engine Beam Wizard to use the new form of the SDL tangent option modifier.


  • Fixed long standing offset issues since the introduction in v2.9.0, where several consecutive short segments with low departure angles relative to each other produced unexpected results.
  • Added new function in cam Modify->Close to allow the closing of all or selected open chains. Closed chains appear yellow while open chains appear white.
  • Added separate Left/Right and Out/In buttons along with Pocket in offset. the L/R operations are performed only on open chains, while the O/I/P operations are performed only on closed chains.
  • Added validation for presence of chains for offset operation selected
  • Fixed left and right offset to always select the side of the chain based on the direction of the first element of the chain.
  • Fixed pocket operations where chain decomposes into more that two disjointed chains.
  • Added progress indicator in offset for chains with more than 100 elements.
  • Improved performance of offset to run in O(n log n) time.
  • Changed Wizard - DRILL - Engine Turn Pattern, to support both a unidirectional and bidirectional mode which changes the appearance of the engine turning.
  • Removed redundant Feed/Speed tab in options while feature is being reworked.

V2.10.4 Current Stable Release

  • Added version check item to the help menu. Allows the user to, on demand, check if a newer version of D2nc is available for download.
  • Added author tag to wizard XML file which, if it exists, is displayed at the bottom of the wizard screen.
  • Added up to four link tags and associated caption tags to the wizard XML file. For each link defined in the wizard to either a local file or a web site, a link button with associated caption will be shown in the wizard screen if present.
  • Added initial SDL comment 'sdlcomment' tag to wizard XML file which is inserted as the first line in the wizards output.
  • Added optional override tags mshape and mclist in the wizard XML. Used for overriding the standard shape or clist tags for the case where different handling may be required for the metric options.
  • Changed wizard graphic tag to allow multiple images per wizard. The images are defined as a comma separated list of jpg file names. The user can page through the available images on the wizard entry screen.
  • Changed mvalue to be an override to value. If mvalue is not present then the value tag is used for both metric and non-metric output.
  • Added warning that license installation needs 'Run as Administrator' privilege.
  • Added Wizard - MILL - Off - Roller Chain Sprocket.
  • Added Wizard - MILL - CL - Precision Slot.
  • Added Wizard - MILL - CL - Shape - Duplex US 5-15R Oval.
  • Added Wizard - MILL - CL - Shape - Duplex US 5-15R Square.
  • Added Wizard - MILL - CL - Shape - DB9.
  • Added Wizard - MILL - CL - Shape - DB15.
  • Added Wizard - MILL - CL - Shape - DB25.
  • Added Wizard - MILL - CL - Shape - Centronics 36.
  • Added Wizard - MILL - Off - D-Rectangle.
  • Added Wizard - MILL - Off - Shape - Ellipse.
  • Added Wizard - MILL - Off - Shape - Superformula.
  • Added Wizard - DRILL - Engine Turn Pattern.
  • Fixed arc reversal on flip horizontal or vertical.
  • Fixed errors regarding missing tool table entries on shared .d2c files.
  • Fixed incorrect font sizes when working in metric.


  • Added ability to click any segment in back plot to highlight associated gcode line.
  • Added re-center of the model to the double click to change perspective view.
  • Added user defined back plot colors on a new option settings tab.
  • Added resize support to back plot screen to maximize display of the model.
  • Added initial scaling to fit the complete model on the screen.
  • Fixed back plot G02, G03 bug with arcs greater than 180 degrees.
  • Fixed connection between arc and subsequent segment that was occasionally missing.
  • Fixed highlight of first move on initial display.
  • Changed move to be at same scale as model.
  • Changed rotate to increase sensitivity.
  • Changed installer to try address issues with support files that already exist.
  • Changed mouse and keyboard mapping to the following:
            left mouse = rotate
            left mouse + shift = zoom
            right mouse = move
            right click + shift = select
            double click = cycle view + re-center


  • Added back plot function to the machine queue panel. The back plot function displays the generated gcode alongside a positionalbe 3D representation of the gcode. The gcode can be scrolled with the current segment highlighted.


  • Added support for legacy .d2c file formats from V2.3.0 to allow them to be opened and geometry loaded. Any machine queue defined in the file is discarded.
  • Added check in the offset code to remove segments of zero length (points) contained within a closed chain of segments before the offset operation.
  • Fixed winding algorithm bug introduced in last release.
  • Fixed minor program flow bug when switching between SDL and CAM modes.


  • Added text generator which uses the systems truetype fonts to generate text. You can extract font geometry from any truetype font installed on your system. Single stroke or stick fonts in truetype format are also supported.
  • Added moveable tabs in the tabs panel and allow the moving of all tabs globally or any individual tab.
  • Added 4th axis support with rotary in C position, stock parallel to Z axis, and with mill head in a horizontal configuration.
  • Added SDL (T)angent command option 2 (@) which extends the arc to the quadrant point as for option 1 but adjusted by the relative heading from parameter 3 of the command.
  • Added validation on constraint tab so only numeric values are accepted for numeric fields.
  • Added ctl-n shortcut to initialize SDL input area when it has the focus.
  • Added ctl-a shortcut to select all text in the input area.
  • Added wizard - MILL - CL - Cam Profile.
  • Added wizard - MILL - CL - Corner or End Rounding.
  • Added wizard - DRILL - Vent Pattern.
  • Added support for bulge, group code 42, to DXF LWPOLYLINE entity.
  • Added warning message on DXF import if the file contains splines that need to be saved either to DXF R12 format or have the splines converted to polylines.
  • Changed SDL (T)angent command extend (?) to use standardized option 1 (!) notation.
  • Improved DXF export which now writes DXF's compliant with the R12 definition. This allows exported DXF's to be imported into other programs and not just back into D2nc.
  • Fixed winding algorithm origin that caused offset to the incorrect side in some cases
  • Fixed retract/plunge height problem when using the 'number of steps' to calculate step size.
  • Fixed wizards that have a empty relative shape list <slist> parameter to default to current relative shape of 0.
  • Fixed error in cad caused by erasing all elements in the shape.
  • Fixed CAM modify scale option where a factor of 1 reduced the shape to a point.
  • Fixed SDL convert to line option for single instance of jump or warp.
  • Fixed the missing move to x0 y0 if in the gcode settings menu, the move to x0 y0 at start of queue entry was unchecked and the first position in the shape started at x0 y0.
  • Fixed using the keyboard tab key for moving between fields in contour screen.
  • Fixed missing cutter compensation moves when ending comp (G40) in some cases.
  • Removed Speed and Feed adjustments from CAM in preparation for moving them to path contour in a future release


  • Note! V2.9.9 includes a major rework of the internal data structures and large parts of the program have been rewritten. These changes allow for more advanced features like tabs and ramping which have been implemented in this release. The data file format has changed and while previous formats can be read, once saved in the new format, cannot be opened by earlier versions.
    Check the D2nc yahoo group for bug reports and release status! Thanks to a small group of beta testers, this version has had one of the longest and thorough test cycles before release.
  • Added pocketing of any arbitrary shape. The step over can be set as a percentage of the tool diameter. If a closed chain or chains are selected then only the selected chains will be pocketed. If nothing is selected all closed chains will be pocketed. Nested pockets and islands are not supported. Current support is for monolithic pockets only.
  • Added new panel for contour operation in the Path tab which replaces the centerline operation. This panel contains a separate opengl graphics window for managing local shapes.
  • Added ability to set the contour step to represent;  1) the size of the step is the default setting where each step is the entered size with a final step any remainder required for full depth.  2) the max size of the step where all steps will be equal in size but will not exceed the entered value, and  3) the number of steps where the step value equals the full depth / nr of steps.
  • Added step narration below the step type which details how the cut will be made. The narration describes how the cut will be performed.
  • Added global and local shapes to the new contour panel. Global shapes are effectively pass thru geometry where the whole source shape is used to perform the machining operation. Local shapes allow for sub-shapes or selected geometry from within a shape to be added to the machine queue. No longer is it be necessary to separate out operations into different source shapes to create a machine queue entry.
  • Added ramping which allows the plunge to occur while contouring. For closed chains the ramped area is removed as part of the last pass. For open shapes the ramp cut is bidirectional with the tool retracing back to the start point after the ramp and then continuing the normal contour forwards.
  • Added tabs to allow the retention of parts in the base stock material after cutout. The number, width and height of the tabs can be specified. The tab height is independent of the step size and can be a fraction of the step or cover multiple steps. The position of the tabs are automatic distributed evenly along the chain. A future enhance may allow for manual repositioning of individual tabs.
  • Added DXF import progress bar to indicate elapsed and remaining import time.
  • Added a SDL variable value trace dialog which is invoked with a Control-t in SDL entry.
  • Added additional support for comma delimited decimal locales.
  • Added reflow option to modify panel which allows for the re-optimization of shapes.
  • Added default button to Option -> Settings -> DXF panel for tolerance value.
  • Changed action when missing tool table entry found from deleting a machine queue entry to converting it to use tool 0 using the missing tools diameter
  • Changed all single element circle geometry to be represented by two semi circles.
  • Changed path tab to preselect the last shape being worked on, if its a valid shape.
  • Changed the source selection of CAM to read CAD which better describes the source of DXF files and other file types in the future.
  • Changed G41/G42 to legacy support as native offsetting is preferred over these options.
  • Improved DXF file import time. At least twice as fast as before.
  • Fixed DXF import of polylines with a single vertex representing a point which caused subscript out of range errors. The single vertex polyline is ignored.
  • Fixed DXF import of closed polylines that are seen as open in some cases. Group code 70 = 1.
  • Fixed DXF import of ARC entities that were specified with a non-default extrusion direction.
  • Fixed mirror and reflect to include lines created with option 1 of the J and W commands.
  • Fixed PI() function producing "Non numeric value in formula" error.
  • Fixed bug in optimization where the next open point was not selected correctly causing unnecessary tool lifts in some cases.
  • Fixed the mouse move drag to be closer to a 1:1 ratio.
  • Fixed problem with marquee select activating while zooming.
  • Fixed marquee select to work in all directions and not just top left to bottom right.
  • Fixed marquee select while dragging rotation point.
  • Fixed the problem in comma decimal locales of the dropped fraction that was previously fixed and reintroduced in the last version 2.9.8


  • Changed size of selection hotspot. Increased from 4x4 to a 6x8 pixel matrix which allows the mouse pointer can be less precisely positioned when selecting objects.
  • Fixed problem where the bottom portion of the screen is cutoff on some systems.
  • Fixed key selection method added in v2.0.2 that was disabled in V2.9.0, In addition the up and down arrow keys are used for selecting adjacent chains or elements.
  • Improved CAD shape optimization routines for imported shapes.


  • Added persistent window size and position. When the D2nc window is resized or positioned it will always open at that size and position until changed.
  • Added additional diagnostic information to error.log file for file save operations.
  • Added Wizard - MILL - Multi - NEMA17 (by Hamilton Elliott).
  • Added Wizard - MILL - Multi - NEMA23 (by Hamilton Elliott).
  • Added Wizard - MILL - Multi - NEMA34 (by Hamilton Elliott).
  • Changed SDL shape closer (&) to work even if at the origin point of the shape.
  • Changed resize minimum height to 500 pixels to allow a 800x600 resolution to be usable.
  • Fixed pop up error during parsing of incomplete formulas with a notification in the status line.


  • Fixed issue with tool table entry having a 0% plunge rate entered. A 0% plunge will now default to 50% of calculated feed.
  • Fixed errors caused by editing a machine queue entry that used a tool from the tool table (nonzero tool) that occurred under certain conditions.
  • Fixed installer to set full permissions on the database file required by the guest account when accessing the DB using ADO on Windows 7.
  • Fixed heading indicator display missing on resize.
  • Fixed direction arrows display missing after resize.
  • Fixed background color default to black after resize.
  • Fixed background color setting after program restart.
  • Fixed memory leak causing a crash after excessive window resizing.
  • Fixed crash when trying to resize window smaller that program permits on some systems.
  • Fixed error during add to tool table if nonnumeric values entered in numeric fields.
  • Renamed CAM Arrange buttons "Import" and "Export" to "Get From" and "Send To". As their function is to combine and split elements between shapes, the new names better describe their purpose.


  • Added resizing to the main D2nc window along with minimize and maximize. The resized window cannot be made smaller that the default size. The plot area is scaled while the input area is pinned to the bottom.
  • Added ability to set the top of the material to a value other than zero at the operation level for Centerline and G41/G42 offsetting. The default value is zero which indicates the top of the material. A positive or negative value entered will be taken as a negative value which is below the top of the material. A value greater than full depth will produce a single cut at depth.
  • Added a substitution tag <CTOOL> in the Settings G-code tab for the Custom Gcode block ‘Queue Entry Start’. This tag will be replaced by the current tool number. For example a ‘G43 H<CTOOL>’ will generate a ‘G43 H2’ in the gcode for tool number 2.
  • Fixed bug in gcode generator that caused a repeat of the full depth level in some cases.
  • Fixed select options for the selection of all points in a shape.
  • Fixed DXF import of circles that were converted to points.


  • Added ability to interrupt running SDL code in case of infinite loop conditions. Hitting the ESC key will interrupt the parser and return to user input.
  • Added option to display the description in the machine queue in place of the Operation, Shape and Tool currently displayed. If a description is not entered, that entry will display the standard layout. The option can be changed in the Option -> Settings -> Interface menu. The two formats can be toggled by double clicking on the words "Machine Queue" at the top of the queue. The setting is persistent.
  • Changed generated gcode to omit tool changes for subsequent steps that use the same tool when outputting gcode for multiple machine queue entries, but only if the tool is not tool zero. Tool zero will always have the tool change included.
  • Changed operation description so it can be modified from the standard tool table value for tools greater than zero.
  • Changed default setting for DXF import filter from 'Lines and Arcs' to 'All Elements'.
  • Fixed condition where the <d2*drawman> placed a shape into perpetual manual mode.
  • Fixed bug which may cause an gratuitous loop or circle at the start or end of a chain.
  • Fixed Show G-code "Save as..." option to prompt for the gcode file name.
  • Fixed error on 'Keep Selection' with nothing selected.
  • Fixed status line display of number of elements in shape for CAM mode.
  • Fixed error during DXF import while parsing layers on some DXF file types.
  • Disabled automatic element removal introduced in V2.9.3. This option has several issues which need to be resolved before being re-enabled. There were several reports of missing elements from both imported DXF files as well shapes converted from SDL, all caused by this feature. In most cases only fresh installs of V2.9.3 were impacted and not those installing over a prior version depending on the options set prior to the upgrade.


  • Added "Centerline with 4th axis" path option. This option allows the cutting in X and Y indexed a specified number of times from a starting angle, every specified number of degrees along the 4th axis.
  • Added Marquee select in cam mode so whenever selection is available, dragging a frame around elements will select them.
  • Added user defined gcode blocks which are inserted into defined places in the generated gcode.
  • Added the option of either G98/G99 (G99 default) which is added to the canned cycles.
  • Added display of closed chains using a different color in the offset screen.
  • Added Wizard - MILL - Off - Involute Gear (module). This wizard was trans-coded from python into SDL from gearsgen.py, a python program by Clifford Wolf.
  • Changed feed adjust default scale to be 100% and down, the same as the speed adjust.
  • Changed minimum grid step to allow the smallest step to be 0.0001.
  • Fixed element removal option for elements smaller than the tolerance.
  • Fixed problem with DXF import not joining elements although the end points were within defined tolerance.
  • Fixed problem with closed chains end points within tolerance not connecting.
  • Fixed bug causing unnecessary tool lifts between steps.
  • Fixed several minor bugs and display problems.


  • Added Adjust panel tab with Feed and Speed options. Set the feed or spindle speed per element as a percentage adjustment to the feed and speed in the path. Used in plasma, waterjet, laser and Oxy-fuel cutting.
  • Added Scale option to the Modify panel used to scale and flip the shape or selection
  • Added additional conditional tests to the SDL iff (:) command, not equal (!=) or
    (<>) less than or equal (<=) or (=<) and greater than or equal (>=) or (=>).
  • Added SDL math function PI() with no arguments to return the value of PI.
  • Added SDL math function ATANXY(x,y) which works as an atan2 function, sign aware which returns a signed angle in radians based on the input coordinate relative to y.
  • Added SDL hint <d2*drawman> to set manual draw mode if set equal to 1.
  • Changed the occurrence component of the SDL block commands (N) (B) and (R) to be late bound so the controlling variable can be adjusted from within the loop. Allows the possibility of setting up while or until loops and a way to exit a loop.
  • Changed internal data and file structure to support feed and speed adjustments.
  • Changed the Delete panel to the Modify panel with a Delete option.
  • Changed the Move panel to Arrange panel with a Move option.
  • Changed Direction panel and Order panel combined into Manage panel with Direction and Order options.
  • Changed all wizards to work with new late bound rules for control variables.
  • Removed the Rotate panel and created the Rotate option on the Arrange panel.
  • Removed the Inc/split panel and moved the two options Include and Split to the Arrange panel.
  • Renamed the Include option to the Import option on the Arrange panel.
  • Renamed the Split option to the Export option on the Arrange panel.
  • Improved internal processing of imported DXF chains and chains from other shapes.
  • Fixed parser problem relating to two argument functions, LOG and ATANXY.
  • Fixed selection of points using points option in selection panel.
  • Fixed problem in cam with circle seen as an open shape.
  • Fixed problem with reverse selection being recognized by offset.


  • Added SDL hint <d2_zdepth> to prefill path depth.
  • Added SDL hint <d2_zstep> to prefill path Z step.
  • Added SDL hint <d2*add2mq> to execute add to queue if set to 1. Only if at least <d2_tdia> hint is also present.
  • Added SDL hint <d2*pbutton> as a bit mask to show and hide path buttons.
  • Added auto tool desc. If the tool description is left blank when creating a path an automatic comment is inserted into the gcode in its place. "(Tool diameter: x.xx )"
  • Added a clearing option to offset by not removing geometry being offset and selecting the result for further offset. Invoked by holding shift before clicking offset.
  • Fixed SDL hint <d2_tdia> to prefill path tool diameter. Renamed from <tool_dia> and also fixed all wizards that used this.


  • Added a CAM 'Origin' panel for changing the origin of the shape.
  • Added a CAM 'Move' panel for moving the selection or the entire shape.
  • Added a CAM 'Rotate' panel for rotating the selection or the entire shape.
  • Added a CAM 'Offset' panel to allow the native offset (in/out) of shapes for use in centerline paths.
  • Added a CAM 'Direction' panel.
  • Added a CAM 'Order' panel.
  • Added a CAM 'Nest' panel for making arrays of shapes.
  • Added a CAM 'Inc/Split' panel for including other shapes into the current shape and splitting and selected elements into another shape.
  • Added an undo stack so all CAM operations can be reversed as far back as the first operation.
  • Added new SDL command ^ for mirror. Functions the same way as the % reflect command but mirrors the shape instead.
  • Added ability to convert a SDL program into a CAM shape for further processing.
  • Added ability to load a CAM shape from any other shape.
  • Added option to the DXF settings menu to remove elements smaller than tolerance during DXF import.
  • Added option to the DXF settings menu to control the way that elements that are within the defined tolerance are adjusted during DXF import.
  • Added option to scale the DXF during import, from either inch or metric to the current setting. Alternatively a custom scale can be used by entering a multiplication factor, > 1 to increase and < 1 to reduce.
  • Added a 'View' panel to display the details of the machine queue entries.
  • Added Wizard - MILL - Off - Shape - Star.
  • Added Wizard - MILL - Multi - Engrave Surface Mount IC (written by Hamilton Elliott).
  • Added support for DXF entity lightweight polyline (LWPOLYLINE).
  • Added option to change grid size. Click in display area and then Ctl-G or double click the grid size display in the icon bar. Enter a 0 or Cancel button to return to the program defaults of 1inch or 10mm. Setting is persistent.
  • Added shift key startup option. The SHIFT key held down during D2nc startup overrides the "Load Previous" options to NO.
  • Added a display of a cut direction arrow. This can be toggled on or off for all shapes.
  • Added the name of last file saved to the prompt asking if you want to load the last file.
  • Added support for DXF files without CR+LF as created in linux or Qcad.
  • Changed the SDL C and V commands adding option 1 which uses the offset as the radius of the arc rather that the centerline distance.
  • Added options to the selection tool for selecting different element types as well as open and closed chains
  • Changed SDL Warp command by adding the anchor (option 2) and 'convert to line' (option 1) options so its works the same way as the Jump command.
  • Changed SDL Jump command by changing the anchor character * to the @ (option 2) character.
  • Changed SDL warp command to be included with jumps when rolled up into a single linear move.
  • Changed DXF import optimization for improved import speed on some files.
  • Changed the way shapes are selected for creating paths on the Path tab. The new procedure  is to select a shape first and then an operation to be performed on that shape.
  • Changed the display of the axis and grid settings to be persistent (remembered).
  • Improved DXF file import where supported entities can be read from any DXF not just R12. The list of supported entities is still limited however. A separate web page on the D2nc site documents the supported entities.
  • Fixed the problem where locales using the comma as the decimal separator drops the fraction in all SDL calculations.
  • Fixed problem which limited the number of entities that can created. Theoretically now in excess of 2 billion but this would be very slow.
  • Fixed inside/outside determination code for arcs greater than 180
  • Fixed problem where imported DXF file may get overwritten with .d2c file contents.
  • Fixed insert library item scaling.
  • Fixed error in some cases when entering 3rd parameter of SLD A command.
  • Removed the dual functionality of SDL ‘#’ and ‘&’ implemented in version 2.1.0. When using the shape closer only the ‘&’ will work now.
  • Notes regarding changes in V2.9.0
    V2.9.0 adds native offsetting which can be used as an alternative to G41/G42 offsets. The offset algorithm was coded from scratch. While it has been reasonably well tested, there can be situations where the resulting geometry is not correct. Please report all offset problems by sending the .d2c file and a brief problem description to me at support@d2nc.com. Sending the gcode .tap file is generally not helpful however I may request the .dxf file if I need it for debugging purposes.

    The previous architecture of multiple sources has changed to two modes, SDL and CAM. The SDL source is now SDL mode while the DXF source has changed to become the CAM mode. CAM mode currently supports the importing of DXF files and the transfer of shapes that are described in SDL.

    The SDL language option modifiers have been standardized across all SDL commands. Where SDL commands have options:
    Option 1 is a shifted 1 which is the !
    Option 2 is a shifted 2 which is the @
    Option 3 is a shifted 3 which is the #
    Option 4 is a shifted 4 which is the $

V2.3.0 Current Legacy Release

  • Fixed SDL (A)rc and (W)arp command errors during entry of the heading as a 3rd parameter.
  • Fixed installer for Vista and Windows 7 installation errors.


  • Added key validity checks.
  • Fixed DXF import bug with no elements in some cases.


  • Fixed problem with identifying connected and closed chains in some cases.
  • Fixed problem with reversed inside/outside of the shape in some cases.


  • Added support of the DXF Arbitrary Axis Algorithm for polylines using an object       coordinate system (OCS) to map it to the world coordinates (WCS).
  • Fixed DXF polyline bulge angle with angles > 180 degrees.


  • Fixed DXF import of closed polylines


  • Added support for DXF polylines with bulge.
  • Fixed limit of 64k in Show G-Code display panel.


  • Added trim to license name and key.


  • Added license trace feature.


  • Changed Rectangle wizard to include radius or chamfer corners.
  • Fixed problem with CAD launch button.


  • Added G90.1 and G91.1 codes to the gcode depending on the setting of D2nc's IJ-mode. This eliminates the requirement to have Mach's IJ mode the same as D2nc's.
  • Added new SDL command % for reflection. Functions the same way as the shape closer & command but reflects the shape through an imaginary line that would have closed the shape.
  • Added optional CAD program launch button on the DXF shape source screen. The button name and program to launch must be configured in the option-> settings panel by selecting the DXF tab.
  • Added support for combo boxes in wizards to allow choice. The new centerline circle shape wizard and the spiral pocket wizard are the first to use this feature.
  • Added Wizard - MILL - CL - Shape - Circle.
  • Added Wizard - MILL - Off - Shape - Circle.
  • Added Wizard - MILL - Off - Shape - Rectangle.
  • Added Wizard - MILL - Off - Shape - Rectangle Centered Radius.
  • Added Wizard - MILL - CL - Surfacing in Y axis.
  • Changed Spiral pocket Wizard to allow selection of climb or conventional milling.


  • Fixed problem with locales that use a comma as the decimal separator with DXF import


  • Fixed problem with locales that use a comma as the decimal separator. SDL uses the comma as the command option separator so the decimal separator must always be entered as a period. This is now interpreted correctly for all locales.


  • Added 4th axis operations. Wrap either the X or Y axis of a shape around the A axis and optionally scale one or both axis to fit the circumference of the material in A. Supports general cutting and engraving in the vertical axis. Gear cutting in the horizontal axis is planned.
  • Added a setting to optionally return to home position before and after each machine queue entry is processed or not. Default is on and will return.
  • Added an enhancement to wizards so that they can now generate multiple shapes from a single wizard. This new wizard type contains the word "Multi" in its name.
  • Added wizard - MILL - CL - Radial Pocket (tool centerline)
  • Added wizard - MILL - CL - Radial Pocket (tool edge)
  • Added wizard - MILL - Off - Shape - HEX - across flats
  • Added wizard - MILL - Off - Shape - HEX - across points
  • Added wizard - MILL - CL - Engine Flywheel Spoke Cutout
  • Added wizard - MILL - Multi - Engine Conrod
  • Added wizard - MILL - Multi - Engine Beam
  • Added wizard - MILL - CL - Engrave Bezel
  • Added wizard - MILL - CL - Engrave Scale
  • Added wizard - MILL - CL - Engrave Circle Pattern
  • Fixed accuracy of screen plotting when displaying arcs with fractions of and angle.
  • Fixed some minor file handling and shape state problems.
  • Fixed memory leak causing crash if program kept open for a long period of time.
  • Fixed DXF tolerance conversion when switching between metric and inch mode.
  • Changed display of heading indicator to "off" for wizard generated shapes.
  • Changed Centerline contour to allow drill shapes (no XY cutting moves).
  • Changed the SLD (J) Jump anchor character from * to @ for compatibility with a planned enhancement to SDL.
  • Changed the SDL (#) Close command character from # to & for compatibility with a planned enhancement to SDL. The # will still work for a while.


  • Added colors to the display of the compensation moves. Green for in, Yellow for out.
  • Fixed some serious problems with G41/G42 offset compensation with respect to inside/outside and conventional/climb milling.
  • Changed wizard naming convention. Using ‘Off’ and ‘CL’ to indicate offset and centerline type of mill wizards.


  • Added filter to wizard screen to help find the wizard you seeking. Start typing any string contained in the wizard name.
  • Added customizable materials in the tools menu for setting your own material descriptions and surface speed in either feet or meters per minute.
  • Fixed problem with quotes in tool description causing file load errors.
  • Fixed error caused by deleting last entry in machine queue.
  • Fixed initial compensation move placement for offset when changing to a shape that has a different direction of rotation.
  • Fixed the conv./climb toggle in offset to have the first segment remain the same.
  • Changed algorithm for determining the inside and outside of a closed shape. Now         using a winding number instead of sum of angles.


  • Added alternate method for DXF chain and element selection not dependent on OpenGLv2. This will work on older graphics cards. First click anywhere in the plot area then use the left and right arrows to select and the del key to remove selection.


  • Fixed problem with installer registering a dll on some systems.


  • Added wizards function using predefine blocks of SDL and an interface for adjusting the input variables. Release includes several common wizards.
  • Added SDL functions where any formula within parentheses () will be parsed. This allows SDL statements like d(1.5/2) or l(x),(sin(x)).
  • Added parser directives where any functions within <...> will be evaluated but not included in output. This allows structures like <x=x+1> or <dia=1> in SDL.
  • Added SDL variables and the use of variables in math functions. Variables can be defined and assigned in both function and parser directives.
  • Added sequence option in centerline cutting, all segments per step or each segment to depth.
  • Added SDL (E) Etch and (M) Move commands for drawing a line or jumping from the current position to a specific X,Y coordinate. Both of these commands update the heading so subsequent SDL commands start on a correct heading.
  • Added settings option to set colors for both axis and grid line display.
  • Added format SDL or "pretty printer" button. Reformat the SDL input with one command per line.
  • Added internal tolerance to SDL so that shapes with very close start and end points will be seen as closed shapes.
  • Added status display of current shape to toolbar.
  • Added ability to drop DXF files on D2nc icon to open them.
  • Added wizard - DRILL - Bolt Circle
  • Added wizard - DRILL - Hole Array
  • Added wizard - DRILL - Linear Hole Pattern
  • Added wizard - DRILL - Rectangular Hole Array
  • Added wizard - MILL - CL - Bolt Circle
  • Added wizard - MILL - CL - Radial Slot
  • Added wizard - MILL - CL - Rectangular Pocket
  • Added wizard - MILL - CL - Slotted Timing Disc
  • Added wizard - MILL - CL - Spiral pocket
  • Added wizard - MILL - CL - Surfacing in X axis
  • Added wizard - MILL - Off - 'D' Hole
  • Added wizard - MILL - Off - Radial Slot
  • Changed SDL handling and g-code generation routines which are now optimized for greater speed.
  • Changed function of construct line toggle to include all stippled lines.
  • Fixed grid display not scaling from origin 0,0 in metric mode with zoom.
  • Fixed offset of a shape which had points embedded so that it was not valid for G41/G42
  • Fixed color options which did not always render the correct color.
  • Fixed option to set the background color which was always black.
  • Fixed circles described as -360 degrees being detected as points.
  • Fixed shape made up only of multiple circles being detected as points.
  • Fixed minor display bugs when switching shape source.
  • Fixed error when adding to queue an offset shape when a non offset shape was in queue
  • Fixed F1 context sensitive help for all screens.
  • Fixed placement of compensation moves for a full circle.
  • Fixed increment of compensation moves 'by one' when shifted click.
  • Removed SDL (O) Origin command which has been replaced by the (M) move command.
  • Removed SDL ($) and (&) commands which are replaced by a M0,0 and E0,0 respectively.


  • Fixed erroneous M30 rewind entries in gcode generated from multiple machine queue entries.


  • Fixed disabled drill options for points sourced from a DXF file.
  • Fixed DXF import where some elements were being duplicated.
  • Fixed missing feed rate on G02/G03 moves following a Z axis move after a G41/G42.
  • Fixed DXF optimization for choosing shortest path between open segments.
  • Fixed mishandling of "keep" and "remove" selected elements of a DXF.


  • Changed check to see if output gcode file is in use and allow retry.
  • Fixed IJ absolute/relative mode causing problems with DXF import/export.


  • Added export of selected shapes to a simple DXF file for editing in cad programs.
  • Added Z rapid/feed transition plane with an option to make this progressive. Static is height above 0 plane, progressive is height above target Z level + step.
  • Added DXF import tolerance for discriminating between open and closed chains.
  • Added selecting machine queue entry now shows associated shape.
  • Added mark and clear all machine queue entry buttons.
  • Added option to set the percent along a segment where a lead in/out compensation move will occur on the selected segment. Was fixed at 50% for lines and 0% for arcs. New default is 50% for all segment types.
  • Changed 'Add to Queue' button to now first clear all other selected entries in the queue as a safety feature.
  • Changed DXF import function for optimizing the cutting order of open chains.
  • Changed position/pause mode, which allows using the quill for drilling tapping and reaming, to not make any Z axis moves, including any move to safe Z, in the generated gcode.
  • Fixed offset in/out selecting the wrong side for a circle.
  • Fixed DXF import 'circles as points' which connected points with cuts instead of moves.
  • Fixed missing feed rate on G02/G03 moves following a Z axis move in some cases.
  • Fixed DXF reset function to allow switch back to SDL.


  • Added DXF import option as a selectable shape source. Each shape can can be either SDL or DXF sourced.
  • Added a display of the current coordinates during SDL input.
  • Added selection of climb or conventional milling for outside or inside contouring.
  • Changed left and right contouring of a closed shape to outside and inside. D2nc now knows which is which.
  • Changed the internal shape translation engine to allow for different shape sources and for some planned functions.
  • Fixed the way the # command will close a shape in some cases.
  • Fixed arc of 360 with center at 0,0 not enabled for cutting.
  • Fixed the way internal rounding works needed for DXF import function.
  • Fixed bug with multiple shapes in machine queue out of shape number sequence.
  • Fixed regional formatting of gcode problem over 1000 units.


  • Changed display to use OpenGL graphics. Display can be dragged with the left mouse button and zoomed using the mouse wheel or dragging while holding the shift key and left mouse button.
  • Changed overall screen layout and control improvements along with a toolbar for commonly used features.
  • Changed limit on machine queue entries from 10 to 100.
  • Changed shape description language (SDL) by removing the (S)hape command and added the (O)rigin command in its place. Each shape now has its own input area selectable with shape selector buttons.
  • Added check box on machine queue to include/exclude item from gcode generated. Default is 'selected' on add to queue.
  • Added (T)angent command to the shape description language (SDL) along with examples in help file.
  • Added file association with .d2c files. Double click on file in explorer opens that file in D2nc.
  • Fixed machine queue out of order problem caused by moving entries up and down the queue.
  • Fixed open/save directory to default to last used.
  • Fixed help file graphics so the lines are more visible.
  • Fixed compensation moves if step greater than full depth.
  • Fixed close shape command (#) when used with C and V commands.
  • Fixed drilling depth and feedrate problems.


  • Added setting tab to make IJ gcode output either absolute or incremental. IJ incremental is the default setting.
  • Added compensation strategy, at safe z, first/last pass and every pass for G41,G42 compensation moves.
  • Added display for shape detail showing last heading, origin, closed and open count and if the shape can be used for drill operation or not.
  • Added setting tab to allow user settable colors for display area and all line types.


  • First Public release.