Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / programming / printing

Adventures in 3D Printing Part 3: Making Complex Apertures - Recovering from the Bends

4.64/5 (3 votes)
25 Nov 2019CPOL9 min read 6.5K   61  
So ... you want to put that LCD display in there, huh? Pity it's not a rectangular frame, isn't it? How are you going to fit a neat frame round that, huh? It's complicated, but ... not that complicated when you get used to it.

Introduction

My 3D printer box is made, and works really well - but I thought it would be handy to add a temperature sensor to it to give me the actual printed object temp rather than the bed temp so I can power down the printer and still know when it's safe to remove.

If you remove the product too early, there are two problems:

  1. It sticks too hard and is difficult to remove without either damaging it (if it's a bit component), or pinging it across the room and swearing (if it's a little one).
  2. If you try to remove it too early, the core may still be above the glass temperature, and any bend or deflection you introduce while removing it may "set" - ruining the component.

I am not giving prizes for working out how I know about these problems.

For this article, I'll be using Autodesk Fusion 360 - it's free for hobbyists and very full featured. You can probably do the same things in any other CAD package as well.

Hardware

The most obvious way was to buy a IR temperature gun from China - there are load of them on Amazon and eBay, they are all cheap, and effective. It would cost me a huge amount more if I had to buy the components and program one myself.

So, I buy a cheap one and eventually it arrives:

Image 1

My criteria were not style or even that the battery should be included - It was that it had a good display, showed the temperature, used a 9V battery, and was cheap - it was under £5 including delivery, and to be honest, I couldn't even buy a suitable display for that, much less the sensor.

(Why a 9V battery? Because I have +12V inside the box to run the extractor fan and the lights - so if I add a LM7809 and two 0.1uF capacitors, I can get 9V to drive it and lose the battery. Yes, I could do this with 3V, but I'd have to throw away more electricity and that means a warmer voltage regulator - the box is wood and I'd like to keep the heat down in there anyway.)

Strip it to pieces, and I can start. That's really easy: two screws and some gentle pulling has it in kit form in moments:

Image 2

Do note that this will invalidate your warrantee.

So, What We Got?

