1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
SetFactory("OpenCASCADE");
// from http://en.wikipedia.org/wiki/Constructive_solid_geometry
Mesh.Algorithm = 6;
Mesh.MeshSizeMin = 0.4;
Mesh.MeshSizeMax = 0.4;
R = DefineNumber[ 1.4 , Min 0.1, Max 2, Step 0.01,
Name "Parameters/Box dimension" ];
Rs = DefineNumber[ R*.7 , Min 0.1, Max 2, Step 0.01,
Name "Parameters/Cylinder radius" ];
Rt = DefineNumber[ R*1.25, Min 0.1, Max 2, Step 0.01,
Name "Parameters/Sphere radius" ];
Box(1) = {-R,-R,-R, 2*R,2*R,2*R};
Sphere(2) = {0,0,0,Rt};
BooleanIntersection(3) = { Volume{1}; Delete; }{ Volume{2}; Delete; };
Cylinder(4) = {-2*R,0,0, 4*R,0,0, Rs};
Cylinder(5) = {0,-2*R,0, 0,4*R,0, Rs};
Cylinder(6) = {0,0,-2*R, 0,0,4*R, Rs};
BooleanUnion(7) = { Volume{4}; Delete; }{ Volume{5,6}; Delete; };
BooleanDifference(8) = { Volume{3}; Delete; }{ Volume{7}; Delete; };
|