diff --git a/demos/boolean/fillet3.geo b/demos/boolean/fillet3.geo new file mode 100644 index 0000000000000000000000000000000000000000..0f45db0f5db3be04bec28458c5380178449878ff --- /dev/null +++ b/demos/boolean/fillet3.geo @@ -0,0 +1,30 @@ +SetFactory("OpenCASCADE"); + +w = DefineNumber[0.2, Min 0.01, Max 0.35, Name "width"]; +dx_out = 1.; dy_out = 0.3; dz_out = 1.; +dx_in = dx_out-2*w; dy_in = dy_out; dz_in = dz_out-2*w; +r_in = 0.1; r_out = r_in+w; + +v_out = newv; +Block(v_out) = { + -dx_out/2,-dy_out/2,-dz_out/2, + dx_out/2, dy_out/2, dz_out/2 +}; +v_ = v_out; +f_[] = Abs(Boundary{ Volume{v_}; }); +e_[] = Unique( Abs(Boundary{ Surface{f_[]}; }) ); +v_out = Fillet{v_}{e_[2-1], e_[4-1], e_[6-1], e_[8-1]}{r_out}; +Recursive Delete{ Volume{v_}; } + +v_in = newv; +Block(v_in) = { + -dx_in/2,-dy_in/2,-dz_in/2, + dx_in/2, dy_in/2, dz_in/2 +}; +v_ = v_in; +f_[] = Abs(Boundary{ Volume{v_}; }); +e_[] = Unique( Abs(Boundary{ Surface{f_[]}; }) ); +v_in = Fillet{v_}{e_[2-1], e_[4-1], e_[6-1], e_[8-1]}{r_in}; +Recursive Delete{ Volume{v_}; } + +BooleanDifference { Volume{v_out}; Delete; }{ Volume{v_in}; Delete; }