Now I need to make a mounting box: I want the display outside my box, and the sensor inside - so I'll have to cut and extend the wires, and make a mounting box for the display. The switches I can ignore - it defaults to Celsius rather than Fahrenheit which is perfect, the backlight defaults to on, and I'll disconnect the laser once the sensor is correctly located (that'll need a mounting plate as well, to go through a hole in the tools shelf). So apart from the trigger - which will need to be permanently pulled while in use - I can ignore the push buttons.

Image 3

I'll have to remove the trigger microswitch and wire it to an external switch (I could use a delay timer, but ... nah.) I'll pull out the squeaker as well. Both of 'em are PTH components rather than SMT, which makes life a load easier!

(The unit starts working once the trigger is pulled and switches off 7 seconds after the trigger is released - but if the trigger is already pulled when the battery is connected, it has to be released first, and then pulled again. Using a delay timer chip would allow for that and would be neater than a physical switch, but ... the PCB includes a LM7803 which converts the incoming 9V to its logic levels (3.3V), and that means I need a matching 555 chip, and power for that - which menas hooking into SMT components to get the right levels and / or another LM7803 to power the 555. Interestingly, the LM7803 specification sheet says it'll take up to 12V without problems, so in theory, I don't need an external LM7809 at all - but we are dealing with Chinese hardware here and I don't want to risk it. A 7809 and two capacitors aren't expensive anyway!)

So the display...

Image 4

That's not a rectangle, is it? Two things we could do:

  1. Make a rectangular hole. It's easy, simple, and ... would look like crap.
  2. Make a complex hole that follows the curves in the original. That'll look good, and ... be really complicated. Bugger.

If I'd gone for option one, this article would never have existed, so again - no prizes for guessing which I went for.

A Hole: A Trapezoid With Curves

The first thing is that we don't know anything about the curves, and we don't have dimension sheets for the display frame either - so it's time to break out a vernier gauge and start doing some measurements.

(You can use either a digital gauge, or a old fashioned vernier - I use the latter because I'm used to them, and good quality gauges are expensive.)

The first thing to do is: ignore the curves. Establish the distances to the "corners" and you can get to the curves later: so measure the widths and heights. That's a little complicated because you need to estimate pretty accurately the exact position of the corners - but thankfully these aren't filleted (they haven't been "rounded off" to make the corners smoother)

When you know the four edge lengths - and two of them are the same in this case - it's time to start drawing. Fire up Fusion 360, and start a sketch.

Now, we need to decide on a coordinate system here: since the base of the display is flat, I'll put that on the X axis, as the "Left most" corner can be at zero X - that's the top left corner, since the top is wider than the bottom.

(This is all arbitrary: you could just pick the display center and work out from that if you like, but that's hard to "find" for other measurements we'll need to make. Basing it on the bottom and "left most" corner just made sense to me - but it's totally your choice.)

Offset the two lengths by a little - to allow for tolerances and "spread" in manufacturing - I added 1mm to each length to give me 0.5mm all round to play with. Trust me on this: if you don't, it'll be too tight a fit - but you know what your printer does so exactly how much is up to you. I'd start with 1mm, and come down from there if needed - you can change this in the sketch later after you print a sample, if you need to.

Draw the trapezoid which reflects the corners:

  1. Bottom left corner: draw a line from the origin along the X axis, and make it "half the difference between the top and bottom lengths" long. For me, that's 1.15mm
  2. Bottom right: draw a line from (1) along the X axis, make it the bottom length long.
  3. Top left: draw a line from (1) along the Y axis, make it the height long.
  4. Top right: draw a line from (3) that is horizontal, and the length of the top.
  5. Join up (2) and (4).

You should have something like this:

Image 5

Now, we add the curves. Except ... for that, we need to know the curve radius. But we have everything we need as we know the length of the chord, and the height of the arc (or we can measure them at least).

Image 6

The line between A and B is called the Chord.

L is the length of the Chord: we know that (it's the length of the top or side of our trapezoid)

H is the height of the arc above the Chord: we can work that out by measuring the height of the frame and subtracting the height of the of the side, or by measuring the width of the frame, subtracting the length of the bottom, and dividing by two.

(For a rectangle, that would be accurate, but for our trapezoid, it isn't - we can work it out using math, but it;'s pretty damn close, and we can "fine tune" the arc later. Trust me, this is easier.)

r is the radius of the circle that forms the Chord: we want this.

Θ is the angle in degrees that forms the Chord: we don't need this, but it's easy to work out.

r = ((L2 / 4H) + H) / 2)

Θ = 2 * sin-1(L / 2r) * 180 / π

There is a WinForms app to make it easier at the top of the article.

Adding the Curves

This takes a little work, so once we've got the radii, let's start with the easy one:

The Top

This is the easy one because it's parallel to the bottom - which is parallel to the X axis (and why I picked this coordinate system in the first place).

First, we need to drop a line from the centre of the top of the curve, that is the radius long. Easy to do: subtract the height H from the radius r and draw it parallel to the Y axis from the centre of the top line of the trapezoid. Fusion makes that easy as well: select Line and move the cursor along the top line and it gives you a target X with a Delta triangle to show you the midpoint.

Now go to the "Create" menu, select "Arc", "Centre Point Arc". "Center Point" is the bottom end of the line we just drew, "Start Point" is the top left of the top line, "End Point" is the other end.

Image 7

The Other Two

These are harder, because we don't have a stable axis to work against - we want to do the same thing as we did for the top line, but with an angled line. Fusion makes that pretty easy though.

Select the Line tool, set the start point as the midpoint of the left hand side of the trapezoid, and set the length. Then select both the left hand side and the new line. Go to the Create menu, and select "Sketch Dimension". Move the angle so you can see it's correct, and change it to 90 degrees.

Image 8

Now add the curve using the same method as for the top.

Repeat the process for the right hand side:

Image 9

Let's Test It

Add a rectangle around the whole thing, leaving maybe a 5mm border. Use Press/Pull to extrude 0.5mm - let's just check, not waste too much time and filament!

Image 10

Image 11

Print that, and try it on your display:

Image 12

Like a glove!

Remember: if it doesn't fit, you can edit the sketch and tweak the values to match your new measurements - they will propagate through very nicely.

History

  • 2019-11-25 V2 Typos ... lots of typos ...
  • 2019-11-25 V1 Original version

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)