The Basics of 3D Printing in 2015 - from someone with 16 WHOLE HOURS' experience
全文转载自 Scott Hanselman的博文。
I bought a 3D printer on Friday, specifically a Printrbot Simple Metal from Amazon for US$599. I did a few days of research, looking at all the consumer models under $1000. Some were enclosed, others not. Some made of wood, some of plastic.
I selected the Printrbot Simple Metalbecause the reviews consistently said it was physically well made, rock solid, didn't require me to buy filament from the printer manufacturer, and Printrbot offers a number of updates like a heated bed and other attachments. I have the sense that this printer is basic, but flexible and expandable.
I've been using this printer now for basically 16 total hours over a few days, so we'll call it two days. I went through a number of emotions over this last two days an learned a TON, some about the Printrbot Simple Metal specifically, but also about 3D Printing in general.
Here's my 16 hours laid out for you, Dear Reader, so that you might save this time that was stolen from me. ;)
Disclaimer: I know jack squat about 3D Printing. If you're reading this, it's more likely than not that you know little as well. Any mistakes here are my own, but I hope my learning process helps you in your 3D printing journey.
Each hours includes an emotion and a lesson.
Hour 1 - Anticipation
LESSON 1: 3D PRINTERS DO NOT JUST WORK OUT OF THE BOX.
It's a hobby, not an appliance. Yet. There's a LOT of art to it, in addition to all this science. There's a million acronyms to remember. Here's the ones I've found useful.
- PLA Filament - "Polylactic acid (PLA) is a bio-degradable polymer that can be produced from lactic acid, which can be fermented from crops such as maize." It's the basic starter plastic you'll use. It's harder than ABS and melts above 180C.
- ABS - "Acrylonitrile Butadiene Styrene (ABS) is a commonly used thermoplastic as it is lightweight and can both be injection molded and extruded." It melts over 200C and should be used in a ventilated area.
- JsCad and OpenJSCAD - It's JavaScript for CAD! Lets you design stuff procedurally like a programmer.
- STL - Standard Tessellation Language. It's the most common format you'll find as you look around for models of things to print.
- G-Code - RS-274, a numerical control (NC) programming language. It's the "Assembly Code" for your printer. It is ASCII and uses control codes to tell your printer what to do. You'll take STL which is generic 3D and combine it with your specific settings and preferences to create G-Code that is the instructions that will be sent to your 3D printer.
3D Printers are like those cake decorator pipings. The 3D Printer pushes hot, molten plastic through a tiny tube in layers to make a real object just like a cake decorator pushes hot sugar through a piping tube to write Happy Birthday.
Hour 2 - Annoyance
LESSON 2: 3D PRINTERS REALLY NEED TO BE CALIBRATED.
The most important thing I've found is the "Z-Stop." Basically, you need to make sure that when your Printer's Head is at X0 Y0 Z0 that you can just barely fit a piece of paper between your extruder nozzle and bed.
The most important part of any print is the first few layers. If you build a good solid base for your 3D print then it will at least have a chance. If something goes wrong in the first few minutes it's not going to get better. Cancel the print before you waste more time.
I also found this list of tips useful: 10 Rules for top notch prints with your Printrbot Simple.
Hour 3 - Frustration
LESSON 3: 3D PRINTERS ARE PERSNICKETY.
They are easily affected by the environment/temperature/your mood/Mercury in Retrograde. Cold garages aren't a great place for 3D printing as cold plastic is hard plastic and that breaks easily.
Temperature control : each filament has an optimum temperature for its extrusion. If you do not know, a value between 190 and 210° Celsius (374°-410° Fahrenheit). Start at 190° C and adjust the temperature according to the behavior of the filament: Shiny, too hot, Dull, not hot enough. Find balance.
Early on, expect only 1 in 4 or 1 in 5 prints to be useful. Fail fast, fail often. When you do have a failed 3D Print, write down your settings and compare it to previous prints.
Have a clear, solid table, find your place to print, and get organized.
Hour 4 - Resentment
LESSON 4: THIS FREAKING PIECE OF CRAP IS INCAPABLE OF PRODUCING ANYTHING OTHER THAN A MOLTEN PILE OF CRAP.
Learn about how there's different kinds of support mechanisms to sit under and support your model. There's Rafts, Skirts, and Brims and they all have different uses.
When in doubt, check your 3D Printer's Skirt.
Hour 5 - Disgruntlement
LESSON 5: DOCUMENTATION FOR 3D PRINTERS IS SPOTTY BECAUSE THE TECH CHANGES EVERY FEW MONTHS.
Collect links and compare notes. Start small. Don't print something massive (as I tried to, which made me more angry), print something tiny. 10 minutes max, then try again, change a setting. See what happens. There's a "calibration cube" file you can use.
The docs for your printer are useful, but you'll find even better information on Reddit but most of all on YouTube. There's a million great videos showing different techniques. Start by subscribing to Tom's YouTube Channel and go from there.
Hour 6 - Unfulfillment
LESSON 6: THE FIRST HALF-DOZEN THINGS YOU PRINT WILL BE PARTS AND IMPROVEMENTS TO THE PRINTER.
You'll wonder why it didn't come with all these things. There's no filament spool, no feet for the printer, no where to mount extra stuff. Fortunately for every problem I've had, there's someone on theThingiverse 3D website that has had the SAME problem AND designed a part for me to print out.
My first "fix" was to print this small filament guide. A tiny victory, but still unfulfilling.
Hour 7 - Vexed
LESSON 7: GETTING THE FILAMENT TO STICK TO THE BASE WILL BE YOUR PRIMARY CHALLENGE WITHOUT A HEATED BED. IDEAS 'SOLUTIONS' ABOUND.
Whenever you have a problem with your 3D printer you will go and Google with Bing and find others with your problem. The 3D Printing community (in my 16 whole hours in it) is super nice. Everyone wants to help and share.
ASIDE: I LOVE ThingiVerse, it's like Wikipedia for stuff, and it's all Creative Commons. Share and Share Alike. I'm here.
However, when you search for your problem there are one of two things that will happen.
- You find someone just like you with the same software and same printer and they SOLVED IT AND THEY HAVE THE SOLUTION THERE FOR YOU TO USE.
or
- You find someone just like you with the same software and same printer and they NEVER FOUND THE ANSWER AND THIS QUESTON WAS ASKED IN 2009AND YOU WILL ALWAYS BE ALONE.
So. Ya. Be ready.
Hour 8 - Chagrin
LESSON 8: 3D PRINTING CAN TAKE HOURS. LIKE, HOURS. MANY HOURS. AND THEN HALFWAY THROUGH YOU'LL BUMP IT AND START OVER.
But, while you're waiting for things to print, there are some amazing websites to explore, likeOpenJSCAD.org. You can write JavaScript (you know JavaScript!) to describe the things you want to build.
Here's a cool example. Sometimes you'll find JsCad files and you'll want to turn them into STL files, then eventually GCode files to be sent to your printer.
function main() { return union( difference( cube({size: 3, center: true}), sphere({r:2, center: true}) ), intersection( sphere({r: 1.3, center: true}), cube({size: 2.1, center: true}) ) ).translate([0,0,1.5]).scale(10); }
Go and explore the relationship between STL and G-Code. Get the basics of G-Code in your brain. Remember typing "ATA" to answer your modem manually? No? Well, you had to do this back in the day, young lady, and it was magic. G-Code is just like typing ATA or ATDT to your modem, except it's instructions for your 3D Printer.
For example, my Printrbot was locking up at the same place during a print. I had no idea why. Rather than accepting the system is a "load a file, print, and pray," I looked at the G-Code and saw it was turning on a Heated Bed. I don't have a Heated Bed. I commented that part out and my print finished. Stuff like that will save you hours.
Hour 9 - Triumph
LESSON 9: THINK ABOUT YOUR PRINTING AREA. CONSIDER HOW YOUR FILAMENT WILL FEED INTO YOUR PRINTER AND MAKE A FILAMENT HOLDER.
The Printrbot SImple Metal doesn't come with any formal way to feed the filament spool into the printer. I ended up having to move it every few minutes. After a while I used a broomstick and put the spool on it horizontally. Then I got sick of it and printed a Filament Spooler from Thingiverse to put on top of the printer. This was EPIC. This was my "I can do it" moment.
It was rough, and it broke off with just a few layers left, but it WORKED. It fixed a problem I had. Boom. I think this is going to be OK.
Hour 10 - Bitterness
LESSON 10: I DIDN'T NOTICE THAT ALL THE PRINTING AND SHAKING WAS LITERALLY CAUSING THE PRINTER TO SHAKE SLOWLY OFF THE DESK.
In my last print the piece shook itself off the print bed. 4 hours almost wasted. I was able to use some sandpaper and fix it, but for a few minutes there I was pretty upset. Watch for things like shaking and look for solutions. I printed a set of feet and put rubber bases on them.
Hour 11 - Rage
LESSON 11: REMEMBER WHAT I SAID ABOUT HEATED BEDS AND STUFF STICKING TO THE BASE?
It hurts even worse when it breaks off and is thrown across the room and you're left with a pile of hot plastic spaghetti. I've decided I want to upgrade to a Heated Bed at this point. This $99 attachment will keep the bottom of the model warmish and pliable so it doesn't warp as it cools. It also helps keep it stuck to the base.
Before this Heated Bed shows up, here's some things you can try to help prevent peeling of your 3D print:
- Glue Sticks - Get the Purples ones that dry clear. 99 cents.
- Blue Painters Tape - Required. Don't print directly on the bed. I put my tape lengthwise and I'm sure NOT to over lay them. Make it FLAT.
- Nail Polish Remover - Smear this over the tape with a cloth. I dunno if it works, and it stinks, but folks swear by it. I'm still testing it myself. Seems to do SOMETHING.
Also consider how thin/thick you're printing. I found that 0.2mm was my default, but for my current setup was hard to keep flat on the non-heated bed. I am having more success with 0.4mm, although the quality is less. There IS a setting that will work for your setup.
Avoid being near a vent or the AC. Cool air being blown inconsistently in a room can affect a print. I like to keep it toasty. Gotta get that Heated Bed soon. Damn these expensive hobbies that make you buy stuff after you just bought stuff.
Hour 12 - Heartened
LESSON 12: USE OCTOPRINT. IT'S AMAZING, IT'S BRILLIANT, IT'S EVERYTHING.
I started using the Repetier software that Printrbot recommends to load up STL files. These 3D models are then "sliced" with your choice of slicer software. The slicer is the thing that takes the 3D concept and makes it a series of G-Code instructions that will be fed to your printer. However my Printrbot would freeze up and I'd have to manually press OK in the Repetier software. I found lots of people with this problem, some fixed it with new USB cables, some never did. For me it came down to deciding NOT to use my Laptop as a print serve for 3 hour prints. If my 3D printer isn't wireless, well, darnit, I'm gonna make it wireless. So...
Hour 13 - Satisfaction
LESSON 13: HOOK UP A CAMERA TO OCTOPRINT SO YOU CAN SAFELY LEAVE A PRINT GOING WHILE YOU GO ABOUT YOUR BUSINESS.
As I read and absorbed, I found lots of references to OctoPrint as something I should explore. However, my Printrbot recommended software called Repetier and I didn't feel like setting up more software to get this thing to print, so I wasted a few hours NOT installing OctoPrint. This was foolish of me. Let me save you some time now. If you're not using OctoPrint you're in for a treat. Take the time.
Turns out since I had a Raspberry Pi and a spare Webcam lying around, this setup only took me 30 minutes. The basic idea is that rather than using your computer as a Print Server, you use a small embedded system. This can make your 3D Printer wireless!
What you do is this:
- Get a Raspberry Pi B+ or newer and a fast Class 10 SD Card.
- Optional: A cheap wireless USB dongle. I got this Edimax and it works great. Got two actually just in case.
- A 1A or greater micro USB power supply. I used a Samsung phone power supply.
- A USB keyboard (not wireless) temporarily.
- A Logitech or Microsoft USB Camera.
- Use Win32DiskImager and install OctoPi to the SD Card. Boot off the Pi, expand the partition to fill, optionally setup the WiFi on the PI, and you're set.
This little Raspberry Pi is now running my 3D Printer. Watch this wonderful YouTube by Tom who explains setting up OctoPrint on a Raspberry Pi better than I.
I hit http://octoprint.local and BEHOLD. I've got a nice bootstrapped website where I can see and control all aspects of my 3D Printer AND see the print via either my USB Webcam or a Raspberry Pi Camera.
Now I can use my iPhone or Tablet to watch my print and shut it down if something goes around. No more babysitting!
Even better, you can setup OctoPrint to create cool Time-lapse videos of your 3D prints.
Hour 14 - Reassurance
LESSON 14: MAYBE IT WILL BE OK. WHY WAS I SO ANGRY EARLY ON?
I need to chill and 3D print some stuff. After a while things are starting to make sense. I'm still an unranked amateur but I'm one who can write this giant blog post, so I musta learned something.
I also learned that Ii t turns out that Windows 8.1 has support for 3D Printers built in. I didn't have to install any drivers, one was already on my machine. There's also a 3D Builder app in the Windows Store.
Here's the apps I've been trying and using:
- 3D Builder - Can model, slice, and print.
- Autodesk 123D Design - Free and for Windows, Mac, and iPad. Stores your designs in their cloud.
- Repetier - Loads STL files and can launch a Slicer to make G-Code, then send the instructions to your printer.
- Cura - A very well-thought-of slicer. You should explorer different slicers as you gain experience. These slicers have different algorithms, and some are smarter with different kinds of shapes. Some are focused on reducing "travel" (how far the print head moves) or minimizing your use of filament. Others are great at setting up "supports" for when you have a piece floating in mid-air, as I do in the pic below. That side bit will need a small temporary support to hold it up. I'll remove it later.
- OctoPrint - YES. DO IT. It's the best app to manage your G-Code and your printer. Model with whatever you want, but print with OctoPrint.
- Tinkercad - Do your 3D modeling all in the browser. Great for kids.
Also check out Jon Gallant's blog as he's on a quest for the perfect 3D Model Software. Here's his list so far:
- Part 1: SketchUp and 123D Design
- Part 2: Tinkercad
- Part 3: Blender
- Part 4: FreeCad
- Part 5: DesignSpark Mechanical
- Part 6: 3dtin.com
- Part 7: Autodesk Fusion 360
Here I'm working on a holster for my Dyson Handheld Vacuum. I have a DC56 though, and this is a DC34. It's close...but, not quite.
Hour 15 - Encouragement
LESSON 15: IN WHICH I TAKE A JSCAD INTO A STL THEN INTO G-CODE AND SUCCESSFULLY 3D PRINT.
I want a holster for my Dyson Vacuum so I found thisDC34 Wall Charger holster/holder. In this comments of this other model on Thingiverse, I saw someone modify the JsCad for the design to add a little room for the DC56 over the DC34. However, it was in this JsCad format.
- It took me a second but I realized I just needed to take the original JsCad file (remember this is JavaScript that expresses a 3D design), open it in Notepad, and change the parameters with the new measurements.
- Then I ran my new file through the OpenJsCad parser online.
- I took the resulting STL file and loaded it into Repetier and sliced it with Cura. This made a G-Code file that's MY custom instructions with my preferences.
- I then loaded the G-Code into OctoPrint and printed.
- PROFIT. Well, no, but FEEL ACCOMPLISHMENT.
Here it is. Now I'll mount it to the wall and check that off my Bucket List. What should I print next?
Hour 16 - Power
LESSON 16: YOU CAN DO THIS. I CAN DO THIS.
It will take days, perhaps weeks, but you'll have a satisfying new hobby that will make you more powerful than before.
OK, so I can't just print all the free LEGO I want whenever I want. (I would never do that, I respect the LEGO Group too much.) I mean, I can't just make stuff on-demand. Yet. But I can solve some small problems and I am learning. I'm getting better. Each print teaches me something. I'm MAKING physical stuff with Software. This must be what Woodworkers and proper Handypeople feel like.
CONCLUSION
- Is 3D Printing ready like Inkjet and Laser Printers are ready? Nope.
- Is 3D Printing ready like Microwaves are ready? Nope.
- Is this Plug and Print? You'll need a few hours, days, weeks. Hopefully I've saved you some time or at least helped you decide if you want in.
But I bet in 3 to 5 years I'll be able to buy a solid enclosed reliable prosumer 3D printer for $599 from Office Depot, bring it home and have it just work. I'm stoked and I am happy with my Printrbot Simple Metal even if I don't get any further than I have after these last 16 hours.
What do YOU think?
* These are Amazon referral links. I use the few bucks I get if you buy stuff from Amazon to buy 3D Printer Filament! ;) Click click!
Sponsor: Big thanks to Amyuni for sponsoring the feed this week! Amyuni PDF Converter and Creator for .NET enables you to integrate powerful PDF functionality with just a few lines of code. Generate and process optimized PDFs with industry proven technology. Switch Now!
« VIDEO: Do you really know how to use Mic... | Blog Home | Changing perspectives on your job - Will... »
ABOUT SCOTT
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.