first lca commit

Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
Sean Cross 2019-01-10 10:57:14 +08:00
parent 0b3e7839eb
commit ca5d789695
56 changed files with 685 additions and 40 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 KiB

BIN
img/factory-entrance.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

BIN
img/factory-inject.mp4 Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 KiB

BIN
img/factory-mold-lifter.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

BIN
img/factory-proe.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 KiB

BIN
img/factory-tool-model.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

BIN
img/fomu-tool-1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
img/fomu-tool-2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
img/fomu-tool-3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

BIN
img/freecad-kicad.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

BIN
img/freecad-start.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

BIN
img/tomu-tool-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 KiB

BIN
img/tomu-tool-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
img/tomu-tool-6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@ -1,49 +1,694 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>reveal.js</title>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/black.css">
<title>Plastic is Forever: Designing Tomu's Injection-Molded Case</title>
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="lib/css/zenburn.css">
<meta name="description" content="A framework for easily creating beautiful presentations using HTML">
<meta name="author" content="Sean &quot;xobs&quot; Cross">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section>Slide 1</section>
<section>Slide 2</section>
</div>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="css/reveal.css">
<link rel="stylesheet" href="css/theme/black.css" id="theme">
<!-- Theme used for syntax highlighting of code -->
<link rel="stylesheet" href="lib/css/zenburn.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match(/print-pdf/gi) ? 'css/print/pdf.css' : 'css/print/paper.css';
document.getElementsByTagName('head')[0].appendChild(link);
</script>
<!--[if lt IE 9]>
<script src="lib/js/html5shiv.js"></script>
<![endif]-->
</head>
<body>
<!-- Start of main presentation -->
<div class="reveal">
<div class="slides">
<section>
<h1>Plastic is Forever</h1>
<h3>45 Minutes: Tomu's Injection-Molded Case</h3>
<p>
<small>Sean &quot;xobs&quot; Cross</small></small>
</p>
</section>
<section>
<h1>[Image of Tomu]</h1>
<aside class="notes">
This is Tomu. If you attended LCA last year, you will have gotten one. Tomu is a fantastic little device -- it's a
computer in your USB port! It's a single printed circuit board, but the thing about USB ports is that they're
mostly metal, which shorts out circuit boards. There was a 3D printed case available when I first joined the Tomu
project, but it was really more of a slug. The easiest solution for most people to use Tomu was to fold a business
card in half.
</section>
<section>
<h1>[Image of Tomu Case]</h1>
<aside class="notes">
This is the Tomu case. It is made out of Polycarbonate, usually called PC. It fits very snugly, and even has a
satisfying "click" when you insert Tomu. For the next 45 minutes or so, I'll talk about what it took to build
this, and the motivation for doing it in plastic. I hope to convince some of you out there that plastic is not out
of the question when it comes to projects.
</aside>
</section>
<section>
<h1>Outline</h1>
<ol>
<li>Manufacturing the Case</li>
<li>Designing the Case</li>
<li>Understanding Plastics</li>
</ol>
</section>
<section>
<h1>About Me</h1>
<ol>
<li>Novena</li>
<li>Tomu</li>
<li>Fomu</li>
</ol>
<h2>Manufacturing is Fun!</h2>
</section>
<section>
<section>
<h1>Factory Tour!</h1>
<aside class="notes">
I find the best way to understand something is to take it appart. This is the world of open source, after all.
The nice thing about manufacturing is that you're free to inspect all of the ingredients that go into a product,
just like how you can inspect the source code. So before starting on a project, I find it a good idea to take a
tour of the factory. That way you have a better understanding of what's possible and what's not possible. I'd
like to show you some photos of a recent trip I took to our plastics factory in Shenzhen, and I swear this isn't
just an excuse to show off my holiday photos.
</aside>
</section>
<section>
<h3>Front Door</h3>
<img data-src="img/factory-entrance-horizontal.jpg">
<aside class="notes">
This is the front door of the factory. Actually, it's the front door to a few factories, the one we're interested
in is on the fourth floor. They probably get a discount for it being on the fourth floor. There are a few other
factories in this building.
</aside>
</section>
<section>
<h3>Bags of Plastic Pellets</h3>
<img data-src="img/factory-plastic-bags.jpg">
<aside class="notes">
Factories have an "OQC" area, where they inspect parts before they're shipped. They also have an "IQC" area to
inspect stuff that comes in. Raw plastic comes from the factory in bags like this. There can be a variety of
blends available, such as ABS, PC, PVC, and so on. Talk with your factory to find the right blend for you,
they're probably really good at it.
</aside>
</section>
<section>
<h3>Inside the Bags</h3>
<img data-src="img/factory-plastic-blurry-contents.jpg">
<aside class="notes">
This isn't a very good shot, but it gives you an idea of what the pellets look like. This is half black and half
white, but once you melt it down it will be entirely black. It's possible to change colors, but they need to
waste a lot of material and throw away a lot of parts to flush the previous color. Fun fact: Black is usually
what they test with because defects show up really easily. Even if your final design is another color, your
prototype plastic shots will all be black to help them tune the machine and refine the steel tool.
</aside>
</section>
<section>
<h3>Into the Machine</h3>
<img data-src="img/factory-machine-hopper-horizontal.jpg">
<aside class="notes">
This is the injection molding machine. Well, the front half. You can see the plastic hopper up on top. You can
also see the linear sliders.
</aside>
</section>
<section>
<h3>Pulling a Shot</h3>
<video data-autoplay>
<source data-src="img/factory-inject.mp4" type="video/mp4" />
</video>
<aside class="notes">
This is what it looks like when the machine closes to make a shot. You can see the base mold here, and watch it
disappear. A single shot takes 30-60 seconds. If the tool is fancy, it will have various pieces that move. If
it's just a simple box, it will stay in place.
</aside>
</section>
<section>
<h3>Factory Mold Bases</h3>
<img data-src="img/factory-molds-stacked.jpg">
<aside class="notes">
What does that mold look like? Here are a bunch of carefully-indexed molds. Each one of these is a chunk of
nearly-solid steel. Around 1/3 of the cost of a tool is the raw cost of metal. These things are heavy. And steel
isn't cheap.
</aside>
</section>
<section>
<h3>Tomu on its Mold</h3>
<img data-src="img/factory-tomu-on-mold.jpg">
<aside class="notes">
And here we have a Tomu, sitting on top of its mold. You can see this is a "Family" mold, so there are four cases
that get made with each shot. Inside the base you can see the core. It's actually possible to reuse the base and
replace the core. Or as a cheap hack, you can modify the core, plug up some cavities, and do something completely
different. In this photo you can also see the gate, where the plastic flows into the mold, as well as the
runners, which is where the plastic flows as it makes its way to the cavities.
</aside>
</section>
<section>
<h3>Both Mold Halves</h3>
<img data-src="img/factory-mold-both-halves.jpg">
<aside class="notes">
Here's a different angle, and includes the top and the bottom halves of the mold. When the machine runs, these
two pieces come together, and plastic is injected. After it cools, these pieces separate. This is why injection
molding has a no-overhangs rule: If there was an overhang, then the halves couldn't separate.
</aside>
</section>
<section>
<h3>Bottom Half</h3>
<img data-src="img/factory-mold-bottom-half.jpg">
<aside class="notes">
This is a closeup of the bottom side of the mold. This shows the texture of the inside of the case nicely. For
Fomu, since the shape of the components is different, we're going to replace this half of the core. One thing to
note is the texture of the steel. If the steel is rough, your part will be rough. To get it smooth and shiny,
they must polish the tool, which is labor-intensive. Then they must re-polish it every few thousand shots. And
you still need to have someone polish each piece as it comes out of the machine. Smooth, shiny plastic is very
labor intensive manual work, so try to opt for matte finish if you can.
</aside>
</section>
<section>
<h3>Ejectors</h3>
<img data-src="img/factory-mold-lifter.jpg">
<aside class="notes">
Here's a closeup of the base. Interestingly the factory calls it a "USB Case" here. You can also see these giant
springs, which are for the ejectors. After the plastic flows in and is cooled, it has to be removed from the mold
somehow. Ejector pins slide through the tool and pop the piece out, leaving it clean for another shot.
</aside>
</section>
<section>
<h3>Cases on Runners</h3>
<img data-src="img/factory-cases-on-runner.jpg">
<aside class="notes">
Here is one piece from the machine. You can see four cases come out at once. You can also see the runners, as
well as where the plastic flowed in. There's a small bubble, which is fine. Normally the plastics factory will
break these off for you. Sometimes there's a small defect where the piece attaches to the runner, which you can
pay to have someone manually file off.
</aside>
</section>
<section>
<h3>Factory Edits</h3>
<img data-src="img/factory-proe.jpg">
<aside class="notes">
And here's the factory working on the Tomu case. Everyone in China uses ProE (Creo Elements Pro). I don't know
why. Fortunately there is a well-defined interchange format called STEP, and everyone is able to read and write
that format regardless of what they use to create it.
</aside>
</section>
<section>
<h3>Tool Model</h3>
<img data-src="img/factory-tool-model.png">
<aside class="notes">
This is the 3D model for the steel tool. It's in the Tomu Hardware repo alongside the case. The factory
took the model I made, then created this tool around it. They gave me the file when I asked for it. I put it up
so you can see what a real 3D tool looks like, since you don't see them very often. There are a few things I'd
like to point out here.
</aside>
</section>
<section>
<!--<h3>Gate + Ejector Pins</h3>-->
<img data-src="img/tomu-tool-4.png">
<aside class="notes">
Here's a good shot of the gate (in green), where the plastic (in dark grey) flows in. You can also see the
ejector pins (in orange), and the big steel plate (pink) that moves when the shot is complete to eject the molded
part.
</aside>
</section>
<section>
<!--<h3>Lifters</h3>-->
<img data-src="img/tomu-tool-5.png">
<aside class="notes">
Here we have some static lifters. Remember that nice "snap" I mentioned the Tomu case has? That comes from these.
Also remember how I said no overhangs? That was a tiny lie. Kind of. These were relatively cheap to add, costing
only a few hundred dollars. They don't move, but instead the poke into the case and cause an overhang. These pins
have the nice benefit in that they make the case much easier to use, and totally do away with the need to do the
heat staking thing. Unfortunately, they make this case impossible to 3D print now, which is why we have the old
version in the repo.
</aside>
</section>
<section>
<!--<h3>Lifters (Another Shot)</h3>-->
<img data-src="img/tomu-tool-6.png">
<aside class="notes">
This is a good shot to show you just how these don't actually cause an overhang. This was a really clever
suggestion that the factory made to me, and I'm super happy with it.
</aside>
</section>
</section>
<section>
<section>
<h1>Designing the Case</h1>
<aside class="notes">
And with that, let's move on to the creative question: How is the case created in the first place?
</aside>
</section>
<section>
<h1>3D Printing</h1>
<h3>Almost (but not quite) entirely unline injection molding</h3>
<ul>
<li>STL vs STEP</li>
<li>Overhangs</li>
<li>Support structures</li>
<li>Flow rate/lines</li>
<li>Time taken</li>
<li>Family molds</li>
</ul>
<aside class="notes">
Who here has worked with 3D printers before? 3D printers are great. They let you rapidly prototype ideas and are
much cheaper to iterate on. The finished product tends to be denser than most plastics. Individual pieces can be
relatively expensive, and they are not fast to create in volume. 3D printing is fantastic for prototyping
plastics, and even your plastics vendor will have some contacts for 3D printers so you can see your ideas before
they cut any steel.
</aside>
</section>
<section>
<h1>Hardware</h1>
<aside class="notes">
This PCB ruler is, surprisingly, the most useful ruler I've ever owned. It's great for designing PCBs, but also
handy for doing case design. These vernier calipers are also super handy, epsecially when you want to see just
how tiny various things are. And it's one thing to read a number on a schematic, but it's another thing entirely
to measure it in the real world.
</aside>
</section>
<section>
<h3>Software: FreeCAD</h3>
<img data-src="img/freecad-start.png" alt="FreeCAD Example">
<aside class="notes">
FreeCAD is an excellent piece of software. It's parametric, which means you define the object as a series of
steps. It's great for ensuring what you create in the virtual world closely matches the real world.
</aside>
</section>
<section>
<h1>FreeCAD can create STEP files</h1>
<aside class="notes">
STEP is the main interchange format for factories, so you really want to be able to read/write this format.
OpenSCAD is also a good piece of software if you're a fan of programming, but you still need to use something to
convert its output into a STEP file, which FreeCAD can do.
</aside>
</section>
<section>
<h3>FreeCAD can read KiCad files</h3>
<img data-src="img/freecad-kicad.png" alt="KiCad PCB inside FreeCAD">
<aside class="notes">
This is huge for ensuring your PCB fits. FreeCAD will read any STEP models for components that exist. It will
also read the PCB thickness from KiCad.
</aside>
</section>
<section data-transition="slide-in fade-out">
<h3>1) Open the PCB</h3>
<img data-src="img/freecad-case-creation-01.png" alt="First, open the PCB in FreeCAD">
<aside class="notes">
Open the PCB in FreeCAD. You'll probably have a bunch of errors about missing STEP files, but that's okay it just
means you'll be missing components. They're mostly a guideline anyway, and may not be accurately sized. You can
hide components by clicking them on the left and pressing "Spacebar".
</aside>
</section>
<section data-transition="fade">
<h3>1) Open the PCB</h3>
<img data-src="img/freecad-case-creation-01b-makesketch.png" alt="Click 'Create Sketch'">
<aside class="notes">
We must create a "sketch", which is a 2D drawing. To create a sketch, click on this "Create Sketch" button. It'll
ask you which plane you want. Usually I get it wrong, and have to abandon the sketch. But you want it to be on a
plane that lets you see the PCB.
</aside>
</section>
<section data-transition="fade">
<h3>2) Create a sketch</h3>
<img data-src="img/freecad-case-creation-02-constraints.png" alt="Creating constraints on the first sketch">
<aside class="notes">
This is your sketch. You can freely create elements like rectangles and circles, much like in a
2D drawing program like Inkscape. The difference here, and this is a big one, is that we must constrain these
shapes by defining precise dimensions. These constraints are what makes this a parametric modeler, because you
define the parameters for the various elements.
</aside>
</section>
<section data-transition="fade">
<h3>2) Create a sketch</h3>
<img data-src="img/freecad-case-creation-02b-features.png" alt="Creating constraints on the first sketch">
<aside class="notes">
These are the Elements. They include things like rectangles, circles, ovals, points, tangents, and other basic
primitives.
</aside>
</section>
<section data-transition="fade">
<h3>2) Create a sketch</h3>
<img data-src="img/freecad-case-creation-02c-constraints.png" alt="Creating constraints on the first sketch">
<aside class="notes">
These are constraints. These limit the parameters of the primitives.
</aside>
</section>
<section data-transition="fade">
<h3>2) Create a sketch</h3>
<img data-src="img/freecad-case-creation-02-constraints.png" alt="Creating constraints on the first sketch">
<aside class="notes">
You can tell that this green box is 12mm x 12.2mm, and that
the left and bottom sides are offset from the middle by 6.5mm and 6.1mm. Furthermore, the sides are defined to be
parallel, which means we only have to constrain one side. You need to have just enough constraints. Too many, and
it's "overconstrained". Too few, and it doesn't have a defined shape. When you're done, and it says "Fully
constrained sketch", click "Close".
</aside>
</section>
<section data-transition="fade">
<h3>2) Create a sketch</h3>
<img data-src="img/freecad-case-creation-03-extrude-start.png" alt="Sketch done, starting pad">
<aside class="notes">
And here's what it looks like in 3D view. We want to bring this 2D sketch into the 3D world, and we do that by
extruding it. Click on the sketch on the left, then click on the "Pad" button.
</section>
<section data-transition="fade">
<h3>3) Pad the sketch</h3>
<img data-src="img/freecad-case-creation-04-extrude-done.png" alt="Done with the pad">
<aside class="notes">
And here's what it looks like. Note that we have a 3D shape now, and we've defined that it's 2.0mm tall. Note
that in this image I've named this box "Board shield" for ease of remembering what it is.
</aside>
</section>
<section data-transition="fade">
<h3>3) Pad the sketch</h3>
<img data-src="img/freecad-case-creation-04b-extrude-done.png" alt="Done with the pad">
<aside class="notes">
The only setting of interest is the Length field here, which indicates how much padding to add. Since the USB
slot is about 2.4 MM thick, and we want to have some tolerance between the case and the PCB, let's make it 2.0
mm.
</aside>
</section>
<section data-transition="fade">
<h3>3) Pad the sketch</h3>
<img data-src="img/freecad-case-creation-05-extrude-angle.png" alt="Pad at an angle">
<aside class="notes">
And finally, here's what it looks like at an angle. And that's it! Repeat steps 2-3 until you're done.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-06-begin-carve.png" alt="Create sketch for pocket">
<aside class="notes">
Click on the face that you want to add a pocket to, and click "Create sketch"
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-07-pocket-sketch.png" alt="Complete sketch for pocket">
<aside class="notes">
Create the sketch, ensuring it's fully constrained just like before. Click "Close" once you're done.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-08-create-pocket.png" alt="Create a pocket">
<aside class="notes">
Create a pocket by clicking the "Create pocket" button.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-09-pocket-created.png" alt="Create a pocket">
<aside class="notes">
There, a nice pocket.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-09b-pocket-created.png" alt="Create a pocket">
<aside class="notes">
The length here is 0.8mm, because the PCB is 0.6mm, plus some tolerance.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-10-pocket-pcb-hidden.png" alt="Pocket with no PCB">
<aside class="notes">
And here's what it looks like if we hide the PCB.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-10a-pocket-passives-start.png" alt="Click on face for sketch">
<aside class="notes">
Click on the face that we want our sketch...
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-11-passives-sketch.png" alt="Pocket with no PCB">
<aside class="notes">
Create a sketch for the passives...
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-12-passives-pocket.png" alt="Pocket with no PCB">
<aside class="notes">
Create a pocket for the passives...
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-13-mcu-sketch.png" alt="Pocket with no PCB">
<aside class="notes">
Create a sketch for the MCU...
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-14-mcu-pocket.png" alt="Pocket with no PCB">
<aside class="notes">
Create a pocket for the MCU...
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-15-edge-sketch.png" alt="Pocket with no PCB">
<aside class="notes">
Create a sketch for the edge LEDs and components...
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-16-edge-pocket.png" alt="Pocket with no PCB">
<aside class="notes">
Create a pocket for the edge LEDs and components...
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-17-mounting-peg.png" alt="Pocket with no PCB">
<aside class="notes">
We'd like to create a mounting peg, so create a circle.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-18-mounting-peg-pad.png" alt="Pocket with no PCB">
<aside class="notes">
And pad the mounting peg sketch.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-19-alignment-bump-sketch.png" alt="Pocket with no PCB">
<aside class="notes">
Create a sketch for the passives...
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-20-alignment-bump-pad.png" alt="Creating a pad for the alignment bump">
<aside class="notes">
And now pad the alignment bump to bring it into 3D.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-21-guiding-slots-sketch.png" alt="Creating the sketch for the guiding slots">
<aside class="notes">
Here are the guiding slots. Note that they're not strictly necessary, and in fact the 0.4mm thickness is
bordering on the smallest feature that our 3D printer can create. A good rule of thumb is that injection molding
doesn't work so well below 0.5mm, but we're bending that rule a bit here because this piece is very small, and
it's not load-bearing.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-22-guiding-slots-pad.png" alt="Finished case without PCB">
<aside class="notes">
If we turn off the PCB, here's what the finished product looks like.
</aside>
</section>
<section data-transition="fade">
<h3>4) Repeat as necessary</h3>
<img data-src="img/freecad-case-creation-23-case-with-pcb.png" alt="Finished case with PCB">
<aside class="notes">
And here's what the finished product looks like with the PCB enabled.
</aside>
</section>
<section data-transition="fade-in slide-out ">
<h3>5) Check with reference parts</h3>
<img data-src="img/freecad-case-creation-24-usb-port.png" alt="Test with models">
<aside class="notes">
This is a USB port I got from a vendor. Somewhere off Digikey. They provide STEP files for just this sort of
thing. You can move the camera around and make sure the part will actually fit. Of course, 3D printing is
generally the best option, but this gives you an idea of hw well it'll fit before printing.
</aside>
</section>
<section>
<h3>Here's what we sent to the factory</h3>
<img data-src="img/freecad-sent-to-factory.png" alt="STEP model we sent to factory">
<aside class="notes">
Here's what we sent to the factory. FreeCAD generated this STEP file, and we just emailed it to them. They received the file, along with a sample PCB, and we got to talking. They understood roughly what the usecase was, and they had some suggestions. They made some modifications to the STEP file and sent it back to me for approval.
</aside>
</section>
<section>
<h3>And here's what they sent back</h3>
<video data-autoplay>
<source data-src="img/final-model-spinning.mp4" type="video/mp4" />
</video>
<aside class="notes">
I'm really happy with this. You can see the changes they made. They added the lifters on the bottom, which is what causes those holes. You wouldn't normally notice them, but they give those latches that let the PCB snap into place. They also added the grips on the side, which are just kind of a nice touch. Overall they managed to quickly understand the design and make some simple improvements. And then I was able to approve their design decisions, including the extra cost incurred from the additional lifters, and get the tool made.
From this point, they took a few weeks to do the first draft of the mold, called T0. This is like a beta release: everything should be there, but it needs tuning. There will be flow defects, and it will be unpolished. The tool is still relatively soft at this point, and edits can be made easily. A good plastics vendor will have a functional tool after T0, but it's not at all uncommon to have to do T1, T2, and more. This test shot will usually be in black, because it shows lots of defects very easily.
</aside>
</section>
</section>
<section>
<section>
<h1>Real World Fun</h1>
<h2>And the problems you'll face</h2>
<aside class="notes">
Now that we know the basics of how plastic is made, we can see some of the consequences in the real world. While
many of these designs aren't open source, it shouldn't be too difficult to work backwards and imagine how the
tool was built.
</aside>
</section>
<section>
<h1>Clothes peg</h1>
<aside class="notes">
This is a clothes peg from my house. It's very cheap. You can clearly see parting lines along the side here. The
texture is effectively free, because this piece is entirely flat. There aren't any fancy tool options here -- no
lifters or sliders or anything complicated. You can see the ejector pin marks on the inside, and there are two of
them. You can also tell where the gate was, because there's a little bit of material left over. The plastic also
has a very rough surface, indicating they probably aren't cleaning the tool very often. One clever piece is that
both halves of the clothes peg are identical.
</aside>
</section>
<section>
<h1>Aircon Remote (Back)</h1>
<aside class="notes">
This is a very important tool in Singapore. It's the air conditioning remote. They've added some text on the
backside here. Curiously, there's something that seems to violate our "no overhangs" policy. And indeed it does.
How do they do that? They use something called a "slider". Basically, a piece that starts out in one position
when the plastic flows, and then slides out of the way to let the piece eject. Sliders add a lot of cost, because
they quickly complicate the steel tool. You can have multi-stage sliders to get all sorts of complicated
features, but it can get very expensive very quickly.
</aside>
</section>
<section>
<h1>Aircon Remote (Front Cover)</h1>
<aside class="notes">
Here's the inside of the front cover. It can slide up and down, which means it has a lip on the side. They used a
slider here, too. In fact, the slider left small marks here. This particular piece is great because you can see
the ejector pin marks, the gate mark, and the slider marks. They were also kind enough to indicate that this came
from the second cavity in the mold. They could probably hide some of these marks if they put more effort into it,
but it's really very little payoff. Most people won't notice, and it doesn't impact the functionality of the
product.
</aside>
</section>
<section>
<h1>Wine bottle opener</h1>
<aside class="notes">
This wine bottle opener has one very visible parting line. Interestingly, it's overmolded, which is where one
piece gets two shots, and the overmolded piece hides the parting line along the top. You can do some pretty cool
thigns with overmolding, because the base doesn't even need to be plastic. You can overmold anything that will
fit inside of a plastic tool. That includes circuit boards, if you don't need to worry about heat or debug pins.
This is how most cables are made, where they put the wires directly into the injection molding tool.
</aside>
</section>
<section>
<h1>Kinder joy</h1>
</section>
<section>
<h1>iPhone 3G</h1>
<aside class="notes">
This one is particularly fun. It's an old iPhone 3G, back before Apple went completely crazy with CNC-milling. In
addition to being particularly shiny, which you remember requires polishing after the part comes out of the mold,
you'll also notice the lack of parting lines. That's because Apple polished them off.
</aside>
</section>
</section>
<section>
<section>
<h1>Conclusion</h1>
</section>
</section>
</div>
</div> <!-- class="reveal" -->
<!-- End of main presentation -->
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.js"></script>
<!-- Start of configuration section -->
<script src="lib/js/head.min.js"></script>
<script src="js/reveal.js"></script>
<script>
// More info about config & dependencies:
// - https://github.com/hakimel/reveal.js#configuration
// - https://github.com/hakimel/reveal.js#dependencies
Reveal.initialize({
dependencies: [
{ src: 'plugin/markdown/marked.js' },
{ src: 'plugin/markdown/markdown.js' },
{ src: 'plugin/notes/notes.js', async: true },
{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>
<script>
// More info https://github.com/hakimel/reveal.js#configuration
Reveal.initialize({
controls: true,
progress: true,
history: true,
center: true,
controlsTutorial: false,
slideNumber: 'c/t',
// The "normal" size of the presentation, aspect ratio will be preserved
// when the presentation is scaled to fit different resolutions. Can be
// specified using percentage units.
width: 960,
height: 700,
// Factor of the display size that should remain empty around the content
margin: 0.1,
// Bounds for smallest/largest possible scale to apply to content
minScale: 0.02,
maxScale: 5.5,
transition: 'slide', // none/fade/slide/convex/concave/zoom
// More info https://github.com/hakimel/reveal.js#dependencies
dependencies: [
{ src: 'lib/js/classList.js', condition: function () { return !document.body.classList; } },
{ src: 'plugin/markdown/marked.js', condition: function () { return !!document.querySelector('[data-markdown]'); } },
{ src: 'plugin/markdown/markdown.js', condition: function () { return !!document.querySelector('[data-markdown]'); } },
{ src: 'plugin/highlight/highlight.js', async: true, callback: function () { hljs.initHighlightingOnLoad(); } },
{ src: 'plugin/search/search.js', async: true },
{ src: 'plugin/zoom-js/zoom.js', async: true },
{ src: 'plugin/notes/notes.js', async: true }
]
});
</script>
</body>
</html>