[F360 Tutorial] Drawing a Gravel UDH CS Sub Assembly

The chainstay sub assembly is the most important part of your custom frame design. It requires the most engineering to handle your drivetrain clearances, tire clearances, dropouts, brake standards, and bottom brackets. A well-engineered sub-assembly can be re-used for many different geometries and bike designs.


Chainstay Fusion Archive: CS Sub - GR 430CS 700x45 1x v3.f3z (1.0 MB)
Open Source Gravel Frame CAD: GR_OS 56cm v3.f3z (1.3 MB)

Step 1: Clearances

The clearance sketch is your base sketch. It is used to represent:

Step 2: Dropouts

Join the dropouts to the clearance sketch. This allows you to visualize where the chainstay will land on the dropouts.

The dropout are clocked correctly if they flat is parallel with the virtual chainstay:

These are my “Open Source” UDH dropouts. Feel free to use and remix them; all I ask is that you credit me.

Step 3: BBDR Sketch (Bottom Bracket Dropout Sketch)

The BBDR sketch serves three purposes:

  • locates the dropout hood
  • draws the bottom bracket
  • creates the “Actual Chainstay Plane”

Virtual Chainstay: the plane that intersects your axle center and BB center
Actual Chainstay: the plane that your physical chainstays are drawn on

Note: in order to make UDH dropouts fully compliant, you need to offset the chainstay 3.5mm up

Step 4: Chainstay Centerlines

The purpose of this step is to draw the chainstay inorder to connect the dropouts to the bottom bracket while navigating the crank, tire, and chainring clearances. It takes a bit of art and experience to layout the chainstays. Here is the final solution:

Step 5: Flatmount

DO NOT overlook this step. The flat-mount bosses are the least interesting, but they are the hardest part of the chainstay subassembly to get right. You need to figure out how to do it in CAD before you tackle them in real life.

From page 82 of the SRAM frame fit specifications:

First sketch locates the bosses:

Second sketch draws the bosses:


Drivetrain Clearances: [Standards] Road and Gravel Drivetrains - Cranks and BB's
Flatmount Standards (page 82): https://www.sram.com/globalassets/document-hierarchy/frame-fit-specifications/road/2023-road-frame-fit-specifications-rev-c.pdf
Open Source ARTEFACT UDH dropouts:

Tire Body:


Here is a quick teaser for my next big video project: developing an open source CAD model and sending it to a contract manufacturer (Titan Cycles) to build a custom titanium frame.

A small spoiler: I already designed the frame and sent the drawings to Titan. I have been using them for custom CNC titanium parts (like the UDH dropouts) and tubing. However, I wanted to do a video project to test the capabilities of digital design and open up custom frame designs to more people. I still need to create the entire video and shoot the real world footage!

TITAN RD_OS Dana Drawing v8.pdf (252.7 KB)

This chainstay subassembly tutorial lays the groundwork for that project. If you can design this chainstay, you can design a full 3D bike!


Watched the video, lots of great things learned.

One question. Why do it as it’s own sub-assemply then drop it into you main model? You miss out on parametric adjustments on your base geo sketch it changes to C’s and BB drop are made.

1 Like

Good question. I used to draw everything from scratch in a single assembly, but now I keep the CS sub-assembly separate because I reuse a chainstay sub-assembly across many models.

I have a library of CS sub-assemblies that I drop into whatever bike I am designing:

The benefit of doing it this way is:

  1. I don’t have to re-draw the assembly every time (cuts down on mistakes)
  2. I make a rolling change to an engineered chainstay, and it updates across all my models

There is also a small hack you can do if two chainstays are very similar (for example, you made a copy and shortened the chainstay length or changed the dropout)

If the replacement chainstay is drawn the same way, it can be replaced directly without any issues, and the drawing will not break. This hack makes it faster to draw bikes.

The last reason is particular to my workflow… I create “phantom stays” that are joined to the top plane that I use to reference my 2D drawings to: