Team 4079 SolidWorks Parts Library
A centralized SolidWorks library of common FRC robot parts.

Overview
This project was built to standardize the common parts Team 4079 used across robot designs. Instead of every student recreating bolts, nuts, shafts, spacers, pulleys, gears, and other repeated components, the team had one shared SolidWorks library with organized, simplified, reusable parts.
The library was built for SolidWorks use and was used by Team 4079 until the team switched to Onshape in 2025. Alongside the actual part library, this project also introduced a modified version of Team 254's Cheesy Poofs part numbering scheme so Team 4079 could keep robot assemblies, parts, drawings, and fabricated components organized across projects.
Lessons from this system later helped me improve the KUdos VEX-U parts library with better structure, naming, and long-term maintainability.
Problem & Goal
Before this library, team CAD work was slowed down by repeated part modeling, inconsistent downloaded vendor models, missing part information, unclear file names, and large assemblies that lagged in SolidWorks.
The goal was to create a shared parts library and naming system that made design work faster while keeping parts consistent, lightweight, searchable, and easy to assemble.
Design Requirements
- Centralize common COTS and custom robot parts in one shared library
- Include frequently used parts such as bolts, nuts, shafts, bearings, hubs, gears, pulleys, belts, and hardware
- Add mate references to common parts for faster assembly
- Create quality-of-life part templates for repeated designs
- Store part numbers, cost, quantity, material, and other useful metadata
- Use simplified geometry to reduce SolidWorks lag
- Organize the library so students could quickly find and reuse parts
- Add a consistent part numbering system for robot assemblies and manufactured parts
- Support long-term use across multiple robot projects and seasons
Library Structure
The library was organized into three main sections: the COTS parts library, part templates, and document resources. This made it easier for students to separate ready-to-use robot components, configurable design starting points, and engineering reference material.
| Section | Purpose |
|---|---|
| COTS Parts Library | Shared SolidWorks models of common off-the-shelf FRC robot parts |
| Part Templates | Configurable templates for repeated custom parts |
| Document Resources | Reference documents for CAD, machining, and mechanical design |
COTS Parts Library
The COTS parts library included common off-the-shelf FRC components such as bolts, nuts, shafts, bearings, bushings, gears, pulleys, sprockets, wheels, hubs, motors, electronics, extrusion, brackets, and hardware.
These parts were organized by mechanical category so students could quickly find what they needed while designing robots. Common parts were simplified where possible to keep SolidWorks assemblies lightweight and reduce lag.
Mate References
Common parts such as bolts, nuts, shafts, and other repeated hardware included mate references so they could be dropped into assemblies faster. This made basic assembly work smoother and reduced the amount of manual mating needed for repeated components.
Part Templates
The library also included configurable templates for commonly reused custom parts, including:
- Spacers
- Chain
- 3D-printed pulleys
- 3D-printed gears
- Configurable belts
- MAXSpline spacers and shapes
- Crown pulley templates
These templates improved the CAD workflow because students could start from a known-good part instead of recreating the same geometry every time.
Modified 254-Style Part Numbering
Alongside the parts library, I introduced a modified version of Team 254's Cheesy Poofs part numbering system for Team 4079 projects. The goal was to make SolidWorks assemblies, parts, drawings, and fabricated components easier to organize as robot projects became more complex.
The system gave every major assembly and custom part a structured name instead of relying on vague file names like left plate, new spacer, final bracket, or shooter plate v2.
Team 4079's modified format was:
4079-2022-A-0000
Numbering Structure
| Section | Example | Meaning |
|---|---|---|
| Team number | 4079 | Identifies the team the file belongs to |
| Year | 2022 | Identifies the robot or project year |
| File type | A or P | A means assembly, P means part |
| Assembly identifier | First two digits of 0000 | Identifies the subsystem or assembly group |
| Part identifier | Last two digits of 0000 | Identifies the individual part, or 00 for an assembly |
Assemblies always ended in 00. Parts used the same assembly identifier as the assembly they belonged to, then ended with their own part number.
For example, 4079-2022-A-0100 would be an assembly, while 4079-2022-P-0101 would be the first part inside that assembly group.
Example 1: Top-Level Robot Assembly
4079-2022-A-0000
| Section | Meaning |
|---|---|
4079 | Team number |
2022 | Robot year |
A | Assembly |
00 | Top-level assembly identifier |
00 | All assemblies end in 00 |
This represented the highest-level robot assembly. Everything else in the robot CAD would eventually live under this file.
Example 2: Subsystem Assembly
4079-2022-A-0100
| Section | Meaning |
|---|---|
4079 | Team number |
2022 | Robot year |
A | Assembly |
01 | Subsystem or assembly identifier |
00 | All assemblies end in 00 |
This represented a major subsystem assembly, such as the drivetrain, intake, shooter, climber, or electrical layout.
Example 3: Individual Part
4079-2022-P-0101
| Section | Meaning |
|---|---|
4079 | Team number |
2022 | Robot year |
P | Part |
01 | Belongs to assembly group 0100 |
01 | First part in that assembly group |
This represented an individual part inside assembly 0100. For example, if 4079-2022-A-0100 was the drivetrain assembly, 4079-2022-P-0101 could be a drivetrain plate, spacer, shaft, or bracket.
Example Model Tree
A simplified robot model tree could look like this:
4079-2022-A-0000.sldasm Entire robot assembly
4079-2022-A-0100.sldasm Drivetrain
4079-2022-P-0101.sldprt Drivetrain side plate
4079-2022-P-0102.sldprt Drivetrain spacer
4079-2022-P-0103.sldprt Drivetrain shaft
4079-2022-A-0200.sldasm Intake
4079-2022-P-0201.sldprt Intake side plate
4079-2022-P-0202.sldprt Intake roller shaft
4079-2022-P-0203.sldprt Intake mounting bracket
4079-2022-A-0300.sldasm Shooter
4079-2022-P-0301.sldprt Shooter plate
4079-2022-P-0302.sldprt Flywheel spacer
4079-2022-P-0303.sldprt Hood bracket
4079-2022-A-0400.sldasm Climber
4079-2022-P-0401.sldprt Climber hook
4079-2022-P-0402.sldprt Climber side plate
4079-2022-P-0403.sldprt Winch spacerHow It Was Used
Top-level assemblies and major subsystem assemblies were assigned first so the robot had a clear structure before smaller parts were created. Individual parts and subassemblies were then numbered based on where they belonged in the model tree.
This made it easier to keep SolidWorks files, drawings, and fabricated components connected to the same organizational system. If a part was sent out for manufacturing, used in a drawing, or referenced in a fabrication list, the part number made it clear where that part belonged in the robot.
Why It Helped
This system improved the team's CAD workflow because it made files easier to search, review, and manufacture. It also helped newer students understand how a robot assembly was organized because part numbers showed the relationship between individual parts and the subsystem they belonged to.
Instead of naming files based only on descriptions, the team had a repeatable structure that showed:
- What team the file belonged to
- What year or robot project it came from
- Whether the file was a part or assembly
- What subsystem the file belonged to
- Whether the file represented a full assembly or an individual part
This was especially useful for projects like Ascent, X001, X002, X003, Backlash, and Overhang, where many custom parts and subassemblies needed to stay organized. When a project followed the X--- naming scheme, it meant it was an off-season project and was not tied to a specific year.






