The Hell Ya Beller Fun with hot, pointy, sharp, and caustic stuff.

7May/180

Progress Update

FreeCAD Path can now visualize 4th axis gcode.  That is gcode that has A and B axis moves in it.

Very cool.

Also, this blog has now been live for 10 years.  Happy Cake Day to me!

Filed under: Uncategorized No Comments
11Feb/180

Using FreeCAD to engrave on a rotary axis.

FreeCAD Path doesn't have a 4th Axis operation (yet) but certain kinds of things should still be possible. For example, engraving or pocketing on a cylindrical surface.

I've seen other software, both open-source and commercial, that allow the user to map a linear axis to a rotary axis. I decided to try writing a 'Dressup' for FreeCAD Path to do this.

The workflow looks like this:

  • First the user models shape and sets up the CAM operations as though it was a 2.5D job
  • Next, the user selects the operation and applies the dressup. The dressup currently has only two properties. First select the axis mapping. For example, to map the X axis to the A rotary choose (x->a). Configure the radius of the cylinder we're mapping onto.
  • The dressup executes and re-processes the base gcode.
  • It removes all G2 and G3 arcs and substitutes them with straight lines. The accuracy or 'deflection' will be another property soon.
  • The dressup then substitutes the axis parameter for each G1 move. It calculates the rotational distance corresponding to the linear distance in the original move.
    If the move is a pure rotary move, it also recalculates the feed rate and inserts a rotational velocity. If the move is a coordinated move of linear and rotoray, no change is made. The controller (at least linuxcnc) will handle the conversion internally and process the move as a coordinated move naturally.

FreeCAD can't render rotary moves in the A or B axis so the gcode backplot just looks like lines in XZ (or YZ) Otherwise, it's handled the same. Postprocessing spits out the final gcode for linuxcnc and it's ready to run. Here's a little video I did cutting the FreeCAD logo in PVC.

4Oct/160

Old School Maker Cool

I recently 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.

img_20161003_093101 img_20161003_093113 img_20161003_093151 img_20161003_093250 img_20161003_093301 img_20161003_093346 img_20161003_093355

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.

20Nov/131

A nifty work-around for HeeksCNC Kurve offset error

HeeksCNC can be finicky about profiles.  Often I've found that a sketch which should be easily profiled won't generate any gcode at all.  When I look in the console, I find an error like this

  File "/usr/lib/heekscnc/kurve_funcs.py", line 247, in profile
    raise Exception, "couldn't offset kurve " + str(offset_curve)
Exception: couldn't offset kurve <area.Curve object at 0xb6f4bf2c>
It most often happens when profiling inside a closed sketch where the radii is close to the diameter of the cutter.  Sometimes I can get around it by changing from climb to conventional milling or vice versa.
Recently I was profiling several cutouts that were exact copies of one another just rotated around a central point.  Some of the cutouts would profile fine and others wouldn't  I emailed Dan Heeks the author of the software and he clued me in to a work-around.
It seems that the error is coming from the entry point.  By simply setting a new start point for the profile close to the middle of the longest span, the error magically disappears.
This won't work in every case, especially if the pocket is very close to the size of the cutter or made up of tight curves but for the most common cases it should work fine.  Thanks Dan!
8Oct/132

CAD Is Hard!

cadishardI got the chance to speak about FreeCAD at the Osmoces event near Chicago over the weekend.  I had a really good time seeing some of the other presentations and exhibits and just hanging around with some pretty cool people.  In addition to the talk, I also taught a workshop where we got hands-on with the software and modeled a simple part.

One theme in my presentation was that this stuff is really hard. It's hard to learn, hard to use, and mistakes have real consequences. This isn't just true of FreeCAD but of any CAD or modeling software. This fact was reinforced for me personally in the workshop where I saw frustration and confusion first hand.

Even though students struggled at first with the interface and the general concepts, most were able to make a lot of progress and judging by the number of students who stayed late and asked about areas I hadn't even covered, the demand for powerful open source design tools is growing.

This was the second time I've taught FreeCAD to a group of new users and I'm starting to get a sense for where they get hung up.  I'm hoping to teach this again so I can build on that knowledge and perhaps find better ways to explain the core concepts.  If you have anecdotes about learning CAD or teaching it to greenhorns, I'd be interested in your comments.

If you're looking for my slides or notes, they can be found here.

