Call for Support
thepulsar.be has been providing high quality articles, experiments and open-hardware instruments since 2009. I always choose to provide the content for free, without relying on paid advertisements/popups and such which spoil the overall user experience. As a consequence, I run exclusively on private donations through the Patreon plateform. I therefore ask you to take a moment to consider donating to support our 15yr+ effort on this website.
In my [»] last post, I discussed the theory of lens mounts and introduced a [∞] web application to assist in their design. Once you have entered a few parameters about your lens, the application let you download STEP file and mechanical drawing for production in a machining center.
In this post, I show how you can manufacture lens mounts yourself using rapid manufacturing techniques. An example is given in Figure 1 with a mount designed for a Thorlabs AC254-100-A doublet achromat lenses and an outer bore of 30.50 mm compatible with Thorlabs tube mounts. The part was made in only 3 hours and required 6 of stock material.

A cut-out of the lens mount of Figure 1 is given in Figure 2. You can spot the different features composing the parts including chamfers, thread (1.035-40), thread-relief and internal bore.

Before we go deeper in how to machine the lens mount of Figure 1, there is some caveats that I would like to discuss first. Manufacturing lens mounts is a delicate process and the overall tolerances you can achieve depends on the quality of your CNC machine and on the stiffness of your setup. Tolerances requirements for optical systems tend to be tight so dont expect to get satisfactory results using the cheapest CNC. Also, custom lenses are usually the longest lead items so it makes little sense to have a rapid manufacturing process for your optical system if you still need three to four months to get your lenses shipped before you can test anything.
As a consequence, I dont expect rapid manufacturing of lens mounts to be useful in all scenarios. If you already have the lenses in stock or can get them quickly, such as with off-the-shelves lenses, machining your lens mounts yourself start making sense especially if you arent too tight on your tolerance budget. I spotted one exception to the tolerance rule which is when you plan to have the mounts rectified by an external center once your lenses are mounted inside the cell (a topic that I briefly discussed in my [»] previous post but did not develop further).
In summary, I would not use rapid manufacturing if the lead time does not justify it or if tolerances are going to be an issue. On the other hand, I would go towards rapid manufacturing for quick systems where there are no strong requirements on tolerances and which uses on COTS lenses or lenses that you have in stock. Furthermore, if you already have a CNC machine, this can dramatically reduce the cost of your prototypes as you can get brass stock fairly cheaply and the tools required for the machining process are not that expensive to buy. Again, this has to be balanced between the cost of outsourcing vs. the cost of in-house man-power. I would expect that rapid manufacturing becomes especially useful for startups and universities.
Parts such as the one of Figure 1 are usually done using lathes but I will show here that you can make them with a CNC milling machine as well. Here, I use my CNC-STEPS High-Z 480T CNC mill for the job. I will dedicate an entire post later on a review of this milling machine and how to set it up properly. I used a MS58 40 mm × 300 mm brass cylinder that I got for 56 from [∞] RC Machines and various tools from [∞] Misumi that I will highlight throughout this post.
The first step was to cut a rough stock from the brass cylinder, 31 mm long in my case. This is pretty long considered that the final part will be 10.5 mm thick only but is due to me lacking a proper vise to hold the stock. To avoid spending more money on this experiment, I choose to 3D-print a clamp in PETG to secure the part. Since PETG is not metal, I made it super thick to be sure that it would hold the stock firmly during the machining process. PLA is excluded because it would soften during the machining process.

[∞] Premium members can download all the files related to this post [∞] here. If you decide to use the NC program, review the instructions carefully and use the exact same tools as I did with the proper settings set in your CNC controller. If you arent too confident with NC programs, just wait a couple of months as I will upload a crash course on CNC programming :)
Once the part is secured in our milling machine, we can zero the coordinates at the center of the cylinder on its top part. We dont need to be very precise here and being 1-2 mm off-center is not an issue, but you may want to be correct on the height of the top face down to ~0.1 mm as the first instructions in the program will be to face the part by 1 mm deep.
Most of the job will now be done using a standard square-cut end-mill. Here, Im using MISUMI AS-EM2R10 10 mm end-mill. All the tools required by our CNC program are shown in Figure 4.

Using the 10 mm end-mill, the program will first face the top of the part to get a clean cut perpendicular to the machine axis. It will do 0.5 mm passes with a 0.1 mm finish pass at slow speed. Once the part has been faced, the outside of the stock is machined down to a diameter of 30.5 mm on 14 mm (10.5 mm + some margin required for the stock cut). This is done using passes of 1 mm, with 0.2 mm finish passes. Similarly, the inside of the part is machined using the same CNC mill. First, a through-hole diameter of 22 mm is done for the aperture. Second, a 8.03 mm deep hole is done for the lens and thread. The different operations are shown in Figure 5.

