Do you build bicycle frames? Hate trying to figure out where to cut the tubes? Let Frame-O-Matic help!

Frame-O-Matic is a small program that takes some frame dimensions (such as seat tube length, head angle, etc) and converts them into cut lists. It can be used as a command line app or via the GUI.

Frame-O-Matic Web Editon (PC/Linux)
Uses a HTML5 browser (such as Chrome) to edit and display frame data.

Package: (25kb). See the end of this page for details for getting the needed zkl program ( or zkl.exe) from the downloads page. There is a README_WEB.txt in the zip file with some how tos. Requires zkl 1.12.5 or better.

Phone/tablet use: I have used my phone to play around with frames (Frame-O-Matic running on my pc). A big PITA to edit frame data but it does work (Android KitKat via the Chrome browser).

Frame-O-Matic on a PC: Use the Web Edition or
Here is a typical run: zkl frameOmatic.zsc --gui
zkl is the language, "--gui" means show pictures, is the frame template. The frame numbers are crunched and displayed as a "sanity check" (truth and beauty without the beauty).

The dotted line at the top is the effective top tube.

The frame numbers are shown in the data window (press the pencil &ruler icon to toggle):

If any changes need to be made, that can be done in the edit window (press the pen icon to toggle):
If changes are made a save icon will be displayed. Changes are made immediately after the pen is clicked to close the window.

No point and click here, I'm lazy!

Here is a gallery

Here is the input for the above frame (all lengths are in centimeters and angles are in degrees)

title("City Sliker 2");








topTube_diameter( 3.18);

"700c Specialized disk Sirrus, chopped",
"26\" wheels, 1.25\" Fat Boys.",
"Seatstay length: 46.3cm",

Useless geekiod trivia: this is actually a zkl program (look up domain-specific language) and has some little helper functions if you are old school and would rather work in inches.

And here is too much data:

Frame dimensions for City Sliker 2 (Thu Jun 19 18:40:11 2008)

******************* seatTube ***********************
Seat angle: 73.0 degrees
Miter angle: seat and top tube: 83.7 degrees (complement: 6.3)
Seat tube length: 43.00cm = 16.929"

******************* topTube ***********************
Miter angle: Top tube and headTube: 82.5 degrees (complement: 7.5)
Top tube length (effective, c-c) : 59.00cm = 23.228"
Actual top tube length (c-c) : 56.77cm = 22.350"
Top tube miter length (along top of tube) : 53.26cm = 20.967"
Top tube miter length (along bottom of tube): 53.31cm = 20.989"
Top tube slope: 10.7 degrees

****************** downTube ***********************
Miter angle: Down and head tubes: 61.8 degrees (complement: 28.2)
Miter angle: Seat and down tubes: 61.4 degrees (complement: 28.6)
Down tube length (center to center): 64.37cm = 25.341"
Miter length (BB to head tube)(along top of tube) : 63.05cm = 24.822"
Miter length (seat tube to head tube)(along top) : 60.40cm = 23.780"
Miter length (BB to head tube)(along bottom of tube) : 60.98cm = 24.006"

******************* headTube ***********************
Head angle: 72.0 degrees
Head tube length (end to end): 14.00cm = 5.512"
Head/down intersection to bottom of tube (bottom lug length): 4.72cm = 1.857"
Distance between the top and down tubes: 3.31cm = 1.305"
Head tube upper lip: 1.50cm = 0.591"
Head tube lower lip: 1.50cm = 0.591"

********************* Fork *************************
Fork length (top of crown to axle): 38.00cm = 14.961"
Fork offset: 5.08cm = 2.000"
Trail: 5.16cm = 2.030"

***************** Rear Triangle **********************
Chain stay length: 43.00cm = 16.929"
P8: Rear axle = ( -42.592, 5.908) = (-16.769, 2.326)
Minimum clearence between seat tube and tire: 5.11cm = 2.010"
Seat stay length: 46.27cm = 18.218"
Angle between seat tube and seat stays: 57.2 degrees
Angle between seat tube and chain stays: 65.1 degrees

****************** Wheels ***********************
Wheel circumference: 203.00cm = 79.921"
Front wheel radius (to top of tire): 32.31cm = 12.720"
Rear wheel radius (to top of tire): 32.31cm = 12.720"

Wheel drop: 5.91cm = 2.326"

****************** Misc Angles ***********************
Angle between (a horizontal) top and down tubes: 45.6 degrees

****************** Misc Data ***********************
Wheel base: 106.00cm = 41.734"

BB to front axle: 63.69cm = 25.074"
Bottom center of head tube to front axle: 39.38cm = 15.506"
BB to bottom center of head tube: 62.32cm = 24.537"

Bottom bracket height : 26.40cm = 10.394"
Bottom bracket diameter : 4.00cm = 1.575"

Headset stack height (bottom only): 1.40cm = 0.550"

****************** Frame Points ***********************
P0: Bottom bracket = ( 0.000, 0.000) = ( 0.000, 0.000)
P1: Seat/Top = ( -12.572, 41.121) = (-4.950,16.189)
P2: Top/Head = ( 43.219, 51.617) = (17.015,20.322)
P3: = ( 58.071, 5.908) = (22.862, 2.326)
P4: Front axle = ( 63.412, 5.908) = (24.965, 2.326)
P5: Head/Down = ( 45.055, 45.968) = (17.738,18.098)
P7: Bottom head = ( 46.512, 41.483) = (18.312,16.332)
P8: Rear axle = ( -42.592, 5.908) = (-16.769, 2.326)
P10: = ( 46.944, 40.154) = (18.482,15.809)

***************** Tube Diameters **********************
Seat tube diameter: 3.18cm = 1.252"/
Top tube diameter: 3.18cm = 1.252"
Head tube diameter: 3.74cm = 1.472"
Down tube diameter: 3.97cm = 1.563"

***************** Notes **********************
700c Specialized disk Sirrus, chopped
26" wheels, 1.25" Fat Boys.
Seatstay length: 46.3cm

Now you are no doubt asking yourself "how do *I* get a copy of this marvelous program”?
To install on Windows: Easy, just download (~400kb). And it is freeware.

  • Unzip to C:\ (you want the files to be put into C:\Frame_O_Matic)
  • Double click on the FrameOmatic(.lnk) link to run in a GUI
  • You can drag the link to the desktop

You can run Frame-O-Matic as a command line app or GUI. To run it from the command line:

  • Widows (key)-R (or start/Run) cmd
  • cd \frame_o_matic
  • zkl frameOmatic frameForm
    and it will print the frame info. Use "-?" to get the options.

If you don't supply a form, a sample form will be used.

Linux: Use the Web Edition. You will still need to build the VM.
You will need to put on your geek hat and compile from source (unless you are running the same version of Mint Linux as I am, which is the latest X86 64 bit version).

  • Download and from the downloads page.
  • Read the READMEs and Makefiles to see what dependancies there, use the package manager to get those.
  • FLTK is a bit involved, so check out the readme and build it.
  • In the VM directory, type "make lib"
  • You should be good to go: zkl frameOmatic --gui frameForm (form is optional)


All rights reserved