Вы находитесь на странице: 1из 37

Introduction to 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.

Geometric Representation in CAD


Commonly used geometrical models are wireframe model, surface models and solid model.

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.

Figure M8.1.1: wire frame model

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.

Figure M8.1.2: Surface model

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.

Figure M8.1.3: Same topology but different geometry

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.

Figure M8.1.4: Data to representation (I. Zeid, R. Sivasubramanian (2009) CAD/CAM


Theory and Practice)

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)

Representation to Representation: These types of algorithm take a representation as input and


a representation as output. Example:Algorithm converting a Constructive solid geometry(CSG)
to B-Rep.

Figure M8.1.6: Representation to representation (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.

Figure M8.1.7: Boundary representation


The general data structurefor boundary modeling is shown in Figure M8.1.8.

Figure M8.1.8: General data structure for boundary modelling

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.

Figure M8.1.9: Constructive solid geometry


Sweep representation
These types of representations are useful in creating solid models of two and half dimensional
objects. The class of two and half dimensional objects includes both solids of uniform thickness
in a given direction and axisymmetric solid. The former are extruded solid and are created by
linear or translational sweep and the later are the solids of revolutions which can be created by
rotational sweep as shown in Figure M8.1.10 and Figure M8.1.11.

Figure M8.1.10: Translational sweep

Figure M8.1.11: rotational sweep

Feature based model


Feature and feature-based terms are used in feature-based model. However, the above two
terminologies have been used in different meaning by different researchers. Definitions available
for these terminologies in the literature are provided here. Those are Features represent shapes
and technological attributes associated with manufacturing operations and tools [Shah 1990].
Features are groupings of geometric or topological entities that need to be referenced together
[Shah 1990]. Features are elements used in generating, analyzing, and evaluating design [Shah
1990]. Features are set of information related to an objects description. This description could
be for design, for manufacturing or even for administrative purposes. In this lecture, features
represent the engineering meaning of the geometry of a part or assembly which is summery of
the above definition.

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

treatment, applied to materials andsurfaces

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

1. J. J. Shah, An Assessment of Features Technology, Proc. CAM-1 Features Symposium,


Boston, MA, August 9-10, 1990, p. 55.
2. J. Shah, M. Rogers (1988). Functional requirements and conceptual design of the featurebased modeling system, Computer Aided Engineering Journal 5 1, 915.
3. I. Zeid, R. Sivasubramanian (2009) CAD/CAM Theory and Practice.

Extraction of part feature information from CAD Model

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.1: Taxonomies of feature recognition techniques (Shah et al. (2001))

Feature recognition techniques


Graph Based Methods
Graph based approach use boundary model to create attributed face adjacency graph (AAG) as
shown in Figure M8.2.2. In this case, AAG faces are represented as nodes, the edges as arcs, and
concave/convex attributes are assigned to the arc edges corresponding to the angle between
adjacent faces. In order to determine required features in AAG, face nodes with all incident arcs
with a convex attribute are deleted. The remaining graph components are then matched with
feature AAGs to recognize the features. This approach works properly for non-intersecting
depression type features.

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.

Figure M8.2.3: Representation of feature interactions (Shah et al. (2001))

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.4: Method of convex decomposition (Shah et al. (2001))

Volume Decomposition and Re-composition


In this method, the part is subtracted from the stock to get one or more separate volume or lump.
These lumps are volumes to be removed by machining from the stock as shown in Figure M8.2.5
(a). Three main stages in this decomposition process are
1. Lumps represent volumes to be
2. Volume decomposition into atomic cells (shown in Figure M8.2.5 (b))
3. Concatenation of cells into macro volumes (shown in Figure M8.2.5 (c) & (d))

Figure M8.2.5: Method of volume decomposition and re-composition (Shah et al. (2001))

Free Form Features.


In freeform feature extraction, there is a general method in which two principal curvatures are
used. The curvature is classified as concave (+), convex (-), and flat (0). The surfaces are
partitioned into curvature regions with identical curvature types for both the principal curvatures.
Based on the above, curvature regions are classified into Pure Protrusion ([-,-][-,0]), Pure
Depression([+,+][+,0]), Transition([+,-]) and Flat([0,0]). The two signs represent the sign of two
principal curvature.

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.

Extraction of assembly feature information from CAD Model


Introduction
Assembly feature (also referred as liaison in this lecture) has been used in manufacturing
planning research as a means to capture mating relationship between parts in an assembly.
Various terminologies such as port [Singh et.al 2004], mating features [Eng. et al. 1999],
assembly joint [Kim et al. 2008], and liaison [Swain et.al. 2014] have also been proposed in
the literature for the same purpose which carries assembly specific information. These
information typically include the mating regions, type of contact (thread, planar surface),
nature

of

degrees

attachment/conditional

of

freedom

(rotation/translation),

type

of

attachment

(rigid

attachment), and nature of constraints between the parts in an

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).

