IBM Selectric typewriter customizable font typeball 3d model
3dmdb logo
Thingiverse
IBM Selectric typewriter customizable font typeball

IBM Selectric typewriter customizable font typeball

by Thingiverse
Last crawled date: 4 years, 2 months ago
TL,DR: * This is purely experimental. Try as I might, I can't get an acceptably fine print from my cheap FDM printer. An SLA (resin) printer should do a lot better but alas, I do not have one.
Your own custom font IBM Selectric 'golfball'! ..sort of.
Have you ever wanted to use your old IBM Selectric II typewriter with a modern font such as Arial, Segoe, Verdana ...or even that perennial favourite, Comic Sans?
Or perhaps try a Dvorak layout without having to have your typewriter's key interposers reconfigured?
How about using an I/O Selectric with a replica of the 988 typeball for APL\360 via Hercules?
Well that was the intention. Now this design is definitely a Work In Progress, so don't expect too much, but the idea is that a good 3D printer ought to be able to make such a typeball using the script presented here. I've pre-generated some STLs but if you do your own, be prepared to be very patient whilst they render.
The typeball filenames record the custom settings eg. LH23 means Letter Height 2.3mm.
Customisable parameters.
The typeball generation script is customisable, so here are the parameters you can tinker with. Make sure you have the Customizer pane open at right.
TYPEBALL_FONT - self explanatory. It's the name of a TrueType font on your machine. Some of the fonts shown here are from ones I have found on the web so you may not have them installed, but there are a few that should be standard on most (Windows) machines.
Edit the script to add your desired font name to the customizer list.
ITALIC - If ticked, produce an Italic typeball (if the font supports it).
BOLD - If ticked, produce a bold typeball (if the font supports it).
DVORAK_LAYOUT - Remap the positions of the letters on the typeball to Dvorak. You would also need to lift and rearrange your Selectric's keycaps.
Note: This is experimental and I haven't actually tried it but it should work.
LETTER_HEIGHT - The size (height on paper) of the letter in mm. This value is used to calculate a (very) rough "points" size for the number on the top.
LETTER_ALTITUDE - The distance the 3D-printed letter protrudes above the surface of the typeball in mm.
ITALIC_BIAS - rotate the face of the character around anticlockwise to give a more italicised lean, or backwards lean.
T0_LATITUDE - If you consider the typeball as a globe, the latitude of the topmost ring of characters (northern hemisphere).
T1_LATITUDE - The latitude of the second-from-top ring of characters (northern hemisphere).
T2_LATITUDE - The latitude of the third-from-top ring of characters. (northern hemisphere).
T3_LATITUDE - The latitude of the bottom ring of characters, which impinge slightly on the detent teeth area (southern hemisphere).
NORTHWARDS_ZENITH_OFFSET - In relation to the surface at the typeball (at any latitude) whether the character "leans" by a few degrees to the North or South.
UPPER_BALL_SOCKET_TOLERANCE - If the printed ball will not smoothly fit onto the upper ball socket (ie. the print head spigot) then this
allows for an extra sub-millimetre increase. IMPORTANT* - SEE NOTE BELOW!
SLOT - If true, add the slot (at the 2pm position from the Del).
CLIP_SCREW_DIA - Adjust to suit the self tapping screws you happen to have at hand.
Font notes.
Unless specified, all typeball character layouts are for the IBM Correspondence code and the IBM Selectric I and II typewriters with 88 characters total (the Selectric III has more characters per tilt position and is not covered here). The exception being the APL\360 font which is specially remapped to PTT/BCD layout as used on the IBM System 360 mainframe console (1052 printer-keyboard), IBM 1130 and variations of the IBM 2741 I/O Selectric terminal.
See the note in the script for where to obtain this font which is part of the MVT4APL package to simulate a 360 using Hercules.
The Dvorak layout remaps a Correspondence layout, see the wikipedia page on Dvorak for this. You would need to lift and reposition your keycaps.
Also note that some fonts do not have an uppercase such as the groovy 1960s Digital Equipment Corporation DEC 'Handbook' font.
Rendering instructions.
Using OpenSCAD version 2019, load the script and expand the Customizer panel on the right so as to see the above parameters.
Press F5 to Preview only (do NOT yet Render) and then adjust values to suit, eg. font and letter size etc.
Once you feel you are happy with the values (and not before!) press F6 to render as once it starts it will take quite a lot of time.
Printing instructions.
This is where you will really need to play with your printer settings. For my cheap ALDI Coocoon (a rebadged Wanhao) FDM printer I slowed the print speed to 30mm/sec to get a finer deposition. I also set to 100% infill as there is not much plastic used in this model.
Print orientation:
If you elect to print the typeball upside-down then no raft or scaffolding is required, but the T0 characters are bad due to the overhang.
With PLA and PETG the detent teeth print acceptably, but when I tried ABS the layer adhesion was not good enough and the teeth broke off easily.
Printing with the detent teeth downwards on the print bed (ie. top face upwards) requires support and a raft, but the teeth do not print as well and the internal scaffolding leaves a mess that must be completely cleaned out or the ball socket will hit the deformations. I found the result was better with upside-down orientation but the T0 (TILT ZERO) characters are not good.
PETG and PLA work ok for printing, ABS did not but it may be different for your situation.
Finishing instructions.
NOTE 1: This is an important step, please don't skip it or you may damage your typewriter trying to force it on.
NOTE 2: Get and study an original typeball to see and understand the Del, slot, notch and detent teeth orientations.
Once the typeball is printed, use an X-acto hobby knife with #11 blade to remove any tiny blobs from inside the socket and also clean flash from the slot (at 2pm position from the Del triangle) and also from the notch (8pm position from the Del). This is so the tiny peg on the upper ball socket spigot can locate the typeball properly.
Mark the slot position and del triangle on the top of the typeball with a permanent marker so you can easily see the slot when attempting to
fit.
DO NOT FORCE IT ON, USE THE BLADE TO CLEAN A LITTLE MORE =OR= REPRINT WITH UPPER BALL SOCKET TOLERANCE.
Almost certainly you will need to clean up the detent teeth. Use the #11 blade to trim the teeth sharp, note that they are OFFSET from the centre of the typeball (refer to a genuine typeball and the diagram figures from the IBM manuals).
Securing the typeball.
Using a medium pair of flat-jawed pliers, straighten a small paperclip into a straight bar. Then using a small pair of round-nosed (beading) pliers fashion a catch as shown in the photos. This type of wire clip was used on the first generation of Selectric typeballs and is sometimes referred to as the "rabbit ear clip". Personally I thought it a very simple and reliable clip. The first lever-clips with the metal pivot outers were extremely fragile (eg. the 988 typeball) but the final design of all-plastic lever-operated typeballs were quite good.
Starting at the middle of the straightened wire, move out about 7mm and bend a small 270 degree loop with a diameter to suit your fixing screw.
Then check the position of the other screw hole and bend the other side. Turn the wire over so the other lengths are going to be flush against the typeball top surface then allow 15mm or so and bend the ends toward eachother, crossing over. Bend the ends upwards and over in the shape of the ears.
Using the two small self-tapping screws (salvaged from e-waste), fix onto the typeball with the section between the screw loops above (away) from the surface.
Keep a good supply of paperclips handy as it will take a few goes to get one that fits properly. Or, you can make a good one and just move it from ball to ball. In the works is a 3D printed jig to make these clips. A small paperclip is required as the wire must be able to fit under the upper ball socket retaining groove. I tried music wire but it way too hard to bend with small pliers, the soft iron paperclip works acceptably.
Important Note.
Do not under any circumstance attempt to force a printed typeball onto your Selectric's print head spigot ("Upper Ball Socket" in IBM parlance).
Especially DO NOT ATTEMPT to twist the printed typeball to fit, or you may damage or even break your rotate tape. Take your time fitting!
If the typeball gets stuck on the spigot do not try pulling it off directly. Use a strong wire such as a hairpin (a straightened paperclip may not be stiff enough) placed under the part of the clip wire between the screws (pivot point) and resting the end on the top of the spigot, then pull up on the other end to lever it off.
Typewriting quality.
OK, I'll sum it up. The type quality using a cheap FDM printer is ...lousy! It just doesn't have the resolution. Please let me know if you get a better result from a resin SLA printer.
Program notes.
Basically a ball is generated with the upper ball socket spigot centre at [0,0,0], some characters placed on it and the detent teeth skirt added with a bit of trimming here and there. There may be manifold errors, I don't know how to resolve those. For the characters I tried some OpenSCAD text wrap libraries but I couldn't figure out how to get any of them to do what I wanted, which was to place a reversed character in a given font at a latitude and longitude on the sphere and with divergence down to the sphere surface. It was easy enough to just do my own placement with a bit of basic geometry.
The symbols diagram gives the salient variable names and features of the script.
If I ever get hold of an IBM Selectric Composer typeball I may fill out that TODO section.
Conclusion.
This is not meant to be used for anything other than a bit of fun playing with your old Selectric, truly one of the most amazing and outstanding mechanical inventions of the 20th century. I still have not got this model right, the results are not really satisfactory.
Maybe I don't have the ball geometry figured correctly or the latitudes measured properly. Sometimes the slicing does not join the detent teeth skirt properly to the typeball. On my list of projects is to make a digital caliper adapter for a surface plate so heights of an original typeball can be determined more accurately than what I have now. So, maybe you can do better with it.
Also please take heed of the fitting instructions as I am not responsible for damage to your typewriter!

Tags