Tuesday, February 2, 2016

3D Printed Curta Part VI

Time for change

I changed jobs and moved to the home of the Carolina Panthers last year and have been busy getting settled in the new house. There are still a lot of things to do and boxes to unpack, but I got my office (mostly) set up and managed to run a few prints. On a side note, Go Panthers! Play well in the Super Bowl this weekend.

Long prints and support material

The first few prints I did after getting the printer up and running again were little things to help recalibrate the printer after being lugged a few hundred miles. After I was confident in its ability to print consistently I challenged it with the main upper body of the Curta.

The main body of the Curta has a lot of overhangs which cannot be printed without support material. I slice my models with Simplify 3D which has really great support material generation that is easy to break away. It does it by producing narrow zig-zagged walls and a one layer gap (configurable) interfacing with the model. The supports are flexible due to the single pass width and are not as securely bound due to the one layer gap. The zig-zag pattern combined with the flexibility allows the supports to be compressed which helps them to easily break cleanly away from the model.

If you are familiar with FDM / FFF 3D printing, you are familiar with parts curling. As the plastic cools, it shrinks some and pulls on previous layers. If it pulls enough, it can cause the edges of your print to curl / peel off of the print bed. The plastic I use (PLA) is much better at not doing this than other plastics, but it can still happen. Particularly if the printer doesn't have a heat bed such as mine. The first time I attempted to print the main body I ran into troubles with this. The support material being only one extrusion-width wide has a small footprint on the print bed and in the case of the main body, many layers to pull against the first layer. That caused some warping on my first print which I had to cancel.

On my second attempt, I told Simplify 3D to alternate support direction by 45 degrees once every ten layers. That helped a lot. I no longer had any curling / peeling issues. In fact, the print was so strongly attached to the print bed I had to use a heat gun to warm the bed up from underneath before I could pry it up. However those alternating direction layers in the support also worked to strengthen the support material making it more difficult to remove from the main body.

On my next print, I reprinted the tens bell I had misaligned in my previous post (the tens bell handles carry operations in the Curta). I decided to go back to Simplify 3D's default support settings. I chose to do that partially because I had printed that part before with no issues and partially because of the difficulty I had removing the support material from the main body. Removing the supports this time was surprisingly just as difficult (if not harder due to the small spaces). I believe this to be due to the material I printed with this time around. I used a clear PLA from Monoprice. It prints very well and it did come out pretty clean, but I think it binds to itself much more readily making the supports more difficult to remove. Due to the nature of the Curta parts, I will be using a different material from here on out.

After printing the tens bell and main body out and removing the supports from each, I was able to assemble them together using a printed c-clip also designed from the engineering drawings. There is a washer that is supposed to be under the c-clip to provide proper spacing, but I have not yet printed that. As far as I can tell everything seems to line up correctly, but I will know more when I can assemble more. The tens bell rotates well in the main body, but I may smooth the print layers a little bit and add some lubrication before final assembly. I also printed the spring that attaches to the bottom of the tens bell. It does have some spring to it, but I don't think it is enough. I may need to fabricate that out of metal.

I recorded time lapse vide of the prints. Unfortunately my printer does move the print bed back and forth which makes the part appear to jump in the video. I will look into mounting the camera directly on the print bed, but that may not be possible without compromising the print on this printer. I am planning to build a Triple C-bot which only moves the print bed vertically. If I finish that before I finish the Curta, I will begin recording my prints on that.

The main body right off of the print bed.

The underside of the main body showing the support layers. Also note the brim.
Here I have removed the majority of the support material, but bits of it remain making the surface rough.

The roughness from the support material seen from a different angle.
The fully cleaned main body.
The main body from the top.
Another view of the main body.

The corrected and reprinted tens bell

The tens bell, spring, c-clip, and main body

The tens bell connected to the main body with the c-clip

Friday, July 10, 2015

3D Printed Curta Part V

Tolerances in OnShape

I waited through two updates to OnShape and decided that I needed to stop waiting on them for features. I used their version control to set up a branch for my tolerance work and then used expressions to add in the tolerances I calculated based on my previous tests on my printer and the tolerances specified in the Curta engineering drawings. This allowed me to begin printing and I can go back and update these expressions to used shared dimensions later when they are added.

Initial Printing

