Bottom Up vs Top Down Design (more so during CAD)

So my team has switched to using Fusion and since Fusion does not differentiate between parts and assmeblies (unlike inventor every file has access to the modeling and assembly tools), it got me thinking that top down design is much more viable.
Looking around online I found some information but still wasn’t sure how exactly to implement top down.
Can any of you guys shed light on the diffences between these philosophies, your experience with them if any, and whether it’s worth using top down. Thanks in advance!

Generally speaking, independent of CAD packages, the interaction with the game peices is the most important aspect within competitive robotics and thus is more often than not modeled early. How that end effector gets to where it needs to go is the next priority, and how that combined mechanism mounts to the frame follows. This is top-down design that most successful CAD teams employ (including industry).

There is some bottom-up required, such as the bumpers/frame which are generally the first thing teams model, but that can also change later in the design process.

I can’t speak too much towards fusion, having used it primarily for CAM, but I imagine you can employ a similar philosophy.

I think Cyberphil has the names of the two reversed, but is otherwise correct.

Most design work winds up being a compromise between the top-down design:

  • Start with the requirements (game rules, parts limitations, strategic goals)
  • Develop an architecture which can deliver these requirements (LxHxW, drive train style, major arm/elevator geometries)
  • Design manipulators which can fit in this architecture

And the bottom-up design:

  • Prototype manipulators which can effectively handle the game pieces and place/launch them as needed.
  • Attach them to arms/elevators to get them where they need to be.
  • Put all these pieces onto a drive train.

The best results are usually had by doing an architecture top-down, then engineering from the bottom back up. The more detailed your architecture, the harder the low-level engineering will be; the more open your architecture, the harder the high-level engineering (and possible re-work) will be.

I have not done any CAD, but at a philosophical level, top-down design would begin with “boxes” for things like the drive train and intakes and arms, showing about how big they are and how they move relative to each other and the game pieces, then begin refining each of these boxes into systems of greater detail.

You have to do both top down AND bottom up to separate CAD tasks and make sure your CAD team isn’t working on the same things.

If your team always does a swerve or a WCD then you can fill out all the layers from drivetrain down to fasteners and then when you start working on CAD you fill in the data from bottom up.

Top down is best for things you know ahead of time. Last year’s robot could be organized from top down like this.

ROBOT

  1. Drivetrain
    A.Frame
    1A.Side rails
    1A1. Left rail
    1A2. Right rail
    2A.Front/back rails
    3A.Bumper attachments
    B. Gearbox
    C. Wheel/shaft assembly
    D. Chain/belt
    E. Belly Pan
    F. Electrical
  2. Intake Mechanism
  3. Elevator
  4. Climber

You could add more levels for drivetrain to eventually have it defined down to the single part level.

For mechanisms that go on the drivetrain you usually do bottom up unless it’s a mechanism you’ve done before and can fill in all the levels. If you did an elevator for 2018 and were going to use an elevator again in 2019 you could have all the levels of the elevator defined quickly.

Think the responses so far have missed the OP’s intent. I believe the OP is asking about designing parts from an assembly file instead of designing the parts separately then creating an assembly. Correct?

I’ve always done bottom up so I can’t provide prospective for you.

David

From a Solidworks perspective, you can do top down design by using weldment or doing a layout sketch as a way to create lower level parts from one upper level file.

The problem happens when one person wants to fix one part and a second person wants to fix a different part and they both were created from the same upper level file. Even if it’s the same person working on all the parts they would still have to remember which files have to be modified in an upper level file while other files have to be modified in the lower level.

Sometimes it’s quicker to design top down but a pain to any kind of edits afterwards.

Not exactly, I used fusion as an example because the ability to do assembly and model in the same file allows for more in depth top down which is why I was curious about how to better or properly implement i

Top down design (in CAD) generally only works well in one off situations like FRC. Industry as others have mentioned do use a lot of top down DESIGN but not CAD. You can do top down in solidworks, but it is very clunky.

A lot of industry actually uses bottom up CAD most of the time so that parts can be reused. In FRC think COTS and other bought parts. All of these parts get brought into an assembly and though the design may be top down, if something needs to be tweaked, that means opening that part file.

Now, to answer the OP. Top down design AND CAD is a great way to go. It is much easier to make sure everything is matched correctly like through holes between multiple parts. The down side is that it’s harder to reuse parts for multiple projects (hence why industry uses bottom up). You are focused on one exact goal and everything is CADed to that goal.

