I have recently come across an issue with some artwork when exporting from Rhino.
After importing some artwork created in illustrator I then run the ‘convert’ command to arcs and save as a .dxf file - CAM Metric format.
Then import the dxf file into the CAM software that came with my machine (CNC Plasma), Fastcam7 in here is where I become aware of the issue. When I run the NC output process it identifies that some of the “Arcs” are so large in radius, to big for the software to handle (please see image attached).
So my question - is there a way of running a command that will ensure no arc has a raduis larger than a certain number? Even if this slightly alters the design?
Kind regards
Matt
Yes, if you run the Convert command with the output set to arcs and it finds a freeform curve that has a very flat spot, then it it likely to replace that part with an arc of large radius. I don’t know of anyway to limit this inside the Convert command as there is no setting for min or max radius. However, I have never seen it output a radius as large as you indicate, usually those do get simplified to line segments.
Can you post the curve in question before Convert and give us the settings you used for Convert? I would like to try to see if the problem is coming from Convert or maybe from the DXF export.
It’s certainly possible to create a script to run on a set of polycurves and find all the arc segments with a radius greater than X, and replace them with line segments.
Thank you for your reply Helvetosaur, I have attached the .ai file that I import and a screenshot of the file in the nc program with some of the missing lines. Regarding the settings used for convert I have tried multiple options but the most recent one that produces these results are - (Arcs / delete input / angle tolerance - 0 / tolerence - 0.01 / min length - 1 / max length - 0 / input layer - current / Done).
Grass Tree Rhino.ai (1.5 MB)
Yep, I see those…
Here are a couple of scripts you can run after Convert. Right now you need to explode the curves after Convert for them to work, I will look at making them work on unexploded curves. It will ask you for a max radius threshold.
This one just selects any arc with a radius larger than max
SelLargeRadArcs.py (874 Bytes)
This one converts those to line segments
ConvLargeRadArcsToLines.py (1.0 KB)
Edit:
OK, you can try this one - it tries to convert any arc segment in a joined polycurve greater than user-input radius into a line segment - it just makes a line between the arc endpoints - and tries to keep the thing joined up and with the original characteristics. The user radius is sticky within the same session, I can change the default (1000) if you like. Reports on the command line what was done. Let me know if it works or if there is an error somewhere.
ConvLargeRadArcsInCrvsToLines.py (2.1 KB)
Thanks again, seems to come up with the error on line 33.
Please see screenshot attached
I am assuming that I am running the script correctly after completing the convert command with the artwork still selected I go to - Tools/script/run then run the most recent script you sent through?
You probably aren’t doing anything wrong, the script worked on the first test file you posted, but it probably encountered something different in the one you show above. It tries to figure out if any segment in your curve is an arc and looks like it’s failing at some point with something. If you post or send me the file shown above via PM, I’m sure I can find the problem and correct it with a bit more error checking.