I started my first prints at 3:1 scale. I printed a section of transmission axle, a sleeve for the ratchet gears, a selector shaft, and selector knob. The initial versions of the transmission axle and sleeve did not fit well due to a mistake in the models, but that was easily fixed. Support material was needed for the selector knob. I think it turned out well. I also printed a tens bell and a c-clip for it and they turned out mostly well, but another modeling mistake meant that the rings on the tens bell were misaligned. The bottom ring also warped during printing so it will need to be reprinted. I have altered the model to align the rings properly and increase the footprint in contact with the print bed so that warping issues will be reduced.

I searched around and found some steel balls at the right size for the selector knob and shaft. It turns out that the right size matches #TT steel shot. I couldn't find it in any smaller quantity than a 10lb bag, though. When I got those delivered I improvised a ball point pen spring to assemble the selector shaft and knob. I am very happy with how that turned out. See the pictures and video below.

I look forward to further printing and getting more parts of the Curta assembled.

Misaligned tens bell. I will be reprinting it soon.
Transmission sleeve and shaft section

Close-up of the profile of the transmission shaft

Transmission sleeve on the transmission shaft. It slides smoothly as it should.
This is the #TT steel shot I used for a ball bearing in the selector shaft / knob assembly.

The selector shaft, knob, steel ball, and the ball point pen disassembled for its spring.

The selector knob with the spring and steel ball. The adjustable wrench is not tight and is there only to keep the knob upright.

In order to press the ball and spring down without the ball shooting out and taking an eye out, I placed my thumb on the short side while sliding the shaft in the opposite side (the wrong way) to limit the ball and spring's movement.

Here is the steel ball and spring pressed into place. The tube I am using to press the ball bearing and spring down with is the ink tube from the ball point pen.

Now that the steel ball and spring are pressed into place, the shaft can be slid into the knob in the correct orientation. Once the shaft is covering the ball bearing as far as it can, pressure on the ball bearing and spring no longer needs to be maintained.

As the selector knob is slid onto the shaft, the guide screw will need to mate to the slot in the selector shaft.

Thursday, May 28, 2015

3D Printed Curta Part IV

Curta Part Strength at Scale

I ordered parts from Shapeways to check the clearances I determined for moving parts and to see and feel the strength of their plastic. I ordered the digit selector axle and the selector knob. The two parts mate and does some mechanical work since the selector axle turns as the knob is moved up and down it.

The parts came packaged nicely and were in good shape. There was some powder left in the selector knob I had to clear out and the bottom of the selector axle needed a little bit of cleaning to fit on the axle, but the two pieces fit together and functioned well. I did not have a small spring and ball to add to complete the assembly. This was mostly a test of what I could expect from Shapeways for size, fit and strength.
Selector knob and axle assembled.

The held in my hand for scale.

Movement of the shaft and knob.
The parts did mate, but the fit was a little bit looser than I would have liked. The fingers on the knob where it would hold the transmission gear and the small point at the top of the axle were too small and fragile to be useful so even with SLS printing, I would need to scale up to produce useful parts. Not terribly surprising.

I may go back to Shapeways at some point in the future to build a really clean version of the Curta. However since I have to scale up anyway, I am going to produce future tests and parts with my FDM printer for now so that I can get faster iterations. It took eleven days from initial order to received parts. While that is pretty good turnaround for a process that used to take much longer, I can produce multiple revisions in hours on my printer versus one in weeks.

Tolerances in OnShape 

I could go ahead and set up all of the scaling and tolerances I need to print the parts I need, but if I ever got a printer with better accuracy I would need to repeat all of that work. Instead I want to rely on dimensions shared across the parts to define the tolerances. This way I can update the values in one place to have them applied to all of the parts at once.

OnShape does not yet support shared dimensions, but it is a feature that they told me they are working on. I look forward to that update so I can continue my work.

In the meantime, I am back to the idea of using my FDM printer which means supports for overhangs. I would prefer to keep that limited so I am going to revisit the models to consider further alterations that would 3D print more easily.

Tuesday, May 12, 2015

3D Printed Curta Part III

Modeling Refinements

In part 2 I finished modeling the parts for the Curta. Now I have completed an assembly of all of the parts in OnShape. For the most part I added mates that allow the proper movement of the pieces, but in some circumstances I had to limit the movement so the assembly didn't suffer. While the mates allow movement, there is no collision detection or other relationships between the parts, so sliding a digit selector does not turn the selector shaft or move the transmission gear.

Despite that, it was a good exercise. I found a number of problems that have now been solved. The digit selector knobs were not the right size -- the engineering drawings show all of the knobs being machined from one piece. I did not account for the material that would be cut away when the knobs were cut apart. The step drum parts did not want to mate correctly and I had to manually adjust them because the edges of the teeth were intersecting the transmission gear sleeves. There were a few other similar issues as well.

