June 13, 2024

Numeric word output formats in the Code Generator (CGT/tmp file)

Formats affect output only. Any expressions or calculations using a CGT word use the full precision of the word. 

Numeric system word persistent formats:
Persistent numeric formats in current code generators are assigned in the @DECLARE section of the CGT file using the #FMT() command, with a #F_format class and a numeric format.
 
Example:

@DECLARE
#FMT( #F_BlockNumber, T4.0)
#FMT( #F_Decimal, D3.4)    //precision must match smf21
#FMT( #F_Integer, T4.0)
#FMT( #F_Offset, T2.0)

...
etc
...
@

In the CGT Word Reference of Learning SmartCAM, for words of type Numeric, the FMT Class field will identify the persistent format assigned to the word. If not overridden, this is the format that will be used when the word is output.

Example:
 
Word #CYTIME
Type Numeric, Cycle Times
Description Total accumulating cycle time.
Value > 0
FMT Class F_Decimal
Related SMF Questions 141, 142, 144

The word is of type Numeric, and when output it will default to the #F_Decimal format that is assigned in the @DECLARE section. 

Note: If formats are not declared in the @DECLARE section, SmartCAM will look for them in the .SMF file.   

Numeric system word persistent overrides.
The persistent formatting of any numeric system word can be overridden by using the #FMT() command in the @DECLARE section.

For example, the #CYTIME word listed above has the #F_Decimal format assigned to it. If we want it to have a different output format throughout the CGT, we can specify a persistent override in the @DECLARE:
@DECLARE
#FMT( #F_BlockNumber, T4.0)
#FMT( #F_Decimal, D3.4)
#FMT( #F_Integer, T4.0)
...
#FMT( #CYTIME, P4.2) // Sets new persistent format for #CYTIME
...
@

Numeric user words' persistent formats:
Declaration of user words automatically assigns persistent decimal or integer formats when declaring as either #DEC, #INT, #CALCDEC or #CALCINT in the @DECLARE section. For example the #myXPos, #myYPos and #myCount words declared below: 
@DECLARE
#FMT( #F_BlockNumber, T4.0)
#FMT( #F_Decimal, D3.4)
#FMT( #F_Integer, T4.0)
....
#DEC #myXPos, #myYPos      // user declared words #myXPos and #myYPos that will automatically use the #F_Decimal format for output.
#INT #myCount                     // user declared word  #myCount that will automatically use the #F_Integer format for output.
....
@

Numeric user words persistent custom formats: 
A numeric user word can be given its own persistent format by declaring it using the #FMT() or #CALCFMT() commands in the @DECLARE section. For example the #myAngle word declared below:
@DECLARE
#FMT( #F_BlockNumber, T4.0)
#FMT( #F_Decimal, D3.4)
#FMT( #F_Integer, T4.0)
...
#DEC #myXPos, #myYPos
#INT #myCount 
#FMT( #myAngle, D3.3)   // user declared word #myAngle that will use D3.3 format for output.
....
@

