CNC files from Rhino

The main idea of using arc moves is that each arc should be made tangent to the next. That means the machine doesn’t change direction when going from one move to the next and can smoothly transition from one move command to the next.
In case like this where the arcs are not tangent there is very little (if any) advantage in using arc moves.

2 Likes

Hey All,

Really appreciate all the ideas and responses

My methodology for working with this file would be to: select all - simplifycurve - converttobezier (delete input) - save as dxf v12 ‘natural’

This seems like a possible work around to my usual conversion method… will play around with this today.

I was just about to say the same thing. That shape will be very slow to cut as the machine simply can’t change direction quickly enough. We have three big CNC cutters here; a steered blade cutter, a 3-axis router and a laser. If I got a file with lots of tight radius direction changes in it like yours, I’d charge a premium too.
In other words, it’s got nothing to do with the file format and everything to do with the actual shape.

I work with a lot of very organic shapes, some more so than this, they definitely cost more to run than straight lines… however the programer I’m talking to over at the shop specifically said that a cleaner file of the exact same shapes would cost significantly less. In the last email he sent he said he would charge me 125$ to clean up the file and that would “significantly reduce the cost” of producing these. I responded by asking what a cleaner file looks like? This was their response…

" In laser cutting, everything is programmed with lines and arcs in AutoCad. Your programs had lines, polylines and splines in them. Splines are unusable for laser cutting. Would you like to proceed with the order and we can get started fixing the programs?"

1 Like

Feeds and speeds are feeds and speeds. Obviously the machine is going to have specifications associated with what full-rapid-speed is and what full-feed-speed is. And a given machine can only accelerate so much between any two given points – depending on the distance between them.

What is the programmed speed a laser is told to go regardless of toolpath shape?

The machine will go at the feed rate it’s programmed to go, or rather attempt to arrive at the speed depending on time over distance, etc.

Yes, from point to point there are limitations because obviously force equals mass times acceleration.

So, a given machine has a given energy and a given servo ‘gain’ allocated for generating the force necessary to move between point A and point B.

But if a machine is jerking around between every point, then there is a servo ‘gain’ problem and a ‘code’ ‘look ahead’ and number crunch problem – not a ‘customer geometry’ problem.

It’s not the customers job to decide what data to feed the machine. That’s the programmers job.

It’s all about GD&T – period.

Obviously, the manufacturer needs to know what the GD&(Tolerances) are in order to decide how to program their machine and how fast or slow their machine should go from point A to point B – so on an so forth.

If the bottom line is “we need to go slower to achieve an accuracy of 0.000001” versus an accuracy of 0.0001"" – then that’s what they should be discussing with their customers.

Hiding this fact from their customers is just silly, and obstructive.

What are the specs on all those machines… I bet all those machines are comprised of electric motors either AC or DC with brushes or brushless running on single phase 120 220 or 3-phase 480 etc.

And ultimately these machines might have the ability to move with a resolution of 0.0001" or 0.00001" etc.

Therefore, depending on computation number crunching power and servo ‘gain’ energies etc., these machines have the ability to compensate for ‘over travel’ and ‘under travel’ i.e. ballscrew backlash etc.

Hence, this is a programmer/machine functionality problem.

It’s all about tolerances, tolerances, tolerances.

How tightly is this particular machine following the toolpath it’s been told to follow? And at what feedrates?

This is merely an example of modifying ‘tolerances’ relative to the eventual ‘toolpath’ that will be fed to the particular machine.

There are many stages and many methods of controlling ‘tolerances’ in the overall process.

There is also likely an option to do this all the way to the point where the machine is processing the final data, and how closely the machine is being told to follow the given final data and how fast it’s being told to do so.

Hence, GD&T.

Indeed, and this may also have an effect on the code composition whether the machine is attempting to processing arc moves versus linear line segmented moves – circular interpolation versus linear interpolation.

Therefore, the inflection points between arcs versus inflection points between linear line segments, can have a dramatic impact on how certain machines interpret and behave while running particular toolpaths, etc.

AutoCad is not a requisite for laser cutting – period.

Lines, polylines, and splines are not a big deal – even for obsolete versions of Autocad, imo.

Fixing programs is a requisite for being a programmer – period. Them doing their job should be expected. They appear to be making their job very taxing for the customer.

2 Likes

