SmartCAM v2019 Code Generator Technical Enhancements

A number of Code Generator Toolkit improvements have been added in the SmartCAM® v2019 release.

These are all technical detail changes that will appeal to existing customers. They are a little 'dry' for CAM Engineers who have not yet discovered how open and flexible SmartCAM is in key technical areas and who will not really appreciate what we describe here. Ask us for more information: we are always happy to talk about what we do and how we do it.

Handle a Hole-Milling operation @OP_HOLEwMILLOP

A new Code Generator Section is called to handle Milled (as opposed to Drilled) Hole machining operations

This requirement has been the subject of a number of customer enhancement requests and support queries. Prior to this change, generating code to machine a Hole Feature with other than a hole operation was a little tricky in your Code Generator Template. At Version 2019, the Code Generator calls this new section when a Hole Feature being machined with a non-hole operation type is encountered.

Closer Code Generator / Macro System Integration #EVMD(), #EVMI(), #EVMS()

A new ability to set Decimal, Integer and String Macro variables during Code Generation has been added.

Many SmartCAM customers incorporate Code Generation within their customization of SmartCAM, for many and varied reasons. New functions enable customizers to set macro variables for use purposes after the Code Generation event. Our description doesn't excite, but the scope for application and application benefit is huge. It's another of those things where you'll know exactly when you have the need to use it.

Macro String Variables #EVAL()

This is minor change but one worthy of comment here. It has previously been possible to read Macro Integer and Decimal numeric variables within the Code Generator mechanism. An ability to read Macro String Variables gets added at Version 2019.

Wrapped Geometry improvements (smf304<2>)

We have made some improvements in the way that wrapped geometry is handled when a Code Generator is setup to handle a rotary axis as if it were a linear one with multiple full-rotation and an infinite rotary axis angle position being used. We don't feel the necessity to discuss the technical detail here, but the result is that the creation of rotary axis code for this setting has been simplified.

New 'Function' Section @$SECTIONS and #RETNUM()

This is an enhancement that is part of a drive to improve the 'readability' of SmartCAM Code Generator Template files. It is another of those technically-detailed additions that does not need, we feel, to be fully described here.

But existing users of the toolkit will be interested by a summary description. A special naming convention for Code Generator Template file 'Function' Sections has been added. Firstly, the section will never output code, which means that content can be whatever you need it to be. Experienced SmartCAM Code Generator writers will be aware that a little care has to be taken with content of sections that do output code.

Secondly, the intention has been to provide a 'function' capability enabling coded logic to be repeatedly called in a neat, clean, easy-on-the-eye way. Existing users will know that Sections can already be called, but this is subtly different.

We have borrowed a simple example from the SmartCAM Version 2019 What's New documentation that gives an impression of how such a section can be used:

  • #EVAL( #myVal = $arcCircumference )
  • @$arcCircumference
  • // calculate circumference for current arc radius
  • #RETNUM( 2 * PI() * #ARAD )
  • @