Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
insta
Jan 28, 2009
I mean, I can print polysulfone, which is designed to be autoclaved. Depends on budget and quantity

Adbot
ADBOT LOVES YOU

Dominoes
Sep 20, 2007

Looks like I can buy some of that in filament form for $69. LoL! 3/5 stars on fake Amazon reviews. I have an enclosure for printing ABS. What's the word?

ZincBoy
May 7, 2006

Think again Jimmy!

Dominoes posted:

Looks like I can buy some of that in filament form for $69. LoL! 3/5 stars on fake Amazon reviews. I have an enclosure for printing ABS. What's the word?

Unless you have a printer with a heated chamber that can extrude at 380c and have a bed temp of 140c, the word is lol. I have experimented with high temp filaments like this and even on a heavily modified printer that can hit the extrusion and bed temps they are pretty much unprintable without the heated chamber.

insta
Jan 28, 2009

Dominoes posted:

Looks like I can buy some of that in filament form for $69. LoL! 3/5 stars on fake Amazon reviews. I have an enclosure for printing ABS. What's the word?

uh, you're not going to be able to print that. It was more "if milling aluminum fails, let's work something out for me printing it"

Sedgr
Sep 16, 2007

Neat!

It arrived! Changed plans a bit so Im going to have to prep a different spot for it than I first thought but its here!

Some Pinko Commie
Jun 9, 2009

CNC! Easy as 1️⃣2️⃣3️⃣!
Okay, I don't mean this the way it'll probably read, but: What the gently caress?

NewFatMike
Jun 11, 2015

It's a CNC router kit! Send progress pics OP!

Some Pinko Commie
Jun 9, 2009

CNC! Easy as 1️⃣2️⃣3️⃣!

NewFatMike posted:

It's a CNC router kit! Send progress pics OP!

Oh!

https://www.onefinitycnc.com/product-page/build-your-own-onefinity

$2,100 + shipping for all the bells and whistles they offer for a 32 1/8"(X) x 33 1/8"(Y) x 5 1/4"(Z) work area kit isn't bad. Having the controller built-in at that price and not having to kludge one together is pretty neat, too.

Wish this was available to add to it: https://www.onefinitycnc.com/product-page/woodworker-qcw-frame-secure-from-above-version but I guess waiting until it's available and then budget-checking wouldn't be a hard sell.

EDIT: The controller itself is $500 directly from Buildbotics. https://buildbotics.com/product/113/buildbotics-cnc-controller

Sedgr
Sep 16, 2007

Neat!

Will update once I have it up and running. Seems very solid so far.

Dominoes
Sep 20, 2007

Re post-processing: When I click "Post-process" in SolidWorks (using the "M3AXIS-TUTORIAL" post-processor), and save as a .nc file, it looks like the files I've been making with the script. It can be opened by Candle, showing what looks like a correct graphical representation. Is there a reason for a separate GRBL post processor? Maybe there are special dialects like for 3d printers that are different (I don't know how you'd command a 3d printer using the code I learned), but CNC has common standards?

Ie, SW is generating the standard G01 for straight moves, G02 and G03 for arcs, coordinates for these using (X, Y, Z, I, J), F for feed rate, S for spindle speed, M03 to turn on in a certain direction etc.

It looks like SW is also generating commands for coolant and changing tools. And, the S and F settings are 10x higher than I've been using. (And probably not something the 3018 pro can handle; need to go back to the mill config)

NewFatMike posted:

I haven't tried any metal in my 3018, but if you find a GRBL post processor, let me know, because that'll save me a lot of guesswork in making one :v:
Is Candle what you're looking for? It's what I've been using to pass G code to the 3018, and is the official/recommended software for it.

insta posted:

uh, you're not going to be able to print that. It was more "if milling aluminum fails, let's work something out for me printing it"
I'll let you know!

Dominoes fucked around with this message at 03:40 on Jun 9, 2021

NewFatMike
Jun 11, 2015

If M3AXIS Tutorial works, that whips. I'll have to see how it handles canned cycles because I don't think any of those are supported by GRBL.

Definitely check it out, and I'd love to hear a trip report!

E: Candle works, as does universal GCode sender IIRC. It's just a motion controller software.

babyeatingpsychopath
Oct 28, 2000
Forum Veteran


