Dfma & Cad
Dfma & Cad
Dfma & Cad
Introduction
In the present competitive world manufacturing industries are going through lot of challenges.
Earlier CAD system used to focus on improving the productivity of draftsman. However, with
the change in time, the industries are looking for more efficient solution at the earliest before
actual production. This has been achieved through integration of CAD with DFMA. The
integration requires (CAD with DFMA) understanding of its data structure and its related
mathematical representation. On this line, there are many geometric models such as wireframe,
surface and solid model are available in the literature. Modeling techniques are decided based on
the expected utilization of the resulting database later in the design and manufacturing process.
1. Wireframe model
It is the simplest geometrical model an object and used to represent mathematically in the
computer. It is also called edge representation. Wireframe model consists of points, lines, arcs
and circles, conics and curves. It doesnt require much computer time and memory and hence is
considered to be the simplest. The major disadvantage is the ambiguous representation of real
object and purely depends on human interpretation. In fact, the interpretation of the correct
object becomes difficult in the case of complex model.This limits the application of wireframe
models from engineering viewpoint. A typical wireframe model of a cube has been shown in
Figure M8.1.1.
2. Surface model
Shape design and representation of complex object such as bodies of car, ship, airplane etc cant
be represented by wireframe model. In such cases surface models are to be used for precise and
accurately representation. In comparison to wireframe model, surface models of an object
provide more complete and less ambiguous representation. In the surface model, the geometry of
the object is defined without storing any information about topology. For example if two
surfaces are joined, they share one wireframe entities edge. But neither the surface nor the
entities store such information. Surface representation can be done in both parametric and nonparametric form. In order to use surface for both computation and programming purpose, it is
required to develop proper equation and algorithms Figure M8.1.2 shows an example of a
surface model. Types of surface available in CAD/CAM systems are, Plane surface, Ruled
surface, Surface of revolution, Tabulated cylinder, Bezier surface, B-spline surface, Coons patch,
Fillet surface, and Offset surface.
3. Solid model
A solid model of an object provides more complete representation than its surface model. The
database of the solid model stores geometric data and topological information of the
corresponding object. Geometry is the actual dimension that defines entities of the object
whereas topology on the other hand is the connectivity and associativity of the object.The
geometry and topology is explained through the following example shown in Figure M8.1.3.
Geometry: Length of the line L1, L2 & L3, and the angle between the lines and radius R and
center P1 of the half circle.
Topology of the object: L1 shares a vertex(point) L2 and C1, L2 shares a vertex with L1 and
L3, L3 shares a vertex with L2 and C1, L1 and L3 dont overlap, P1 lies outside the object,
where as the other case P1 lies inside the object.
For creating solid models of objects various representation schemes have been designed and
developed. Such scheme are, Half space model, Boundary representation, Constructive solid
geometry, Sweeping, Analytic Solid modeling, Cell decomposition, Spatial enumeration, Octree
Encoding, Primitive Instancing. Boundary representation, Constructive solid geometry,
Sweeping are the most commonly used schemes. Representation of solids are built and interacted
via algorithm. Such algorithms are classified into the following categories:
Data to Representation:These algorithms can produce representation by taking data as input.
These algorithms are capable of building, maintaining and managing representation.
Representation schemes fall in this category.
Representation to Data: These types of algorithm used to compute property values by taking
input as representation. For example, computation of volume, mass and inertial property etc.
Figure M8.1.5: Representation to data (I. Zeid, R. Sivasubramanian (2009) CAD/CAM Theory
and Practice)
Boundary Representation:
Boundary representation is one of the most popular representation schemes widely used to create
solid model. A boundary model (shown in Figure M8.1.7) is based on the topological notion that
a physical object is bounded by a set of faces. These faces are regions or subsets of closed and
orientable surfaces. An orientable surface is one in which it is possible to distinguish two sides
by using the direction of surface normal to point to the inside or outside of the solid model under
construction. Each face is bounded by edges and each edge is bounded by vertices. The data base
of boundary model contains both geometry and topology.
Constructive solid geometry (CSG): According to CSG model a physical object can be divided
in to set of primitives (basic element or shapes) that can be combined in certain order following a
set of rules (Boolean operation) to form the object as shown in Figure M8.1.9. Primitives are also
valid CSG model. Each primitive is bounded by a set of surfaces usually close and orientable.
Through boundary evaluation process, the primitive surfaces are combined and the boundary of
the object is formed in turn, the faces edges and vertices are obtained.
Shah and Rogers[Shah and Rogers,1988] classified features into setsrelated to product
engineering application as follows:
Form features
Material features
Precisions feature
Technological features
The feature is agsin sub classified as follows:
Form features
o functional
o aesthetic
o assembly aids
Material features
o properties/specifications
o
Precisions feature
o tolerances
o surface finish
Technological features(information related to part performance and operation)
o performance parameters
o Operating variables
o Design constraints.
References
Different feature recognition (FR) techniques have been used in the past to extract features from
CAD model. FR techniques have been classified into six basic groups: topological, heuristic,
symbolic, volumetric and process-centric and hybrid. Further, each group is divided into several
subgroup. The taxonomies of feature recognition techniques are provided in Figure M8.2.1.
Figure M8.2.2: Attributed face adjacency graph (AAG) (Shah et al. (2001))
Hint Based Methods
In this approach, the face pattern is used as hints to the existence of feature. In order to define a
hint, a specified pattern is defined in the boundary of a part by taking geometric and topological
relations. Feature existence rule provides the clue for feature hints. These feature existence rule
specify how much of the boundary of a feature must remain in the part after interaction with
other features. For example, if a feature is a linear slot, then the slot feature must have some
subset of both opposite faces remaining. Once the feature hint is established, the algorithm
completes the feature to produce the largest volumetric feature that is compatible with the other
information in the part model. The algorithm reunites the features that were separated by feature
interaction just before completing the process. The completed features are marked as optional
and required to represent the feature interactions. The discussed method has been represented
as shown in Figure M8.2.3.
Convex Decomposition
Convex decomposition method is also called Alternating Sum of Volumes (ASV)
Decomposition. ASV method was developed by Woo (Woo, 1982). In this method, the author
has proposed a way to obtain either negative or positive volumetric feature decomposition in a
selective manner. The first step in this method is to compute the convex hull of a non-convex
part. To obtain the convex deficiency the part model is subtracted from the convex hull. This
decomposition is achieved through recursive steps.
In the next step, the original part is represented by a Boolean combination of convex
components. The first convex hull represents positive volume and the convex hull of the first
deficiency represents the negative volume. But the problem in the above approach is that the
recursive steps never terminate which is a non-convergence problem. Kim [Kim, 1992] proposed
an alternate method to solve the non-convergence problem called Alternating Sum of Volumes
with Partitioning (ASVP). This method is explained in the Figure M8.2.4.
For the part given in Figure M8.2.4 (c), its polyhedral abstraction and ASVP decomposition is
shown in Figure M8.2.4 (a). After applying combination operation, form feature decomposition
is obtained as shown in Figure M8.2.4 (b). Part shown in the Figure M8.2.4, is recognized to
have a base block, a hole, a step, a slot, two open pockets, and a rectangular pocket.
Figure M8.2.5: Method of volume decomposition and re-composition (Shah et al. (2001))
Hybrid Techniques
In the techniques mentioned above there are many advantages as well as limitations. To
overcome the limitations, different researches used hybrid recognition techniques by combining
the concepts of several basic techniques.
Reference
Woo, T., 1982, Feature Extraction by Volume Decomposition, Proc. Conf. on CAD/CAM
Technology in Mechanical Engineering, MIT, Cambridge, MA, pp. 7694.
Kim, Y. S., 1992, Recognition of Form Features Using Convex Decomposition, Comput.Aided Des. 24, No. 9, pp. 461476.
Sonithi, R., Kunjur, G., and Gadh, R., 1997, Shape Feature Determination Using the Curvature
Region Representation, Fourth ACM Symposium on Solid Modeling and Applications, pp.
285296.
Shah, J. J., Anderson, D., Kim, Y. S., & Joshi, S. (2001). A discourse on geometric feature
recognition from CAD models. Journal of Computing and Information Science in
Engineering, 1(1), 41-51.
of
degrees
attachment/conditional
of
freedom
(rotation/translation),
type
of
attachment
(rigid
assembly at each contact or connection region. All these entities have been primarily used to
capture mating relationship between parts in an assembly and in some cases the kinematics of
the mating relationship. However, most of the currently available commercial CAD systems
dont represent assembly feature in the CAD model explicitly.
Assembly features
Assembly features are defined as a structured collection of geometric entities on parts in
proximity in an assembly. The geometric entities associated with the assembly features on
each part could be either edge, faces or features in that part. Figure M8.3.1 (a) shows the
assembly feature referred to as a lap joint with chain of holes. The entities forming the
assembly feature are the overlapping portions of the faces in the two parts and the hole
features. It is only the entities in proximity in the assembly that form an assembly feature. For
instance, in Figure M8.3.1 (b), the patterns of holes are not form the assembly feature (lap
joint).
Assembly feature may occur between pair of parts shown in Figure M8.3.2 (a), or between
parts and sub-assembly as shown in Figure M8.3.2 (b). One part may have multiple assembly
features with one or more parts in an assembly. In this paper, assembly feature is considered
between pair of parts (even when describing the assembly of a part and sub-assembly).
Root-gap: The distance between the pair of faces in root-faces or the pair of edges in rootedges.
Joint-faces: Set of faces in each part that forms the assembly feature. These are a pairs of
faces in the two parts forming the assembly that are less than a specified distance apart. Note
that the root-faces are a special type (planar and parallel) of joint-faces.
Relative overlap: This attribute captures how much of each face in the joint-face is visible to
the other. In other words, if the pair of faces were to be brought to coincide, how much of the
other face each face would overlap. This attribute can take one of the following values
either the surface overlap is both partial, both complete and one partial-one complete.
Relative orientation: This attribute captures the relative orientation of the two parts locally.
The orientation can be co-planar, parallel, or perpendicular.
Relative location of parts: This refers to the location of the overlap region on one of the
parts with respect to the other. Possible values of this attribute are - corner and middle.
Joint types: It is the type of joint. The values are lap joint, T joint, butt joint, corner joint, and
edge joint. The joint types will be determined based on the value of previous computation of
relative surface overlap, relative orientations of mid-surface and relative location of part.
Joint plate thickness: It is the thickness of the plate at the joint, the local thickness.
Reference edge: It is the reference line where the welding direction or riveting direction has
been defined.
Cross section: It is the cross section of the joint that can be obtained by defining a plane at a
point on the reference edge and the normal of the plane is the tangent to the reference edge at
the point.
Joint angle: Joint angle is the total included angle of the groove between members.
Joint radius: Joint radius only applies to J grooves and U grooves. It is the minimum radius
of curvature while traversing along the curve.
Joint shape: It is the nature of the arrangement of the cross section curve obtained in the
cross section. It stores the value about the shape of the groove. The values are single U, single
V, single J, double U, double J, double V.
Pattern of hole: It is the arrangement of holes. Various type of patterns are single row of
hole chain rows, zig-zag, square, circular, irregular pattern.
Marginal pitch: This is the distance between the center of the hole to the nearest edge of the
plate.
Pitch: This is the distance between centers of successive holes in a single row.
Diagonal pitch: This is the distance between the centers of holes in adjacent rows of zig-zag
holes.
Back pitch: This is the shortest distance between two consecutive rows in a multiple riveted
joint. It is also called Transverse pitch or gauge or spacing.
faces is sufficient, the actual joint may consist of more faces from each part. The joint-face
attribute of the assembly feature captures the set of faces in each part that forms the joint.
Finally, the assembly feature is classified with respect to certain type of features on the jointfaces. These could be holes, slots or cover plates. Table M8.3.1 shows different instances of
assembly joints.
Table M8.3.1: Various types of assembly feature
Illustrative example
Name
Lap joint
Butt joint
Butt Joint (hole & cover plate)
Corner joint
Edge Joint
Figure M8.3.4: Assembly feature between Spar2 and Rib5 of aircraft wing test box
Table M8.3.2: Instance of assembly feature and its attributes
Assembly feature attributes
Joint face
Root Gap
Relative surface overlap
Relative orientations of mid surface
Relative location of parts
Joint Types
Thickness of the plate at joint
Reference edge of the plate
The procedure takes parts in the assembly and identifies the following in order: First a pair of
parts that form one or more assembly features. This is accomplished by a simple proximity
check on the bounding box of a pair of parts. Next pairs of faces that could be part of
assembly features are identified by traversing through pairs of faces in the pair of parts
identified. This check involves identifying pairs of faces in the two respective parts that are
less than TOL apart at their closest points, where TOL defines a pre-defined threshold
distance. TOL is set to be 6 mm in the current implementation. The pairs of faces are then
processed to first identify root-faces (planar and parallel faces, which face each other) and
then joint-faces (non-planar or non-parallel faces in the pair, which face each other). Two
faces are said to face each other if they have a common overlapping region when projected
on a plane.
The assembly feature type is then identified by determining the type of overlap, relative
orientation, and location of the root-face/joint face. In the second stage, features associated
with the assembly joint are determined. Holes on the joint-faces and their attributes (pattern)
are identified. The shape of the joint and related parameters (radius, angle) are then
determined.
The main steps in the algorithm are:
1. Determination of Joint root
2. Determination of joint direction
3. Determination of type of overlap
4. Determination of relative orientation and location of joint-faces
5. Identification of holes/cover plate/slots
6. Identification of assembly feature parameters
7. Identification of joint shape
The first five steps identify the joint type and the remaining three identify features on the
assembly feature as well as the parameters associated with the assembly feature. In the
following section a brief description of the steps are provided. Pseudo-code description of the
procedures is provided in the Appendix (Swain et.al 2014).
Description of steps in the assembly feature extraction procedure
1. Determination of Joint Root and Joint Direction (Steps 1 and 2)
In this step, the root faces and the joint faces in the assembly feature are determined.
Typically in the literature, assembly features have only a pair of root faces. In this paper,
assembly feature can be formed by a set of faces in either part. Pairs of parts that can have an
assembly feature are determined by a proximity check. In each such pair of parts in the
assembly, potential joint faces are identified by checking if the distance between pairs of
faces in the two parts is less than a specified value. The pairs obtained are then clustered such
that faces in each cluster are edge-connected in the respective part. If the pairs of faces in a
cluster face each other, then the faces in the cluster are stored as joint faces in an assembly
feature. If there exists a planar face pair in the cluster then that pair is stored as the joint root.
If there are multiple pairs, the pair closest to each other is chosen. If there are no planar face
pairs, then the closest pair of edges in the faces is taken to be the joint root. The root gap is
determined as the distance between faces/edges in the joint-root and the joint direction is
defined by the orientation of the common-edge between joint faces.
The check for two faces in a cluster facing each other, algorithm Facing-Each-Other
(Procedure 1 in the Appendix) takes a set of face pairs that satisfy the proximity check and
determines if they can form an assembly feature. For the face pairs to be part of an assembly
feature, the faces must be visible to each other (opposing normal and overlapping regions).
The presence of overlapping is identified by projecting the faces on a plane and finding
intersection of the projections. The choice of the plane depends on the type of faces in the
pair as shown in Figure M8.3.5 and Figure M8.3.6.
(a)Root face
(b) Connected root face and joint face (c) Connected joint face (d) Joint face
Figure M8.3.5: Various types of root face and joint face combination
Relative location of the overlap region on one of the parts with respect to the other is
determined by determining the Boolean difference of the overlap region on both parts (both
ways). Possible values of this attribute are - corner and middle.
4. Identification of Assembly feature and their parameters (Steps 5 and 6)
In this step, presence of features on the joint faces is determined. These features as mentioned
earlier could be holes (for rivets and other fasteners), slots or cover plates.
Holes and slots are detected by the presence of inner loops in the joint faces. Cover plates are
detected by searching for parts in proximity of the joint face. In the case of holes, the type of
hole, such as through hole, blind hole, countersunk, counter bore or, step hole (see Figure
M8.3.7 has to be identified. The algorithm Loop-Processing (Procedure 2 in the Appendix)
takes loop (L), part (P), face (F) as input to identify the type of hole. The algorithm
essentially traverses through face incident on the loop to identify the chain of faces forming
the hole. Once the faces are clustered, the nature of faces and their arrangement is used to
identify the type of hole.
a) Through
e) Multi step
b) Blind
c) Chamfered through
f) Counter drilled
d) Chamfered blind
g) Counter sunk
centers lying on the convex hull allows the outer shape of the pattern to be determined. The
centers not on the convex hull are again processed recursively to identify the overall pattern.
(a) Chain
(b) Zig-Zag
a)Single bevel
b) Double bevel
c) Single V
d) Double V
e) J groove
f) Double J
g) Single U
h) Double U
rib2-1
spar3-2
Spar3-2
rib2-1
Spar3-2
Figure M8.3.12: Assembly feature between rib2-1 and spar3-2 (top rows of hole)
Figure M8.3.16: Liaison between Rear Spring Bracket (left) and left frame rail.
References
[1] P. Singh, B.Bettig, Port-compatibility and connectability based assembly design, J
Comput Inf Sci Eng. 4 (2004) 197-205.
[2] T.H. Eng, Z.K. Ling, W. Olsona, C. McLean, Feature-based assembly modeling and
sequence generation, Comp Ind Eng.36 (1999) 17-33.
[3] K.Y. Kim, H. Yang, D.Kim, Mereotopological assembly joint information
representation for collaborative product design, Robot Comput Integr Manuf. 24 (6)
(2008) 744-754.
[4] A.K. Swain, D Sen, B. Gurumoorthy, Extended liaison as an interface between
product and process model in assembly, Robotics and Computer-Integrated
Manufacturing 30 (5), 527-545
[5] SolidWorks. Dassault Systems SolidWorks Corporation, 2007.
Appendix
Procedure 1Facing-Each-Other
Input: Set of face pairs
Output: Face-pair forming joint-root if the faces in each pair face each other; FALSE
otherwise; plane of projection for the joint-root
4: else
5: ifangle between the two faces is between 120 and 180
6:
9: if angle between the plane containing one face and the sampled normal to the curved
face is between 120 and 180
10:
11: else
12:
13: if angle between any pair of the sampled normals is between 120 and 180
14:
Procedure 2Loop-Processing
Input: Loop (L), face (F), part (P),liaison
Output: Type of hole-through hole, blind hole, chamfered hole (one side, both side)
1: Level0
2: Face-Shape-Array(FSA)
3: while (No Of Edge in L=1 & Edge is circular) do
4:
5:
6:
7:
break
8:
9:
10:
11:
L LO other than L
12:
13:
14:
15:
break
else if (Fn = Cylinder) then
16:
level= level+1
17:
18:
19:
level= level+1
20:
21:
22:
23:
24:
end if
else
break
end if
25:
F Fn
if(FSA[1] = Cone)
liaison Holename= conical
else
Liaison Holename= cylindrical
end if
41:
42:
43:
44:
47: end if
Procedure 3 Pattern-of-Hole
Input: A set S of n holes having centre C1, C2 Cn., Exact Region of Contact (ERC)
Output: Pattern of holes in terms of chain, zig-zag, circular, and pattern parameter such as
pitch, back pitch, diagonal pitch.
1: Level0
2: if (No. of holes=1) then
3:
pattern No-pattern-Single-Hole
pattern Single-Row
6:
7: else
8:
9:
while (No.-of-Hole0)
10:
11:
12:
13:
if(all the length of edges of CH are same & angle between consecutive
edges are same) then
14:
15:
if(No-of-Hole 0 ) then
16:
Level++
17:
else
18:
patterncircular-Pattern
19:
rowLevel+1
20:
21:
break
22:
23:
24:
25:
end if
end if
else
e edge of the convex hull having largest length and containing highest no.
of point
26:
Cluster points having equal distance from e and store each group Gi
27:
28:
29:
30:
31:
32:
33:
patternchain
else
patternZig-Zag
34:
end if
36:
break
37:
38:
end if
end while
39: end if
Procedure 4 Joint-Shape
Input: Joint Face pair array GFPA (GFF, GFA), direction of operation edge (e), liaison
Output: Joint angle (GA), Joint radius, shape of the Joint
1: Q
//Q is a list which stores the type of joint for a pair of face
2: Let PL be a plane defined at a point interior of e and the normal of the plane is
tangent to e at that point
3: for each face pair FPi GFPA do
4:
5:
let curve pair CP (C1,C2) be the intersection of PL with Joint face pair FPi
6:
7:
8:
9:
10:
elseif (any one curve is straight line and the other is convex) then
11:
12:
end if
13:
end if
18:
Get-Joint-Parameter (CP)
19: else
20:
21:
22: end if
23: else if (all the elements of Q are J) then
24:
25:
26:
Get-Joint-Parameter (CP)
27:
else
28:
29:
30:
end if
33:
34:
35:
Get-Joint-Parameter (CP)
36:
37:
38:
Get-Joint-Parameter (CP)
39:
else
40:
41:
Get-Joint-Parameter (CP)
42:
end if
43:
else
44:
if(dihedral angle of the closest edge are same for both curve pair) then
45:
46:
Get-Joint-Parameter (CP)
47:
else
48:
49:
Get-Joint-Parameter (CP)
50:
end if
51: end if
52: end if
Procedure 5 Get-Joint-Parameter
Input: Curve C1 and curve C2
current C1D[1]
while(currentnext)
8:
9:
10:
If ( Joint radius=-1)
11:
12:
else
13:
14:
15:
16:
end if
17:
current currentnext