# General check of the result of geometrical intersection help CheckIntersectionResult { surf1 surf2 ListOfCurves NbPoints TolerS1 TolerS2 } proc CheckIntersectionResult {theSurf1 theSurf2 theListOfCurves theNbPoints theTolerS1 theTolerS2} { upvar #0 $theSurf1 s1 upvar #0 $theSurf2 s2 foreach a $theListOfCurves { puts "** Check of $a **" upvar #0 $a aCurve bounds aCurve U1 U2 if {[dval U2-U1] < 1.0e-9} { puts "Error: Wrong range of $a" } xdistcs aCurve s1 U1 U2 $theNbPoints $theTolerS1 xdistcs aCurve s2 U1 U2 $theNbPoints $theTolerS2 } } # Check whether given list contain overlapped curves help CheckOverlapIntCurves { theListOfCurves } proc CheckOverlapIntCurves { theListOfCurves {theTolerance 1.0e-7} } { set NbEdges [expr [llength $theListOfCurves] - 1 ] for { set i1 0 } { $i1 < $NbEdges } { incr i1 } { for { set i2 [expr $i1 + 1] } { $i2 <= $NbEdges } { incr i2 } { upvar #0 [ lindex $theListOfCurves $i1 ] aCurve1 upvar #0 [ lindex $theListOfCurves $i2 ] aCurve2 mkedge e1 aCurve1 mkedge e2 aCurve2 set coe [ checkoverlapedges e1 e2 $theTolerance ] if { [regexp "Edges are not overlapped" $coe] != 1 } { set cIdx1 [ expr $i1 + 1 ] set cIdx2 [ expr $i2 + 1 ] puts "Error: Curves $cIdx1 and $cIdx2 are overlapped" } } } }