Dominoes posted:

Re post-processing: When I click "Post-process" in SolidWorks (using the "M3AXIS-TUTORIAL" post-processor), and save as a .nc file, it looks like the files I've been making with the script. It can be opened by Candle, showing what looks like a correct graphical representation. Is there a reason for a separate GRBL post processor?

You have fundamentally misunderstood my post about what a post-processor is.

Solidworks creates its own toolpaths in machine agnostic format. This is its CAM process. It then post-processes its intermediate files into e.g. GRBL gcode.

So there isn't an additional piece of software after it comes out of solidworks.

Just because the .nc appears to be gcode "like the files" you've been making, doesn't mean that every machine-agnostic instruction will be translated properly by the "M3AXIS-TUTORIAL" post-processor into stuff that GRBL understands. If this happens, then the best possible thing that can happen is nothing. A much more likely thing to happen is a powered milling move into something you don't want milled. A surprisingly common thing is a full-speed move back to a home position while at maximum depth with the spindle spinning. If you're lucky, you stall out the machine. Not lucky and you break a tool. Unlucky and you break the machine.

So yes. It is moderately to very important to use the correct postprocessor for the specific gcode flavor your machine speaks.
edit: How about an example. Say you want to drill a hole. You tell SolidWorks that you've got a 1/8" drill bit, and please drill a hole at some place. There's a distinct possibility that the "M3AXIS-TUTORIAL" processor will output a G81 Canned Drill Cycle (or G83 deep drill with chip breaking). GRBL doesn't know what a G81 means, so it (hopefully) throws an error. If it doesn't throw an error, then what does it do? Only GRBL devs know, but it almost certainly won't drill a hole. At worst, it'll move to the XYZ location of the G81, which is the bottom of the hole, thereby driving your drill bit sideways at rapids speed into your work, breaking it and making a wonderful scratch.

I'll let someone else address the speeds and feeds being higher than you're using for reasons you don't understand.

babyeatingpsychopath fucked around with this message at 08:25 on Jun 9, 2021

Some Pinko Commie
Jun 9, 2009

CNC! Easy as 1️⃣2️⃣3️⃣!
Your CAM software controls what values output for things like safe retraction points/etc. (otherwise there would be no point in making sure you define those values in your toolpath dialogs in the CAM software). As an aside, I always make sure the NC tab on any Toolpath in Solidworks CAM/CAMworks is set to "Top of Stock" for the reference for all retraction plane data (there are options for "Top of Feature" and "Last Cut" depths that might be useful in very narrow application ranges but will always result in a crash if your features are ever below the top of your stock definition).

The M3AxisTutorial post processor just outputs your basic (and I do mean basic) G/M-codes with X/Y/Z and S/F/etc. values where appropriate and doesn't do any special flavor stuff like specifying lookahead values (for machines that support it) or any definition values (for the machines that don't store that information in firmware by default) for things like acceleration/jerk/etc.

It's also pretty much based on the FANUC standard G & M-code list, which is the same as about 99% of all milling machines and lathes out there built after February 1980. You know, RS-274-D (the standard code table used by every manufacturer of CNC controllers on the planet, copied and renamed to ISO or DIN or whatever, but the actual codes are the same).

Things like how many significant digits to use for spindle speeds and feedrates are things that are machine-dependent and you can compensate for a post-processor outputting "wrong" values by editing your post processor in most cases (or you can just subtract however many significant digits from the spindle speed and feedrate yourself to get the values you actually want in code (just move your decimal point accordingly).

The only time this differs is if you get a machine that doesn't have a particular feature-set enabled because the software front end wasn't developed to take advantage of it for the operator, or the machine lacks the hardware a specific code would reference so calling it up will just cause the machine to stop and wait for input/error out of the program and require re-homing to a safe position.

Like, not having a tool library definition in the machine because there is no tool carousel or tool holder setup with probing tools to take advantage of--a poorly configured machine setup will misread cutter comp code such that the value after the letter D will be interpreted as the actual diameter of the tool rather than the tool number reference. This can be compensated for in your post-processor definitions, assuming you have access to editing software for the post processor--something CAMWorks won't share with the end user because creating and editing post-processors is their bread-and-butter unless you want to try your hand at configuring a post from scratch with their post processor generator software--but it's the kind of thing to watch out for when using generic post-processors.

If you want to try your hand at making your own machine-specific post-processor you can download the "Universal Post Generator" here: https://camworks.com/universal-post-generator/

But good luck doing that because CAMWorks VAR are basically "You can do that at your own risk, we aren't supporting the end user who chooses to play with that" (same policy they take about modifying the Setup Sheets to do what you might want to do).

Some Pinko Commie fucked around with this message at 12:44 on Jun 9, 2021

NewFatMike
Jun 11, 2015

FWIW, the UPG and EC Editor are what we use on the VAR side. I'm not sure if CAMworks train folks on it (I sure haven't been offered any training from them).

