bike design
Drawn in SolidWorks and rendereded in SolidWorks Visualize
concept / 2020
I’m currently working in CAD to create conceptual bicycle designs. I’m using SolidWorks and Rhino surfacing tools to create organic and aerodynamic shapes typical of modern carbon fiber bicycle frames. This project will challenge my skills with these two programs and further develop my understanding of their strengths, weaknesses, and methods for using both tools to create complete products.
My plan is to create the following:
Complete bike in SolidWorks
Design bike frame
Design mechanical bike components
Build configurations for desired frame sizes
Bike frame in Rhino
Import frame to SolidWorks to build into complete bike using components designed in SolidWorks
Frame generating algorithm in Grasshopper
Bake and refine in Rhino
Import frame(s) to SolidWorks to build into complete bike using components designed in SolidWorks
1. SolidWorks
Drawn in SolidWorks and rendereded in SolidWorks Visualize
What’s Next?
Add handlebars and stem
Design seatpost and seat
Create core drivetrain components (cassette, chainrings, cranks, pedals, and chain)
Refine wheels (add nipples, tire tread)
Design brake components (calipers, rotors)
Create derailleurs
Add cabling
Refine frame with more fluid transitions between tubes and surfaces
2. rhino
(under construction)
3. grasshopper
Grasshopper is a plugin for Rhino that allows the user to create parametric algorithms (definitions) capable of creating complex and easily adjustable geometry. My goal for this project is to create an algorithm that can design a bike frame based off standard bike frame geometries (top tube length, head tube length, seat tube angle…). The algorithm allows me to make subtle adjustments to these base geometry values and gives me control to manipulate many other elements of the design. For example, I can control how round or square the tubes are, how sharp or fluid the joints are, and how much curve the tubes have along their lengths. The algorithm can then duplicate the desired design elements across all necessary frame sizes instantly. Since a small frame isn’t simply a scaled down version of a larger frame, the use of the algorithm determines how each dimension is adjusted and how each dimension effects the overall geometry. The ability to rapidly generate and iterate frame designs could allow a bike design engineer to test and optimize concepts for structural and aerodynamic performance, manufacturability, and aesthetics.
I’ve created a simplified version of the algorithm that you can test. Click the “sample algorithm” button below to create your own custom bike frame.
Road and Mountain bike frames generated with minimal adjustments to algorithm inputs.
Road frames sizes 54, 56, 58, and 61
Complete Grasshopper definition
The definition has three main sections. The first section framed with a dotted red line inputs the critical frame geometry values. This is where all specific lengths and angles can be input for dimensions like wheel base, top tube, and seat tube angle. These numbers are then evaluated and distributed into the second section (outlined in dotted blue). This section controls the shapes of each tube. An individual tube can be perfectly round, square, or a composite contour. The final section framed in purple, removes overlap between the tubes, creates continuous seams at the joints, and combines all the tubes into a single frame.
To show the definition in more detail, I’ve zoomed in on the 4 areas outlined in orange (Click thumbnails below to expand).
This first section takes 15 different input values for the base geometry of the frame. These geometries can be input as lists (as shown to left) or controlled independently. For this project, I started with the geometries from my personal Specialized Tarmac road bike. The values are then divided into different streams where various calculations are made to determine any needed geometric information (angles, relative distances, direction vectors…).
In this second section, the definition is providing contour to the head tube. I didn’t want the head tube to be a simple cylinder. Instead, I created a set of curves that can be controlled to give the head tube shape. The sliders on the bottom portion of the page determine how much the head tube contours outward.
2. Create curves to define head tube shape
3. Create profiles for down tube
In the third portion of the definition, we create a simple circle to loft into the down tube. The circle is then divided into 9 points. I have then chosen 6 points to adjust manually. These points are responsible for determining how much the tube shape differs from the original circular profile. By adjusting these six sliders, the tube can be circular, triangular, or square with rounded corners. Each major tube has this set of controls at each end of the tube. This allows further control of how the tube transitions from end to end.
The final section creates transitions between open tube sections and merges the tubes into one complete bike frame.
4. Generate contours to blend top tube, down tube, and head tube together into complete frame.
While this approach has limitations, it can be a powerful tool for exploring new designs quickly. Ultimately, I would use this tool to analyze and produce near-final geometry. I would then bake in Rhino and add additional surfacing details and features to add interest to the frame.
Next Steps:
Refine the rear triangle. Explore additional methods for creating the seat stays and chain stays.
Finish details at the ends of open tubes to replicate actual carbon fiber frame.
Import to SolidWorks to assemble with mechanical components