Numeric word one time output format:
Any numeric word can be output with a different format than its persistent format by using the #FMT() function directly in line in the .CGT output @Sections. For example outputting #CYTIME to one place after the decimal in the program end codes:
@END
G00G91G28Z0
(Cycle time = #FMT(#CYTIME, D4.1) )
M30
@














May 24, 2024

Using the new Chamfer tool

Want to use the new Chamfer tool to break some sharp edges? Here's how!

This example will also move the point or edge of the tool off of the edge so that the tool is cutting toward the middle of the cutting edge as shown in the picture, below.



The Chamfer tool works on wireframe for Processes like Wireframe Roughing - Profile. 

First create, slice or extract the wireframe you'll want to break. 

  1. We'll move the point .05" off of the part and break the edge at .01".
  2. Create stock for Verify, and we'll also use it for input to Profile. On a layer, Prof Top = 0, Level = -.5. Create - User Elements - Rectangle and create a 2" x 2" rectangle.
  3. With the Chamfer tool active use Profile and set Profile Input to Whole and for Profile/Start to an element in the rectangle.
  4. Wall Allowance = .05 (this moves the tool off the edge) and Level = -.06 (-.05 to meet the edge and another -.01 for the amount to break the edge by).
  5. Go
  6. Verify and set your stock to the layer the rectangle was created on.

This works with any valid Tip Diameter.



April 16, 2024

Creating a tool list in your NC Code file with SmartCAM.

With SmartCAM, can create a tool list at the top of your G-code file that might look like this:

O0123
(Tool 1: 6.0000 Dia. / 0.0300 Rad. 10 Flute Face Mill - )
(Tool 2: 0.5000 Dia. x 90.0 Deg. 2 Flute Spot Drill - )
(Tool 3: 0.3125 Dia. 2 Flute Twist Drill - 5/16)
(Tool 4: 1.0000 Dia. 5 Flute End Mill - )
N1 T1 M06
G54 G00 X4.8717 Y0.0 

February 22, 2024

We're back and excited to announce the launch of v2024 this week!

Highlights of what new:

  • Functionality: New Job Operations Planner Manager Enhancements:
      Planner Manager
  •  Machining Additions including New Work Setup Home Positions
       Home Position Dialog Milling
  • General Improvements to Select all and JOS Reporting
  • Exciting Macro Improvements
  • Data Translation Updates 
 

November 23, 2020

SmartCAM v2021 Release

A New SmartCAM release is now shipping.

What an extraordinary and challenging year 2020 has been for everybody.

We offer a piece of normality: as is our custom at this time of year, we have produced a new version of SmartCAM. In the new SmartCAM v2021 release we deliver further incremental developments to the CNC programming system of choice for our valued customers.


Our goal remains unchanged - to continuously deliver technology changes that add even more capability and productivity to SmartCAM, assisted with updates to the user interface and everyday usability improvements.

We always strive to maintain "The SmartCAM Difference" going forward.

Below is a broad-brush summary of the enhancements that have been created for the Version 2021 release.

Regards, Stay Healthy.
The Team at SmartCAMcnc.

 

SmartCAM v2021 Release

SmartCAM v2021 Release

Process Model Viewers

New: Four new optional Process Model Viewer applications become available in the SmartCAM v2021 release.

Process Model Viewers are used by office or machine shop personnel needing to view Toolpath or data available in the SmartCAM Process Model: Managers, Supervisors, Programmers, Machine Operators, Tool Setters, Inspectors, for example.

SmartCAM Viewers

SmartCAM Viewers

User Interface

New: Layer Manager

A new Layer Manager has been added. CAD Layer management becomes simpler, more efficient and faster.

SmartCAM Layer Manager

Layer Manager

New: Toolbar Button Editor. Preferred Toolbar content is easier to setup than previously. 


Visual Customization ToolKit

New: Images can be incorporated in SmartCAM Visual Customization ToolKit (the VCTK) panels and dialogs.

Images for CTK Panels and Dialogs

SmartCAM has always been strong on customization. Users of these open and powerful tools rate this enhancement for the SmartCAM Visual Customization ToolKit (the VCTK).


And More...

The SmartCAM Version 2021 release contains a number of what we'll describe here for the sake of brevity as miscellaneous enhancements.

Tool Check Distances can now be set in the Planner.

The Job Information panel has a new Created For data field

Additional Code Generator Words

New Macro Language commands


Visit our website for detailed information about

SmartCAM CNC Programming Applications.

Talk CAM with us. We're at:

+1 (541) 344-4563




The SmartCAMcnc Team

February 26, 2019

SmartCAM Code Generator: New String function


Welcome back once again to the SmartCAMcnc blog ☺


Code Generator String expressions

Technical stuff: bring it on. I'm not going to mess about with an introduction this time: as someone who thrives on the technical I'm heading straight to the interesting technical content of this post.

The Interesting Bit

A new Code Generator String Processing function became
available in the latest release of SmartCAM, Version 2019 SP1.


Over the years we have had many interesting discussions regarding strings and string handling in the SmartCAM Code Generator ( CG ) and Customization ToolKit ( CTK ).

We want to tell you about a new Macro String Expression function - #MSE - that can now be used in CG template ( .cgt ) files.

The SmartCAM macro mechanism has a whole load of string variable functions available, any of which can be incorporated within macro logic for all manner of purposes, such as outputs and conditional-tests.

Examples of macro string functions are:


GET_CNC_PATHReturns the folder path where SmartCAM
will write NC code files
VERSIONReturns the current SmartCAM application's
'Header text'
CODFILEReturns the current CNC Code path and file name
SHPFILEReturns the current Process Model path and file name

All macro string expressions can now be used within the SmartCAM Code Generator Template file.

The syntax for accessing macro string processing functionality in a CG template file is a #MSE function embedded in a #EVAL string assignment:


#EVAL ( #my_string =#MSEmacro string expression ))

If you are experienced with the SmartCAM Code Generator tools then you'll understand that stuff. But for the general benefit of all, let's break down that statement.





User Variables can be used within the SmartCAM Code Generator Template file.

They are declared in the @DECLARE section of the code generator template file, defining which type of data they will contain - string, integer or decimal type.

Since our example will return a string expression, it follows that our user variable would be declared as being of string type:

#STR #my_string

There is a User Variables topic in Learning SmartCAM, browse to Code Generation > Variables

#EVAL
To borrow the description from Learning SmartCAM , the #EVAL command is used to "Assign numeric and string words via numeric and string expressions."

I'll sneak in here a simple example of the use of that command, again borrowed from Learning SmartCAM:

#EVAL( #diam = #radius * 2 )

using decimal variables in that case.

And so our example

#EVAL ( #my_string =#MSEmacro string expression ))

Assigns to a user string variable named #my_string the value returned by the #MSE function.






Here's a use case. A common request is to retrieve file names and paths, such as those for the current CNC code file, or the current Shape FilePM5 file ).

The last variable in our list of examples above, SHPFILE can be used to illustrate that type of case:


#EVAL ( #my_string =#MSE( SHPFILE() ))

Macro functions can be found in the SmartCAM Customization Guide, navigate to Automating SmartCAM with macros > Macro functions

Functions that begin with S= in the documentation are string functions.

We want to let you know that the function is still in a beta state, but felt it was worth including in the SP1 release. At the time of writing, our testing has found that the EL_NAME() function is the only function not working correctly.

Please go ahead and try it if you have a use case!





If you have yet to discover SmartCAM

Here's a little background information, just for you.

CAM engineers who use SmartCAM know that the Code Generator ( let's refer to that as 'The CG' ) and Customization ToolKit ( 'The CTK' ) tools excel.

Sure, they are technical, but once you have grasped the fundamentals you can achieve really good things using those tools. 

I've said it before and no doubt will say it again - because we here at SmartCAMcnc have a deep-seated belief in the statement - that the SmartCAM Code Generator and Customization tools are amongst the most open and flexible in the CAM software world. 


Complete Automation of Hydraulic Seal
manufacturing Toolpath
One of these days I'll create a blog post dedicated to the concepts of the Code Generator and the CTK.  Probably one for each of those really interesting technical topics.

But in a nutshell a SmartCAM user can apply  the particularly open CG tools to setup detail code requirements for themselves, and can use the CTK to create additional functionality that is often unique to their particular application requirements. 


CTK Projects can range from small everyday useful commands and functions through to large-scale  automation

CTK work can comprise of a short and simple macro that is 'executed' by the SmartCAM engineer, or it can be the development of a whole suite of macros and can be enabled with custom user-interface panels.

A key element in both systems is variables, system- and user-defined. This blog post highlighted a new function that enhances string variable handling in the SmartCAM Code Generator.


I hope it has been helpful and as technically interesting as it was for me.




Take care.
Have a great day / evening / weekend.

Talk CAM with us. We're at:


+1 (541) 344-4563

sales@smartcamcnc.com




The SmartCAMcnc Team

January 9, 2019

SmartCAM Reseller partner growth


We want additional Reseller Sales Partners for many regions of the world outside of the US.

If a good, ( even if they were appropriate, I'm not going to use here any of those markety-words such as powerful, affordable, market-leading -  you know the ones I mean ) proven, mid-range CAM system fits into your product portfolio and business model

and

you believe that you have the ability to successfully sell and support in a technically-demanding applications sector then let's talk.

Contact me, Terry Antrobus, for a confidential initial chat so that you and I can explore possibilities together.

We included an animated GIF image in that left-hand panel. If you received this post by email, many email clients don't automatically play GIF animation. The solution is to open our message in a browser. 


That's it: our shortest blog post to date.

Take care.
Have a great day.
Our Regards,

The SmartCAMcnc Team

Talk CAM with us. We're at:
+1 (541) 344-4563




November 5, 2018

M99



Welcome back once again to the SmartCAMcnc blog





M99?

I think I may have been too clever for my own good there.

As I sat here trying to come up with novel title for this blog post - as is my way -  it occurred to me that we kind of reached the end of another month, a 'subroutine' in our development cycle, culminating in the release of SmartCAM Version 2019.

I did consider naming it M30, but that has an entirely different connotation that we have reached the end of the program. Which we haven't.


I also thought about using G80. But the common definition of that is 'cycle cancel'. Which we haven't. We completed that cycle, we didn't cancel it. Which is what actually happens on your CNC after all. It is close. Maybe G80 would have been good.

No? Ahem. Let's move on before I dig myself even deeper into that hole and get myself into trouble with The Management.





As those that know us have come to know, we are in the habit of providing an overview of a new release on our website, which you can view here

But here is a fast run-through of What’s New:



New: Adaptive Solid Processes
The benefits of Adaptive Rouging Toolpaths are firmly established, having been added to SmartCAM in a previous release.



Those Toolpath Modeling functions were wireframe-based. Version 2019 adds Solid Model-based Adaptive Toolpath functionality: a CAD solid model can be analyzed for the regions to be Toolpathed and Adaptive Toolpaths automatically applied to those regions.

Two new Adaptive Solid Processes are available, Adaptive Solid Pocket Roughing and Adaptive Solid Planar Roughing.

We won't provide detailed information about or attempt to demo those functions here, but you can see Adaptive Solid Pocket Roughing being applied in this short video:






Adaptive Solid Roughing is the predominant toolpath technology addition for SmartCAM Version 2019, but there are a number of detailed additions and changes that we know existing users in particular are going to appreciate. And understand; some of them will be lost, we think, on anybody that does not yet know SmartCAM concepts and methodology.

Rattling through them and other changes and additions quickly, they are:



Adaptive Process Tool End Radius
All of the Adaptive Toolpath Processes now support the difference between a regular, cylindrical cutting tool and bull- or ball-mills. The result is, of course, ‘tighter’ toolpath due to that tool end radius.





Mill Roughing Compute Times
All of the Mill Roughing Processes benefit from improved performance / faster results due to identifying when identical cut patterns are generated at multiple depths of cut.






Spiral Hole Leads and Comp Codes
The Spiral Hole Toolpath Modeling Process has been enhanced to now support Line, Arc, and Line / Arc leads, and tool radius compensation can now be applied within the Process.







The User Interface: Toolbars
The User Interface had a lot of development attention and benefits from a more modern appearance and general ‘freshen up’. We really like it.

The primary enhancements have been:
-      Optionally associate text with icons on a toolbar
-     Better and easier control of Toolbar configuration
-   A new Toolbar ‘set’ capability can be used to store user-preferred toolbar arrangements
-      Each Toolbar can now be sized independently of the others. Small beer, it would seem, but we love that particular one ourselves.





Gradient Graphics Background
We didn’t appreciate just how effective that could be before now. A Gradient background can be configured or turned off according to user preference.









Zoom to Active Group
The Active Group is one of the cornerstone concepts in SmartCAM usage. We bet that if we’d asked our customers ‘would you like to be able to zoom to the extent of the Active Group?’, 99.9% or more would have said yes.

And now you can.





Code Generation. For those that don’t know us, Code Generation is the term used by the SmartCAM community for what are commonly called Post Processors in other systems. There’s a little more of the SmartCAM Difference for you right there.

The SmartCAM Code Generator Tookit is possibly the most open and flexible in the CAM world. Version 2019 delivers a small number of code generator enhancements, which will again be a little meaningless to those who do not yet know anything about our technology. But being a techie sort of guy, one who such things excite ( how sad is that? )  I’m going to run through them anyway. It’s hard to come up with an image for these things, I’ve not even bothered to try.


Solid @OP_HOLEwMILLOP
Now how techie is that, eh? This stuff is SmartCAM Code Generator-specific.

OK, so it was a little tricky to handle CNC code for a hole being toolpathed with other than a Hole Operation. A  new CGT Section more easily enables the processing of Hole Toolpaths where the current operation is a Milling rather than a Hole Making operation type.


Code Generator / Macro Parsing
This one is buried deep within the Code Generator / Custom Toolkit functionality. Our users who have ‘been there’ with various customization projects will really appreciate the fact that macro variables can be parsed from the CG to the macros.

Customization might, for example ‘do something’, call Code Generation and then ‘do something more’ after Code Generation is complete and has parsed information back to the macro system.


Code Generator 'Function' Section
This one ‘lights my fire’, I have to tell you. A new section behaviour has been added to the Code Generator mechanism which enables Code Generator creators to create their own specific ‘functions’ within their Code Generator.

The primary goal of this work has been to enhance the ‘readability’ of Code Generator Template files, but it does empower the creator with so many technical possibilities, some of which we haven’t yet imagined.

I personally have a view of the SmartCAM Code Generator and Customization Toolkit, that what can be achieved is really only limited by the imagination. So much is possible with that stuff, we have been privy to some remarkable projects by our customers.




There are a number of miscellaneous changes and additions summarized on our website, but there we have it: some of the result of the 'subroutines' we ran during development of our favorite CAM system. Now we're into the next program cycle of exciting development work for SmartCAM Version 2020.


I really must get back to my proper job. I hope I helped with a little comprehension of another great release of SmartCAM.


Take care.
Have a great day / evening / weekend. Morning, even.

Talk CAM with us. We're at:
+1 (541) 344-4563
sales@smartcamcnc.com