I shouldn't have responded to the post right at bedtime, I thought it was in a much better place.

Test new code, post processors, etc. with stock and tools you won't mind losing :v:

Some Pinko Commie
Jun 9, 2009

CNC! Easy as 1️⃣2️⃣3️⃣!

NewFatMike posted:

FWIW, the UPG and EC Editor are what we use on the VAR side. I'm not sure if CAMworks train folks on it (I sure haven't been offered any training from them).

I shouldn't have responded to the post right at bedtime, I thought it was in a much better place.

Test new code, post processors, etc. with stock and tools you won't mind losing :v:

Of course.

I'm just aggravated because we no longer have support for the post-processors (purchased while I was out of work on a medical thing and the support period expired during that time) and I'd like to make some changes to them, but they refuse to share the source files with me so I'm not starting from scratch.

I got the setup sheets to work halfway like I want them to, but it took some deep diving into the XML output in Solidworks files (and some time invested into teaching myself how to format XML and XMLT files) to figure out the different variable names for things I want to show on the setup sheet and then format everything to display/print properly.

Dominoes
Sep 20, 2007

NewFatMike posted:

If M3AXIS Tutorial works, that whips. I'll have to see how it handles canned cycles because I don't think any of those are supported by GRBL.

Definitely check it out, and I'd love to hear a trip report!

E: Candle works, as does universal GCode sender IIRC. It's just a motion controller software.
I'll give it a shot this weekend - if the initial run doesn't work, (And I can't do better with a custom post-processor), I can always post-process the post-process, either by adjusting the generated G-code manually, or programmatically. (Eg to remove the tool changing and coolant use)


babyeatingpsychopath posted:

You have fundamentally misunderstood my post about what a post-processor is.

Solidworks creates its own toolpaths in machine agnostic format. This is its CAM process. It then post-processes its intermediate files into e.g. GRBL gcode.

So there isn't an additional piece of software after it comes out of solidworks.

Just because the .nc appears to be gcode "like the files" you've been making, doesn't mean that every machine-agnostic instruction will be translated properly by the "M3AXIS-TUTORIAL" post-processor into stuff that GRBL understands. If this happens, then the best possible thing that can happen is nothing. A much more likely thing to happen is a powered milling move into something you don't want milled. A surprisingly common thing is a full-speed move back to a home position while at maximum depth with the spindle spinning. If you're lucky, you stall out the machine. Not lucky and you break a tool. Unlucky and you break the machine.

So yes. It is moderately to very important to use the correct postprocessor for the specific gcode flavor your machine speaks.
edit: How about an example. Say you want to drill a hole. You tell SolidWorks that you've got a 1/8" drill bit, and please drill a hole at some place. There's a distinct possibility that the "M3AXIS-TUTORIAL" processor will output a G81 Canned Drill Cycle (or G83 deep drill with chip breaking). GRBL doesn't know what a G81 means, so it (hopefully) throws an error. If it doesn't throw an error, then what does it do? Only GRBL devs know, but it almost certainly won't drill a hole. At worst, it'll move to the XYZ location of the G81, which is the bottom of the hole, thereby driving your drill bit sideways at rapids speed into your work, breaking it and making a wonderful scratch.

I'll let someone else address the speeds and feeds being higher than you're using for reasons you don't understand.
You're right -looks like I did! I was expecting something that didn't look like G-code! (And confused the $ characters in your example as dialect-specific G-code with something GRBL uses at a lower-level than G-code). I see where things could go wrong with the wrong dialect, and the decisions the interpreter must make when hitting an unfamiliar or ambiguous command. This is going to take some research and experimentation. With the materials and equipment I'm working with, I'm willing to destroy things working this out, as long as I don't injure anyone. I assume the speeds and feeds issue is related to the assumptions from the template mill I selected, ie I never specified it in the config. (Although not yet sure where; if I can't figure it out, see my comment above about post-post-processing as a quick+dirty step)


