Preparing for the 2018 season, I would like to start using a Part Numbering system to organize our CAD better. The format is fairly straight forward, and I intent to do it like 254’s guide shows:
There are a few things I am still unclear of, and would like some help before I start practicing it:
I have heard there is a master drawing that has all the part numbers, but if you are CADing and want to quickly pull in another spacer for example, how do you know which part it is without having to refer to the drawing every time?
How do you even get a master drawing? I’ve never seen anything like it in Solidworks and don’t really know how I would go about doing that
This is a great thing to learn over the course of the summer! Good organisation practices can make your own life easier when working with large assemblies and can make it infinitely easier for you to share your work with others. In answer to your questions:
I’m a bit confused by your question. Are you asking about how to add duplicates of the same part to a master assembly/drawing? If so, that’s quite simple. There are several ways to simply copy a part that’s already in the assembly to add another instance of that part. It’ll keep the original part name in the assembly and the drawing.
Making a master drawing is also pretty simple, though refining the format and template to your liking can take some time and practice. Once you’ve started working on your master assembly, make a drawing. You can either use “Make Drawing from Part/Assembly,” or you can make the drawing and then when you add views, select the master assembly. The drawing will update when you make changes to the assembly, but you usually need to do most of the work on the BOM in the drawing manually.
Most don’t, but some do. What you’re referring to are called COTS (consumer off the shelf) components. Unmodified motors, gears, bolts and spacers are all lumped under COTS components and not usually included in the Parts Numbering Lists. I always name models of COTS components by the ID number given to that part by the manufacturer (or the supplier I’m buying from for that particular project).
The 254 numbering system is a good one to follow, though I use a slightly different one that has somewhat different features. I use a 10(-ish) character system to document my parts and drawings. All parts and drawings within a project start with the same 3(-ish) character acronym. SDT for Sheet metal Drive Train, 2CZ for 2ChainZ (the name of our 2015 bot), BBX for Belt Box, etc. The next four digits indicate what sub-assembly a part is in. The last three digits serve as just a part identifier within the most specific sub-assembly. These numbers are assigned sequentially and are either by order of creation or in alphabetical order, depending on my preference. For example:
R18.1320.005 is the hypothetical part number for the output shaft in a custom gearbox on the robot built for the 2018 game.
R18 - signifies that this for the 2018 robot.
1320 - shows exactly which sub-assembly this part is in. Each place in this four digit sequence represents a level of assembly, while the digit itself shows which version that sub-assembly is on. The digits are assigned from left to right, so adding another layer of sub-assembly later on doesn’t shift the entire numbering system by one place. So 1320 shows that the output shaft is in the 1st version of the master assembly, the 3rd version of the drivetrain assembly, and the 2nd version of the gearbox assembly. Trailing zeroes in this four-digit portion show that this particular part is in no further sub-assemblies. If I were to make the output shaft and all the parts mated to it into another sub-assembly within the gearbox sub-assembly, the part number would change to 1321. There can never be captured zeroes in this portion of the part number.
005 - simply identifies this part as the fifth part in the gearbox sub-assembly. This is usually assigned by order of creation until I near the end of a project and then reassign these last three digits by alphabetical order. I then promptly get fed up because I’ve memorized these part numbers by order of creation and now nothing’s named what I thought it was. Assemblies are always assigned 000 in this portion.
If you have any further questions or want further clarification, let me know!
Might be a dumb question but is there any way you can set Solidworks up to automatically number/name/prefix parts or have a menu or something to choose a prefix?
In 2015 we had a setup that auto-generated part numbers within a google speadsheet, and then that somehow connected with the vault/grabcad setup we had at the time (maybe one of our alums can explain better) that helped keep this all in order. The system was helpful in some ways, but a nuisance in others. Like many other things, its all in the planning, execution, and sticking to it. Each one of those needed work in our 2015 season and after that we kind of passively stopped doing part numbers.
We (3138) use a modified version of 254’s cheesy parts server to accommodate our own part numbering scheme. A typical part for our team would be something like:
IR17-01-312
IR: Innovators Robot
17: 2017 Season
01: Assembly 01
3: Subassembly 3
12: Part 12
For assemblies, part and subassembly # are 0
IR17-01-000 would be assembly 01
IR17-01-300 would be subassembly 3 in assembly 01
IR17-00-000 would be the overall robot assembly.
We modified our CAD naming standard this year so that descriptive names may be placed after the part number and an underscore.
For example:
IR17-01-200_drive_gearbox.sldasm
That way, you can still sort on the name and have things in the right order.
That is all for parts that we manufacture or modify from COTS. We have a part library that contains parts that could be used for multiple years, so we have a similar, yet different, part numbering scheme.
We have IR00-[category]-[part]
Categories are 2-digit categories. For example, IR00-01-130 is part 130 of our gear category (01), which happens to correspond to the AndyMark am-0885 48T (Steel) 0.500 Hex Bore Gear.
It’s also very handy to have the parts server website up at all times so you can reference part numbers if need be.
I cannot recommend GrabCAD highly enough. Has version control as well as syncing across computers, file locking, and a web display for viewing 3D files on a computer without CAD software. You can also use it for non-CAD files, so you can keep your calculators, spreadsheets, datasheets, etc together. It’s a lot easier to use than Git (at one point I even considered using GrabCAD to manage my Java programs). I know there’s a Solidworks plugin, not sure about integration with other programs. Even without the plugin it’s still an awesome piece of software.
+1 for GrabCAD! It’s the only was our team has even been able to successfully CAD with multiple contributors, and the Solidworks plugin makes it super easy to make sure that you are always working with the latest version of your team’s CAD.
As far as numbering systems, you may want to download some of 971’s CAD (they have their past few robots posted on their website) and check out how they name and organize all of their part files
Cool. Good to know. How do you host it? On a cloud instance or something or do you have a local machine running it? That’s one of the things I’ve been trying to figure out.
We use a pretty simple system, for example, for a part in a gear holder we would put:
1403.GH.005.R0 [Encoder Mount]
*This is not a real part
1403-Team
GH-Subsystem (Gear Holder)
005-Part number in the subsystem
R0-Revision Number
[Part Name] - Then for ease of use, we include a simple part name in brackets
Then all of these would be referenced in an assembly drawing that would show how all the different pieces would go together. I don’t if an assembly drawing is what you mean by “master drawing”, but that’s our system.
We just save Assembly Drawings as “Gear Holder Assembly” (or similar name depending on subsystem), because there aren’t too many assemblies, so it won’t be as confusing to sort through it.
I’m curious—lots of people are using numbering schemes where the identifiers are significant (i.e. that they encode information about the part). Is this because you don’t have any other convenient way of recording and viewing metadata that might be relevant?
The problems with significant part numbers (as used above) include:
Part reuse requires choosing between options like: ]An out-of-sequence part (e.g. belongs to assembly 1, but you’re also using it in assembly 2).]A duplicate part with a new number (which makes for massive concurrency problems for frequently-used items like hardware, because you can’t or don’t have time to find all the copies and replace them).*]Support for symbolic links to reference the original part using a new number (such that a change to either affects both—or more precisely, affects the canonical copy because the other name is only a reference to the same item).
*]You can’t generate a new part number unless you can avoid name collisions—so you must do something like: ]Create a temporary provisional part number.]Always maintain access to the database to check the sequence.
Non-significant part numbers let you do things like random assignment (GUID-style) to relax the database check constraint, and avoids the problem of having to classify a part with an ambiguous conceptual definition.
Looking to industry, both significant (to varying degrees) and non-significant numbers are used. What special considerations apply to the FRC use case that might favour one or the other?
I can speak for what we had for 6065 while I was there, it was a system that I had created during my tenure at a manufacturing company the previous summer.
We used a 3-2-4 number code to identify everything that wasn’t COS, for example:
000-17-6065
000 was the code for the top level assembly
17 was the year
6065 was the team number
This system was quite effective since you change digits for different levels of assemblies and parts instead of just going up one number
(100 was the drivetrain, 110 and 120 were the left and right sides of the drivetrain respectively, and 101 would be the belly pan, 111 would only be used if there was a part that only went on the 110 side of the drivetrain)
Of course if your robot is mostly non-COS you could always add another digit to give two digits to assign to parts instead of one.
I personally dislike all-number systems. They tend to be hard to teach, and if I’m looking for a part I want to know what it is.
As a result, I just do the following:
All top-level assemblies (like drivetrian, shooter, etc) have a number-letter combo such as “WCD-011” (11th West Coast Drive). All parts in those assemblies must start with “WCD-011”, for example “WCD-011 driverail”. Alll subassemblies in WCD-011 would also start with WCD-011, like “WCD-011 Gearbox”. Then everything in that starts with “WCD-011 Gearbox” and so on. “WCD-011 Gearbox Shifter housing” is about as long as the names get.
Typically I only find that there are 3 levels of assemblies maximum in an FRC robot anyway, so naming things this way works well for me. It also prevents duplicate part numbers.
I use GrabCAD for revision history and preventing CAD conflicts. Absolutely love it compared to Dropbox and Tortise SVN.
W stands for Woodside HS, our school. This prevents confusion since our CAD mentor also works with Carlmont HS, which have their own part numbers. 17 is the year of the project. Number 001 is reserved for the top level assembly, while 002-009 are reserved for layouts and top level assemblies that aren’t subsystems. Number 010, 020…090. Then everything from 101 on are free-for-all parts. All the part number checkouts are handled with a big Google sheet.
Does anyone have any info on how to make a good spreadsheet to manage your numbering system. I’m looking for a system where you can easily add new parts and have a part name be generated. Pretty much exactly 254s chezy parts just created in a google spread sheet. I know 1678 does something like this. Last year I used a google word doc with all the parts and am looking to step it up a level.