home *** CD-ROM | disk | FTP | other *** search
- #
- # Yet another simple 3D mechanical object. This one whas taken from
- # PC MAGAZINE volume 8 number 2, January 31, 1989, page 34. This was example
- # that was implemented under AutoCAD ver 10, and it looked nice so I tried
- # it... It took me about an hour to complete.
- #
- # Created by Gershon Elber, Mar 89
- #
-
- save_mat = view_mat;
- save_res = resolution;
-
- resolution = 48;
- view_mat = view_mat * trans(vector( 0.4, -0.1, 0.0));
-
- #
- # Create the big cylinder (no hole yet)
- #
- C1 = cylin(vector( 0.0, 0.0, 0.0), vector( 0.0, 0.0, 0.7), 0.2);
-
- #
- # And the small one (including the torus & sphere cut
- #
- C2 = cylin(vector( 1.0, 0.0, 0.05), vector( 0.0, 0.0, 0.4), 0.15);
- resolution = 32;
- T1 = circpoly(vector( 0.0, 1.0, 0.0), vector( 0.151, 0.0, 0.25), 0.03);
- resolution = 48;
- T2 = surfrev(T1) * trans(vector( 1.0, 0.0, 0.0));
- free(T1);
- B1 = C2 - T2;
- free(C2);
- free(T2);
- resolution = 32;
- S1 = sphere(vector( 1.0, 0.0, 0.0), 0.135);
- B2 = B1 - S1;
- free(B1);
- free(S1);
- view(list(B2), true);
-
- v1 = vector( 0.0, 0.19, 0.35);
- v2 = vector( 0.0,-0.19, 0.35);
- v3 = vector( 1.0,-0.14, 0.35);
- v4 = vector( 1.0, 0.14, 0.35);
- CrossSec = poly( list(v1, v2, v3, v4 ));
- E1 = extrude(CrossSec, vector( 0.0, 0.0, 0.07));
- free(CrossSec);
-
- B3 = C1 + E1 + B2;
- free(C1);
- free(J2);
- free(B2);
- view(list(B3), true);
-
- #
- # Time to do the final hole in the big cylinder. Note we couldnt do it before
- # as E1 would have penetrate it...
- #
- resolution = 48;
- C3 = cylin(vector( 0.0, 0.0,-0.1), vector( 0.0, 0.0, 0.9), 0.165);
- B4 = B3 - C3;
- free(B3);
- free(C3);
-
- final = convex(B4);
- free(B4);
- interact(list(final), false);
-
- save("solid7", list(view_mat,final));
- free(final);
-
- resolution = save_res;
- view_mat = save_mat;
-