Part vs Assembly¶
An Assembly
is also a Component
.
A Part
is an atomic component; it cannot be disassembled, and it
is typically made of a single material.
An Assembly
is a collection of Components
.
An Assembly
would typically hold itself together, as an intermedite
step of construction.
Part
is not to be confused with a primative (like a cube, sphere,
or cylinder to name a few), nor is it to be confused with constructive
geometry
For a detailed example of a hierarchy, have a look at Make your own Assembly.
Constructive Analogy¶
If you were to make something from scratch, from raw materials, each
Part
is each individual object after material processing
(such as forging, printing, or milling, just to name a few).
Each Assembly
would be a component that has reached an intermediate
step of assembly. Such as a motor, or a PCB.
The final thing being constructed is also an Assembly
Or put another way…
Destructive Analogy¶
If you had a thing with you, and you pulled it apart as much as possible (this may involve unscrewing, prying apart, de-soldering, just to name a few).
Each time you pull out a smaller thing:
- if it can be disassembled further, that is an
Assembly
. - if it cannot be pulled apart, then it’s a
Part
.
When you have recursively disassembled everything, you will only be left
with Part
objects.
Exceptions to the rule¶
Just like any other rule, there are exceptions:
For example, an SD Card has many components inside it, but since it can be
assumed that it won’t be pulled apart, or need to be constructed, an SD Card
will most likely be represented by a single Part
.
Conversely, a sticker (like a branding sticker) cannot be disassembled.
But visually you may want its orientation to be recognisable, or
you just want it to render properly. This is where a Part
is limited,
because it can only be one color. So the sticker may be 2 Part
instances in an Assembly
, one for the backing, and one for the text,
or logo.
Design¶
A well designed Assembly
is something that can be used in others’
creations.
That sentiment does not only apply to the highest level Assembly
, but
also lower level Assembly
classes used to create the high level object.
Consider how others may want to use your Assembly
, and empower the
class with the tools necessary to make their job easy.
More discussion on this in Make your own Assembly.