Do these type of machine have the equivalent of Constant Velocity or Exact Stop modes?

One problem I’ve seen is if the CAM program is used to create an offset rather than in the control you end up with an arc between each line move on convex curves. So if you’ve linerised a spline the offset creates a very short arc between each line and all the switching between line and arc moves can cause the control to stutter. What machines and controls are they using?

1 Like

My main question remaining is how to create the cleanest arc and line geometry that matches my original nurbs geometry? An arc can only have two end points and a middle point, right? I know a couple posts have given some possible solutions but they still end up outputting a result that the cnc company doesn’t think is great, they seem stuck on the idea that a file created in Rhino will yield poor results. Maybe it’s the company as some have said… I would love to know how the operator was going to make a cleaner file, but they didn’t want to explain it…

1 Like

There is nothing to be gained by making curves for DXF export that fit your NURBS model better than the machine cutting the part can achieve. In fact, there is a lot to lose.

The trick is to allow the curves to pull away from the original NURBS model just as the accuracy the cutting machine can hold.
Anything else is a more complicated file for no measurable accuracy or benefit.

Does that make sense?

2 Likes

I think you were pretty clear about why you want the existing number of arcs that are currently in the file.
It possible to reduce the number of arcs as others have done but as you state now that hasn’t improved the results as far as the company is concerned.

If they say their issue is only with the file, and they won’t explain it to you further, perhaps paying the extra $125 is not a bad idea in the big picture to get past this and get your parts into production.

We can all speculate here (as we have done) about the root cause but its obviously no longer productive for you as the company won’t provide further info.

as someone mentioned, it may just be they are not really set up for this, and would rather cut rectangles all day

using a 2002 cnc router with a fanuc 210i that will happily cut cabinet panels at 1250ipm, I have always ended up having to hand-fit arcs for letterwork and such because the control lacks sufficient block processing capability – the machine could do the moves if the control could keep well enough ahead but it only has the lowest-level G08 lookahead, not the G05 high speed one

I remember running a test with a circle tesselated to some thousands of line segments, and it took literally minutes to cut, where G2/3 would take just a few seconds, so having tons of small lines/arcs can be a big deal in terms of machine time, depending on the machine

3 Likes

Might be worth paying the $125 if they will let you have the file so you can see what they’ve done.

1 Like

One does wonder if it is a really old verion of some form of FANUC control (or Mitsubishi; at this level, same difference).

If you are putting ‘n’ of them on a sheet, I wonder why they don’t use the internal pattern translation and mirroring that is on many controls.

In fact, some controls will allow direct translation of NURBS into the control, with complete weighting applied (31iB, if I recall), and many cnc post-processors have this possbility built in. I find it strange that they are having problems with this file at all. It would seem logical to just take the main program, and then shift it into a subprogram, and either rotate the coordinate system (G68, for example, to get the stake shafts close together) or mirror the geometry in the control, if they are concerened with the size.

I have no idea what thier machine is, but some controls even have various types of “nano smoothing” (for FANUC). If they won’t tell you the control, then this makes it more difficult to understand what the problem is.

I have never had any problems with DXF either. Many CAM applications have a line/arc fitting algorithm anyway. Actually, some toolmakers will often provide thier tool drawings as DXF if you want the 2D version.

If it really came to it, I’d just fork my post-processor off for this specific application, and place some arbitrary feed limitations for corner radii; using some IF statements to control the post output feeds.

1 Like

Exactly.

This wont matter if the machine attempting to manufacture the geometry is stuttering for some other more common reason.

A modern machine and/or a more skillful approach of controlling servo gain settings to compensate for lack of modern technology, can fix the problem regardless of geometry of any kind.

If a CNC programmer is attempting to manufacture anyone’s geometry of any kind, and doesn’t know what servo gain settings are or ‘exact stop mode’ or ‘over travel’ ‘under travel’ or ‘following error’ etc are, then charging the customer a premium for anything is a scam.

And if a CNC machine shop/department isn’t capable of automatically converting your geometry to compensate for their lack of machine behavior deficiencies without taxing the customer, is also a scam.

For one to explicate of what servo gain settings are, is for one to attempt to discern the wizardry of the whole CNC realm – which their are very far and few between who can begin to grasp control over what servo gain settings are and even adjust or wield proper control of them.