You CAN however do a bit of mix and match. Top down CAD of a subsystem like a swerve drive becomes a bottom up CAD file for a full robot. That sub can be used in multiple places even though the machined brackets in that sub can’t be readily used elsewhere.

Eventually, the math you create in the assembly file will be saved off as a single file.

If you save the single file early it allows for more designers to work. One designer can work on the assembly and another designer can work on the single file.

Waiting a long time to save the data created in an assembly file to a single file could cause delays when you have two designers trying to work in the same assembly file.

How your team separates their CAD workload has a lot to do with which method is best.

I can’t say I’m always consistent about it but I have used a little bit of both methods within the SolidWorks environment. The most common use for FRC that I have used is ‘in context’ holes or holes on a part file level with direct reference to another part in the assembly. This enables me to iterate and move certain features on one part and have the mating part update when refreshed. This can cause the occasional issue if not done correctly though i.e. a hole going beyond the bounds of the mating part causing SW to throw an error. Easily fixed and if I went back to truly clean it up more of the mating part’s geometry would be referenced to the first part.

Another example I can provide is with multi-bar linkages. I can’t say I have ever used the assembly level sketch and made parts based on that geometry but I have used a single part file with a master sketch, extruded the links based on the lengths from the master as multiple bodies (uncheck “merge solids” when adding to the feature tree) and then made a configuration for each link body, suppressing the unnecessary solids for each part, and then assembled them in the subassembly or master assembly as needed. This is a bit more of a roundabout way of achieving the same task as described by others but I can also see this as breaking the need for one user to access the assembly while another user tweaks the linkage (completely contained in the part file).

On a big picture level, we also use “stick figure CAD” to determine the overall reach, movement, size and packaging of the robot and its subsystems. A simple rectangle representing the frame perimeter/bumper height with infinite construction lines representing the maximum horizontal reach and the floor/ceiling of the max height defined by the rules goes a long way to start to define manipulator size and arm/elevator packaging or intake rollers etc.

For FRC you can get away with using whatever mix you are comfortable with or where you see it applicable. If done really well you can update whole assemblies with the modification of a few dimensions without throwing errors. It may take more time to set up this way in advance but could be really useful in tweaking as you go.

One last note, I utilize some of this in industry as well but as others have said with repeated part use this can get messy. My typical workflow involves using in context or reference geometry all the way up until the submission phase of a project at which point I simply go in and break reference links, and dimension a few holes and features to make parts independent. Our internal drafting standard abhors ‘links’ between parts as one broken link can cascade into a web of part and assembly errors.

New to SW 2018 is the “Save Bodies” feature, which does exactly what you do but lets you save each body to a separate part file. This means, for instance, that you can have separate material properties for bits of the same master part.

Our CAD usually has a master part for every subsystem, and sometimes a unique master part for each gearbox. This means different people can work on different subsystems without nuking everything.

I recommend using Save Bodies only parts that need to reference each other. This is typically only for structural extrusions and gearbox plates- the rest can be broken up into individual parts.

1 Like

You may want to look into the following Autodesk Design Academy Course, Fusion 360 for FIRST Robotics Competitions

It does look at the reality of blending top-down (Feature -> Sketch _> Component) and bottom-up (re-using/modifying existing Components) and assembling a Competition Ready Robot.

1 Like

Woah thanks should be a good watch

Great topic! I still ask these same questions…
For me, I just came to the realization that I make iterative passes, much like an artist that sculpts marble or ice. The thing I am guilty of is taking too big of a leap where I get into analysis paralysis, and can’t get anything designed. To deal with this I became aware that I need to do exercises in inductive reasoning. One way I do this is to take various well defined solutions (e.g. COTS parts), and simply mate them in space using primitive mates, and keep the mates very configurable. Then stare at this for a while… then I meditate on that image, and try to imagine what other ways I can put them together. In the end, I realize whatever I do… it is going to fall short, and just do it. Then start the deduction of that design to see if it will hold up. Crayola Cad is perhaps the most success we’ve had for top down… and it’s the same idea… keeping it iterative, going through a inductive, then deductive process… and go through several iterations of checking it over to see if it meets all the requirements. Some of these ideas are similar in software design, but the big difference is all the fitting, geometry, and the realization that math only gets you about 95% there… the other 5% is prototyping and experience.