ComputerAided_Design_Engineering_amp_Manufactur.pdf
ComputerAided_Design_Engineering_amp_Manufactur.pdf
ComputerAided_Design_Engineering_amp_Manufactur.pdf
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
to generate a new contact line with respect to itself. So, the degree of freedom for p1 with respect to p2<br />
is {plane_z::rot_x,rot_z} . For p2 with respect to p1,<br />
p2 can translate along the cylindrical surface of p1,<br />
and p2 can move itself along the x-axis and rotate about the z-axis.<br />
The degree of freedom for p2 is<br />
{cyl_x::lin_y,rot_z} .<br />
A rule-based system is adopted for assisting in the process of selecting an appropriate set of spatial<br />
relationships and for inferring the final state of degrees of freedom. From the above definitions, surfaces<br />
characterize degrees of freedom. For a plane_n_a degree of freedom, a body may move on a planar surface<br />
along two lin_n directions. When a new plane_z_b is introduced, the remaining degree of freedom is derived<br />
by intersecting these two planes. For ex<strong>amp</strong>le, if plane_z_a is parallel to plane_z_b,<br />
then the degree of<br />
freedom may be either plane_z_a or plane_z_b;<br />
if they are not parallel, then lin_n is the degree of freedom<br />
obtained from the intersection of plane_z_a and plane_z_b.<br />
The intersection degrees of freedom are obtained<br />
by intersection of two geometry entities, (e.g., circle_n is the result of intersecting plane_n with cyl_n (or<br />
sph_n) together). In the intersection of two rotational degrees of freedom, e.g., rot_z_a and rot_z_b, if they<br />
share the same rotational axis, then rot_z_a or rot_z_b remains; if not, they cancel each other. In the above<br />
ex<strong>amp</strong>les, we demonstrate some simple rules for the reduction of degrees of freedom, but in some cases,<br />
such as combining the spatial relationships with numbers of rotational degrees of freedom, the solution<br />
becomes complicated. We show some general reduction rules based on our earlier work as follows:<br />
1. {{plane_z_a::rot_za}�{plane_z_b::rot_z_b} | |vec_of(z_a) . vec_of(z_b)| �� 1} � {lin_n_c| lin_n_c �<br />
intersect(plane_z_a, plane_z_b)}<br />
2. {{plane_z_a::rot_z_a}�{lin_v_b}| | vec_of(z_a) . vec_of(z_a)| �� 0} � {fix_c}<br />
3. {{plane_z_a::rot_x_a,rot_z_a}�{plane_z_b::rot_x_b,rot_z_b}| x_a � x_b, |vec_of (z_a) . vec_of<br />
(z_b)|�1} � {lin_x_c::rot_x_c| lin_x_c � cent_of(x_a) � cent_of(x_b), rot_x_c � rot_x_a �<br />
rot_x_b}<br />
4. {{plane_z_a::rot_z_a} � {lin_x_b::rot_x_b}| |vec_of(z_a) . vec_of (z_b)| � 1} � {fix_c:: rot_x_c<br />
| rot_x_c � rot_x_b}<br />
5. {{plane_z_a::rot_x_a,rot_y_a,rot_z_a}�{plane_z_b::rot_x_b,rot_y_b,rot_z_b}| cent_of(x_a,y_a,<br />
z_a) � cent_of (x_b,y_b,z_b), vec_of (z_a) � vec_of(z_b), |vec_of (rot_z_a) �<br />
vec_of(rot_z_b)| � 0} � {plane_z_c::rot_z_c, rot_x_c| plane_z_c � plane_z_a or plane_z_b,<br />
rot_z_c � rot_z_a or rot_z_b, x_c � axis (cent_of(rot_x_a), cent_of(rot_x_b))}<br />
6. {{plane_z_a::rot_x_a,rot_z_a}�{plane_z_b::rot_x_b,rot_y_b, rot_z_b}|vec_of(z_a) � vec_of<br />
(z_b), vec_of(rot_z_a) � vec_of(rot_z_b) � 0} � {plane_z_c::rot_z_c|plane_z_c � plane_z_a:<br />
or: plane_z_b, rot_z_c � rot_z_a: or :rot_z_b}<br />
7. {{plane_z_a::rot_z_a} � {plane_z_b::rot_x_b, rot_y_b,rot_z_b}| 0�|vec_of (z_a)cdot vec_of<br />
(z_b)| ��<br />
1} � {lin_n1_c::rot_n2_c| lin_n1_c � intersect (plane_z_a, plane_z_b), point_of(n2_c)<br />
� cent_of(x_b,y_b,z_b), vec_of(n2_c) � vec_of(z_a)}<br />
8. {{lin_n1_a::rot_n2_a} � {plane_z_b::rot_x_b,rot_y_b,rot_z_b}| vec_of(n2_a) cdot vec_of(z_b)<br />
� 0} � {lin_n1_c | lin_n1_c � lin_n1_a}<br />
9. {{lin_n1_a} � {plane_z_b::rot_x_b,rot_y_b,rot_z_b}| vec_of(n1_a) cdot vec_of(z_b) � 0} �<br />
{fix_c}<br />
where<br />
Axis is a translation or rotation axis that contains a start and a vector.<br />
point_of(Axis) returns start point of Axis.<br />
vec_of(Axis) returns vector of Axis.<br />
cent_of(Axis_x, Axis_y, Axis_z) returns origin of the Axis_x, Axis_y, Axis_z coordinate frame. (Also,<br />
this origin is a center point of a sphere.)<br />
axis(Point_a, Point_b) returns an Axis with Point_a as start point and Point_b-Point_a as direction.<br />
intersect(Dof_a, Dof_b) returns intersection of two degrees of freedom.<br />
fix is the origin of degrees of freedom representation.<br />
Figure 9.8 shows an ex<strong>amp</strong>le of assembly with spatial relationships and the intersection of degrees of<br />
freedom. Degrees of freedom are the allowable relative motion between mating components derived from<br />
© 2001 by CRC Press LLC