The assembled step drum

The assembled Curta (no lettering and the clearing ring is on upside down)

3D Printer Accuracy vs Resolution

I first set out to figure out what clearance between a hole and a shaft would lead to different mechanical fit types. I printed a series of holes and shafts where the shafts varied in diameter while the holes were all the same. The range was fairly large with a pretty course step (0.05mm). I only got about half-way through fitting the holes into the shafts before I ended up with a forced fit. I believe I printed these at a 0.23 mm layer height at a tame speed for my printer of 3000 mm/s. Here are the (very basic) results:
  • 0.35 mm -- Loose sliding fit
  • 0.3 mm  -- Sliding fit
  • 0.25 mm -- Tightish transition fit. (pressed into place by hand; removable by hand; twists with some effort)
  • 0.2 mm  -- Forced fit. (pressed into place by hand; cannot remove by hand; cannot twist; removal with pliers damaged the parts)

While doing some research on hole and shaft tolerances, I came across an article discussing accuracy vs resolution. The difference is something akin to precision vs accuracy. A printer can print at a high resolution, but if the layers it deposits vary in width or position a lot, it has a low accuracy.

That article led me to the thought that instead of adjusting all my parts by a larger tolerance, my tolerances should be the same as the engineering drawings, but I should also account for accuracy by subtracting it from shafts or adding it to holes (or half and half).

To test this, I devised multiple test prints. The first was to find my printer's accuracy. Again I printed a series of holes and shafts where the shafts varied in diameter. This time I started at 0.2 mm clearance and increased the gap by 0.01 at each step while also adding in a 0.02 mm for the maximum H7/h6 mechanical fit tolerance. I ran these prints at a smaller layer height of 0.1mm. The one that fits best should indicate my printer's accuracy.

After printing the test, the smallest accuracy clearance (0.2 mm + 0.02mm fit tolerance) turned out to provide the closest sliding fit after the pieces were worked together a little bit. That tells me that at 0.2mm I am clearing most of the ridges that the 3D printing process creates, but there are a few outliers (mainly where there are joints) which get worn down as the parts are moved.

While it is probably not 100% correct, for my purposes I am going to call my printer's accuracy +/- 0.1 mm (or +/- 0.2 mm counting two walls -- one on either side of the shaft). 

Next I printed some smaller fit tolerances with the same clearance for accuracy. I used the following fits:

  • H7/h6 for an LC2 fit (this was the same as earlier to have a comparison)
  • H7/js6 for an LT1 fit
  • H7/k6 for an LT2 fit
I was hoping for a noticeable difference in how these fit, but they all have similar resistance after working the parts together which is probably the problem -- any difference in width is worn away.

These tests give me an idea for how to proceed and give me a starting point to run some tests with Shapeways.

I also printed the same test on the printer at my office, but it is not as finely tuned. The results showed that difference with pegs that were visibly not as straight vertically. They did not fit as well as a result and got stuck when I tried to push the peg through.

From left to right, attempts at LC2, LT1, LT2

The assembled parts from above arranged in the same order.
They all fit closely, but allow easy sliding and rotational movement.

Wednesday, May 6, 2015

3D Printed Curta Part II

Initial Modeling Complete

I completed modeling all parts for the Curta Type I from the engineering drawings. All parts are modeled to the nominal sizes (no tolerances are applied yet). It took me about a month to get through them all (working on it during evenings and on weekends). I used OnShape to model the parts and the excellent disassembly at vcalc.net as an additional reference to the engineering drawings.

There were a few parts in the disassembly at vcalc that differ from the engineering drawings (namely the results and turns counter carriage casting). It may be that those parts were easier to manufacture and assemble in a slightly different way that they were drawn up. As long as it was functionally the same, I opted for the design that would be easiest to print.

Print Process Change

After modeling the parts, looking at the tolerance specifications, and watching a video on assembling the Curta; I decided that even at 4:1 spo FDM printing may not be up to printing a Curta. It may produce something that could be assembled, but function may be inhibited by parts that have too much friction or too much wiggle room depending on how the layers match up between parts.

Instead of FDM, I have decided that I will use SLS. I toyed with the idea of using SLA, but decided I might as well go with the process that requires no support material to make things easier. I have not decided yet whether I will use Shapeways or build an SLS printer via the You-SLS project (I contributed to the project). While I have a ways to go before I have anything printable, You-SLS is very experimental. We'll have to see where it is and what quality it can produce when I get to that stage. I have not fully decided what scale to print at. I will need to print some tests before I know for sure, but I want to approach a 1:1 scale.

