0030145: Modeling Algorithms - Boolean Operations on open solids
[occt.git] / tests / boolean / opensolid / A7
diff --git a/tests/boolean/opensolid/A7 b/tests/boolean/opensolid/A7
new file mode 100644 (file)
index 0000000..860026d
--- /dev/null
@@ -0,0 +1,59 @@
+box b1 10 10 10
+box b2 1 1 1 8 8 8
+box b3 -2 3 3 14 4 4
+
+bclearobjects
+bcleartools
+baddobjects b1 b2 b3
+bfillds
+bbuild r
+
+buildbop r0 -o b3 -t b1 b2 -op common
+buildbop r1 -o b3 -t b1 b2 -op fuse
+buildbop r2 -o b3 -t b1 b2 -op cut
+buildbop r3 -o b3 -t b1 b2 -op tuc
+
+foreach r {r0 r1 r2 r3} {
+  checkshape $r
+  if {![regexp "OK" [bopcheck $r]]} {
+    puts "Error: shape is self-interfered"
+  }
+}
+
+checkprops r0 -s 256 -v 160
+checknbshapes r0 -vertex 16 -edge 28 -wire 16 -face 16 -shell 3 -solid 3
+
+checkprops r1 -s 664 -v 1064
+checknbshapes r1 -vertex 24 -edge 36 -wire 18 -face 16 -shell 1 -solid 1
+
+checkprops r2 -s 128 -v 64
+checknbshapes r2 -vertex 16 -edge 24 -wire 12 -face 12 -shell 2 -solid 2
+
+checkprops r3 -s 1432 -v 840
+checknbshapes r3 -vertex 32 -edge 52 -wire 28 -face 24 -shell 2 -solid 2
+
+
+
+buildbop r0 -o b2 -t b1 b3 -op common
+buildbop r1 -o b2 -t b1 b3 -op fuse
+buildbop r2 -o b2 -t b1 b3 -op cut
+buildbop r3 -o b2 -t b1 b3 -op tuc
+
+foreach r {r0 r1 r2 r3} {
+  checkshape $r
+  if {![regexp "OK" [bopcheck $r]]} {
+    puts "Error: shape is self-interfered"
+  }
+}
+
+checkprops r0 -s 640 -v 512
+checknbshapes r0 -vertex 16 -edge 24 -wire 14 -face 12 -shell 2 -solid 2
+
+checkprops r1 -s 664 -v 1064
+checknbshapes r1 -vertex 24 -edge 36 -wire 18 -face 16 -shell 1 -solid 1
+
+checkprops r2 -s empty -v empty
+checknbshapes r2 -vertex 0 -edge 0 -wire 0 -face 0 -shell 0 -solid 0
+
+checkprops r3 -s 1176 -v 552
+checknbshapes r3 -vertex 40 -edge 64 -wire 38 -face 34 -shell 5 -solid 5