Because we use the same tool without removing the part from the clamp, we should be able to access precise concentricity and perpendicularity of all the machined faced. By measuring the exact diameter of the end-mill it is possible to achieve accurate dimensions for the inner and outer faces without modifying the program simply put the exact diameter in your tool properties tab in your CNC controller. If you arent sure on how to set this up, wait for my upcoming post.
Also, this program uses pulses of coolant/lubricant to achieve a cutting speed of 1000 mm/min. If you dont use coolant, it would be wise to slow the speed down to 100 mm/min. Alternatively, you could use POM plastic instead of brass for your part but accuracy will suffer due to the clamping action on the part that will deform the plastic during machining.
Now that we have our part outlined pretty much, we can machine the thread relief slot and the internal lens gap as shown in Figure 6. On a lathe, machining the lens gap would have been a walk-in-the-park action but on a mill things are a bit different. Im using here a large T-slot cutter from Misumi for that job. Because of the shaft dimension, we can safely go up to 2 mm within the part using this tool, but as a downside it requires an initial hole diameter of 16 mm or larger which makes it impractical for lenses smaller than 1. Other T-slot cutter might be necessary for smaller lens mounts.

Since T-slot cutter are delicate tools, I used a fairly slow 100 mm/min cutting speed here. Also, I stop the tool 0.2 mm before reaching the end of the part to avoid crashing the part into the aperture rest. It should be possible to use less than 0.2 mm but I wouldnt try exceeding 0.1 mm even with precise measurements of the tool thickness as the tool change procedure itself has limited repeatability.
To clean sharp edges, the program then uses a chamfer mill in two passes of 0.25 mm each. Here, Im using a 8 mm chamfer tool from RC Machines for which I didnt find much reference unfortunately as I had the tool lying around for quite a while now. This operation is shown in Figure 7.

Chamfering is somewhat of a tricky operation because you want the edge of the tool to follow a given path with high accuracy. What I do here is that I use a 5 mm reference disk as the cutting portion of the tool and measure by how much I have to offset all Z coordinates to get to this 5 mm reference disk. To assist me in measuring this depth, I made the tool of Figure 8. The (important) take-away is that the program requires you to set a 5 mm diameter for the chamfer tool you use and that the Z coordinates in the program assumes the tool reaches that 5 mm reference diameter. More on that in my upcoming post on CNC machining.

The last part of the job is to machine the 1.035-40 thread. Im not using a tap here but instead uses a threading mill which is basically a rod with a tiny teeth protruding on the side. By making a helical motion with a pitch of 1/40, we get the job done. TPI threads are not common in Europe and I had to ask Misumi for a special order from their UK catalog. In practice, the mill does not appear in their European catalog but will pop-up if you introduce a reference that is part of one of their international catalogs. This is a feature of Misumi website I was unaware of until now!

As for the chamfer, the program assumes that the coordinates correspond to the one of the tooth of the tool. Here, I used the numbers from tool datasheet except for the tool diameter that I updated from 2.72 mm to 2.70 mm after some initial tests. This forces the tool to go a touch deeper into the stock and yielded a better thread (in my case always measure your own tools).
We now have the first side of the part done which should look like the part in Figure 10. All we need to finish the lens mount is to remove the excess material and chamfer the edges.

I used an automated sawing machine to cut the base part of the stock. I then secured the part into another clamp as shown in Figure 10. I used an extra spacer of 7 mm to raise the part out of the mount since the clamp was 15 mm thick and our part final dimensions are 10.5 mm. You can avoid the spacer if you are ready to machine through your clamp (beware of the screws!). Since the part has moved in XY as well, I used a centering probe to align the part.

Zeroing the part was tricky and uses a second calibrated spacer. Basically, you want the Z=0 coordinates to be the one of the top part after it has been machined. Uses the second program to face the part and apply the chamfering as shown in Figure 11. Note that the program is made to face a maximum of 3 mm thick stock so your part must be smaller than 13.5 mm at this stage or your tool will crash into the stock.

