ГОСТ Р ИСО 10303-512—2008
rzcartesian_polnt ( ’ rz *. (45. 45. 100));
rxz :* cartesian_point ( ‘ rxz ’. (35. 4 5 ,100J);
ryz :* carteslan_pomt ( ’ ryz ’. (4S. 35,100]);
neg_x ;= direction ( 1neg_x (-1.0. 0]);
neg_y := direction (’ neg_y \ (0.-1. 0J>;
neg_z := direction ( ’ neg_z (0. 0. -1)):
slope :* direction ( ’ slope ’.(1 .1 .0 ]).
pos_x := direction (* pos_x *. (1.0. 0J);
pos_y := direction (■ pos_y ’. (0,1.0 ]);
(’ внешние контуры ’ )
loopb ;= poly_loop ( 1loopb [origin, px. pxy. py)):
loopt := poly_loop { ’ loopt’. (origin, pxz. pxyz, pyz]);
loopt := polyjoop ( ’ loopt’. (origin, px. pxz. pz]);
loopbk := polyjoop (* loopbk (py. pxy. pxyz. pyz)):
loop! ;e poty_loop <’ loopl \ [origin, pz. pyz. py)):
loopr := polyjoop <’ loopr’. (px. pxz. pxyz. pxy));
(* внутренние контуры (треугопьные): *)
ioopbi := poly_loop (’ loopbi \ [q. qx. qy]);
looprmd .•» poly_ioop (’ toopmid ’. (r. rx. ry|):
tooptt :* polyjoop <* looptl’. (qz. qxz. qyzj):
loopt2 := poly_loop (’ Ioopt2 \ [rz. rxz. ryz)).
(’внутренние контуры (прямоугольные): *)
toopqf := polyjoop ( ’ lo o p q f(q . qx. qxz. qz));
ioopql := poly_loop (’ loopql’. (q. qz. qyz. qy));
loopqs := poly_loop ( ’ loopqs *. (qx. qxz. qyz. qy)).
tooprto := polyjoop (* iooprb ’. (r. rx. rxz. rz)).
looprr ;« poly_loop (’ looprr’. [r. rz. ryz. ry)):
looprs := polyjoop <’ looprs *, [rx. rxz. ryz. ry)):
(* axis_ptacements {примечание — число определяет параллельна ли ось осям х. у или z) ’ )
а1 := axis2_placement_3d <’ аГ, origin. neg_x. neg_y):
a2 .= axis2_placement_3d <’ a2 ’. origin. neg_y. neg_x):
a3 := axis2_placement_3d (* a3 ’. origin. neg_z. ?);
ap3 := axis2_placement_3d (* ap3 \ pz. ?. ?):
ar3 := axts2_placement_3d (’ ar3 r. ?. ?);
apl := axis2_placement_3d (’ apl \ px. pos_x. ?).
ap2 :* axls2_placement_3d (’ ap2 \ py. pos_y. ?);
arl := axis2_p»acement_3d (’ ar1 *. r. pos_x, ?):
ar2 := ax«s2_ptacement_3d (’ ar2 ’. r. pos_y. ?):
ar4 := ax»s2_placement_3d ( ’ ar4 ’. r. slope. ?);
aq1 :* axis2_placement_3d (’ aql ”, q. pos_x. ?);
aq2 := axis2_placement_3d (’ aq2 \ q. pos_y. ?).
aq4 :* axis2_placement_3d (’ aq4 \ r, slope. ?);
(* плоскость, определенная для расположения каждой оси: *)
pal :« plane { ’ pal *, а1);
ра2 := plane (* ра2 *. а2);
раЗ :* plane (* раЗ ’. аЗ);
рар1 := plane (’ рар1 apl):
рар2 := plane (’ рар2 \ ар2).
рарЗ := plane (’ ра рЗ а рЗ ).
paq1 :» plane ( ’ paq1 *. aq1).
paq2 := plane ( ’ paq2 *. aq2);
paq4 .s plane (’ paq4 *. aq4).
pari :* plane (* pari ’. ar1);
par2 .= plane ( 1 par2 ’. ar2),
par3 .= plane ( ’ par3 ’. ar3):
par4 :» plane ( ‘ par4 ’. ar4);
19