Next: Manual: Maintaining Families of Parts
Previous: Family of Parts Search
Creating Families of Parts
The process involved in creating Families of Parts can be much
different from the process used in creating standard, one-use parts.
These Master Parts must be made such that all of the model parameters
can be easily modified to create the member parts. Using too many
absolute locations can cause problems when the appropriate variables
need to be added. Another important consideration is database
size. The part should be modeled as simply as possible, with as few
derived or computed variables as possible. This database is going to
be copied for each member part created. In this case, a little extra
time getting a clean database can lead to tremendous savings in disk
space later. Another consideration is robustness, how well the model
can deal with values in the dimension table that are out of the range
of physically possible values for that variable.
The following are some important things to consider when deciding if a
group of parts is suitable for this process.
- Size of the family
- The family must be large enough so that it is worth the effort of
creating it. Two or three similar parts would be better created
using basic parametrics. This means create one part, file it,
change the dimensions, and file it under another name.
- Amount of use
- The family should be one that has multiple members that will be
used on a regular basis. If only one or two members will ever be
used, the extra storage space and the extra effort involved in
creating the family isn't warranted. Two members created with
the family of parts procedure result in three copies of the
database and one text file containing the information for the
rest of the unused parts.
- Topological equivalence
- Parts which are topologically dis-similar can be difficult or
impossible to create with this process. One such example is a
connector with a variable arrangement of contacts. There is no
way to specify different patterns of contacts for each member
using this process. CADDS5 can't deal with coincident points
when creating entities. This means that zero-length lines or
zero-radius fillets can't be created. The table also can not
control whether features such as fillets, holes, chamfers,
etc. are created or not. It can control how many copies of a
solid or wireframe entity are made, but that is the extent of
its control. Features such as holes, fillets, etc., can not be
copied. The features have to be added to the entities before
the entities are copied.
- Discrete Values of Dimensions
- The dimensions for the family members must be entered into a
table. As such, parts that have dimensions that take on a
continuous range do not lend themselves to this process. One
exception to this is where the continuous dimension is not one
of the dimensions that would be entered in the table. An
example of this is a family of structural beams. The beams are
available in a continuous range of lengths, but the important
dimensions in this family are the cross-sectional dimensions.
The parts can be created with a unit length, and then copied and
modified as necessary. If there were only one cross-sectional
shape and size in this "family", then there would be either
one member in the family, or an infinite number of members, one
for each possible length of beam.
Modeling Considerations
These are several things that must be considered prior to creating the
family. They mainly deal with modeling strategies, possible pitfalls,
and helpful hints.
- Before a design for a part is created, the part needs to be
studied to determine which of the geometric features are
necessary and which can be ignored. Threads can safely be
ignored, producing only a cylinder in their place. If the part
is being created for interference checking or visualization
only, then interior details are often unnecessary, unless these
details affect how it mates with another part. Features that
are optional or customizable that do not affect the usage of the
part can be best left to a note or other means. Examples of
these are contact arrangement and keying of an electrical
connector, or things that aren't included in the model such as
the material of the part. Eliminating these from the geometric
features included in the model can often substantially decrease
the size of the master part and the number of members in the
family without hurting their usability.
- In determining what method to use in creating the part, the
given dimensions can be very helpful. A method that uses the
given parameters directly will generally be easier to create
than one that uses many intermediate parameters. An exception
to this can be seen in the case of creating a profile for a
circular sweep, where all the dimensions are diameters. If
these diameters do not affect any other parts of the model
directly, they can be converted to radii, and entered into the
model and table that way. This was done in the creation of the
38999-24 connector. All of the dimensions that were diameters
were converted to radii as they were used to create one half of
the cross section of the part, which was then revolved around
the z-axis. This saves one variable and one equation for each
parameter used this way, as the dimensions would otherwise have
to be converted to radii in the model. On the other hand,
entering them into the table as the given diameters and then
creating the necessary radii using equations eliminates the need
for the person entering the data to compute the radii manually,
eliminating one possible source of errors.
- The size of the master part files is important. The model
should be created so that it is as small as possible, without
sacrificing necessary flexibility. Models created using solid
primitives and boolean operations generally use more disk space
than the same models created using wireframe profiles,
extrusions, and sweeps.
- When entering points, avoid using location parameters, which
specify the absolute coordinates of the point, as much as
possible. They decrease the flexibility of the model. Also,
points should be referenced such that the fewest number of
parameters is necessary to control the position. When it is
desired that the part be able to be moved with respect to the
origin, as was the case for the extrusions, then only one point
in the model should be referenced from the origin, and all other
points be referenced from other locations of the model, such as
the center of an entity or a vertex. For the extrusions, the
location of the first point of the first line was referenced
from the origin. From then on, all other points were referenced
from that one. When the location of the first point changed, all
of the other points in the model retained their proper
relationships.
- Determine how each point is going to be referenced before
starting to build the part. A plan that is drawn out ahead of
time can save much time and many rebuilds later on.
- If there are many variables that are the same among a group of the
members, but differ between different groups, consider including
only something to identify the group in the table, and use
conditional constraints in the model to set the variables. An
example of this is molded barrier strips, one of the original
families. The model was built to handle three different classes
of terminal strips. Within each of those three classes, there
were only three variables that changed between members. All
other variables were constant within the class. Thus, the only
variables in the table were the three that changed within the
class, and the class number. If-then-else statements were used
to set all the other variables in the model.
- When creating a family that is going to have a variable number
of features, the order of creation becomes very important. The
terminal strip is an important example of this.
The fillets on the fins have to be added before the fin is
copied as the Fillet Between command can only be used
on one face at a time. Originally, the bosses were created as
holes using the Insert Feature Hole\_Blind command.
This feature can only be inserted at one location at a time, so
the part had to be made by creating small segments with the
holes and duplicating them. Insert Hole (and later
Insert Boss) turned out to be a much better option, as
it allows multiple locations to be selected. However, the
command only allows one entry face, so the bosses had to be
added before the fins were created and unioned to the rest of
the part. Unioning the fins to the body of the part splits up
the top face into several smaller ones. The locations of the
bosses were selected using a rectangular pattern, located by the
corner.
- Another important point that comes up when creating parts that
have a variable number of entities is how to properly select all
of those entities. The group selection modifier is the
only one that is retained in the history. Selecting the items
using the window, layer, or other modifiers simply puts one
selection in the history for each item selected. If the number
of items later changes, then the command will either fail if the
number is reduced or will not select all of the necessary items
if the number is increased. When performing the final union,
first the main body was selected, then the first fin, and then
the rest of the fins using the group modifier and selecting the
first one.
- There is no way to select the last, next-to-last, etc. item of a
group of items created using Duplicate Entity, or when the
locations of the entities were specified using a pattern.
The selection is recorded as the first item, second item, etc.
This can cause problems when the number of entities changes. For
example, the command could fail because the entity no longer
exists. Therefore, avoid using references to entities that were
created using the Duplicate Entity command, or a
pattern, when the number of entities created can change. One
exception to this is that when using a rectangular pattern
located by the corner, it is safe to reference the entity at that
corner.
- When naming your part, you must keep in mind that CADDS has a
limit of 20 characters on any one component of the name.
(Components of the name are seperated by periods.) When the
parts are generated, seven characters are added to the last
component of the master part's name, so master part names can't
be longer than 13 characters.
- As the dimensions of the part being modeled grow in size, so
will the disk files for the part. Create the master part using
the sizes of one of the smaller members as a guide.
The Steps in Designing a Master Part
- Determine which geometric features are necessary.
- Determine the given dimensions of the part.
- Determine an origin and orientation for the model.
- Construct a modeling strategy for the part.
- Determine how each entity in the model will be referenced.
- Determine which parameters in the model will be controlled by
variables.
- Determine which variables will control each of these
parameters.
- Determine which of these variables will be controlled from the
family table and which must be computed.
- Create equations for all of the computed variables.
- Review the modeling strategy, variables and equations to
determine if the modeling strategy can be improved to use fewer
commands, CSG modeling techniques, variables, and/or equations.
Steps in Building the Master Part
These are the steps to follow once you have a design for the
part.
- (Optional)Create a text file ending in .var containing the names
of variables that will be used in the part, one per line. This
should be placed in a directory in the CADDS search path. The
file can be erased once the part is finished, or it can be
stored in the part directory for future use.
- (Optional)Create a text file ending in .eqn containing
equations that will be used in the part, one per line.
- Activate the master part and a drawing.
- Change to the appropriate layer.
- Create the geometry as determined earlier.
- Change to the "Constraints" task set.
- If you created a text file with the variable names, read those
in through the Read Variable item. After that, enter the names
of any other variables through the Add Variable item. Any
variables that are to be read from the table should be marked as
constant, unless it is necessary that one or more of the
equations be able to change the value.
- Use the Associate Variable item to tie the variables to the
appropriate parameters.
- If you created a text file with the equations, read those in
through the Read Equation item. Then, use the Add Equation
menu to create any other necessary equations.
- Use the Add Equation menu to constrain variables within working
ranges, if necessary. Any variables that need to be constrained
in this manner should be changed to "Free"
- Change to the Family Part task set.
- Select the Add Control Parameter item.
- Select the "By Name" button.
- While holding the <Control> key, select each variable that
is to be controlled by the table, and press apply.
- File the part.
- If when you file the part, it has exactly the same
dimensions as one of the member parts, then the part server may
incorrectly report that the model failed to generate, due to
differences in the CADDS output, when creating that particular
member part. This will hopefully be corrected in the
future.
- Modify the text file to contain the necessary information (see
below.)
- Use the Visit Family Member and Regenerate
Model commands to determine that the model will generate
the member parts properly. Do not re-file the part.
After several regenerations, the master part file will have
grown in size, even if the last regeneration brought it back to
the original size. Exit the part without filing, or the extra
size the master part gained will be passed on to all of the
member parts.
- The family of parts is now ready to be used. Contact the
person in charge of families of parts to have it reviewed and
placed in the Family of Parts Library.
Text File Format
Once the model has been completed, the text file has to be filled in
with the information necessary to create the rest of the parts. The
text file has been created by CADDS5 and is located in the part's
directory. The file is named _tbl. It uses fixed-width columns for
each variable. If there are many parts to be added to this table, the
easiest way to add the information is to take the file into a
spreadsheet such as Excel. The file should be saved as Text, Space
Delimited. Text, Tab Delimited may confuse CADDS and the search
engine. Tab delimited files will also be much harder for people to
read if the width of the text in the columns varies enough. If only a
few parts are to be added, any text editor can be used.
If using a spreadsheet, be sure to check that the columns
are wide enough so that all the information will appear in a text
file. This is easier when using a fixed-width font instead of a
proportional font. If the column is too narrow, the column may not be
wide enough and may cut off some data, or even print numerical cells as
#######. Also, be careful of left justified text to the right
of right justified text, and right justified text to the left of left
justified text. Insert an extra column with a width of 1 between them
if they run together in the text file.
CADDS ignores any lines in the file that have a # in the first column.
Thus, comments can be placed in the file by having a # in the first
column of each line. Any of these lines that starts with a #!, up
through the first line that doesn't start with a #, will be displayed
to users of the search program. These lines can contain important
information about the part, descriptions of the variables, or anything
else that the user should know. The search window is only 65
characters wide, and no line wrapping is done on the comments, so the
lines should be 65 charaters characters long or less, not including the
#! and any spaces immediately following it. The first non-comment line
contains the names of the variables. CADDS will ignore any variable it
doesn't recognize, so additional variables can be added to the table.
These can contain additional information about the parts, and these
variables can be searched with the search programs.
The line following the variables must be an entry for the master
part. This contains the values of the variables at the time the last
control parameter was added. The rest of the lines contain entries for
the other member parts.
When you add a control parameter, CADDS rewrites the
_tbl file. It does not include any variables that it doesn't
know about. If you've added any variables to the _tbl file,
they will be deleted if you add any other control parameters through
CADDS. If you have to add any control parameters, make a backup copy
of the file under another name first.
The following is a portion of the table for the d38999-28 nuts.
#!Member_name is the dash number for the nut, followed by X or XP.
#!The parts ending in X are for use with class C,F,G,H,K and W connectors.
#!XP parts are for use with J and M class connectors. III and IV are the
#!shell size codes of the Series III and Series IV connectors that the
#!nut fits. The filenames of these connectors are included in the variables
#!Series_III_Filename and Series_IV_Filename.
These comment lines will be shown when a user selects this master part
in the search program.
############### Master : fpts.d38999-28
# Family Table: Series III: fpts.d38999-24
############### Series IV: fpts.d38999-20
These comment lines are ignored by both programs. They contain the
default comment inserted by CADDS, as well as the location of the
master part, and the location of two related master parts. These were
used in Excel to create the Full_Filename, Series_III_Filename and
Series_IV_Filename values, and are not printed by the search program.
Member_name A P T Full_Filename III IV Series_III_Filename Series_IV_Filename
Master 1.1020 1.3290 0.1250
These two lines are the variable names and the values for the master
part. Note that the Master part only contains entries for the first
three variables. The other variables were added later as additional
information. In this case, which circular connectors the nut matches.
1X 0.6693 0.8920 0.1425 fpts.d38999-28-family.1X A N/A fpts.d38999-24-family.A N/A
2X 0.7874 1.0170 0.1425 fpts.d38999-28-family.2X B N/A fpts.d38999-24-family.B N/A
Finally, the first two member parts, with all of the extra variables
filled in.
In the WWW-based search engine, every part that matched the search
criteria will be displayed for the user to select. Every variable name
that contains Filename (case-sensitive) will have a link added to the
value of the variable. This link will call the check_family_part
program to see if that part exists. If the part does not exist, the
program will ask the user if it should be generated. In the previous
example, the Full_Filename, Series_III_Filename and Series_IV_Filename
will have links on them. This provides a way to allow a user to easily
check on related parts. (If the value starts with "n/a", in any
combination of upper- or lowercase, then no link will be added to that
value.)
Important Points About the Text File
- The columns should be space-filled, not tab-filled. Tabs can
confuse the search program and CADDS.
- Variable names can not contain spaces.
Variable names that CADDS will use must be valid variable
names in CADDS.
- The first non-comment line must contain the
variable names.
- The second non-comment line must contain the
master part definition.
- Each line must contain a value for every
variable. The only exception to this is if there are no other
variables with values after it on the line.
Valid:
Member_name A P T Full_Filename III
1X 0.6693 0.8920 0.1425 fpts.d38999-28-family.1X
Invalid:
Member_name A P T Full_Filename III
1X 0.8920 0.1425 fpts.d38999-28-family.1X B
gregm@wpi.edu