biracial bear for uncut posted:

Your CAM software controls what values output for things like safe retraction points/etc. (otherwise there would be no point in making sure you define those values in your toolpath dialogs in the CAM software). As an aside, I always make sure the NC tab on any Toolpath in Solidworks CAM/CAMworks is set to "Top of Stock" for the reference for all retraction plane data (there are options for "Top of Feature" and "Last Cut" depths that might be useful in very narrow application ranges but will always result in a crash if your features are ever below the top of your stock definition).

The M3AxisTutorial post processor just outputs your basic (and I do mean basic) G/M-codes with X/Y/Z and S/F/etc. values where appropriate and doesn't do any special flavor stuff like specifying lookahead values (for machines that support it) or any definition values (for the machines that don't store that information in firmware by default) for things like acceleration/jerk/etc.

It's also pretty much based on the FANUC standard G & M-code list, which is the same as about 99% of all milling machines and lathes out there built after February 1980. You know, RS-274-D (the standard code table used by every manufacturer of CNC controllers on the planet, copied and renamed to ISO or DIN or whatever, but the actual codes are the same).

Things like how many significant digits to use for spindle speeds and feedrates are things that are machine-dependent and you can compensate for a post-processor outputting "wrong" values by editing your post processor in most cases (or you can just subtract however many significant digits from the spindle speed and feedrate yourself to get the values you actually want in code (just move your decimal point accordingly).

The only time this differs is if you get a machine that doesn't have a particular feature-set enabled because the software front end wasn't developed to take advantage of it for the operator, or the machine lacks the hardware a specific code would reference so calling it up will just cause the machine to stop and wait for input/error out of the program and require re-homing to a safe position.

Like, not having a tool library definition in the machine because there is no tool carousel or tool holder setup with probing tools to take advantage of--a poorly configured machine setup will misread cutter comp code such that the value after the letter D will be interpreted as the actual diameter of the tool rather than the tool number reference. This can be compensated for in your post-processor definitions, assuming you have access to editing software for the post processor--something CAMWorks won't share with the end user because creating and editing post-processors is their bread-and-butter unless you want to try your hand at configuring a post from scratch with their post processor generator software--but it's the kind of thing to watch out for when using generic post-processors.

If you want to try your hand at making your own machine-specific post-processor you can download the "Universal Post Generator" here: https://camworks.com/universal-post-generator/

But good luck doing that because CAMWorks VAR are basically "You can do that at your own risk, we aren't supporting the end user who chooses to play with that" (same policy they take about modifying the Setup Sheets to do what you might want to do).
Thank you for all that detailed information! Setting the "Top of Stock". There are a number of areas on the SW cam tab (And UPG) that I may need to come back to after things don't work out right! They'll hopefully start to make more sense, and I'll get a sense of what options are available, and where to find them. SW has decent help topics for each window too, with some parts being more foreign than others. Thanks for the tip on UPG! As I alluded to above, I started experimenting after reading your post. Tried starting with a FANUC 3-axis template, and removing coolant and bit changing. Compiled and imported to SW. Still getting M08, M06, and T01 in the resulting output, but I haven't yet done a QC as to why. I'll watch out for sig digits too! Does this mean that "10000" could mean either 10,000 RPM, or 1,000.0 RPM depending on machine? I was surprised since starting CNC that the commands in Candle the the g-code I sent was apparently unitless, and realized there are implied units of mm for distance, RPM for spindle speed etc.

I'm hoping I don't run into the adverse reactions you describe! If it looks like the software or machine ignore bogus commands, I'll make a decision of removing them, or letting them be.


NewFatMike posted:

Test new code, post processors, etc. with stock and tools you won't mind losing :v:
Going to take that risk, since this meets the criteria!

Thanks so much dudes! I'll keep you posted.

Some Pinko Commie
Jun 9, 2009

CNC! Easy as 1️⃣2️⃣3️⃣!
Where I work there are two FANUC machines with nominally the same controller hardware, but with two key differences regarding spindle speed and feedrates.

The one machine requires a code output with two zeroes beyond your intended whole number RPM target. So 17,000RPM would be output as "S1700000". 17,500 would be S1750000, etc.

The other machine takes whatever value is supplied in the code and multiplies is by 1,000. So 17,000RPM would just be "S17". 17,500RPM would be "S17.5", etc.

Feed rates in inches per minute work the same way for the first machine. A feedrate of 200 inches-per-minute would be "F20000", 260 inches per minute would be "F25000", etc.

On the second machine, 200 inches per minute is "F200.", 250 inches per minute is "F250.", etc.

Note the decimal points when present, because they are important.

For your examples, T01 and M06 tell the machine to check what tool is currently present and change tools if the current tool doesn't match the callout.

So if "Tool #1" isn't defined, or that machine isn't set up to use a tool changer, the machine will ignore both codes.

M08 means "turn on flood coolant", so if your machine isn't set up for that it will do nothing.

A bad machine firmware setup that has the option for coolant enabled, but lacks the hardware, will throw out errors and halt the program.

Dominoes
Sep 20, 2007

That's hilarious re the settings! (Though, I speculate you harbored no feelings of amusement when discovering this). I hope this equipment will ignore the T06, M06, and M08 commands rather than do something undefined. We'll see!

Perhaps the designers of this machine decided that M06 means "Ops test maximum spindle and feed speeds across the entire range of motion, bottom-first"

Dominoes fucked around with this message at 02:05 on Jun 10, 2021

babyeatingpsychopath
Oct 28, 2000
Forum Veteran


Dominoes posted:

That's hilarious re the settings! (Though, I speculate you harbored no feelings of amusement when discovering this). I hope this equipment will ignore the T06, M06, and M08 commands rather than do something undefined. We'll see!

Perhaps the designers of this machine decided that M06 means "Ops test maximum spindle and feed speeds across the entire range of motion, bottom-first"

I have a GRBL 3018. I keep M06/M08 in as a final "sanity check" that everything is going fine, and maybe to turn on the vacuum. GRBL spits out an "unknown command" warning which candle catches and lets you bypass. Since GRBL doesn't understand whatever M-code "pause and wait for a continue" is, M06 or Txx works well for that.

I also have a tool library in Fusion with the actual tools I own; the fusion # is written on the box/location the tool is in. When I see the "unkown command T201 ; quarter-inch 3-flute endmill" I look over and verify that the only empty slot in the tool holder rack is #201.

Some Pinko Commie
Jun 9, 2009

CNC! Easy as 1️⃣2️⃣3️⃣!

babyeatingpsychopath posted:

I have a GRBL 3018. I keep M06/M08 in as a final "sanity check" that everything is going fine, and maybe to turn on the vacuum. GRBL spits out an "unknown command" warning which candle catches and lets you bypass. Since GRBL doesn't understand whatever M-code "pause and wait for a continue" is, M06 or Txx works well for that.

I also have a tool library in Fusion with the actual tools I own; the fusion # is written on the box/location the tool is in. When I see the "unkown command T201 ; quarter-inch 3-flute endmill" I look over and verify that the only empty slot in the tool holder rack is #201.

That would be M01 (literally coded as "optional stop") where the machine will stop and wait for the operator to hit cycle start again (unless some lunatic disables that option at the controller).

Sedgr
Sep 16, 2007

Neat!

Looks a bit more like an actual machine now :)



