This is a multi-part series that demonstrates how custom paths can be created using a python macro in FreeCAD
final macro: https://gist.github.com/sliptonic/c3b35a5a9f1afdf2d3f2b4886375dc33
Dogbone dressup modifies inside-corner cuts to remove material missed by a cylindrical cutter.
Mill Facing adds additional functionality to the FreeCAD Path Workbench.
For users of Path Workbench in FreeCAD, here's an introduction to the Contour Operation
I posted this week about getting my great-uncle's wagon as a gift. I also mentioned going to his wake and seeing many others like it in his workshop. My dad read that post and amazingly dug up some pictures that were taken that very day of that shop. I've never seen these pictures until now and looking at them is strange. My memories are both confirmed and enhanced. Details I'd forgotten suddenly rush back.
In the interest of full disclosure, there was another picture taken that day and this one is nothing like I remember at all. Seriously, I remember being the absolute height of fashion and damn handsome man.
Welcome to Throwback Thursday... Let's never speak of this again.
endured celebrated my fiftieth birthday. As a gift, my father gave me this wagon that he's had for many years. It was originally made by Dad's uncle, Art Nelson near Brainerd, Minnesota, sometime in the 60's. I used to look at it when I was a kid and it was one of my favorite things.
Art was a carpenter and making these was his hobby. When he passed away I was about 14. I remember going to the wake and the guys all gathered in Art's workshop. It was tidy and warm and there were dozens of wagons like this on shelves - all different. I have no idea what happened to them all.
The Maker movement seems to be all about weekend DIY projects, in the garage, with wires hanging out, and an Arduino stuck in for blog cred. Maybe it shouldn't always stop there.
Purple Squirrel Games is making a very simple product but doing it in an exceptional way.
Their first product is a mancala game board. Mancala has been around for at least 1200 years so one wouldn't think that it's an area ripe for innovation but Purple Squirrel doesn't agree. And their innovation process isn't focused only on the product. In fact, it seems to have the following characteristics:
Innovation in design and build quality.
The board is solid walnut and the seeds are real river stones. The pits and stores are CNC carved in a way to make picking up the seeds easy, avoid manufacturing 'dwell marks' and create a lovely appearance. The board was play-tested to make sure the pit size is just large enough to hold the stones but not too large to waste material. Everything from the raw materials to the packaging has been considered and improvements made wherever possible. The final product is beautiful to look at and feels like a solid piece of craftsmanship.
Innovation in the process.
Purple Squirrel used Maker Redux to build a virtual team around the project and control the manufacturing process. Like all Maker Redux projects the details are there for you to learn from. (full disclosure: I'm involved with Maker Redux and one of the associated companies)
Innovation around the edges.
Purple Squirrel isn't done. They're also innovating around the marketing and distribution. I'll post again about them soon.
So what are the results?
They sold two boards the first day it was listed on Amazon and sold out in a week. Not bad for a product with over 500 competitors.
Here's some of the lessons learned during this "simple" project.
- A simple wooden gameboard isn't simple...or just a game board. This one is; board, finish oil, stones, bag for stones, instruction sheet, feet, box, and shrink wrap.
- The stuff you can't touch includes a UPC license, product liability insurance, and a sales-tax license for the distributors to see.
- Fullfillment by Amazon fulfillment has different pricing for different size boxes. Had the board been an inch larger, it would have cost $4.00 more to store in Amazon fulfillment.
- Wood finishing is complicated.
- River stones can scratch finished walnut if not polished enough.
- CNC tools can create 'dwell marks' in the wood which must be sanded out. This can significantly increase the manufacturing cost and time and require human involvement.
- Sourcing things like the velveteen bag from China seems easy and cheap...unless it's Chinese New year.
- Chinese New Year lasts a month.
- Nothing gets shipped during Chinese New Year.
- Cardboard shipping boxes are a significant per-unit cost. Don't neglect them.
- Cardboard shipping boxes might be opened by Amazon fulfillment by accident. They should be shrink-wrapped to avoid this.
- Shrink-wrapping adds cost.
- Even a 1200 year old wooden game board needs product liability insurance.
- Product liability insurance adds cost.
- Glass beads are sold for filling vases.
- Small polished stones are sold for aquariums.
- There's huge variability in the size of polished stones and glass beads. 6mm isn't always 6mm.
- Getting samples of stones adds cost
- If you want a product to sell well, it needs good photography.
- Good photography adds cost.
- A game board without feet will slide around on the table. This is annoying and can scratch the table.
- People get annoyed about a scratched table.
- Instruction sheets printed on your inkjet printer look like crap.
- Professional printing adds cost.
- No matter how many times you have an instruction sheet proof-read, there will be one typo found after it's printed.
- Product design is hard.
- Good products sell.
- You still have to market good products.
A couple years ago I was flattered to learn that one of my projects was referenced in a TED talk by the guy that invented the Arduino. Today I learned that one of my designs has been incorporated into spray painting drone by the artist/vandal KATSU. The project is fully detailed on the Icarus One website in case you want to build one and make your own social commentary. KATSU is controversial and I'm not sure how I feel about his work but I think it's cool (and surreal) to see my designs remixed and extended like this.
See if this story rings a bell:
My friend is a maker. He's built a 3D printer, owns a Shapeoko, and designed his own circuit boards. None of that is related to his day job - he's a teacher - it's just a hobby. He's a member of the local hackerspace and he's also into ukuleles, and brewing beer, and table-top games.
A couple years ago, he designed a game that he thought would be fun. It's clever and unique and definitely not the kind of thing you'd find in the toy aisle at Wal-Mart. He cut the wood pieces with his Shapeoko and 3D printed the tokens. When he showed it to his gamer friends, they liked it. He took it to the hackerspace and everyone there thought it was pretty cool.
I have a whole pile of old Altoid tins that I use to store small screws and such. The tins had migrated into a physical pile on top of another storage container and were occasionally knocked over while I was looking for something. I thought it would be nice to have them in a rack mounted on the slat-wall.
Laser cut acrylic seemed the natural choice. The glued finger joints are plenty strong but need to be accurately cut. Since the project was pretty simple, I decided to try to do the whole thing in FreeCAD including the gcode generation with the new Path module. I know Path is still incomplete but I've been watching the improvements for months and thought I might be possible. Here's how it went.
The parts were simple sketches padded to the thickness of the acrylic - 3mm. The important thing is to make the depth dimension of the tabs match the acrylic thickness and the position match the corresponding slots.
I used the assembly2 workbench and built the assembly. Assembly2 is very slick and I caught several boneheaded mistakes that would have cost time and plastic otherwise.
I used Assembly2 again to make a second assembly. I didn't set any constraints, I just laid out the pieces to fit on the raw stock in the laser cutter. This way, if I need to change any of the parts, I can just refresh the assembly and regenerate the gcode.
Next I built the profile operations. This was the hardest part because Path is very new and only the simplest operations are working. I ended up with separate operations for each outside profile and each hole.
I hid the solids and just focused on the gcode backplot. It's very easy to see any problems with operations and make whatever changes are necessary.
When things started looking good, I tried exporting the gcode and loading it in LinuxCNC. There were a few problems that I could easily have fixed by hand but decided to try automating the process as much as possible.
My laser needs a couple commands in the preamble to set the power output. I copied the linuxcnc_post.py file to my FreeCAD macro directory and renamed it laser_post.py. For FreeCAD to see it as a post processor, it needs that name format. The first part can be anything you want but it must end with _post.py. Editing was just a matter of pasting the lines into the preamble section.
At this point, I could select the project node in the tree and use the export menu. Select 'GCode' for filetype and give it a name. FreeCAD will prompt with a list of post processors. I select my new customized post, and click 'ok' The code is written and ready to be loaded in to LinuxCNC.
That last part is a lot of clicks and I tend to repeat it many times as I'm working out the last little bugs. FreeCAD has a couple conveniences to simplify things. The project node has a property for the output file and the Machine node (see picture above) has a property to pre-select the post processor. With these set, you can click the 'Post process' icon on the toolbar and it's done!
The pieces cut out beautifully. I glued them together like so:
This was a quick one-day project while I was cleaning up the workshop. The toughest part of a project like this with my other tools would be the fine tuning to get the slots and tabs to align right. With FreeCAD, that was really easy. The Path workbench still has a long way to go and it's not usable for anything but the simplest operations right now, but it's improving fast.