Announcing
SmartCAM v2017 Enhancements to the Code Generation Tools

The SmartCAM® Code Generator mechanism has been extensively enhanced for Version 2017.

This release delivers improved support for machinery with Rotary Axis indexing capabilities by Rotary Axis Positioning Engine - CNC Code Generator integration developments that enable improved configuration and control of CNC code for rotary axis indexing moves.

In addition, technical items of interest include changes made to the Machine Define and Code Dialog user interfaces and the introduction of new Code Generator functions and methods.

Code Generation mechanism changes of interest

Machine Define gets a minor facelift

The Machine Define Tool user interface has been given a simpler, cleaner look. Interaction and use is made easier.

Additionally older, obsolete definition statements have been removed to a new "Obsolete Questions" category.

Machine Define gets a minor facelift
Machine Define gets a minor facelift


Changes to the Code Generator User Interface Dialog

The Code Generator dialog has been simplified, and new and extended Diagnostic options useful to a code generator creator have been added. Available Diagnostics tools are Code Generator Template section names, line references, conditional states, and processing errors. Diagnostics tools are highly useful when developing or modifying a code generator.

Modified and improved Code Dialog
Modified and improved Code Dialog


New Code Words and Functions

Formatting, Control Functions and new table lookup behavior extend the logic capabilities that can be used in Code Generator Template files.

The detail is most meaningful to our existing Code Generator toolkit users. Changes include:

  • Increased scope of #FMT(). Can be used as a preferred method for formatting block address output values
  • #GOTO, a new control that can be used to direct control to a target section in the Code Generator Template
  • Optional embedded conditionals for #CALL. For example #CALL ( MYSECTION , #IF ( #MOV > 3 ) )
  • #EXITR. Elegantly exit a #REPEAT() loop

Code Generator Template Table Lookup behavior. All Code Generator Template words that used codes from Machine Define can now be coded using a Code Generator Template file table. #MOV, for example:

@MOV
0,G00 // rapid
1,G01 // linear feed
2,G02 // cw arc feed
3,G03 // ccw arc feed
45,G02 // cw helical feed
46,G03 // ccw helical feed
@


Improved Readability for Code Generator Templates

Code Generator Template file content can now be written with improved readability. Whitespace and commands across multiple lines are now supported within Code Generator Functions.

@OP_SPDRL <M#TCODE>
#IF(#U1=1)<#RESET(#CYCLE,#RTNLVL,#XPOS,#YPOS,#ZPOS,#ZDPTH,#ZCHK)#EVAL(#U1=0)>
#IF(#KNO=1)<#CALL(OP_SPDRL_FACE)> #ELSE<#CALL(OP_SPDRL_SIDE)>
@

could now be coded as

@OP_SPDRL
<M#TCODE>
#IF( #U1 = 1 )<#RESET(
       #CYCLE,
       #RTNLVL,
       #XPOS,
       #YPOS,
       #ZPOS,
       #ZDPTH,
       #ZCHK )
#EVAL( #U1 = 0 )>
#IF( #KNO = 1  )<#CALL(     OP_SPDRL_FACE     )>
#ELSE<#CALL(     OP_SPDRL_SIDE     )>
@