Test case was added
Modified test cases to extract the shell from the solid and check it for closeness.
# pcone
pcone s 30 5 20
+explode s sh
+renamevar s_1 s
+
set distance -0.5
catch { OFFSETSHAPE $distance {} $calcul $type }
# pcone
pcone s 30 5 20
+explode s sh
+renamevar s_1 s
set distance -0.5
catch { OFFSETSHAPE $distance {s_2} $calcul $type }
# pcone
pcone s 30 5 20
+explode s sh
+renamevar s_1 s
set distance -0.5
catch { OFFSETSHAPE $distance {s_3} $calcul $type }
# pcone
pcone s 30 5 20
+explode s sh
+renamevar s_1 s
set distance -0.5
catch { OFFSETSHAPE $distance {s_2 s_3} $calcul $type }
--- /dev/null
+puts "=========="
+puts "OCC20040"
+puts "=========="
+puts ""
+###############################################
+# Incorrect result of thrusections operation
+###############################################
+
+restore [locate_data_file bug20040_profile.brep] w1
+checkshape w1
+
+copy w1 w2
+ttranslate w2 0 0 1
+
+thrusections -N result 0 0 w1 w2
+checkshape result
+
+set 2dviewer 1