diff --git a/.gitignore b/.gitignore index 6499db1ff7f51dc1855699881d36accf0deb5aa0..5651116e3a988ed164abb30c9a49d9490abc0bbe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ **/*.bak /local **/*.rhl -**/*.3dmbak \ No newline at end of file +**/*.3dmbak +/capstan-ways \ No newline at end of file diff --git a/README.md b/README.md index 763897d9c64b7a7c0ae8727dda66006fffe5b9f3..fd063b272da42895fd42aa3ba6442ccee4844675 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,4 @@ -# Machine Design - -jake: ctrl+f TODO - - stock, hardware orders - - 4x4' - - T15 PLSTF - - FHCS for Motor Mounting +# Machine Week ## Intro @@ -14,9 +8,9 @@ jake: ctrl+f TODO 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 now<sup>1</sup>, and every time it's a new adventure. +So, you're about to design a machine, and then build it, '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 now<sup>1</sup>, and every time it's a new adventure. -The type of machine you build is your discretion. Besides making a straightforward 3-axis CNC Machine (a-la Shopbot, as documented in the following guide) - there are a few cool variations you can explore: +The type of machine you build (with your section) is your discretion. Besides making a straightforward 3-axis CNC Machine (a-la Shopbot, as documented in the following guide) - there are a few cool variations you can explore: [5-axis CNC Machine](https://www.youtube.com/watch?v=CqePrbeAQoM) @@ -32,7 +26,7 @@ The type of machine you build is your discretion. Besides making a straightforwa etc! -This document will serve as a guide for how to make a 3-axis machine. In linear time, I'm going to run through my design and fabrication processes, including links, resources and asides when relevant. You should read through it as a launching point for your machine. As a default, you are free to use all of the resource here to replicate the machine, and develop an end effector of your own. +This document will serve as a guide for how to make a 3-axis machine. In linear time, I'm going to run through my design and fabrication processes, including links, resources and asides when relevant. You should read through it as a launching point for your design. As a default, you are free to use all of the resource here to replicate the machine, and develop an end effector of your own. *!ALERT! ~ This is a design process ~ !ALERT!* so please bear with any ambiguities and nonlinearities. When possible, I will take asides to explain my reasoning<sup>2</sup>, but overall, I hope to demystify CNC D&B<sup>3</sup> in fairly broad terms. Think of it as a style guide (?) more than direct instructions. Good luck, have fun! @@ -64,6 +58,8 @@ This document will serve as a guide for how to make a 3-axis machine. In linear #### End Effectors - Open Season: Design your own! +# Design + ## 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 this<sup>4</sup>, but here we are. @@ -206,36 +202,7 @@ Talk about a CAD Marathon! Some notes: - Not even sure this would have gone faster in Parametric CAD. HOWEVER - if I had to change anything, I would make time back in maybe one shot. - That's a lot of fasteners! I don't even want to count. I'm going to estimate 100 ? A real count gives me 140. A bit of a bummer, these screws are $10 / 50. - -## Prepping Your (already-existing) Machine - -*CRITICAL NOTE* -These linear axis **absolutely** require you to face off the spoilboard on your milling machine. If the XY Plane that your material rests on is not truly parallel to the XY Plane that your gantry moves along<sup>TODO: imperfections note</sup> you will have axis whose chamfered-edges vary in width. This will cause some areas on the gantry to jam up, and others to be loose! -*END CRITICAL NOTE* - -First thing, I surfaced the bed. We have this big gnarly cutter at the CBA: - - - -I made a tool for this in Fusion (TODO: include in table), it's included in the table below. - - - -And I ripped out a 'face milling' toolpath: - - - -Then I got on the shopbot, and ran the job! I set the Z (in the program, it just faces along Z0.0) such that the machine thought 0.0 was about 0.1" below the surface. I had to run the job twice, bringing it down by 0.1" each time, to get all of the low spots. Nice circular turnaround courtesy of Fusion 360 CAM: - - - -*NOTE* objects in GIF appear faster than real life *NOTE* - -I ended up doing this a second time, with a better toolpath and a bigger bite. - - - - +# Manufacturing ## CAM: @@ -251,21 +218,43 @@ Then I brought this into Fusion to do some CAM. From Rhino, select the geometry  -Now, I'm not going to try to relay exactly what I did - you can take a look at the Fusion files here TODO if you want to check that out. Instead, I'm going to try to (briefly-ish) do a rundown of how to approach CAM - feeds, speeds, fixturing... It's a lot, but hopefully this discussion and the example files above will be enough to get you off on the right foot. +* careful with excessive import-cycles - i.e. the STEPs I brought in were slightly degraded in sections, I had to be careful when selecting contours to CAM. -- Setups, wcs, zeroing -- Fixturing -- Tool Selection -- Tool Libraries, Feeds, Speeds Calculator -- Path Type Selection +Now, I'm not going to try to relay exactly what I did. CAM is an art-ish. Here's a basic breakdown of the steps I took: -I go to the CAM section right away, and setup some stock. First thing, our Shopbots are setup in Inches, so check that in the 'units' in the top of the tree. I'll use a 0" offset on top of the model, 0.05" on the bottom (then we can be sure to cut through later on) and a 0.75" offset on the sides - I want to be sure to clear the screws I'll be using to fixture my HDPE sheet. +- Mill all of the Holes First + - Use those holes to fixture parts to the bed + - This is critical, because it's important the material is consistently flat w/r/t the bed + - This means you can avoid using tabs + - Use a Bore Toolpath to generate Holes -For tools, I set up with a 1/8" 'O-Cutter' - as in, one flute. This is going to be my detail workhorse - it'll cut teeth and holes. I also have 1/4" O-Cutter to do profiles and cutouts. My two other tools are a Chamfer Endmill, used for, well, the chamfers, and a 1/16" 2-flute endmill for some detailing on the pinion. Here's a quick table of the tools, and their feeds and speeds. I used [the CBA Feeds and Speeds Calculator](https://pub.pages.cba.mit.edu/feed_speeds/) to ballpark these, and I'll dial them in as I test the first axis. +- Clear Pockets and Faces + - I.E. Countersunk Screws, Holes for Indexing Tabs + - Use a 2D Pocket or Adaptive Clearing Toolpath + - Use 'multiple depths' to generate step-downs when the pockets are deep. -A note on plastics - TODO heat, why single flute, sharp bits, what chips should look like +- Contour to Cutout + - Cut sheets now that you're fixtured + - Parts w/o holes for fixturing should be 'tabbed' to prevent them moving about as they are cut + - Use 'multiple depths' -## Milling +- Remove Excess Stock + - Now you can peel the 'rest' of the material away. + +- Contour Details + - Use a Contour to detail the Teeth, using a gentle stepover. + - Pocket beforehand to remove the majority of the material prior to detailing + +- Chamfering + - Start a sketch *on* the chamfered surface + - Use this plane / sketch to draw a line parallel to the chamfer, offset by 1.25mm + - Use this line and a Trace toolpath to drag the chamfering bit along + - Tangential Offset will allow you to 'clear' the edges well + - Multiple Depths (z-offset) means you won't be taking a huge cut + - Use a gentle stepdown so that the machine makes a very clean cut - this will improve your machine slipperyness! + +- Feeds and Speeds + - [CBA Feeds and Speeds Calculator](https://pub.pages.cba.mit.edu/feed_speeds/) #### HDPE: @@ -293,7 +282,40 @@ Fly Cutter* | 2 | 2 & 3/8" | Facing the Bed | 130 | 50 | 6500 * I used a 1.5" stepover, and ~ 0.03" stepdown. I set the facing pattern up to only cut on the 'climb side' of the bit - that was pretty critical. I think it's possible to be more aggressive - the bit we have at the CBA is quite dull. The job ran about ~50 minutes. -## Doing the Milling +## Machining + +### Prepping Your (already-existing) Machine + +*CRITICAL NOTE* +These linear axis **absolutely** require you to face off the spoilboard on your milling machine. If the XY Plane that your material rests on is not truly parallel to the XY Plane that your gantry moves along<sup>TODO: imperfections note</sup> you will have axis whose chamfered-edges vary in width. This will cause some areas on the gantry to jam up, and others to be loose! +*END CRITICAL NOTE* + +First thing, I surfaced the bed. We have this big gnarly cutter at the CBA: + + + +I made a tool for this in Fusion (TODO: include in table), it's included in the table below. + + + +And I ripped out a 'face milling' toolpath: + + + +Then I got on the shopbot, and ran the job! I set the Z (in the program, it just faces along Z0.0) such that the machine thought 0.0 was about 0.1" below the surface. I had to run the job twice, bringing it down by 0.1" each time, to get all of the low spots. Nice circular turnaround courtesy of Fusion 360 CAM: + + + +*NOTE* objects in GIF appear faster than real life *NOTE* + +I ended up doing this a second time, with a better toolpath and a bigger bite. + + + + + + +### Doing the Milling  @@ -319,13 +341,15 @@ So I get all of the bits together, and clean the edges up where I need to with a I started with the X/Z Block, tapping the guideblock's back-side. With tapping plastics, I normally just chuck the tap in a drill. Careful to go in straight, though! -There's a subtlety to putting the glideblocks together. The M5 SHCS goes through three layers - this is not common / encouraged in 'precision' machine design, because there is some uncertainty about how exactly the layers line up.<sup>aside, motor concentricity</sup> Critically, the middle block (the one with the chamfer) is a *very slight* slip-fit (5.1mm), the outer block is a large slip (5.4mm) and the final block is threaded. ALSO: Don't forget a washer! + + +There's a subtlety to putting the glideblocks together. The M5 SHCS goes through three layers - this is not common / encouraged in 'precision' machine design, because there is some uncertainty about how exactly the layers line up.<sup>TODO aside, motor concentricity</sup> Critically, the middle block (the one with the chamfer) is a *very slight* slip-fit (5.1mm), the outer block is a large slip (5.4mm) and the final block is threaded. ALSO: Don't forget a washer! - + -I got two sides together to test it oot: +I got two sides together to test it out: - + There's a reason one side of the glideblocks is mounted on a slot - this way you can adjust the spacing between the blocks - which is important! This way we can slide the gantry over the rail and then *tune* the stiffness. @@ -335,11 +359,11 @@ OK, there's the block, ish  -Now I'm going to get some Set Screws tapped into the Pinions, and try mounting motors to this block. M4 Tap Drill Size is 3.3mm, (TODO: Link Chart), so a #30, so a 0.1289", etc +Now I'm going to get some Set Screws tapped into the Pinions, and try mounting motors to this block. M4 Tap Drill Size is 3.3mm<sup>TODO: Link Chart</sup>, so a #30, so a 0.1289", etc - + -Same drill here for the hole-tapping<sup>pun</sup>. This time, M4. +Same drill here for the hole-tapping<sup>pun</sup>. This time, M4. I put the pinions in a vise, using the index markers to drill perpendicular to the shaft. To get the pinion teeth in the right spot w/r/t the rack, there should be about 24mm between the motor flange and the top of the pinion. Check this against the actual machine. Also, make sure one of the set screws is aligned with the 'D' cutout on the motor shaft.<sup>note on bearing->load distance, slocum</sup> @@ -347,32 +371,35 @@ To get the pinion teeth in the right spot w/r/t the rack, there should be about Now I get the motor on the motor-plate - countersinking the M5 FHCS<sup>flat head</sup> into the plate. This way, the plate can ride flush against the rest of the gantry. -- pic, motor on plate + And mount that on your gantry. I used those plastic self-tapping screws here. AND I left them a bit loose. You'll notice that the motor slides, also, relative the gantry: -- gif, motor and plate on gantry, sliding. + Adjustment: it's a theme. -Now, I got a good look at my pinion -> rack engagement. Feeling good about this, so I celebrated with a [knoll](https://www.youtube.com/watch?v=s-CTkbHnpNQ). Nothing like it. +Now, I got a good look at my pinion -> rack engagement. -- pic, knolled + + +Feeling good about this, so I celebrated with a [knoll](https://www.youtube.com/watch?v=s-CTkbHnpNQ). Nothing like it. + + To get the rest together, I'm using a 1/8" drill diameter to pre-drill for these plastic screws, and then driving them in with a T20 bit. In addition to this, I don't screw them all down 'in sequence' - I add screws kind of sporadically to the structure - this way I don't pre-stress it in any particular direction. And make sure to use washers! * a note on rigidity / 'deep' structures - here's the frame w/o any boxiness: -- gif, flappy frame - -and with + -- gif, rigid frame +The rest of it is pre-drilling holes and fastening with Plastic Thread Screws -OK - I got it all together - the axis just slide together once they're set up. At this point, you'll want to adjust the position of your motor, and of the 'second rail' to get smooth motion. + -## Ways Adjustment +Now draw the rest of the owl + ## Plugging in Motors @@ -380,16 +407,15 @@ I made no concessions for wiring while I was designing - if you're going to 'rev I got lucky and had accidentally spaced my bed-rails at the pitch of some mount holes on the Power Supply. Rad. -- pic - -I mounted those, and the TinyG. To bring power to the PSU, I cut up a DIN connector and plugged the GND, Line and Neutral lines in like so: - -- pic +I mounted those, and the TinyG. To bring power to the PSU, I cut up a DIN connector and plugged the GND, Line and Neutral lines in. The TinyG gets power here - polarity should be obvious. Obviously, you should be being safe and not turning anything off yet! Careful with the TinyG polarity - it will die if you reverse these. Next, I drilled some holes in the chassis for my motor wires. I also found this rad 4-conductor cable in the basement at the CBA, I'll use that to route out to my motors. + + +*~ BEGIN INCOMPLETE DOC ~* - Coils are connected - One and two @@ -401,28 +427,23 @@ Next, I drilled some holes in the chassis for my motor wires. I also found this - Should enumerate on a serial port - Use https://github.com/synthetos/TinyG/wiki/TinyG-TG-Updater-App to flash new firmware - Make sure you don't have the serial port open anywhere else -- Now complete setup -- Open in a serial terminal (Arduino has one built in, or see Neil for links) TODO - -45.045 mm/rev -eighth microstepping -- make sure y axis are flipped relative -- motor wiring is dependent on ur business - - ## Chilipepper - It's Rad - Like Mods, Chilipeppr uses a local serial server to pass messages from the browser to your serial port. - Download the Serial Port Json Server after configuring TinyG - http://chilipeppr.com/tinyg -- Steps / mm +- 45.045 mm/rev +- eighth microstepping +- make sure y axis are flipped relative - Acceleration - Travel, etc -## Talking to, loading firmware on, TinyG -- Arduino, I hope? -- Chilipeppr (rad alert!) +# Moving Along + +Now, you should be ready to move some motors about. + + ## Gcode Basics - may it RIP @@ -473,7 +494,6 @@ eighth microstepping - Camera / Scanning - Cutting - # Footnotes 1. [Five Axis](http://ekswhyzee.com/index.php/project/tinyfive/), [Metal Laser Cutter](http://ekswhyzee.com/index.php/project/mako/), [and here](http://3dfablight.com/), [Dual Head 3D Printer](http://openassemblies.com/index.php/fdm4md/), and [Ongoing Robot Arm Adventure](http://openassemblies.com/index.php/rsea/) @@ -486,6 +506,10 @@ eighth microstepping 8. 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). 9. AKA Acetal, AKA POM +# To Do + +- Link to Fusion 360 w/ cleaned Cam files + to be linked - dan gelbart talk about resolution vs. accuracy - repeatability vs absolute accuracty - global vs. local resolutions diff --git a/capstan-ways/README.md b/capstan-ways/README.md deleted file mode 100644 index 6e0c9893447fe3a0e0963801cc664b02564483ac..0000000000000000000000000000000000000000 --- a/capstan-ways/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## but what does it say - -- face the mating surfaces of rails, this way you can be sure of chamfer-to-bottom distance diff --git a/images/assembly-debur.jpg b/images/assembly-debur.jpg new file mode 100644 index 0000000000000000000000000000000000000000..767e43e8d614fbe9f19d4088dbd6903a3c58b533 Binary files /dev/null and b/images/assembly-debur.jpg differ diff --git a/images/assembly-drill-select.gif b/images/assembly-drill-select.gif new file mode 100644 index 0000000000000000000000000000000000000000..f748b8071cf7be3790576d299771353b234f450a Binary files /dev/null and b/images/assembly-drill-select.gif differ diff --git a/images/assembly-ee.jpg b/images/assembly-ee.jpg new file mode 100644 index 0000000000000000000000000000000000000000..677cc467d35d797331a06e805ab9d1fb9d0f749d Binary files /dev/null and b/images/assembly-ee.jpg differ diff --git a/images/assembly-ee_tmp17035 b/images/assembly-ee_tmp17035 new file mode 100644 index 0000000000000000000000000000000000000000..677cc467d35d797331a06e805ab9d1fb9d0f749d Binary files /dev/null and b/images/assembly-ee_tmp17035 differ diff --git a/images/assembly-fasteners.jpg b/images/assembly-fasteners.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e2e76ec755d30fab24e262bfb57d5f2aac5514e3 Binary files /dev/null and b/images/assembly-fasteners.jpg differ diff --git a/images/assembly-flap.gif b/images/assembly-flap.gif new file mode 100644 index 0000000000000000000000000000000000000000..706a3fca0f57e5df502b1de5b64bc196f00b5429 Binary files /dev/null and b/images/assembly-flap.gif differ diff --git a/images/assembly-gantry-adjust.gif b/images/assembly-gantry-adjust.gif new file mode 100644 index 0000000000000000000000000000000000000000..f4ceb3df45b34e9b860cf1da5ad812b73e17d96e Binary files /dev/null and b/images/assembly-gantry-adjust.gif differ diff --git a/images/assembly-hardware-stack.jpg b/images/assembly-hardware-stack.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a1addcef63d5e38e3f75dc546781ac9ec4f1fe63 Binary files /dev/null and b/images/assembly-hardware-stack.jpg differ diff --git a/images/assembly-knoll.jpg b/images/assembly-knoll.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c57fa34105a06bce5cb4863f2c06c218dd93221b Binary files /dev/null and b/images/assembly-knoll.jpg differ diff --git a/images/assembly-motor-plate.jpg b/images/assembly-motor-plate.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dddf45706bc7d30755175194fd7cf335779186ad Binary files /dev/null and b/images/assembly-motor-plate.jpg differ diff --git a/images/assembly-motor-slide.gif b/images/assembly-motor-slide.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ffd0596e42ef52de3b6132275e8d28f3f120030 Binary files /dev/null and b/images/assembly-motor-slide.gif differ diff --git a/images/assembly-owl.jpg b/images/assembly-owl.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2edaef0c3f0b52bd72e43182854473d70a2b7247 Binary files /dev/null and b/images/assembly-owl.jpg differ diff --git a/images/assembly-pinion-check.jpg b/images/assembly-pinion-check.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2b60366290b90f94ac72c67ce6db41c55edc664e Binary files /dev/null and b/images/assembly-pinion-check.jpg differ diff --git a/images/assembly-pinion-d.jpg b/images/assembly-pinion-d.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d1c54cbcfdc84530fd2dbb6480d9088170676f43 Binary files /dev/null and b/images/assembly-pinion-d.jpg differ diff --git a/images/assembly-tap.jpg b/images/assembly-tap.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ce0dcf31cebb026134e8ef782a281ed32d20843b Binary files /dev/null and b/images/assembly-tap.jpg differ diff --git a/images/assembly-ways-test.gif b/images/assembly-ways-test.gif new file mode 100644 index 0000000000000000000000000000000000000000..5c0286a580f98b873c0285dcc8a55794c877997a Binary files /dev/null and b/images/assembly-ways-test.gif differ diff --git a/images/assembly-xz-no-motors.jpg b/images/assembly-xz-no-motors.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f006cb31c8953ce5ae99835f22a56388b0bb103 Binary files /dev/null and b/images/assembly-xz-no-motors.jpg differ diff --git a/images/cam-material-sheets_tmp9096 b/images/cam-material-sheets_tmp9096 deleted file mode 100644 index b84293bb9eda4bc2d6a38440db37ef29504deee6..0000000000000000000000000000000000000000 Binary files a/images/cam-material-sheets_tmp9096 and /dev/null differ diff --git a/images/config-move.gif b/images/config-move.gif new file mode 100644 index 0000000000000000000000000000000000000000..70d8b3244ee1e9213d389dde3471ca9b704b50b7 Binary files /dev/null and b/images/config-move.gif differ diff --git a/images/fly-cutter_tmp6343 b/images/fly-cutter_tmp6343 deleted file mode 100644 index 1cee75ba2487bf3f9bc3310329b0444f812b27f1..0000000000000000000000000000000000000000 Binary files a/images/fly-cutter_tmp6343 and /dev/null differ diff --git a/images/the-chips-you-want_tmp26262 b/images/the-chips-you-want_tmp26262 deleted file mode 100644 index e65825ec6890c8242b29bc4c87d59bc54b28ce39..0000000000000000000000000000000000000000 Binary files a/images/the-chips-you-want_tmp26262 and /dev/null differ