puts "============" puts "CR28175" puts "===========" puts "" ############################################################################### # Bad result of curve-curve extrema ############################################################################### pload MODELING # Prepare curves. restore [locate_data_file bug28175_border.brep] b restore [locate_data_file bug28175_segment.brep] s explode b explode s mkcurve cb b_6 mkcurve cs s_1 # Check result of forward arguments order. extrema cb cs 1 set info [length ext_1] regexp {The length ext_1 is +([-0-9.+eE]+)} $info full len1 if { $len1 > 1e-7 } { puts "Error: extrema finds distance $len1 (parameters [dval prm_1_1] and [dval prm_1_3]" puts "while should be 4.5985092243989615e-008 (parameters 23.548772710035486 and 585.69374860054825" } else { puts "OK: Correct extrema point is found for forward arguments order" } # Check result of reversed arguments order. extrema cs cb 1 set info [length ext_1] regexp {The length ext_1 is +([-0-9.+eE]+)} $info full len2 if { $len2 > 1e-7 } { puts "Error: extrema finds distance $len2 (parameters [dval prm_1_1] and [dval prm_1_3]" puts "while should be 4.5985092243989615e-008 (parameters 23.548772710035486 and 585.69374860054825" } else { puts "OK: Correct extrema point is found for reversed arguments order" } # Check that order not influence minimum value. if { abs ($len1 - $len2) > 1e-4 * ($len1 + $len2) } { puts "Error: distance between cb to cs ($len1) is not equal to distance between cs and cb ($len2)" } else { puts "OK: Extrema values are equal for forward and reversed arguments order" }