Went together very easy. A handful of bolts and screws basically. They recommend a specific order to ensure alignment. Seems to have worked.

Probably not its permanent home, but I wanted to get it put together to make sure everything works properly. Got a little cable management to do, but nothing unexpected.

Turned it on, booted up, homed it no problem.

Now I'm crippled with choice paralysis as I start trying to pick which of the projects I have in mind to start on. Going to start with a few basic test cuts but I should be able to do something this weekend with it.

Dominoes
Sep 20, 2007

Tested the default-ish SolidWorks post-processing with Candle and the 3018 pro. Works fine after I change the spindle speed line in the resulting file to S1000 instead of S10000; I get an error I can ignore in Candle about the unsupported commands.

NewFatMike
Jun 11, 2015

Is that the M3AXIS TUTORIAL one?

babyeatingpsychopath
Oct 28, 2000
Forum Veteran


Dominoes posted:

Tested the default-ish SolidWorks post-processing with Candle and the 3018 pro. Works fine after I change the spindle speed line in the resulting file to S1000 instead of S10000; I get an error I can ignore in Candle about the unsupported commands.

If you ever try to calculate the correct feed and speed for that 3018, be mindful that you have to run the spindle at 100% all the time, because if you PWM it below about 90% it loses all of its torque and stalls.