Modern machines are supposed to do this automatically without total knowledge of them. Modern controls most likely will dumb-down this whole aspect for the operator/programmer so they don’t have to become a servo-wizard in order to control servo-gains.

a HAAS UMC-750SS for example has onboard “roughness” control for ‘rough’ ‘smooth’ ‘finish’ options – and can also be overridden by the programmer using a G187 ‘accuracy control’.

But every machine is different and every control is different. Control settings/parameters are key.

The operator is the last line of defense in the whole sequence of steps upto hitting the cycle start button on the machine.

It sounds like the company you want to machine your geometry is making it your problem – which is ridiculous.

I’d recommend getting more quotes from other companies on this matter – in the long run.

1 Like

I’ve dealt with this issue a lot both in generating linework for my own laser cutting, and also sending files to be waterjetted and laser cut. Here’s my process/two cents on all this:

  1. As has been pointed out, the only thing that exists in the G-code universe are straight lines and arcs. What I found was that arcs are not worth the trouble - it’s just easier to “decompose” all arcs and splines into small line segments. Obviously, the CNC must be up to the task of cutting in constant velocity mode for this - so as some have pointed out, you may be running up against the limitations of your vendor’s machine, IN ADDITION to the formatting issues you’re having.

  2. The easiest way to do this that I found was to join all my linework into relevant polylines - the lines, arcs and splines making up each cut. Here’s a very basic example where I have an arc, a straight line segment, and a NURBS spline all joined together as one polyline:

  1. To export this for CNC, I’d simply use File-Export Selected and then output your linework as DXF. Now comes the real trick here - you can leverage the DXF output options to do all your work for you at the click of a button. I create my own profile for this, something like this:

For me, the ONLY value I play with is Maximum angle. All outputs should be set to Polylines. Basically this will leave any straight line segment as is, and then decompose all arcs and splines into small straight line segments.

  1. Check your work! I always re-import my DXF output and check to see if it’s doing sensible things. I bring my linework back in, and then turn on the points. For the settings I had, it now looks like this:

You can see my straight line segment is exactly as it was, and my spline and arc have been decomposed into small straight line segments. Now is the time to have a meaningful back and forth with your vendor - if this is still too dense, you can increase the Maximum angle, and see if they are happier with it.

Hope this helps!

-Sky

5 Likes

Hi Glassrobot,

Did you read this?

I use it now for more then 7 years, super happy with it and it also filter the big arcs out who are to big for some cnc machine’s

after converting it you need to set the dxf export right

I don’t know if the script from willem derks works on a mac

3 Likes

I convert it with the script.
I had to scale it to mm so you have to rescale it because the script is for mm, there is the old original in a seperate layer for checking.
If it’s oke to set the conversion less accurate the drawing becomes smaller.
I don’t understand why your your file was so big, I attached mine in 3dm and dwg.
succes
stake_sample conv 2.dwg (320.3 KB)
stake_sample conv 2.3dm (628.5 KB)

2 Likes

Hey Sky and Edward,

Thanks for the replies, and thanks for all the helpful information…

Edward, the converted file using the script seems super clean and possibly the best output I’ve seen. I haven’t worked with any scripts yet but seems pretty straightforward and it’s a good reason to learn more about them…

4 Likes

We use rhino many years for cnc files , just a r14 dxf export , no problems at all , we use estlecam for generating g-code and our cnccutter works with eding cnc .
for our laser cutter we just export also r14dxf .
All forms no problems with points or to complex curves , most of these so called proffesional cnc cutters have just crappy software only good for lines and arcs

Great one John.
Actually that has been proven with an experiment using monkeys…

They hung a banana on the ceiling of a room full of monkeys.
As soon as one of them reached for it, the rest was wetted with a water hose.

Then they swapped one of the moneys.

The new one of course reached for the banana. The rest starts to pull him back, ‘saying’ “you don’t reach for the banana”.

They continue to swap monkeys, until none of the monkeys in the room actually witnessed the wetting with the hose. But still they keep pulling back new ones who try…

Isn’t that nice to be aware of!

1 Like

Years ago I had this problem on a large constant acceleration cam. What I finally did was define the constantly changing ark into 1 degree points, each of which I connected together with three point curves. The large 22 cm cam machined fast and the cam ran smoothly at speeds of over 4000 rpm as the core of a radial cam engine.