The SmartCAM Difference
Welcome to the SmartCAMcnc blog for all things SmartCAM, Toolpath, CAM and CNC
December 10, 2024
CAM Software CNC program estimated cycle times.
September 9, 2024
Older Versions of SmartCAM
July 30, 2024
Advanced Milling vs Production Milling
If you're getting solid models to machine and are using Production
Milling to cut them, take a look at Advanced Milling.
We recently did a test using the same solid model to rough and finish a
complex pocket with Production Milling and compared it in Advanced Milling. With PMill it took 127 mouse clicks
and 5 minutes 43 seconds. With Advanced Milling it only took 24 mouse clicks and in only 1 minute 14
seconds.
With solid model machining, almost all of the human factor is
removed. Within the 127 mouse clicks in the wireframe method, there was a
lot of room to miss steps and make mistakes. In our experiment, we discovered in the PMill test an area was missed altogether.
Slicing the different
levels, deciding which parts of the result is to be cut or not,
determining which profile is above or below the other and so forth
leaves room for error that is significantly minimized in Advanced Milling.
Production Milling is great for those that get paper drawings or
wireframe models. Some customers even use it for driving burn tables or lasers
where Advanced Fabrication should be used, but that's a topic for another day.
If you get solid models from your CAD group or customers and are using Production Milling, consider upgrading to Advanced Milling! Check out this video to see how easy it is:
Have questions? Reach out to sales@smartCAMcnc.com to see if you are eligible for upgrade discounts.
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.
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.
@DECLAREIn 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.
#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
...
@
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:
@DECLARENumeric user words' persistent formats:
#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
...
@
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.
- We'll move the point .05" off of the part and break the edge at .01".
- 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.
- With the Chamfer tool active use Profile and set Profile Input to Whole and for Profile/Start to an element in the rectangle.
- 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).
- Go
- 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:
- Machining Additions including New Work Setup Home Positions
- 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.
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.
User Interface
New: Layer Manager
A new Layer Manager has been added. CAD Layer management becomes simpler, more efficient and faster.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 DialogsSmartCAM 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.
The SmartCAMcnc Team
February 26, 2019
SmartCAM Code Generator: New String function
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
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_PATH | Returns the folder path where SmartCAM will write NC code files |
VERSION | Returns the current SmartCAM application's 'Header text' |
CODFILE | Returns the current CNC Code path and file name |
SHPFILE | Returns 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:
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 =#MSE( macro 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 File ( PM5 file ).
The last variable in our list of examples above, SHPFILE can be used to illustrate that type of case:
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.
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.
Talk CAM with us. We're at:
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 us,
for a initial chat so that we can explore the possibilities together.
|
That's it: our shortest blog post to date.
Our Regards,
The SmartCAMcnc Team
Talk CAM with us. We're at:
November 5, 2018
M99
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.
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.
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:
Rattling through them and other changes and additions quickly, they are:
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.
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.
Talk CAM with us. We're at: