! *****************
sweep_ex_1 ****************************
!
! +++
! SUR_SWEEP Spine= straight
line Profile= circle
!
!
! 2006-04-29 Gunnar Liden
! ---
!************************************************************
!sdesce SUR_SWEEP Spine=
straight line Profile= circle
LOCAL GEOMETRY MODULE
sweep_ex_1();
CONSTANT VECTOR p1 =
VEC(0,0,0);
CONSTANT VECTOR p2 =
VEC(800,450,30);
CONSTANT VECTOR ydir =
VEC(0.0, 0.0, 1.0);
CONSTANT FLOAT d = 20.0;
BEGINMODULE
! Spine
LIN_FREE(#1, p1, p2);
! Profile
MODE_BASIC();
ARC_1POS(#2, vec(0,0,0),
0.5*d:PEN=2);
MODE_GLOBAL();
! Surface
SUR_SWEEP(#3, #2, #1, -1,
ydir:PEN=3);
ENDMODULE
! *****************
sweep_ex_2 ****************************
!
! +++
! SUR_SWEEP Spine= circle
line Profile= straight line
!
!
! 2006-04-29 Gunnar Liden
! ---
!************************************************************
!sdesce SUR_SWEEP Spine=
circle line Profile= straight line
GLOBAL GEOMETRY MODULE
sweep_ex_2();
CONSTANT VECTOR p1 =
VEC(1.0, 0.5, 0.0);
CONSTANT VECTOR p2 =
VEC(8.0, 4.5, 3.0);
CONSTANT FLOAT d = 30.0;
BEGINMODULE
! Spine
ARC_1POS(#2, vec(50.0 ,20.0,
0.0), 0.5*d:PEN=3);
! Profile
MODE_BASIC();
LIN_FREE(#1, p1, p2:PEN=2);
MODE_GLOBAL();
! Surface
SUR_SWEEP(#3, #1, #2:PEN=8);
ENDMODULE
! *****************
sweep_ex_3 ****************************
!
! +++
! SUR_SWEEP Spines=
iso-curves
!
!
! 2006-04-29 Gunnar Liden
! ---
!************************************************************
!sdesce SUR_SWEEP Spines=
iso-curves
GLOBAL GEOMETRY MODULE
sweep_ex_3();
CONSTANT FLOAT offset = 9.0;
CONSTANT INT bval_all = 1;
CONSTANT VECTOR dir =
VEC(0.0, 0.0, 1.0);
INT i_cur; !
BEGINMODULE
! Create a free-form surface
csys_1p(#2,"CsysCrv2", vec(0, 0, 30.0), 5.0, 60.0, -4.0:BLANK=1);
cur_spline(#5,"CHORD",
vec(-71.378714745169, 51.669409790779, 0.0), vec(0.0
, 0.0, 0.0),
vec(-44.378714745169, 67.269409790779, 0.0), vec(0.0, 0.0,
0.0), vec(-9.8787147451691, 61.869409790779,
0.0), vec(0.0, 0.0, 0.0),
vec(20.371285254831,
54.069409790779, 0.0), vec(0.0, 0.0, 0.0), vec(
58.121285254831, 69.069409790779,
0.0), vec(0.0, 0.0, 0.0):BLANK=1);
mode_local(#2);
cur_spline(#6,"CHORD",
vec(-65.878714745169, -27.230590209221, 0.0), vec(
0.0, 0.0, 0.0), vec(-46.128714745169,
-34.430590209221, 0.0), vec(0.0,
0.0, 0.0), vec(-11.128714745169,
-32.930590209221, 0.0), vec(0.0, 0.0,
0.0), vec(36.121285254831,
-16.430590209221, 0.0), vec(0.0, 0.0, 0.0),
vec(71.621285254831,
-10.130590209221, 0.0), vec(0.0, 0.0, 0.0)
:BLANK=bval_all);
mode_global();
sur_ruled(#7,#5, #6, 1, 1:BLANK=1);
sur_approx(#8,#7, "CUB_SUR", 1,
4:PEN=8,BLANK=bval_all);
! Create an offset surface
sur_offs(#9,#8, offset:PEN=3,BLANK=1);
sur_approx(#10,#9, "CUB_SUR", 1,
1:PEN=9,BLANK=bval_all);
! Profile curve
MODE_BASIC();
SET(BLANK=1);
lin_free(#22,vec(-101.6+100.0,-7.3,0.0),vec(-105.2+100.0,-3.40,0.0));
lin_free(#23,on(#22, 1.0),
vec(-100.9+100.0,-1.96,0.0));
lin_free(#24,on(#23, 1.0), vec( -98.5+100.0,
1.92,0.0));
lin_free(#25,on(#24, 1.0), vec(
-97.8+100.0,-3.40,0.0));
lin_free(#26,on(#25, 1.0), vec(
-95.8+100.0,-5.60,0.0));
lin_free(#27,on(#26, 1.0), vec(
-99.9+100.0,-5.45,0.0));
lin_free(#28,on(#27, 1.0), on(#22, 0.0));
SET(BLANK=0);
CUR_COMP(#3, #22, #23, #24, #25, #26, #27,
#28:BLANK=bval_all);
MODE_GLOBAL();
! Sweep surfaces on first
surface
FOR
i_cur := 1 TO 28 STEP 4 DO
cur_iso(#30,#8, "U", i_cur, 0.0,
4.0:BLANK=1);
cur_approx(#31,#30, "CUB_SEG", 1,
1);
DEL(#30);
SUR_SWEEP(#4, #3, #31, 1,
dir:PEN=2);
DEL(#31);
ENDFOR;
! Sweep surfaces on second
surface
FOR
i_cur := 1 TO 8 DO
cur_iso(#40,#10, "V", i_cur*0.5,
0.0, 28.0:BLANK=1);
cur_approx(#41,#40, "CUB_SEG", 1,
1);
SUR_SWEEP(#42, #3, #41, 1,
dir:PEN=9);
DEL(#41);
ENDFOR;
ENDMODULE