As final cleaning, you can use a sharp blade to debur the aperture edge. I did not experiment with other deburring techniques but will try in the future. Beware if you decide to use a chamfer mill so as not to crash into the part and not remove too much material. It is important for the performance of the part to keep edges as sharp as possible.
To get a smooth finish, I put the part into a rotary tumbler for 1 hour here a Lyman Cyclone with Lyman Turbo Sonic cleaning solutions. You can get these tools from various distributors, including shops like Amazon or Brownells (I got mine there). A final wash with isopropyl alcohol allows the part to dry very quickly and remove any eventual remaining dirt. Some caveat however is that the pins of the Lyman Cyclone got stuck in the thread relief groove and I had to remove them with a pair of tweezer. Making the groove slightly deeper could resolve the issue.
The total time to produce the mount of Figure 1 was 3 hours, including the 1 hour washing time. Using the CNC-STEP CNC mill with the KineticNC controller, it is possible to produce up to 6 of those parts in parallel to gain time more than enough for a typical optical system. That means you can get a complete stack ready in less than 24 hours and for less than 50 in stock material! Pretty awesome, isnt it?
In terms of tolerances, I did not have much accurate metrology tooling but I measured a parallelism of 0.005 (0.13 mm) using a RCBS Case Master. I cannot measure perpendicularity, but I assume it should be relatively good knowing the manufacturing method. The parallelism error is probably due to the machine squareness and the part positioning. It is worth noting that I made multiple parts for this post and obtained down to 0.03 mm parallelism which makes me believe the issue comes from the clamping action.
The overall thickness of the part is directly affected by the parallelism of the front and back faces but the mean thickness was 10.51±0.06 mm which is very close to the target of 10.50 mm that was programmed in the machine. I measured the distance between the front face and the lip using my Mitutoyo D15FX caliper and obtained 8.03±0.01 mm, exactly as specified in the machining program. This excellent parallelism leads me to think that the perpendicularity of these faces are around the same order of magnitude even though I cannot measure it directly.
I measured the outer and aperture diameters using the same caliper and obtained 30.51±0.05 mm and 21.88±0.05 mm respectively. Measuring the inner diameter using a caliper is not easy and I am a bit surprised by the result compared to the much more accurate outer diameter. More investigations have to be carried out on this but they would require a bore gauge which I dont have (see end of post!).
Measuring the concentricity of the aperture was much more challenging but the thickness difference between the OD and the aperture diameter seemed to be around 0.002 (0.05 mm) using a Redding Wall Thickness Gauge. Since this thickness takes into account both the circularity of the outer and inner diameters as well as the concentricity, we can assume that the concentricity is probably much better than 0.05 mm. Considering the mean outer diameter, I would expect that the concentricity is on the order of 0.01 mm but I dont have measurements to backup this claim.
Among the defects, the back face had a 0.002 (0.05 mm) step due to the facing operation where either the part or the tool moved during operations. Better clamping or smaller depth passes in the facing operation should alleviate the issue. Also, a ~0.1 mm thick bump has been found on the outer diameter which most probably results from the toolpath approximation in constant speed mode. More investigations have to be performed on that as well and will be addressed in my later post on CNC machining.
In conclusion, the High-Z 480T seems to provide 0.01 mm depth and mean diameter accuracies when not changing tools or setup and can offer circularity of 0.10 mm or better. Parallelism down to 0.03 mm can be achieved using 3D-printed clamping when switching from the front and back face although 0.10 mm seems to be more common. Most optical systems are relatively resilient to air thickness changes of ~0.1 mm so I would not consider parallelism as being extremely critical. On the other hand, circularity might pose issues in terms of tilt and decentering with typical figures of 10 of tilt and 0.10 mm of decentering due to the OD alone about twice as much as what I use as a baseline during Montecarlo simulations for optical tolerances. Investigations should therefore focus on that.
I must confess I was not expecting such good results in the first place! Even without fixing the problem of circularity, the mounts are already of sufficient quality to be used in prototypes. And by fixing the circularity, they could even be used for small series production of actual instruments.
Do not hesitate to share your thoughts on the [∞] community board to let me know if you enjoyed this post!
I would like to give a big thanks to Sebastian, Alex, Stephen, Lilith, James, Jesse, Jon, Karel, Kausban, Sivaraman, Michael, Samy, Shaun, Zach, Onur, Themulticaster, Tayyab, Sunanda, Benjamin, Marcel, Dennis, M, Natan and RottenSpinach who have supported this post through [∞] Patreon. I also take the occasion to invite you to donate through Patreon, even as little as $1. I cannot stress it more, you can really help me to post more content and make more experiments!
I am also looking for more professional metrology tooling for this kind of application so if you know a sponsor who could contribute, please get them in touch with me. Im specifically looking into small columns and micrometer drives:
- OTELO measurement column #43110320 (252)
- OTELO 0.001 mm comparator #10Y06829 (137)
- Mitutoyo Digimatic 0-25 mm (244) and 25-50 mm (342)
- Mitutoyo #329-250-30 depth probe (938)
- Mitutoyo boring gauge 18-35 mm #511-721-20 (370)
If you know anyone who could provide me with these tools that would help in the kind of posts I made today :) With summer approaching, I can do more experiments in the workshop without having my body temperature drop to -30°C (*smiley*) so you can expect a few posts on machining in the upcoming months!
[⇈] Top of PageYou may also like:
[»] #DevOptical Part 3: Aperture STOP and Pupils
[»] OpenRaman Cuvette Upgrade/Fix
[»] #DevOptical Part 31: Cell Mounting of Lenses