Machine Design
jake: ctrl+f TODO
Intro
Machines in a week
It's easy, so to speak
In minutia is mayhem
OK, welcome to Machine Week.
If you're reading this, chances are you're about to design a machine, and then build it, and then 'bring it online', and then do something with it. Exciting! There's a great deal of complexity here! I have done this a few times now1, and every time it's a new adventure.
This document will serve as a guide for how to make (almost) a fairly standard 3-axis machine. !ALERT! ~ This is a design process ~ !ALERT! so please bear with any ambiguities, and the inherent nonlinearities present. For example, I already have a machine in mind, that I want to build (for reasons) - you may have an entirely different type of machine in mind, for different reasons. When possible, I will take asides to explain my reasoning2, but overall, I intend this to be (1) a guide - for how to build this machine or slight deviations thereof, and (2) an exposition on (almost) how I go about considering machine design. Mostly, I hope to demystify CNC D&B3
In this order, we will do:
Design:
- Draw a Layout (Rhino Suggested)
- Detail the Axis
- Detail Interconnects
Manufacturing:
- Do Material Layout in Rhino
- Program CAM in Fusion
- Do the Milling
Assembly:
- Put it together!
- Alignment, alignment, alignment!
Electronics Assembly:
- Plugs, Switches, Power, oh my!
Motion Control
- TinyG with a Big Heart (and minimum acceleration!)
Machine Communication
- Chilipeppr
- Learning about GCode
End Effectors
- Open Season: Design your own!
Layout
First thing, you'll want to get a hang of what rough sizes / shapes / orientations your machine is going to have. In this case, I'm interested in designing something of an 'everything machine'. I.E it should be useful for a few different processes: 3D Printing, CNC Milling, Flat-Sheet Cutting (a-la the ZUND), and (maybe) eventually Laser Cutting. Normally I would not advise this4, but here we are.
I'm going to aim at a roundabout bed-size5 of 12x24"6 - largely this just feels like a happy medium between large format and small format work. It's a fairly common size for sheet stock, or at least bigger sheet stock can be broken down into these sizes with minimum work. In Europe, sheets also commonly come in 1250x2500mm stock - a factor of 1.025 over the NA 4'x8' standard. I'm going to add 1" to each of these dimensions to account for that, and for general design-fudge-space, and for fixturing. I feel like 5'7is a great Z-travel value - will handle lots of stock, and lots of tools (in milling) - also, this is relative movement, and I plan on making the overall bed height / end-effector mount locations somewhat adjustable.
SO: 13x25x5" moving area.
W/R/T Layout, there are a number of permutations of how to go about adding axis together in order to get 3D motion. I'd like to cover a few of these in examples, and I'll leave a TODO here: - bridgeport x-on-y with beefy-z style, shopbot and laser 'H' machine w/ dual y-drive (note laser BED moves, not head), omax and fablight 'drafting-square' hella-stiffness gantries, ultimaker t-config, corexy, flexural stages. I really like this machine developed by one of Jens' students. I should explain why8. OK, enough talk - let's see an example of a machine layout -
I tend to 'work out' from the Z-axis, towards the edges - this way I can keep track of where I need extra offsets (length of travel != length of gantry). Here's the layout with the Z-and-X axis group moved around to the extents.
And the layout as representative of a real machine...
This is all just loosely blocked out, in this stage I am really trying to get good numbers for the lengths of all of the axis, etc. Now I'll get into the actual Axis detailing.
Parametric Axis
- Go Here https://github.com/fellesverkstedet/fabricatable-machines
- Racking (two senses)
- Pinioning
Axis Blocks
- Connect ur axis
- Bringing layout & detail design together
- It's almost as if I knew about this system while I was doing layout!
!NONLINEARITYALERT!
Doing the Milling
- First we go to fusion
- Then we do the milling
Plugging in Motors
- Coils are connected
- One and two
Configuring TinyG
- https://github.com/synthetos/TinyG/wiki
- Steps / mm
- Acceleration
- Travel, etc
Talking to, loading firmware on, TinyG
- Arduino, I hope?
- Chilipeppr (rad alert!)
Gcode Basics
- may it RIP
Footnotes
- Five Axis, Metal Laser Cutter, and here, Dual Head 3D Printer, and Ongoing Robot Arm Adventure
- Asides will be relegated to the footnotes when not strictly necessary.
- Design and Build
- Things work very well when they are designed to do only one-thing. For example, vise grips will turn just about anything, but no one would say they are good at turning anything. A building designed for Helsinki may not make so much sense in Dubai. In another example, a laser cutter has a motion system that is optimized for speed, and takes advantage of the fact that it has very little mass to move around (a few mirrors) in order to carry through on this optimization. A milling machine is engineered for stiffness, and trades speed for the mass required to carry through on that optimization. In trying to have one motion system do all of these things, we'll go a little 'soft' in the middle, but we'll also be able to offer a lot of variety in a single system.
- Relative Scaling: 10^4 of length scale is a common machine, 10^6 is good - lookup slocum ?
- ~ 305x610mm
- ~ 127mm
- So I want an H-style layout, because I want to keep the machine small relative it's total work area. One of the biggest drawbacks with an H-machine is that the two sides of the Y-axis are not always set up parallel. The result is what's called 'racking' - i.e. imagine opening a screen door, and the top or bottom exhibits more friction - the 'jam' that this causes happens in CNC Machines as well. A drawing. By cutting both Y-axis rails out of the same 'frame', Jakob gets around this issue - the parallelness of the two rails is a mirror of the parallelness of the machine which cut them. It makes it a bit bulletproof to novice assemblers. He has also done a really good job of keeping the X-axis loads really close to the Y-axis rails (so, a small structural loop).
to be linked - dan gelbart talk about resolution vs. accuracy - repeatability vs absolute accuracty - global vs. local resolutions