CAD Standards

Onshape is a collaborative tool, which means your CAD is only as useful as it is understandable to the next person who opens it. During build season that person might be a teammate trying to modify your mechanism, a mentor trying to review it, or you yourself three weeks later trying to remember what you were thinking. The standards on this page exist so that anyone can open any document on the team and get to work without a 20-minute orientation.

Document Structure

A full robot is too large and complex to live in a single Onshape document. Loading times get unmanageable, simultaneous editing becomes a nightmare, and version control breaks down. The standard structure splits the robot across three document types.

What it contains: The main layout sketch and Crayon CAD (a simplified model of the overall robot architecture).

This is where the geometry of the entire robot is established. Drivetrain footprint, extension limits, field element positions, mechanism motion paths, and game piece flow all live here as sketches before any real parts are modeled.

Every subsystem document derives its layout sketches from this document. If a geometry changes (elevator height, intake pivot location), it changes here and propagates downstream.

Layout Sketches

The layout sketch is the foundation of top-down design. It captures the major geometry of each mechanism before any parts are modeled, so that subsystem designers are all working from the same spatial constraints.

A well-made layout sketch drives every important dimension from intentional relationships, not from arbitrary numbers typed in after the fact.

Always include
Sometimes include
Never include

Drivetrain footprint and bumper envelope

Belt and chain runs

Specific plate shapes

Extension limits (per game manual)

Motor locations

Gusset geometry

Field element geometry

Gear pitch circles

Mounting holes

Mechanism pivot points and motion paths

Game piece path through the robot

circle-info

Use a separate sketch for each subsystem within the layout sketch Part Studio, and give each one a distinct color. Sketching all possible states of each moving subsystem (stowed, deployed, extended) before modeling anything will catch packaging conflicts early rather than after parts are already manufactured.

Part Studio Standards

Start with a Derive

Every Part Studio should start with a Derive command pulling in the relevant layout sketches from the Concept Document. This is what you build on. Parts modeled without a layout sketch reference tend to drift from the robot geometry and cause conflicts at integration.

Origin

The robot origin is defined as the center of the drivebase at floor level. All Part Studios and assemblies use the same origin so that subsystems align correctly when imported into the Main Robot document and so that CAD coordinates match robot code coordinates.

Use the Origin Cube featurescript as the first feature in every Part Studio. It inserts a fixed 2" transparent cube at the origin that assembly mates can always reference, even if other parts change or get deleted.

Naming and Organization

Unnamed parts and features are the fastest way to make a document unworkable for anyone else. Name every part and every sketch as you go, not at the end.

What to name
Convention

Parts

Descriptive noun ("Left Side Plate", "Intake Pivot Shaft")

Sketches

What they define ("Layout", "Shaft Profile", "Pulley Pocket")

Tabs

Subsystem or component name

Folders in feature tree

Group related features ("Frame Tubes", "Bearing Pockets")

What Goes in a Part Studio

The Part Studio contains custom-manufactured parts only. COTS parts (motors, gearboxes, bearings, hardware) are not modeled here; they are inserted directly into assemblies from FRCDesignLib.

Don't duplicate identical parts in the Part Studio. Model one instance of a symmetric part and duplicate it in the assembly using the replicate tool. Duplicating in the Part Studio bloats loading times without adding anything.

Avoid over-using intensive featurescripts like Tube Converter across many parts in the same studio. If loading times are getting slow, that's usually the cause.

Assembly Standards

The Origin Cube Workflow

  1. Create the Origin Cube in the Part Studio

  2. Insert parts and the Origin Cube into a new assembly

  3. Use the Group tool on all rigid parts together

  4. Fasten the Origin Cube's mate connector to the assembly origin

  5. Insert COTS parts from FRCDesignLib

  6. Use the Replicate tool for hardware (don't mate each bolt individually)

  7. Sort instances into folders (Tubes, Gearbox, Hardware, etc.)

For mechanisms with moving parts (pivot intakes, elevators), create mate connectors on the layout sketch for each degree of freedom, owned by the Origin Cube, and use those connectors to mate subassemblies at the top level.

Use Simplified Models

Detailed COTS models (full swerve modules, motors with internal geometry) have a very high primitive count and will make assemblies lag badly. Always use the simplified versions from FRCDesignLib for electronics, swerve modules, motors, and any COTS assembly you're not modifying.

Minimize Mates

Every mate adds to the assembly solve time. The Origin Cube + Group workflow intentionally keeps mates to a minimum: one fasten at the origin, plus one mate per degree of freedom. Avoid mating individual fasteners or features unless there's a specific reason.

Featurescripts

These are installed on every team member's Onshape account. If you're new, install all of them before starting any robot CAD.

Featurescript
What it does

Origin Cube

Fixed origin reference cube with mate connectors and built-in FRC constants

#BeltCTC_5mm

Calculates center-to-center distances for HTD 5mm belt runs

#PulleyPD_5mm

Calculates pitch diameter for HTD 5mm pulleys by tooth count

#ChainCTC_25

Calculates center-to-center distances for #25 chain

#ChainCTC_35

Calculates center-to-center distances for #35 chain

Belt and Chain Gen

Generates belt and chain geometry from C-to-C and tooth count inputs

Robot Pulley

Generates 3D printed pulley geometry with hex insert pocket

Configurable Rollers (Andrew Card's)

Generates roller geometry for intake and conveyor design

MKCad

COTS part library with common FRC components

chevron-rightInstalling featurescriptshashtag

To install a featurescript, open the Onshape document that hosts it, right-click the custom feature in the toolbar, and select "Add to My Featurescripts." It will then appear in your toolbar in any document.

For the Origin Cube functions (#BeltCTC_5mm, #PulleyPD_5mm, #ChainCTC_25, #ChainCTC_35), these are enabled inside the Origin Cube featurescript options when you insert it into a Part Studio. You don't install them separately.

Common Mistakes

Mistake
Why it's a problem
Fix

Modeling everything in one document

Slow loading, merge conflicts, no version isolation

Split into Concept, Subsystem, and Main Robot documents

No layout sketch

Parts don't fit together; integration requires rework

Start every subsystem with a derived layout sketch

Unnamed parts and features

Nobody else can navigate the document

Name as you go, not at the end

Duplicating parts in Part Studio

Multiplies loading time for no benefit

Model once, duplicate in assembly with replicate tool

Deriving full COTS geometry for reference

Adds primitives and slows assembly

Use simplified FRCDesignLib models instead

Mating from non-Origin Cube references

Breaks if the referenced part changes

Use Origin Cube mate connectors for all assembly references

Last updated

Was this helpful?