(a) Lap joint with chain of holes

(b) lap joint

Figure M8.3.1: Various types of assembly from same part

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).

(a) Assembly feature between pair of parts

(b) Assembly feature between subassembly above and an L-shaped part

Figure M8.3.2: Different configurations of assembly feature


3.1 Definition of assembly feature attributes
Attributes associated with an assembly feature are defined below. These are illustrated in
Figure M8.3.3.
Root-faces: Pair of planar faces belonging to two parts respectively that are parallel, facing
each other, and are less than a specified distance apart. If there are no parallel faces in the part
that are close to each other then, a pair of edges closest to each other are called root edges.

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.

Figure M8.3.3: Assembly feature attributes


3.2 Characterization of assembly feature
Assembly feature is characterized by the set of attributes defined above. Since the assembly
feature is between a pair of parts, the first attribute of an assembly feature is its proximity
between faces of the respective parts. Faces that are closer than a certain pre-specified
distance are candidate faces of an assembly feature.
Following the terminology used in one of the assembly processes, the pre-specified threshold
distance is called root-gap and the pairs of faces that are closer than this distance are termed
joint-faces. The relative configuration of the joint-face decides the type of joint. The relative
configuration of joint-faces is decided by multiple attributes that identify the relative spatial
arrangement of the respective faces in the joint. These attributes of the assembly feature
capture the type of assembly joint. The attributes that help in doing so are: root gap, number
of joint faces, nature of overlap between joint-faces, orientation of mid-surface and location
of one part with respect to the other. In contrast to literature where identification of the root-

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

Lap joint (hole both plate)

Lap joint, (hole or slot in one plate)

Butt joint
Butt Joint (hole & cover plate)

Butt joint (Zig-zag root face)

Butt joint slot


T-Joint

Corner joint

Corner joint in slot

Edge Joint

3.3 Examples of Assembly feature


Figure M8.3.4 illustrates the assembly feature between pairs of parts (spar and rib) in an
aircraft wing test box. Figure M8.3.4 (a) shows the original part and Figure M8.3.4 (b) shows
the enlarged view of assembly feature. Table M8.3.2 shows the various values taken by the
attributes of this instance of the assembly feature.

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

Cross section(find the cross section)


Groove angle
Groove radius
Shape of the groove
Hole (determination)
Shape of the hole
Location of the holes
Hole diameter
Hole depth
Thread
chamfer
Pattern of hole
Marginal pitch
Pitch
Diagonal pitch
Back pitch
Pattern of hole
Cover plate
No of strap

Spar2 & Rib5


Pointer to faces in CAD
0 mm
Partial, complete
Parallel
Middle
Lap
5.08mm
Pointer to end points in
CAD
0
0
Square
Yes
Circular
Array of point
2.48mm
5.08mm
No
No
13.46mm
33.83 mm
0 mm
0 mm
Single row
No
0

Overview of procedure to extract assembly features from CAD model of Assembly


As information about the assembly features is not explicitly available in either the part model
or the assembly model, algorithms have been developed for extracting assembly features
from the assembly model. The extraction process is in two broad steps:

Identification of assembly feature type

Extraction of assembly features

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

2. Determination of Type of Overlap (Step 3)


In the step, the overlapping region identified in the previous step is classified as partial or
complete using the Boolean difference operation. The different types of overlap for a pair of
parts are shown in Figure M8.3.6.

(a) Only root face exists

(b) Root face and joint faces exist


Figure M8.3.6: Different types root face and joint face

3. Determination of relative orientation and location of joint-faces (Step 4)


The relative orientation attribute is determined by the angle between the respective midsurfaces of the two parts in the vicinity of the root-faces. The mid-surfaces considered here
are determined for the face pair corresponding to the joint face or root face. The orientation
can be co-planar, parallel, or perpendicular.

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

Figure M8.3.7: Different types of hole feature


