1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-03 17:56:21 +03:00
isn 7073768338 0028642: BRepOffsetAPI_ThruSections/BRepFill_Generator are modifying the input shape sections
1) BRepFill_Generator and BRepOffsetAPI_ThruSections now support 'non-destructive' mode for the input shapes (sections wires). The shape history of this algorithms also has been modified.
2) New test grids (based on the previous ones) have been added. These new cases use locked shapes as input arguments
3) The option '-safe' has been added to 'thrusections' command
2022-01-17 20:02:13 +03:00

182 lines
4.4 KiB
Plaintext

puts "============"
puts "OCC7166"
puts "============"
puts ""
#######################################################################
# Improvement of API of ThruSection
#######################################################################
set BugNumber OCC7166
#
#
#
#
#
# v22 v21
# *----------------------*
# / \
# / \
# / v12 v11 \
# / *---------------------* \
# / | | \
# / | | \
# * v23 | * v3 | v28 *
# | | | \ | |
# | | | \ | |
# | | | \ | |
# | | | \ | |
# | | | /* v2 | |
# | | | / | |
# | | | / | | * v4, v5
# | | | / | |
# | | * | |
# | | v1 | |
# | | | |
# | | | |
# * v24 | | v27 *
# \ | | /
# \ *---------------------* /
# \ v13 v14 /
# \ /
# \ /
# \ v25 v26 /
# *----------------------*
#
#
#
set z1 40
set z2 20
set z3 0
set z4 100
set z5 30
set z6 10
# begining vertex
vertex v4 2.5 5 ${z4}
# ending vertex
vertex v5 2.5 5 -${z4}
# top triangle
vertex v1 0 0 ${z1}
vertex v2 5 5 ${z1}
vertex v3 0 10 ${z1}
edge e1 v1 v2
edge e2 v2 v3
edge e3 v3 v1
wire w1 e1 e2 e3
# top beziercurve
beziercurve bzc1 5 5 5 ${z5} 5 -5 ${z5} -5 -5 ${z5} -5 5 ${z5} 5 5 ${z5}
mkedge ebzc1 bzc1
wire wbzc1 ebzc1
# top quadrangle
vertex v11 15 15 ${z2}
vertex v12 -15 15 ${z2}
vertex v13 -15 -15 ${z2}
vertex v14 15 -15 ${z2}
edge e11 v11 v12
edge e12 v12 v13
edge e13 v13 v14
edge e14 v14 v11
wire w11 e11 e12 e13 e14
# top pbsplinecurve
pbsplinecurve pbc1 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 ${z6} 1 -2 2 ${z6} 1 0 1 ${z6} 1 2 2 ${z6} 1 1 0 ${z6} 1 2 -2 ${z6} 1 0 -1 ${z6} 1 -2 -2 ${z6} 1
mkedge epbc1 pbc1
wire wpbc1 epbc1
# octagon
vertex v21 25 25 ${z3}
vertex v22 -25 25 ${z3}
vertex v23 -30 10 ${z3}
vertex v24 -30 -10 ${z3}
vertex v25 -25 -25 ${z3}
vertex v26 25 -25 ${z3}
vertex v27 30 -10 ${z3}
vertex v28 30 10 ${z3}
edge e21 v21 v22
edge e22 v22 v23
edge e23 v23 v24
edge e24 v24 v25
edge e25 v25 v26
edge e26 v26 v27
edge e27 v27 v28
edge e28 v28 v21
wire w21 e21 e22 e23 e24 e25 e26 e27 e28
# bottom pbsplinecurve
pbsplinecurve pbc2 3 9 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 -1 0 -${z6} 1 -2 2 -${z6} 1 0 1 -${z6} 1 2 2 -${z6} 1 1 0 -${z6} 1 2 -2 -${z6} 1 0 -1 -${z6} 1 -2 -2 -${z6} 1
mkedge epbc2 pbc2
wire wpbc2 epbc2
# bottom quadrangle
vertex v111 15 15 -${z2}
vertex v112 -15 15 -${z2}
vertex v113 -15 -15 -${z2}
vertex v114 15 -15 -${z2}
edge e111 v111 v112
edge e112 v112 v113
edge e113 v113 v114
edge e114 v114 v111
wire w111 e111 e112 e113 e114
# bottom beziercurve
beziercurve bzc2 5 5 5 -${z5} 5 -5 -${z5} -5 -5 -${z5} -5 5 -${z5} 5 5 -${z5}
mkedge ebzc2 bzc2
wire wbzc2 ebzc2
# bottom triangle
vertex v101 0 0 -${z1}
vertex v102 5 5 -${z1}
vertex v103 0 10 -${z1}
edge e101 v101 v102
edge e102 v102 v103
edge e103 v103 v101
wire w101 e101 e102 e103
setflags v4 locked
setflags w1 locked
setflags wbzc1 locked
setflags w11 locked
setflags wpbc1 locked
setflags w21 locked
setflags wpbc2 locked
setflags w111 locked
setflags wbzc2 locked
setflags w101 locked
setflags v5 locked
#
set issolid 1
set isruled 1
#thrusections result ${issolid} ${isruled} v4 w1 w11 w21 w111 w101 v5
thrusections result ${issolid} ${isruled} v4 w1 wbzc1 w11 wpbc1 w21 wpbc2 w111 wbzc2 w101 v5 -safe
checkprops result -s 12436.8
checknbshapes result -vertex 101 -edge 209 -wire 110 -face 110 -shell 1 -solid 1 -compsolid 0 -compound 0 -shape 532
set index [lsearch [whatis result] Closed]
if {$index == -1} {
puts "Faulty ${BugNumber} : result is not Closed shape"
}