Step by Step guide to creating GCode for the Maslow with FreeCAD

Yet another improvement has been made to the prerelease .0.19 FreeCad Path (CAM) workbench.

So much has changed in .19 release, perhaps some brave soul could do a refresh on the topic in the wiki category of this forum, where it could be updated by the community.

2 Likes

Hey All,

I’ve been using FreeCAD for 3D printing for awhile now, so I’m familiar with the modeling portions of program, and most of the Maslow related videos about FreeCAD seem to still do a good enough job with that, however, once you get into the jobs, paths, and tools portions of the up to date versions of the program, a lot has changed since 2018. Are there any breakdown videos showing how to do this with current gen FreeCAD?

1 Like

Following. New PC doesn’t crash with freecad like the old one, so I’m interested in learning to use it as well.

1 Like

The current release is 20.2 and the development version .21 is soon to go into feature freeze and should be released in coming months. I have been mostly using the development version without issue. Sliptonic’s YouTube video’s are probably still the best place to start. He is one of the developers of FreeCad and has started a company that funds development of FreeCad (https://ondsel.com/).

This video where he collaborated with Free Cad Academy and goes through the process of generating g-code and shows how he sets up his mill to cut out the part working through several issues maybe helpful,

The GRBL post processor output works on my Maslow without any issue.

1 Like

The tutorials as printed leave a bit to be desired, due to the drift in the version of FreeCAD. Im using FreeCAD 0.20.2 (as of April, 30, 2023). Also, there are some steps in the tutorials that seem to be left out.

The videos… I’m not a “videos” guy. I see the value in some of what Sliptronic posts, but if I need to go back and reference something, I’m going to have a hard time deciphering which video has the nugget of information needed to get me over my hurdle. Also, the mandatory commercials in youtube make finding the right video even more infuriating. I’m still a “read the documentation” guy.

I ran into an issue with tag generation, maybe due to my own assumptions. I thought that I could add multiple objects to a job, and it allows you to do so, but when attempting to automate dressup tags, the program seems to fail to do so. Solution for now? Make a job for each piece.

Single biggest issue trying to follow the established documentation? Export. The tutorials go about saying… more or less… “just select export from the file menu and select the right export format”. This no longer correct and leaves you in the dark how to output your piece.

Your job needs to use the ‘grbl’ post-processor to export gcode. This is configured on the “Output” heading with your job selected, or the Output tab in the “job edit” menu. If you are starting from scratch and aren’t using a job template, you need to manually set this, yourself. Also, it doesn’t seem “Export” from the file menu has the correct option. You must be in the “path” workbench and you must select Path → Post Process from the top menu, or select the “Post Process” button to get a gcode export.

1 Like

I thought I had it, but the drilling code isn’t actually drilling, it’s just moving the machine around to the various points. I figured a little cribbage board would be a nice start.

When I run this in the freecad simulator, the holes just ‘appear’ but the head doesn’t seem to move up and down, and when I ran it on the maslow it didn’t drill at all just moved around the paths.

I have the “peck” operation selected for the drilling job, with a peck amount of 2.38mm
I want 5mm deep holes so my final depth for 3/4" is 14mm

The profile path that I’ve also created looks fine, but this drilling one doesn’t work. Using
Freecad 0.21.1, Windows 10 64bit.

(Exported by FreeCAD)
(Post Processor: grbl_post)
(Output Time:2023-09-27 11:03:41.359945)
(Begin preamble)
G17 G90
G21
(Begin operation: Fixture)
(Path: Fixture)
G54
(Finish operation: Fixture)
(Begin operation: 1_8th_double_flute_upcut001)
(Path: 1_8th_double_flute_upcut001)
(1_8th_double_flute_upcut001)
(Begin toolchange)
( M6 T1 )
M3 S18000
(Finish operation: 1_8th_double_flute_upcut001)
(Begin operation: Drilling)
(Path: Drilling)
(Drilling)
(Begin Drilling)
G0 Z24.050
G90
G98
G0 X6.000 Y0.000
G83 X6.000 Y0.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-4.000
G83 X6.000 Y-4.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-8.000
G83 X6.000 Y-8.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-12.000
G83 X6.000 Y-12.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-16.000
G83 X6.000 Y-16.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-16.000
G83 X10.500 Y-16.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-12.000
G83 X10.500 Y-12.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-8.000
G83 X10.500 Y-8.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-4.000
G83 X10.500 Y-4.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y0.000
G83 X10.500 Y0.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y6.000
G83 X10.500 Y6.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y6.000
G83 X6.000 Y6.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y10.000
G83 X6.000 Y10.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y14.000
G83 X6.000 Y14.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y18.000
G83 X6.000 Y18.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y22.000
G83 X6.000 Y22.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y22.000
G83 X10.500 Y22.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y18.000
G83 X10.500 Y18.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y14.000
G83 X10.500 Y14.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y10.000
G83 X10.500 Y10.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y10.000
G83 X-6.000 Y10.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y6.000
G83 X-6.000 Y6.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y6.000
G83 X-10.500 Y6.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y10.000
G83 X-10.500 Y10.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y14.000
G83 X-10.500 Y14.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y14.000
G83 X-6.000 Y14.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y18.000
G83 X-6.000 Y18.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y22.000
G83 X-6.000 Y22.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y22.000
G83 X-10.500 Y22.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y18.000
G83 X-10.500 Y18.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y28.000
G83 X-10.500 Y28.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y28.000
G83 X-6.000 Y28.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y32.000
G83 X-6.000 Y32.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y36.000
G83 X-6.000 Y36.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y40.000
G83 X-6.000 Y40.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y44.000
G83 X-6.000 Y44.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y44.000
G83 X-10.500 Y44.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y40.000
G83 X-10.500 Y40.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y36.000
G83 X-10.500 Y36.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y32.000
G83 X-10.500 Y32.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y32.000
G83 X6.000 Y32.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y36.000
G83 X6.000 Y36.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y40.000
G83 X6.000 Y40.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y44.000
G83 X6.000 Y44.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y44.000
G83 X10.500 Y44.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y40.000
G83 X10.500 Y40.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y36.000
G83 X10.500 Y36.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y32.000
G83 X10.500 Y32.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y28.000
G83 X10.500 Y28.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y28.000
G83 X6.000 Y28.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y50.000
G83 X6.000 Y50.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y54.000
G83 X6.000 Y54.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y58.000
G83 X6.000 Y58.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y62.000
G83 X6.000 Y62.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y66.000
G83 X6.000 Y66.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y66.000
G83 X10.500 Y66.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y62.000
G83 X10.500 Y62.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y58.000
G83 X10.500 Y58.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y54.000
G83 X10.500 Y54.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y50.000
G83 X10.500 Y50.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y50.000
G83 X-6.000 Y50.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y54.000
G83 X-6.000 Y54.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y58.000
G83 X-6.000 Y58.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y62.000
G83 X-6.000 Y62.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y66.000
G83 X-6.000 Y66.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y66.000
G83 X-10.500 Y66.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y62.000
G83 X-10.500 Y62.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y58.000
G83 X-10.500 Y58.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y54.000
G83 X-10.500 Y54.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y50.000
G83 X-10.500 Y50.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y0.000
G83 X-10.500 Y0.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y0.000
G83 X-6.000 Y0.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-4.000
G83 X-6.000 Y-4.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-8.000
G83 X-6.000 Y-8.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-12.000
G83 X-6.000 Y-12.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-16.000
G83 X-6.000 Y-16.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-16.000
G83 X-10.500 Y-16.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-12.000
G83 X-10.500 Y-12.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-8.000
G83 X-10.500 Y-8.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-4.000
G83 X-10.500 Y-4.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-22.000
G83 X-10.500 Y-22.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-22.000
G83 X-6.000 Y-22.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-26.000
G83 X-6.000 Y-26.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-30.000
G83 X-6.000 Y-30.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-34.000
G83 X-6.000 Y-34.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-38.000
G83 X-6.000 Y-38.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-38.000
G83 X-10.500 Y-38.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-34.000
G83 X-10.500 Y-34.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-30.000
G83 X-10.500 Y-30.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-26.000
G83 X-10.500 Y-26.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-26.000
G83 X6.000 Y-26.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-30.000
G83 X6.000 Y-30.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-34.000
G83 X6.000 Y-34.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-38.000
G83 X6.000 Y-38.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-38.000
G83 X10.500 Y-38.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-34.000
G83 X10.500 Y-34.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-30.000
G83 X10.500 Y-30.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-26.000
G83 X10.500 Y-26.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-22.000
G83 X10.500 Y-22.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-22.000
G83 X6.000 Y-22.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-44.000
G83 X6.000 Y-44.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-48.000
G83 X6.000 Y-48.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-52.000
G83 X6.000 Y-52.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-56.000
G83 X6.000 Y-56.000 Z14.050 F800.000 Q2.381 R23.050
G0 X6.000 Y-60.000
G83 X6.000 Y-60.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-60.000
G83 X10.500 Y-60.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-56.000
G83 X10.500 Y-56.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-52.000
G83 X10.500 Y-52.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-48.000
G83 X10.500 Y-48.000 Z14.050 F800.000 Q2.381 R23.050
G0 X10.500 Y-44.000
G83 X10.500 Y-44.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-44.000
G83 X-6.000 Y-44.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-48.000
G83 X-6.000 Y-48.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-52.000
G83 X-6.000 Y-52.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-56.000
G83 X-6.000 Y-56.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-60.000
G83 X-6.000 Y-60.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-60.000
G83 X-10.500 Y-60.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-56.000
G83 X-10.500 Y-56.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-52.000
G83 X-10.500 Y-52.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-48.000
G83 X-10.500 Y-48.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-44.000
G83 X-10.500 Y-44.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-10.500 Y-66.000
G83 X-10.500 Y-66.000 Z14.050 F800.000 Q2.381 R23.050
G0 X-6.000 Y-66.000
G83 X-6.000 Y-66.000 Z14.050 F800.000 Q2.381 R23.050
G0 X8.250 Y-66.000
G83 X8.250 Y-66.000 Z14.050 F800.000 Q2.381 R23.050
G80
G0 Z22.050
G0 Z24.050
(Finish operation: Drilling)
(Begin postamble)
M5
G17 G90
M2

Edited to add that I tried without the peck operation too, but then even in the simulator it didn’t work just moved around, the holes weren’t even pretend drilled.

Looks wrong - it should be a negative number. However, just to confuse matters the Q value does look correct, it has to be a number greater than zero, even though it represents the height of each individual ‘peck’ while drilling down.

Try a search and replace of Z14.050 with Z-14.05

I don’t think Maslow supports G83.

it doesn’t support G54 either.

Here is what it supports:

So, I did manage to figure it out and make it work, but it’s sub-optimal:

as @md8n pointed out, this was the big “ah hah” moment for me as I re-read this post (yay rubberducky debugging), I noticed that the paths were all positive numbers.
So I went in and manually set the depths for the drill and perimeter… and the drilling still didn’t work quite right.

The issue was probably linked to @ame and @Orob’s points about incompatibility that was accidentally fixed by the forum post I found on the freecad forums, but I can’t find the link for.

It pointed out that adding the additional parameter:

--translate_drill

Changes the G83 and other less generally compatible grbl gcode to more “normal” z-step gcode.

So I managed to drill and cut out a cribbage board

But now I’m curious how to setup FreeCad to be happy with, and properly simulate, negative cut depths, and what “Work Coordinate System” I should be choosing, if any?

G54, G55, G56, G57, G58, G59, G59.1, G59.2, G59.3, G59.4, G59.5, G59.6, G59.7, G59.8, G59.9

It feels so fantastic to be able to get something working who, even if it’s a manual pain in the butt right now. Got the board on my bench. :slight_smile:

Thanks for the help so far everyone!

OH, PS: For drilling into plywood, pecking doesn’t seem to be necessary, at least for depths near 5mm. And using pecking makes it So Slow, OMG.

3 Likes

If you wanna be pedantic then use G54 as it is the default (and ignore the rest). They’re really about if you’re using some kind of ‘Canned Cycle’ action, such as ‘peck’ drilling. ‘Canned Cycle’, i.e. some kind of sub-routine.

And the original NIST spec stops at G59.3, but that’s never stopped anyone before …

1 Like

the maslo doesn’t recognize any of the work coordinate systems, but should
ignore anything you put in.

it really is a primitive system, initially it didn’t even handle circles.

David Lang

1 Like

Yes, this is what happens, it just complains about not understanding and then moves on.

Oh, Edited to Add: I’ve managed to make FreeCad happy by building the parts in the Part Design workspace, so the “sketch then pad” method, then padding down instead of up. This seems to be working perfectly, and once I realised it could do that, it made much more sense.

For instant gCode generation of non-complex / 2.5D step files try out https://www.step2gcode.com/ (outer contour, inner contours, pockets and chamfer)

3 Likes

This looks really cool.

Did you make it?

Yes it’s a project of me, thank you!
It is still in an early stage and I am discovering new bugs almost daily. I am very thankful for critical user feedback to get it better!

1 Like

It’s FANTASTIC! I think that something like this is exactly what I’ve been looking for.

Is it open source?

I’ve been using Kirimoto as the gcode engine in Abundance, but it’s proving to be a bit unreliable.

Currently it’s not open source. I’m planning to build this as a sustainable project with continuous development and support.
Right now everything is free while I’m in the testing phase - I want to make the tool as robust as possible and iron out any bugs before introducing monetization. Some features that are currently free will eventually become Pro features on a pay-per-use basis, but this won’t happen until after an extended testing period.

The basic functionality will always remain free to use. The paid tier will focus on advanced features and is meant to support ongoing development, regular updates, and professional support.

I’m very open to feature requests and community feedback during this phase - your input helps shape what this tool becomes!

1 Like

Very cool! I think that it is a great idea!