Design Considerations

When producing the 3D models for the Curta parts, I took into consideration 3D printing constraints (initially for FDM printing) as well as affordances gained by using 3D printing. Some parts manufactured separately could be combined and manufactured together as one piece. For instance, the gears and sleeves that the step drum turns in order to add or subtract each digit are combined. Unfortunately they cannot also be combined with the shafts or I would have no way to assemble it. The tens bell and step drum are normally made up of segments that are stacked together and fastened. Those will be printed as one piece. From 145 engineering drawings of parts, I have 116 models. This is partially due to the combination of parts and partially to somth the parts being fasteners and springs which will not be printed.


There are parts that must receive machine screws and parts that are designed to thread onto one another. I will need to use a micro tap and die set for this. However, two of the parts that screw together require M50 thread (larger if I scale up the Curta). M50 or larger taps and dies are expensive. Instead, I will either design these two parts to snap together in a keyed way or drill and pin them together in the correct orientation.


The Curta uses many very small metric screws. Thank goodness for the Internet because I don't know how else I would have found them without it. A friend, Ray Kholodovsky, maker of the Cohesion 3D printer suggested a site where I found all of the screw sizes I need. There are some screws which have a nub tip that are intended as a pin on the digit selector knobs and a guide for the rotation of the crank handle which are custom that I won't be able to find. Instead I will integrate those into the design of those parts or print the body of the screws and thread them myself. Some of the screws are shoulder bolts at very specific sizes. I will likely use standard screws combined with printed sleeves / spacers to add the shoulders.


There are also a few very small springs that are needed. I found equivalents to many of them online, but there were a couple of torsion springs (for the zero positioning lever and anti-reversal cam) that I could not find equivalents for. In addition, there are non-standard springs in all of the tens carry levers that are needed. Due to all of that, I looked into making springs.

I found a few articles on the subject (Making Springs, Homemade Torsion Springs, Make Your Own Springs in Seconds). At the small size I need, I think I should be able to fabricate the springs I need. I will need to create a couple of jigs for it, but making them and the springs should not be terribly difficult.


Tolerances between parts will be the defining factor on whether I can pull this all off. The engineering drawings specify tolerances which are smaller than even an SLS printer's accuracy. I will need to experiment and find values which create parts that have the proper fits.

Tuesday, April 21, 2015

3D Printed Curta Part I

The Backstory