Do a lot of air cuts to make sure the machine is doing the things you expect it to.

The Atomic Man-Boy
Jul 23, 2007

So I'm interested in getting into CNC machining. Pobably staring with a normal desk sized 3 axis, but possibly with an eye toward adding extra axes. So my question is: how do you typically go about expanding the use of a machine to 4th or 5th axis. Do you install them into the gantry? Or add them to the table like this?

Dominoes
Sep 20, 2007

NewFatMike posted:

Is that the M3AXIS TUTORIAL one?
Yes, slightly-modified to disable the coolant and tools, although these changes didn't seem to have an effect. I'm now trying to make it work to replace the python script, where I cut out holes of varying shapes on the top of an ABS enclosure. It's trying to cut out ~2-3mm outside each hole, but I can probably change this with the "2.5 Axis Feature" setting. Boss is the one that cuts a chunk around where the hole is, and Pocket, Corner Slot, and Slot obliterate the entire interior of each whole. Open Profile cuts only only some of the edges.

edit: Solved - "Curve" is the right feature type.

babyeatingpsychopath posted:

If you ever try to calculate the correct feed and speed for that 3018, be mindful that you have to run the spindle at 100% all the time, because if you PWM it below about 90% it loses all of its torque and stalls.

Do a lot of air cuts to make sure the machine is doing the things you expect it to.
Thanks for letting me know! Going to leave it at 1K for everything then. I tried an air cut for the last run actually; zeroed to my origin, but higher by a few mm. Both it and the SW simulate should have told me what I needed to know, ie the cut it was doing wasn't quite what I was looking for.

Dominoes fucked around with this message at 15:11 on Jun 13, 2021

CarForumPoster
Jun 26, 2013

⚡POWER⚡

The Atomic Man-Boy posted:

So I'm interested in getting into CNC machining. Pobably staring with a normal desk sized 3 axis, but possibly with an eye toward adding extra axes. So my question is: how do you typically go about expanding the use of a machine to 4th or 5th axis. Do you install them into the gantry? Or add them to the table like this?

Machine axes configuration beyond the normal 3 axis milling setup depends on what you'll be machining and the intended uses of your machine. Things get much more complicated when you add 4th and 5 axes tool paths. Most people don't add a 4th or 5th axis ever. You're getting way ahead of yourself, spend some time making parts first. This question would be like saying "I'm thinking about buying my first car so I can learn to change oil, how do typically install fuel injection on a carbureted car?"

Some Pinko Commie
Jun 9, 2009

CNC! Easy as 1️⃣2️⃣3️⃣!
Always make sure your NC output is set correctly on the NC tab on the Toolpath options.

I always go with "Cutter Comp Off" and whatever the wording is for "Output Code with Toolpath Centering" or whatever.

If your cuts are coming out big then the cutter comp codes are on but your machine has incorrect values for tool diameters.

And you may want to read this for a better understanding of the different operation types.

https://www.goengineer.com/blog/camworks-milling-features-and-allowable-operations

Some Pinko Commie fucked around with this message at 15:26 on Jun 13, 2021

Dominoes
Sep 20, 2007

Thank you very much! That link is perfect; bookmarked; went from confused to "it makes sense". It implies "pocket" is what I'm looking for. It might be that Curve wasn't the trick, but it wouldn't generate an ops plan, forcing me to select "Contour mill", so maybe those issues where due to not using the right operation.

Here's the latest using SolidWorks:


Compared to the script, the cuts are cleaner.

Of note, there are several issues. I think at least some of them are due to post-processing:

- I set the origin to the surface, bottom-left corner. When it goes to make the first move, it drags along the surface instead of going up some. If I can't work around this in solidworks, I could add a line at the start of the G-code manually to have it lift first.