Tagged as: , 2 Comments
14Apr/131

FreeCAD WebGL Export.

This is still early but it's too cool not to share.  Yorik has added a WebGL exporter to the FreeCAD arch module (but it seems to work everywhere in FreeCAD)

Open a model in FreeCAD and select the objects in the tree

Selection_14-04-2013-003

Select objects in the tree

 

Export the objects (File -> Export) and select WebGL

Selection_14-04-2013-002

 

 

Save the file and open it in a browser:  WebGL export (will open in a new window)

(The default view is zoomed up close but clicking and dragging with the mouse buttons will zoom/pan/rotate the object.  There's still plenty to be done with materials and lighting but being able to share FreeCAD models through a browser is very cool.)

Tagged as: 1 Comment
28Nov/120

Fun in the shop

I spent the Thanksgiving holiday at my brother's place.  It was a very relaxing weekend spent eating too much and shooting stuff.  (I'm not very into guns but this stuff is fun!)

My brother recently bought a jealousy inducing lathe like this:

lathe1

This thing was barely out of the crate.  The DRO hadn't even been installed yet and and he was just getting familiar with it.  So, of course, we decided we needed to make something  -- preferably a piece of high-precision technology.

 

Armed with a healthy disregard for prior planning, a can-do attitude, and the proper fluids:

fluids

 

we started making chips.

chips

 

Two days (and late nights) later, the world's first tactical yo-yo.  Heavy enough to take your head clean off.

yo

 

The first field test was less than impressive

brokenstring

So, back to the drawing board:

drawingboard

In the end, the device functioned within specification.  It's a bit heavy for normal use but there's plenty of material that can still be removed to improve it.

All joking aside, I really enjoyed this project. Too often we think through a project and, figuring that we could do it, we declare it done.  Actually DOING it unearths all kinds of tricky problems but that's where real experience is developed.  I know my meager skills on the lathe were improved greatly.   And I had a blast.

 

Tagged as: , , No Comments
14Nov/122

Keeping Good Company.

A reader on my Magic Clock site made me aware of this TED talk by Massimo Banzi, Co-inventor of the Arduino.  He lists some really cool projects ranging from the important to the silly.  I might be closer to the Farting Chair end of the scale, but hey, I made the list.  Fast forward to 10:25 to skip all that nonsense about 14 year old kids changing the world by detecting earthquakes.

6Oct/121

Understanding Tool Path Generation in HeeksCNC

When I first started using HeeksCNC I was totally confused.  It seemed overly complex.  When I finally understood it, I realized what a great model it is.  I still won't claim to be an expert but from my perspective it meets three really big objectives.  One of these is compromised in every other solution I've seen:

1) It keeps the computationally intensive algorithms in C++ where they run fast.   Other systems that are flexible and customizable are written in interpreted languages and that means they're slow for computationally intensive tasks.  Generating a complex path can tax a processor and really needs to be fast.

2) It provides a scriptable interface in a friendly language (Python).  No matter how good the developer was, there's no way he can anticipate every need.  That's why we like applications like blender, inkscape, gimp, and FreeCAD.  These apps assume that the user may want to extend the application.  Making the tool path generation accessible through a scripting language unleashes a lot of power.

3) It allows customization for the machine specific output without recompiling.  This is the Post-processor.  Not all machines are created equal.  Different capabilities and different controllers mean the final output must be tailored.

Dan Falck did a great write-up of how Python is used in HeeksCNC to generate tool paths using the C++ libraries.  I hope a future CAM workbench for FreeCAD has a structure like this.

Tagged as: , 1 Comment
31Jul/122

Cutting Plastic

I finally started laser cutting the plastic pieces for the chassis.

I happened to have some orange 3mm acrylic and thought it would make a nice accent color.

IMG_0739_modified

Unlike the standard shell, mine is cut in three pieces and glued together.  I had some worries that this wouldn't be very strong but it turns out that the glued joint is extremely tough.  With acrylic, we're basically welding the pieces together.  The solvent cement softens the plastic and the fused joint is incredibly tough.  Even so, I reinforced it with a couple pieces I'd cut to calibrate the laser.  These are just glued in underneath to add some thickness to the glued surface.  I don't know how durable it will be over time, especially flexing it from time to time to assemble, but so far, so good.

IMG_0741_modified