If holes are detected on the joint faces then this step also identifies the pattern of these holes
as this is closely tied to the process. Algorithm Pattern-of-Hole (Procedure 3 in Appendix)
takes centers of the holes identified earlier as input to determine the pattern of holes and
pattern parameters. The patterns of holes handled are chain, zig-zag, circular, square, and
rectangular as shown in Figure M8.3.8. The pattern parameters are number of rows, pitch,
back pitch, diagonal pitch. Any locator holes present on the joint face are not considered.
Locator holes are removed based on the fact that the diameter of a locator hole is much larger
than that of the holes related to joining process. The algorithm constructs the convex hull of
the centers of the holes to identify the pattern and the parameters describing the pattern. The

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

(c) Lozenge Joint (Diamond pattern)

(d) Circular pattern

Figure M8.3.8: Various types hole pattern


5. Identification of Joint-Shape (Step 7)
The final step in the extraction procedure processes the list of joint-face pairs associated with
an assembly feature to identify the joint shape and the parameters describing the shape. The
output of the algorithm is in terms of shape of the joint as: single bevel, double bevel, single
V, double V, J groove, U groove, and double U groove. Procedure Joint-Shape (procedure 4
in the Appendix) first obtains the cross-section of the joint by projecting the joint faces, pair
wise, onto a plane normal to the joint direction (identified earlier). The curve pairs (Figure
M8.3.9) so obtained are then processed to identify the shape and the shape parameters.

a)Single bevel

b) Double bevel

c) Single V

d) Double V

e) J groove

f) Double J

g) Single U

h) Double U

Figure M8.3.9: Different types of joint cross section


Extraction of assembly features
The extraction procedure has been implemented on top of a commercial CAD system
(SolidWorks [5]) on a Windows platform (Intel(R) Core2Duo CPU, 2.93GHz processor,
and 2.93 GB of RAM). The Application Programming Interface (API) of the CAD system is
used to perform all geometric queries and computations required in the algorithms described
above. Two examples have been used to extract assembly feature with the help of developed
algorithm.

Example1: Aircraft wing


Figure M8.3.10 shows an aircraft wing test box. The assembly contains three spars, two
skins, and six ribs. In the figures below, screen shots of the CAD tool show the assembly
feature identified and the adjacent text window displays the details about the assembly
feature extracted by the program (Figure M8.3.11 Figure M8.3.13).

Figure M8.3.10: Aircraft wing text box

Figure M8.3.11: Extraction of assembly feature from wing test box

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.13: Assembly feature between tee3-3 and spar3-2

Example 2: automotive chassis assembly


Figure M8.3.14 to Figure M8.3.16 show the assembly feature extracted by the program for an
automotive chassis assembly.

Figure M8.3.14: Extraction of liaison from automotive chassis assembly.

Figure M8.3.15: Liaison between Backlight (left) and end bracket.

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

1: if both faces in one of the face pairs are planar


2: if the two faces are parallel
3:

PP= plane containing one of the faces

4: else
5: ifangle between the two faces is between 120 and 180
6:

PP = plane that bisects the planes containing the two faces

7: else if one of the face in one of the pair is planar


8:

Sample the normal of the non-planar face at finite number of points

9: if angle between the plane containing one face and the sampled normal to the curved
face is between 120 and 180
10:

PP= plane containing the planar face

11: else
12:

Sample the normals of the non-planar faces at finite number of points

13: if angle between any pair of the sampled normals is between 120 and 180

14:

PP = plane whose normal bisects the two normals

15: Project face pair onto PP


16: PB1 & PB2 be the projected outer boundary of the two faces respectively
17: If (Polygon- intersection (PB1, PB2)) then
18: return (face pair)

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:

face( Fn) neighbor of F at edge

5:

if( no of Loop in Fn =1) then

6:

Hole nature= blind hole

7:

break

8:
9:
10:

elseif (no of Loop in Fn 2) then


break
elseif (no of Loop in Fn =2) then

11:

L LO other than L

12:

if(Fn Cylinder )||( Fn Cone) then

13:

if (dihedral angle at a point in the edge of L 180) then

14:
15:

break
else if (Fn = Cylinder) then

16:

level= level+1

17:

Store (FSA, Cylinder)

18:

else if (Fn = Cone) then

19:

level= level+1

20:

Store (FSA, Cone)

21:
22:
23:
24:

end if
else
break
end if

25:

F Fn

26: end while