-It's not doing the circles right. Candle's throwing out Error 34 for "Invalid arc radius". I haven't yet dove in to see what's up exactly.

- Near the end, it drives into the plastic (Left of the slot in pic) and jams. This isn't present in the SW or Candle simulations. Probably also a post-processing issue. Can narrow down the line where this happens with an air cut.

edit: Confirmed the key to the type of cuts I'm doing is "Contour mill" operations, and from bbfu's list, Pocket is the feature type. Got it to sim correctly in SW using this.

Dominoes fucked around with this message at 15:57 on Jun 13, 2021

babyeatingpsychopath
Oct 28, 2000
Forum Veteran


Dominoes posted:

Of note, there are several issues. I think at least some of them are due to post-processing:

- I set the origin to the surface, bottom-left corner. When it goes to make the first move, it drags along the surface instead of going up some. If I can't work around this in solidworks, I could add a line at the start of the G-code manually to have it lift first.

I'm begging you. Stop thinking that the output GCODE is something you should be editing by hand, ever. GRBL is a robust and well-supported output target for modern CAM packages. There should be literally no reason to ever open the .nc file in an editor to edit anything by hand, ever. The ability exists (as evidenced by the thousands of people who AREN'T editing their .nc files) to get your workflow set up properly so that the software and hardware are speaking the same language.

GET YOUR POST PROCESSOR SET UP PROPERLY. Understand what it's doing. If you can't find the actual correct post-processor for GRBL in whatever CAM package SolidWorks is using, then find a different CAM package where there is a post processor speaking your exact GCODE language. The Shapeoko family of CNC routers uses GRBL; GRBL is a very robustly-supported output target. There is no reason not to set up your workflow properly RIGHT NOW so you're not embedding bad habits into your CUTTING MACHINE routine.

Every time you say "the machine does x and I don't know why" is an opportunity to learn why. Is it something you're doing wrong in the toolpath setup (clearance heights, feed heights, safe retract height, etc) or is it something going wrong in the CAM -> GCODE translation? If you don't know, figure it out. When you do the toolpath simulation in SolidWorks, does it show the tool moving up and away from the material after moving to touch the surface when setting the origin? If not, why not? Should it be? Where does the simulation start the toolhead compared to where YOU start the toolhead when actually running the program?

"Ooh the tool jams in the slot and drives away" would have already broken a tool and slung carbide shards around the shop if you had been working with a machine with actual power when cutting metal. Please please please stop thinking you can band-aid half-rear end solutions with hand-coding "fixes" when dealing with sharp spinning metal and actual stuff that can cause real physical damage.

NewFatMike
Jun 11, 2015

Dominoes posted:

Yes, slightly-modified to disable the coolant and tools, although these changes didn't seem to have an effect.

Good to know! The way the Universal Post Generator works is that you start with a template and modify from there, and the M3AXIS one is an available options. I'll be working on it, but if you're inclined to poke around in the UPG, it's a starting point.

Check your post settings, because you can disable coolant in the UI.

If you right click a setup in the operation tree, select "Post Operation", you can insert an M01 break, and you can use that as an opportunity to change and re-zero tools if you're doing multiple tool programs.

babyeatingpsychopath
Oct 28, 2000
Forum Veteran


https://nraynaud.github.io/webgcode/

Found this neat thing. It really points out where the origin is and what moves are happening in what mode.

I was looking at my old code, and there aren't any positioning moves before the cutting starts. It looks like this:
code:
G21 ; units=mm
G90 ; absolute positioning
G94 ; feedrates in mm/min
F500.00 ; feed 500
G00 Z3.00 ; move to z+3
G00 X3.3544Y9.4910 ; initial position for cut
G4 P1 ; pause
M03 ; spindle on
G1 moves....
My newer code starts with:
code:
(T201  D=6.35 CR=0 - ZMIN=-13.7 - flat end mill)
G90 ;absolute positioning mode
G17 ;select XY plane
G21 ;units=mm
G28 G91 Z0 ; go home, relative position, in the Z axis first.
G90 ; absolute positioning
T201 ; tool #201 (throws a warning in Candle.  Lets me verify the correct tool is loaded)
S5000 M3 ; spindle speed max and turned on.
G56 ; work coordinate system #3
M8 ; Coolant on (throws a warning in Candle; remind me to turn the vacuum on)
G0 X-1.521 Y2.159 ; move to initial position for cut at rapids
Z3 ; move to Z=3
G1 moves....
The new stuff is all about getting the machine in a known position before just driving around all crazy. I had forgotten that every single one of my routines homes the machine as its first step, but selects all the correct G-code modals so that "G0 Z0" doesn't go anywhere unexpected. The homing routine is movement-safe and guaranteed not to have the spindle rotating. It then selects the work coordinate system and moves in that workspace. The old code had a G0Z3 right at the top. If the machine is in some weird coordinate system then Z3 could be anywhere on the axis, even underneath the work surface. The first thing that program would do is attempt a max-rapids move to that point with no warning.