I have been bitten by the 3D printing bug. I built a large (16"x16"x10") 3D printer and I have been enjoying printing replacement parts, prototypes, and toys. Among the useful items I have printed have been blocks that connect to duplo sized building blocks with wooden train track rails on top for my son, a product prototype for my brother, Peter, and a replacement center armrest latch for my VW Jetta.

I also have listed my printer on 3D Hubs. I have printed many useful things for people including some prototypes, parts for other 3D printers, and even things intended to be sold.

One aspect I was not very interested in when I built my 3D printer was CAD, but now I am comfortable in a few different software suites. From the very beginning I challenged myself with tough projects. I designed a pneumatic flat-four boxer engine which is not complete yet; I did much of the work for the product prototype I mentioned for Peter; and I have made slight alterations to some of the models sent to me through 3D Hubs.

I have been working on another project with Peter which involved a number of mechanical counters. In the process of researching for that, Peter came across the Curta mechanical calculator. The device has a fascinating history and a design that is even more-so. Many mechanical calculators have been designed. The Curta was not the first or the last, but it is the most elegantly designed I have seen.

The Challenge

It did not take long after having seen the above video (made with the fantastic Curta Simulator named YACS) before I desired to 3D print and build a Curta. I want one to play with, but they are expensive (they go for around $700 to more than $1000 on eBay). I am also enamored with the idea of doing all the work to build one myself. It's like putting together a model airplane except I am also designing the parts for the model. To my knowledge this particular feat has not been done on a 3D printer before. The Curta disassembly page claims an astounding 605 parts. Many of those are repeated, but there are still around 150 unique parts that will have to be modeled.

Luckily, Olaf Veenstra who put together the YACS demo was able to direct me to the original Curta engineering drawings. Together with OnShape, I have been working on modeling everything I need to 3D print a Curta.

My 3D printer is nowhere near precise or accurate enough to print a 1:1 scale Curta. Instead I will be printing at about 4:1 (possibly a little bit larger than that if I come across anything that I need to print larger). Despite scaling it up 400%, the tolerances between mating parts are much too small for most 3D printers -- even for some very expensive professional printers.

To combat these issues, I have designed and printed a mechanical fit test on my printer and have calculated what tolerances I need based off of that. I will alter the design from the original engineering drawings to accommodate the 3D printer's abilities. I will also probably combine some parts that do not need to be separate parts with a 3D printer. After watching an assembly of a Curta, I realize I will not be able to accomplish anywhere near as smooth action. Despite that, I am optimistic that I will be able to pull off a working calculator.

The Progress

Below are a few screenshots and descriptions of parts I have modeled so far. I will probably wait to post about this project again until I have modeled all of the parts and have begun some test prints and assemblies.

Five point ratchet gear. This is rotated 1/5 (one tooth) * the value of the digit it represents while adding. When subtracting, it rotates the nine's complement of the digit it represents.

This is the body of the tens bell. There are various rings that go around its base which handle carries from one digit to the next.

This is one of the carry levers (this one is for the turns counter). When a digit rotates past 9, this lever gets toggled. After the tens bell performs the carry to the next digit, the position of this lever is reset (the reset is also performed by the tens bell).

This is a selector shaft. Each digit of the input value (the addend for addition or minuend for subtraction) has its value selected by a vertical slider which rotates this shaft. The slider also positions the ratchet gear (shown above) for the digit to the proper vertical height for that digit to be rotated the required amount for that digit.

Five point crown gear which sits at the top of the shaft that the ratchet gear above is connected to. As the ratchet gear rotates for a digit, the crown gear turns a number dial to show the result for that digit.

Saturday, November 1, 2014

End tapping 80/20 Ultra Lite

I have been working on building a gMax 3D printer. Unfortunately, budget restraints have kept me from ordering the full kit, so I have been slowly ordering and piecing together the parts myself. The printer uses 80/20 1.5" aluminum extrusions as its frame.

I ordered my extrusions and then started cutting it to the sizes the printer requires. Unfortunately the miter box and back saw I had were not cutting straight in the aluminum. I needed to order more extrusions and either a table saw blade to cut it ($50) or pay them to cut it for me ($13 and change for the cuts).

When I ordered the first set of extrusions, I bought a tap so I could tap the ends of the extrusions. I tested it out on the pieces I hadn't cut correctly. Since I knew it would work and already had the tool, I did not pay for the tapping to be done for me. This post documents the process (which turned out to be not as straight forward as it seemed at first) in case it helps someone out in the future.

I ordered the Ultra Lite extrusions the second time around rather than the normal ones. These extrusions have a different profile as seen below which is the reason for the difficulty I faced:

The extra channeling around the center hole makes adding the end taps a challenge when your tap looks like this:

The tap has the same profile as the center hole in the extrusions, so it will slide right into the extrusion because of those channels. At each quarter turn, the tap matches up with the center hole which makes it difficult to keep it aligned.

After some brainstorming I went to bed unsure of my next move. In the morning while my mind was clear, I came up with the idea that ended up working: use candle wax to fill the channels.

I grabbed a few of these tea light candles and pushed them out of their metal liners.

I want to fill the extra channels connected to the center, but not the center itself. So I slid a dowel down the center.

Next I placed the extrusion end-down onto the candle and heated both with a heat gun while pressing the extrusion and dowel down together until it reached the bottom. At this point, I let the whole thing cool.

After the wax cooled, I carefully scraped the excess wax from the end and removed the dowel by twisting it first so it didn't pull the wax out of the channels. Now that the channels were filled with wax, I was able to tap them.

I had to go very slowly. The wax did not take much force -- it's there mostly to keep the tap moving along the same thread path while the tap's cutting edges are in the channels -- so be careful. I couldn't show it here because I had to hold the camera, but I was using my other hand as a guide for the tap to keep it as straight as I could. The tap will hit the channels every quarter turn, so I knew when the required torque to turn the wrench would drop. That allowed me know when to alter how much force I was using.

The wax actually helped smooth the movement of the tap. I didn't need to use nearly as much force as I had for the regular extrusions that did not have the channels. Once the tap was turned all the way in, I carefully backed the tap out the same way. This allowed the metal filings to get caught in wax bits and get pulled out.

Finally, I held the extrusion up and heated it with the heat gun to melt out the excess wax. This also gets rid of most of the leftover metal filings. A paper towel will soak up any melted wax that didn't drip right off.

Here is the end result with a hex cap screw turned in the end. Below it is a frame assembled using screws through the tapped ends of more extrusions using the same technique. The screws turned into the extrusions very easily by hand and tightened down nicely to form a very rigid frame.