From 5af3233c727d23cfd27201c89a090e6d4195d941 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Sat, 25 Mar 2017 00:33:02 +0100 Subject: [PATCH] test line/volume intersection --- demos/boolean/intersect_line_volume.geo | 30 +++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 demos/boolean/intersect_line_volume.geo diff --git a/demos/boolean/intersect_line_volume.geo b/demos/boolean/intersect_line_volume.geo new file mode 100644 index 0000000000..792b165008 --- /dev/null +++ b/demos/boolean/intersect_line_volume.geo @@ -0,0 +1,30 @@ + +SetFactory("OpenCASCADE"); + +Geometry.LineNumbers = 1; + +xw_ = 0.1; yw_ = 0.1; +s_wire = news; +Rectangle(news) = {-xw_, -yw_, 0., xw_, yw_, 0.}; +l_wire[] = Abs(Boundary{Surface{s_wire};}); +Delete{ Surface{s_wire}; } // Surface s_wire is deleted to keep only its boundary +Printf("init: l_wire[] = ", l_wire[]); + +DefineConstant[ + flag_Symmetry_X = { 0, Choices{0,1}, Name "Symmetry X0-plane" } + flag_Symmetry_Y = { 0, Choices{0,1}, Name "Symmetry Y0-plane" } + flag_Symmetry_Z = { 0, Choices{0,1}, Name "Symmetry Z0-plane" } +]; + +dx = 0.4; dy = 0.4; dz = 0.4; +x_min_ = (flag_Symmetry_X)? 0. : -dx/2; +y_min_ = (flag_Symmetry_Y)? 0. : -dy/2; +z_min_ = (flag_Symmetry_Z)? 0. : -dz/2; + +v_box=newv; +Block(newv) = {x_min_, y_min_, z_min_, dx/2, dy/2, dz/2}; + + +l_wire[] = BooleanIntersection { Line{l_wire[]}; Delete; }{ Volume{v_box}; }; +SyncModel; +Printf("after intersection: new l_wire[] = ", l_wire[]); -- GitLab