27: if(Level=1) then
28:
29:
30:
31:
32:

if(FSA[1] = Cone)
liaison Holename= conical
else
Liaison Holename= cylindrical
end if

33: else if (Level=2) then


34:
35:
36:
37:
38:

if(FSA[1] = Cylinder) & (FSA[2] = Cylinder) then


Liaison Hole name= counter Bored
else if (FSA[1] = Cylinder) & (FSA[2] = Cone) then
Liaison Hole name= countersunk
end if

39: else if (Level=3) then


40:

if(FSA[1] = Cylinder) & (FSA[2] = Cone) & (FSA[3] = Cylinder) then

41:

Liaison Hole name= counter drilled

42:

else if (all face shape in FSA is cylinder)

43:
44:

Liaison Hole name= step-hole


end if

45: else if (all face shape in FSA is cylinder)


46:

Liaison Hole name= step-hole

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

4: else if (all points of S are collinear) then


5:

pattern Single-Row

6:

pitch distance between any two consecutive hole

7: else
8:

No.-of-Hole total no. of hole in S

9:

while (No.-of-Hole0)

10:

CH Convex-Hull (S) //CH is an array containing the vertices of convex hull

11:

Mark all point M on the boundary of convex hull

12:

if (total vertices in CH=total vertices on boundary of convex hull) then

13:

if(all the length of edges of CH are same & angle between consecutive
edges are same) then

14:

NO-Of-Hole size[S]- vertices on the boundary of CH

15:

if(No-of-Hole 0 ) then

16:

Level++

17:

else

18:

patterncircular-Pattern

19:

rowLevel+1

20:

pitch edge length

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:

Sort {Gi} based on increasing distance from e

28:

pitch distance (two closest hole Gr)

29:

back pitch distance (Gr , Gr-1)

30:

if(back pitch= pitch)

31:
32:
33:

patternchain
else
patternZig-Zag

diagonal pitch closest distance between two hole of two consecutive

34:

group Gr and Gr-1


35:

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:

if (FPi is not marked as m) then

5:

let curve pair CP (C1,C2) be the intersection of PL with Joint face pair FPi

6:

if(both intersection curves are straight line) then

7:

store (Q, S, CP)

8:

elseif (both intersection curves are convex) then

9:

store (Q, U, CP)

10:

elseif (any one curve is straight line and the other is convex) then

11:

store (Q, J, CP)

12:

end if

13:

end if

14: end for


15: if(all the elements of Q are U) then
16: if(the total no of U =1)
17:

Joint shape single U

18:

Get-Joint-Parameter (CP)

19: else
20:

Joint shape double U

21:

Get-Joint-Parameter (CP) for both the pairs

22: end if
23: else if (all the elements of Q are J) then
24:

if(the total no of J =1)

25:

Joint shape single J

26:

Get-Joint-Parameter (CP)

27:

else

28:

Joint shape double J

29:

Get-Joint-Parameter (CP) for both the pairs

30:

end if

31: else if (all the elements of Q are S) then


32:

if(the total no of S =1)

33:

if(both the line of CP are parallel) then

34:

Joint shape square

35:

Get-Joint-Parameter (CP)

36:

else if (dihedral angle of the closest edge are same) then

37:

Joint shape V- groove

38:

Get-Joint-Parameter (CP)

39:

else

40:

Joint shape bevel- groove

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:

Joint shape double-V- groove

46:

Get-Joint-Parameter (CP)

47:

else

48:

Joint shape double-bevel- groove

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

Output: Joint angle (), Joint radius (r)


1: Let v1& v3 be closest points and v2 and v4 are most distant point between C1 & C2
respectively
2: vec1 = tangent to C1 at v2 and vec2 = tangent to C2 at v4
3: Joint angle angle (vec1 ,vec2)
4: Joint radius of C1 Joint radius of C2 -1
5: if (C1 Line)
6:
7:

current C1D[1]
while(currentnext)

8:

letTcurrent&Tnexttangent at current vertex & next vertex respectively

9:

Joint radius Temp distance (current, currentnext) / (Tnext- Tcurrent )

10:

If ( Joint radius=-1)

11:

Joint radius Joint radius Temp //initialize the joint radius

12:

else

13:

if(Joint radius Temp < Joint radius)

14:
15:

Joint radius Joint radius Temp


end if

16:

end if

17:

current currentnext

18: end while


19: Repeat the above steps for C2

Вам также может понравиться