The first code was output with a python script plugin for Inkscape to cut flat shapes. The second code was created by Fusion360, an actual CAM package. The assumptions each package makes about where the machine starts is illustrative.

CarForumPoster
Jun 26, 2013

⚡POWER⚡

babyeatingpsychopath posted:

I'm begging you. Stop thinking that the output GCODE is something you should be editing by hand, ever.

This. Its important for your rapid prototyping speed, production processes and safety you get things right in your CAM setup such that you can be confident the output works as is. If you arent it will eventually lead to a big screw up, sometimes a dangerous one. (Learned this the hard way.)

Some Pinko Commie
Jun 9, 2009

CNC! Easy as 1️⃣2️⃣3️⃣!
Literally five seconds on Google and it looks like somebody else already solved this.

http://www.restrictedayerspace.net/cnc/grbl-postprocessor-for-solidworks/

They even share their source files for the Universal Post Generator if you want to backtrack and make further customizations.

The error in putting an asterisk at the start of comment lines that they mention can be solved with in a text editor with a simple Find-Replace command to replace * with a blank space (or just look through all of the places you can put comments in SolidCAM to make sure there isn't a stray asterisk somewhere).

Some Pinko Commie fucked around with this message at 13:00 on Jun 14, 2021

Some Pinko Commie
Jun 9, 2009

CNC! Easy as 1️⃣2️⃣3️⃣!
It is also worth pointing out that everybody using SolidCAM/CAMWorks really needs to read the TechDB tutorials and learn how to go into it and customize it so that they don't keep having to make so many manual changes for safety-related things (NC retraction planes always being some distance above Top of Stock, etc.)

Dominoes
Sep 20, 2007

Thank you for the info and words of wisdom! I'm looking forward to going through that GRBL post processor, applying the new wisdom re coolant, tools etc, and see if I can get SW + the post-processor to make files that work directly (or almost work directly). Regrettably, I will be AFCNC until this evening or tomorrow.

I've done some setup of tools and CNC machine in the Tech DB, but have a lot of work to do and experimentation to go there.

Some Pinko Commie
Jun 9, 2009

CNC! Easy as 1️⃣2️⃣3️⃣!

Dominoes posted:

Thank you for the info and words of wisdom! I'm looking forward to going through that GRBL post processor, applying the new wisdom re coolant, tools etc, and see if I can get SW + the post-processor to make files that work directly (or almost work directly). Regrettably, I will be AFCNC until this evening or tomorrow.

I've done some setup of tools and CNC machine in the Tech DB, but have a lot of work to do and experimentation to go there.

Did a bit more digging trying to find a post-processor for my hilarious toy machine (CNC Shark HD4) and found a GRBL post-processor for Solidworks CAM here:

https://hawkridgesys.com/products/cam/post-processors/carbide-3d-shapeoko

You end up signing up for some spam email in exchange for the post-processor, but that's a small price to pay since you can blacklist the sender once you get the post.

NewFatMike
Jun 11, 2015

Let me know how that works - IIRC I couldn't get it working on non carbide machines using UGS. There has been a lot of drugs and alcohol between then and now, though 🤔

Dominoes
Sep 20, 2007

Awesome - going to try both.

Adbot
ADBOT LOVES YOU

Dominoes
Sep 20, 2007

Ayer GRBL postprocessor - works great! Had to remove one * line near the beginning, as mentioned.



Going to make a few more of these, then try aluminum.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply