mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-09-13 14:27:08 +03:00
Compare commits
1 Commits
CR27114_Fi
...
NewGEOM_2.
Author | SHA1 | Date | |
---|---|---|---|
|
9e5394288d |
@@ -54,7 +54,6 @@
|
|||||||
|
|
||||||
#include <BOPTest_DrawableShape.hxx>
|
#include <BOPTest_DrawableShape.hxx>
|
||||||
#include <BOPTest_Objects.hxx>
|
#include <BOPTest_Objects.hxx>
|
||||||
#include <IntSurf_PntOn2S.hxx>
|
|
||||||
|
|
||||||
//
|
//
|
||||||
static BOPAlgo_PaveFiller* pPF=NULL;
|
static BOPAlgo_PaveFiller* pPF=NULL;
|
||||||
@@ -116,7 +115,7 @@ static Standard_Integer mkvolume (Draw_Interpretor&, Standard_Integer, const c
|
|||||||
theCommands.Add("bsection", "use bsection r s1 s2 [-n2d/-n2d1/-n2d2] [-na]",
|
theCommands.Add("bsection", "use bsection r s1 s2 [-n2d/-n2d1/-n2d2] [-na]",
|
||||||
__FILE__, bsection, g);
|
__FILE__, bsection, g);
|
||||||
//
|
//
|
||||||
theCommands.Add("bopcurves", "use bopcurves F1 F2 [-2d/-2d1/-2d2] [-p u1 v1 u2 v2]",
|
theCommands.Add("bopcurves", "use bopcurves F1 F2 [-2d/-2d1/-2d2]",
|
||||||
__FILE__, bopcurves, g);
|
__FILE__, bopcurves, g);
|
||||||
theCommands.Add("bopnews" , "use bopnews -v[e,f]" , __FILE__, bopnews, g);
|
theCommands.Add("bopnews" , "use bopnews -v[e,f]" , __FILE__, bopnews, g);
|
||||||
theCommands.Add("mkvolume", "make solids from set of shapes.\nmkvolume r b1 b2 ... [-c] [-ni]",
|
theCommands.Add("mkvolume", "make solids from set of shapes.\nmkvolume r b1 b2 ... [-c] [-ni]",
|
||||||
@@ -646,43 +645,29 @@ Standard_Integer bopcurves (Draw_Interpretor& di,
|
|||||||
Standard_Boolean aToApproxC3d, aToApproxC2dOnS1, aToApproxC2dOnS2, anIsDone;
|
Standard_Boolean aToApproxC3d, aToApproxC2dOnS1, aToApproxC2dOnS2, anIsDone;
|
||||||
Standard_Integer i, aNbCurves, aNbPoints;
|
Standard_Integer i, aNbCurves, aNbPoints;
|
||||||
Standard_Real anAppTol, aTolR;
|
Standard_Real anAppTol, aTolR;
|
||||||
IntSurf_ListOfPntOn2S aListOfPnts;
|
|
||||||
TCollection_AsciiString aNm("c_"), aNp("p_");
|
TCollection_AsciiString aNm("c_"), aNp("p_");
|
||||||
//
|
//
|
||||||
anAppTol = 0.0000001;
|
anAppTol = 0.0000001;
|
||||||
aToApproxC3d = Standard_True;
|
aToApproxC3d = Standard_True;
|
||||||
aToApproxC2dOnS1 = Standard_False;
|
aToApproxC2dOnS1 = Standard_False;
|
||||||
aToApproxC2dOnS2 = Standard_False;
|
aToApproxC2dOnS2 = Standard_False;
|
||||||
|
|
||||||
//
|
//
|
||||||
for(Standard_Integer i = 3; i < n; i++)
|
if (n > 3) {
|
||||||
{
|
if (!strcasecmp(a[3],"-2d")) {
|
||||||
if (!strcasecmp(a[i],"-2d")) {
|
|
||||||
aToApproxC2dOnS1 = Standard_True;
|
aToApproxC2dOnS1 = Standard_True;
|
||||||
aToApproxC2dOnS2 = Standard_True;
|
aToApproxC2dOnS2 = Standard_True;
|
||||||
}
|
}
|
||||||
else if (!strcasecmp(a[i],"-2d1")) {
|
else if (!strcasecmp(a[3],"-2d1")) {
|
||||||
aToApproxC2dOnS1 = Standard_True;
|
aToApproxC2dOnS1 = Standard_True;
|
||||||
}
|
}
|
||||||
else if (!strcasecmp(a[i],"-2d2")) {
|
else if (!strcasecmp(a[3],"-2d2")) {
|
||||||
aToApproxC2dOnS2 = Standard_True;
|
aToApproxC2dOnS2 = Standard_True;
|
||||||
}
|
}
|
||||||
else if (!strcasecmp(a[i],"-p")) {
|
|
||||||
IntSurf_PntOn2S aPt;
|
|
||||||
const Standard_Real aU1 = Draw::Atof(a[++i]);
|
|
||||||
const Standard_Real aV1 = Draw::Atof(a[++i]);
|
|
||||||
const Standard_Real aU2 = Draw::Atof(a[++i]);
|
|
||||||
const Standard_Real aV2 = Draw::Atof(a[++i]);
|
|
||||||
|
|
||||||
aPt.SetValue(aU1, aV1, aU2, aV2);
|
|
||||||
aListOfPnts.Append(aPt);
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
di << "Wrong key. To build 2d curves use: bopcurves F1 F2 [-2d/-2d1/-2d2] [-p u1 v1 u2 v2]\n";
|
di << "Wrong key. To build 2d curves use: bopcurves F1 F2 -2d/-2d1/-2d2 \n";
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
IntTools_FaceFace aFF;
|
IntTools_FaceFace aFF;
|
||||||
//
|
//
|
||||||
@@ -690,7 +675,6 @@ Standard_Integer bopcurves (Draw_Interpretor& di,
|
|||||||
aToApproxC2dOnS1,
|
aToApproxC2dOnS1,
|
||||||
aToApproxC2dOnS2,
|
aToApproxC2dOnS2,
|
||||||
anAppTol);
|
anAppTol);
|
||||||
aFF.SetList(aListOfPnts);
|
|
||||||
//
|
//
|
||||||
aFF.Perform (aF1, aF2);
|
aFF.Perform (aF1, aF2);
|
||||||
//
|
//
|
||||||
|
@@ -187,10 +187,7 @@ void Extrema_ExtCS::Perform(const Adaptor3d_Curve& C,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (myS->IsUPeriodic())
|
|
||||||
NbU = 13;
|
|
||||||
if (myS->IsVPeriodic())
|
|
||||||
NbV = 13;
|
|
||||||
|
|
||||||
Extrema_GenExtCS Ext(C, *myS, NbT, NbU, NbV, cfirst, clast, ufirst, ulast,
|
Extrema_GenExtCS Ext(C, *myS, NbT, NbU, NbV, cfirst, clast, ufirst, ulast,
|
||||||
vfirst, vlast, mytolC, mytolS);
|
vfirst, vlast, mytolC, mytolS);
|
||||||
@@ -246,9 +243,7 @@ void Extrema_ExtCS::Perform(const Adaptor3d_Curve& C,
|
|||||||
Ext.Perform(C, NbT, tmin, tmax, mytolC); // to avoid overflow
|
Ext.Perform(C, NbT, tmin, tmax, mytolC); // to avoid overflow
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if((myCtype == GeomAbs_Circle && NbT < 13) ||
|
if(myCtype == GeomAbs_Circle && NbT < 13) {
|
||||||
(myCtype == GeomAbs_BSplineCurve && NbT < 13))
|
|
||||||
{
|
|
||||||
NbT = 13;
|
NbT = 13;
|
||||||
}
|
}
|
||||||
Ext.Perform(C, NbT, mytolC);
|
Ext.Perform(C, NbT, mytolC);
|
||||||
|
@@ -205,7 +205,7 @@ void Extrema_GenExtCS::Perform (const Adaptor3d_Curve& C,
|
|||||||
TUVsup(3) = trimvsup;
|
TUVsup(3) = trimvsup;
|
||||||
|
|
||||||
// Number of particles used in PSO algorithm (particle swarm optimization).
|
// Number of particles used in PSO algorithm (particle swarm optimization).
|
||||||
const Standard_Integer aNbParticles = 48;
|
const Standard_Integer aNbParticles = 32;
|
||||||
|
|
||||||
math_PSOParticlesPool aParticles(aNbParticles, 3);
|
math_PSOParticlesPool aParticles(aNbParticles, 3);
|
||||||
|
|
||||||
|
@@ -852,12 +852,12 @@ Standard_Real IntTools_FaceFace::ComputeTolerance()
|
|||||||
}
|
}
|
||||||
//
|
//
|
||||||
const TopoDS_Face& aF = !i ? myFace1 : myFace2;
|
const TopoDS_Face& aF = !i ? myFace1 : myFace2;
|
||||||
aD = FindMaxDistance(aC3D, aFirst, aLast, aF, myContext);
|
aD = FindMaxDistance(aC3D, aFirst, aLast, aF, myContext);
|
||||||
if (aD > aDMax) {
|
if (aD > aDMax) {
|
||||||
aDMax = aD;
|
aDMax = aD;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//
|
//
|
||||||
return aDMax;
|
return aDMax;
|
||||||
}
|
}
|
||||||
@@ -1033,8 +1033,6 @@ Standard_Real IntTools_FaceFace::ComputeTolerance()
|
|||||||
(aType2==GeomAbs_Plane && aType1==GeomAbs_SurfaceOfExtrusion) ||
|
(aType2==GeomAbs_Plane && aType1==GeomAbs_SurfaceOfExtrusion) ||
|
||||||
(aType1==GeomAbs_Plane && aType2==GeomAbs_BSplineSurface) ||
|
(aType1==GeomAbs_Plane && aType2==GeomAbs_BSplineSurface) ||
|
||||||
(aType2==GeomAbs_Plane && aType1==GeomAbs_BSplineSurface) ||
|
(aType2==GeomAbs_Plane && aType1==GeomAbs_BSplineSurface) ||
|
||||||
(aType1==GeomAbs_Cylinder && aType2==GeomAbs_BSplineSurface) ||
|
|
||||||
(aType2==GeomAbs_Cylinder && aType1==GeomAbs_BSplineSurface)||
|
|
||||||
!myApprox) {
|
!myApprox) {
|
||||||
//
|
//
|
||||||
Standard_Real aDMax;
|
Standard_Real aDMax;
|
||||||
@@ -1050,8 +1048,8 @@ Standard_Real IntTools_FaceFace::ComputeTolerance()
|
|||||||
//function : MakeCurve
|
//function : MakeCurve
|
||||||
//purpose :
|
//purpose :
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
void IntTools_FaceFace::MakeCurve(const Standard_Integer Index,
|
void IntTools_FaceFace::MakeCurve(const Standard_Integer Index,
|
||||||
const Handle(Adaptor3d_TopolTool)& dom1,
|
const Handle(Adaptor3d_TopolTool)& dom1,
|
||||||
const Handle(Adaptor3d_TopolTool)& dom2)
|
const Handle(Adaptor3d_TopolTool)& dom2)
|
||||||
{
|
{
|
||||||
Standard_Boolean bDone, rejectSurface, reApprox, bAvoidLineConstructor;
|
Standard_Boolean bDone, rejectSurface, reApprox, bAvoidLineConstructor;
|
||||||
@@ -1096,25 +1094,7 @@ void IntTools_FaceFace::MakeCurve(const Standard_Integer Index,
|
|||||||
|
|
||||||
//
|
//
|
||||||
if(!myListOfPnts.IsEmpty()) {
|
if(!myListOfPnts.IsEmpty()) {
|
||||||
//char aBuff[10000];
|
bAvoidLineConstructor = Standard_True;
|
||||||
//const IntSurf_PntOn2S& aPt = myListOfPnts.First();
|
|
||||||
//Standard_Real u1, v1, u2, v2;
|
|
||||||
//aPt.Parameters(u1, v1, u2, v2);
|
|
||||||
|
|
||||||
//Sprintf(aBuff,"bopcurves f1 f2 -2d");
|
|
||||||
//IntSurf_ListIteratorOfListOfPntOn2S IterLOP1(myListOfPnts);
|
|
||||||
//for(;IterLOP1.More(); IterLOP1.Next())
|
|
||||||
//{
|
|
||||||
// const IntSurf_PntOn2S& aPt = IterLOP1.Value();
|
|
||||||
// Standard_Real u1, v1, u2, v2;
|
|
||||||
// aPt.Parameters(u1, v1, u2, v2);
|
|
||||||
|
|
||||||
// Sprintf(aBuff, "%s -p %+10.20f %+10.20f %+10.20f %+10.20f", aBuff, u1, v1, u2, v2);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//cout << aBuff << endl;
|
|
||||||
|
|
||||||
//bAvoidLineConstructor = Standard_True;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Standard_Integer nbp = aWLine->NbPnts();
|
Standard_Integer nbp = aWLine->NbPnts();
|
||||||
@@ -1823,15 +1803,15 @@ void IntTools_FaceFace::MakeCurve(const Standard_Integer Index,
|
|||||||
//
|
//
|
||||||
Standard_Real aReachedTol = Precision::Confusion();
|
Standard_Real aReachedTol = Precision::Confusion();
|
||||||
bIsDecomposited=DecompositionOfWLine(WL,
|
bIsDecomposited=DecompositionOfWLine(WL,
|
||||||
myHS1,
|
myHS1,
|
||||||
myHS2,
|
myHS2,
|
||||||
myFace1,
|
myFace1,
|
||||||
myFace2,
|
myFace2,
|
||||||
myLConstruct,
|
myLConstruct,
|
||||||
bAvoidLineConstructor,
|
bAvoidLineConstructor,
|
||||||
aSeqOfL,
|
aSeqOfL,
|
||||||
aReachedTol,
|
aReachedTol,
|
||||||
myContext);
|
myContext);
|
||||||
if ( bIsDecomposited && ( myTolReached3d < aReachedTol ) ) {
|
if ( bIsDecomposited && ( myTolReached3d < aReachedTol ) ) {
|
||||||
myTolReached3d = aReachedTol;
|
myTolReached3d = aReachedTol;
|
||||||
}
|
}
|
||||||
|
@@ -687,6 +687,7 @@ void SelectMgr_SelectionManager::RecomputeSelection (const Handle(SelectMgr_Sele
|
|||||||
for(theObject->Init(); theObject->More(); theObject->Next())
|
for(theObject->Init(); theObject->More(); theObject->Next())
|
||||||
{
|
{
|
||||||
const Handle(SelectMgr_Selection)& aSelection = theObject->CurrentSelection();
|
const Handle(SelectMgr_Selection)& aSelection = theObject->CurrentSelection();
|
||||||
|
aSelection->UpdateStatus (SelectMgr_TOU_Full);
|
||||||
Standard_Integer aSelMode = aSelection->Mode();
|
Standard_Integer aSelMode = aSelection->Mode();
|
||||||
|
|
||||||
for (TColStd_MapIteratorOfMapOfTransient aSelectorIter (mySelectors); aSelectorIter.More(); aSelectorIter.Next())
|
for (TColStd_MapIteratorOfMapOfTransient aSelectorIter (mySelectors); aSelectorIter.More(); aSelectorIter.Next())
|
||||||
@@ -697,10 +698,10 @@ void SelectMgr_SelectionManager::RecomputeSelection (const Handle(SelectMgr_Sele
|
|||||||
ClearSelectionStructures (theObject, aSelMode, aCurSelector);
|
ClearSelectionStructures (theObject, aSelMode, aCurSelector);
|
||||||
theObject->RecomputePrimitives(aSelMode);
|
theObject->RecomputePrimitives(aSelMode);
|
||||||
RestoreSelectionStructures (theObject, aSelMode, aCurSelector);
|
RestoreSelectionStructures (theObject, aSelMode, aCurSelector);
|
||||||
|
aSelection->UpdateStatus (SelectMgr_TOU_None);
|
||||||
|
aSelection->UpdateBVHStatus (SelectMgr_TBU_None);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
aSelection->UpdateStatus (SelectMgr_TOU_None);
|
|
||||||
aSelection->UpdateBVHStatus (SelectMgr_TBU_None);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,47 +1,5 @@
|
|||||||
restore [locate_data_file GEN758_nofog.rle] a
|
restore [locate_data_file GEN758_nofog.rle] a
|
||||||
explode a f
|
explode a
|
||||||
|
|
||||||
# see issue #26777
|
|
||||||
set GoodNbCurv 1
|
|
||||||
|
|
||||||
set log [bopcurves a_1 a_2 -2d -p 0.20639206339545224 0.69260832843385300 0.0 0.017002507022347624]
|
|
||||||
regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Tolerance_Reached NbCurv
|
|
||||||
|
|
||||||
set expected_Tolerance_Reached 0.00011474465750371152
|
|
||||||
set tol_abs_Tolerance_Reached 0.0
|
|
||||||
set tol_rel_Tolerance_Reached 1.0e-2
|
|
||||||
checkreal "Tolerance Reached" ${Tolerance_Reached} ${expected_Tolerance_Reached} ${tol_abs_Tolerance_Reached} ${tol_rel_Tolerance_Reached}
|
|
||||||
|
|
||||||
if {${NbCurv} != ${GoodNbCurv}} {
|
|
||||||
puts "Error: ${GoodNbCurv} curves are expected but ${NbCurv} are found!"
|
|
||||||
}
|
|
||||||
|
|
||||||
smallview
|
|
||||||
clear
|
|
||||||
|
|
||||||
if {${NbCurv} == 1} {
|
|
||||||
display c_1
|
|
||||||
fit
|
|
||||||
} else {
|
|
||||||
for { set i 1 } { ${i} <= ${NbCurv} } {incr i} {
|
|
||||||
bounds c_$i u1 u2
|
|
||||||
cvalue c_$i u2 xx yy zz
|
|
||||||
point p$i xx yy zz
|
|
||||||
}
|
|
||||||
|
|
||||||
fit
|
|
||||||
|
|
||||||
for { set i 1 } { ${i} <= ${NbCurv} } {incr i} {
|
|
||||||
erase p$i
|
|
||||||
display c_$i
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
xwd ${imagedir}/${casename}_curv.png
|
|
||||||
|
|
||||||
donly a_1 a_2
|
|
||||||
|
|
||||||
bsection result a_1 a_2
|
bsection result a_1 a_2
|
||||||
|
|
||||||
set length 22.2575
|
set length 22.2575
|
||||||
checksection result
|
|
@@ -1,26 +0,0 @@
|
|||||||
puts "========"
|
|
||||||
puts "OCC27114"
|
|
||||||
puts "========"
|
|
||||||
puts ""
|
|
||||||
##############################################
|
|
||||||
# DistShapeShape gives not all solutions
|
|
||||||
# Correct result is 2 solutions
|
|
||||||
##############################################
|
|
||||||
|
|
||||||
restore [locate_data_file bug27114.brep] aShape
|
|
||||||
explode aShape
|
|
||||||
set anInfo [distmini d aShape_1 aShape_2]
|
|
||||||
|
|
||||||
# Check number of solutions
|
|
||||||
if { [llength $anInfo] != 9 } {
|
|
||||||
puts "ERROR: Incorrect number of solutions"
|
|
||||||
} else {
|
|
||||||
puts "OK: Two solutions is found"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Check extrema distance
|
|
||||||
set absTol 1.0e-10
|
|
||||||
set relTol 0.001
|
|
||||||
set aDist_Exp 0.0
|
|
||||||
set aDist [dval d_val]
|
|
||||||
checkreal "Distance value check" $aDist $aDist_Exp $absTol $relTol
|
|
@@ -6,7 +6,7 @@ puts ""
|
|||||||
# ShapeUpgrade_UnifySameDomain introduces extremely high vertex tolerances
|
# ShapeUpgrade_UnifySameDomain introduces extremely high vertex tolerances
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
restore [locate_data_file bug26656_unify.input.brep] i
|
restore [locate_data_file OCC26656_unify.input.brep] i
|
||||||
|
|
||||||
set bug_info [tolerance i]
|
set bug_info [tolerance i]
|
||||||
set value_1 [lindex $bug_info 1]
|
set value_1 [lindex $bug_info 1]
|
||||||
|
@@ -1,5 +1,3 @@
|
|||||||
puts "TODO OCC26717 ALL: Faulty shapes in variables faulty_1 to faulty_"
|
|
||||||
|
|
||||||
puts "=========="
|
puts "=========="
|
||||||
puts "BUC60462"
|
puts "BUC60462"
|
||||||
puts "=========="
|
puts "=========="
|
||||||
@@ -15,5 +13,4 @@ puts "Fuse end"
|
|||||||
checkshape result r
|
checkshape result r
|
||||||
|
|
||||||
set square 94371.7
|
set square 94371.7
|
||||||
checkshape result
|
|
||||||
set 2dviewer 0
|
set 2dviewer 0
|
||||||
|
@@ -1,4 +1,3 @@
|
|||||||
puts "TODO OCC25917 ALL: Faulty shapes in variables faulty_1 to faulty_"
|
|
||||||
if { [regexp {Debug mode} [dversion]] } {
|
if { [regexp {Debug mode} [dversion]] } {
|
||||||
puts "TODO OCC25917 ALL: TEST INCOMPLETE"
|
puts "TODO OCC25917 ALL: TEST INCOMPLETE"
|
||||||
puts "TODO OCC25917 ALL: Tcl Exception"
|
puts "TODO OCC25917 ALL: Tcl Exception"
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
puts "TODO OCC12345 ALL: Faulty : TEST FAILED"
|
puts "TODO OCC12345 ALL: Faulty : TEST FAILED"
|
||||||
puts "TODO OCC12345 ALL: Error : The length of result shape is"
|
#puts "TODO OCC12345 ALL: Error : The length of result shape is"
|
||||||
|
|
||||||
puts "============"
|
puts "============"
|
||||||
puts "PRO19653"
|
puts "PRO19653"
|
||||||
|
@@ -26,14 +26,14 @@ mkvolume result fcon3 fp
|
|||||||
|
|
||||||
set square 1706.51
|
set square 1706.51
|
||||||
|
|
||||||
set nb_v_good 5
|
set nb_v_good 4
|
||||||
set nb_e_good 6
|
set nb_e_good 5
|
||||||
set nb_w_good 2
|
set nb_w_good 2
|
||||||
set nb_f_good 2
|
set nb_f_good 2
|
||||||
set nb_sh_good 1
|
set nb_sh_good 1
|
||||||
set nb_sol_good 1
|
set nb_sol_good 1
|
||||||
set nb_compsol_good 0
|
set nb_compsol_good 0
|
||||||
set nb_compound_good 0
|
set nb_compound_good 0
|
||||||
set nb_shape_good 17
|
set nb_shape_good 15
|
||||||
|
|
||||||
set 2dviewer 1
|
set 2dviewer 1
|
||||||
|
@@ -1,50 +0,0 @@
|
|||||||
puts "============"
|
|
||||||
puts "OCC26841"
|
|
||||||
puts "============"
|
|
||||||
puts ""
|
|
||||||
###############################
|
|
||||||
## Wrong result obtained by intersection algorithm.
|
|
||||||
###############################
|
|
||||||
|
|
||||||
restore [locate_data_file bug26841c1-prism.brep] p1
|
|
||||||
restore [locate_data_file bug26841c1-deck.brep] a1
|
|
||||||
|
|
||||||
bsection result a1 p1 -n2d2
|
|
||||||
|
|
||||||
smallview
|
|
||||||
donly result
|
|
||||||
fit
|
|
||||||
display a1 p1
|
|
||||||
|
|
||||||
set nbshapes_expected "
|
|
||||||
Number of shapes in shape
|
|
||||||
VERTEX : 5
|
|
||||||
EDGE : 5
|
|
||||||
WIRE : 0
|
|
||||||
FACE : 0
|
|
||||||
SHELL : 0
|
|
||||||
SOLID : 0
|
|
||||||
COMPSOLID : 0
|
|
||||||
COMPOUND : 1
|
|
||||||
SHAPE : 11
|
|
||||||
"
|
|
||||||
|
|
||||||
checknbshapes result -ref ${nbshapes_expected} -t -m "SECTION"
|
|
||||||
|
|
||||||
regexp {Tolerance +MAX=([-0-9.+eE]+)} [tolerance result] full MaxTolerance
|
|
||||||
puts "MaxTolerance=$MaxTolerance"
|
|
||||||
|
|
||||||
set expected_MaxTolerance 7.0623347214107758e-005
|
|
||||||
set tol_abs_MaxTolerance 0.0
|
|
||||||
set tol_rel_MaxTolerance 0.01
|
|
||||||
checkreal "MaxTolerance" ${MaxTolerance} ${expected_MaxTolerance} ${tol_abs_MaxTolerance} ${tol_rel_MaxTolerance}
|
|
||||||
|
|
||||||
set log [checksection result]
|
|
||||||
|
|
||||||
if { [string compare -nocase $log " nb alone Vertices : 0\n\n"] } {
|
|
||||||
puts "ERROR: the section is not closed"
|
|
||||||
} else {
|
|
||||||
puts "The section is OK"
|
|
||||||
}
|
|
||||||
|
|
||||||
set only_screen_axo 1
|
|
@@ -1,51 +0,0 @@
|
|||||||
puts "============"
|
|
||||||
puts "OCC26841"
|
|
||||||
puts "============"
|
|
||||||
puts ""
|
|
||||||
###############################
|
|
||||||
## Wrong result obtained by intersection algorithm.
|
|
||||||
###############################
|
|
||||||
|
|
||||||
restore [locate_data_file bug26841c3-prism.brep] p3
|
|
||||||
restore [locate_data_file bug26841c3-deck.brep] a3
|
|
||||||
|
|
||||||
bsection result a3 p3 -n2d2
|
|
||||||
|
|
||||||
smallview
|
|
||||||
donly result
|
|
||||||
fit
|
|
||||||
display a3 p3
|
|
||||||
|
|
||||||
|
|
||||||
set nbshapes_expected "
|
|
||||||
Number of shapes in shape
|
|
||||||
VERTEX : 10
|
|
||||||
EDGE : 10
|
|
||||||
WIRE : 0
|
|
||||||
FACE : 0
|
|
||||||
SHELL : 0
|
|
||||||
SOLID : 0
|
|
||||||
COMPSOLID : 0
|
|
||||||
COMPOUND : 1
|
|
||||||
SHAPE : 21
|
|
||||||
"
|
|
||||||
|
|
||||||
checknbshapes result -ref ${nbshapes_expected} -t -m "SECTION"
|
|
||||||
|
|
||||||
regexp {Tolerance +MAX=([-0-9.+eE]+)} [tolerance result] full MaxTolerance
|
|
||||||
puts "MaxTolerance=$MaxTolerance"
|
|
||||||
|
|
||||||
set expected_MaxTolerance 0.00010145423883977269
|
|
||||||
set tol_abs_MaxTolerance 0.0
|
|
||||||
set tol_rel_MaxTolerance 0.001
|
|
||||||
checkreal "MaxTolerance" ${MaxTolerance} ${expected_MaxTolerance} ${tol_abs_MaxTolerance} ${tol_rel_MaxTolerance}
|
|
||||||
|
|
||||||
set log [checksection result]
|
|
||||||
|
|
||||||
if { [string compare -nocase $log " nb alone Vertices : 0\n\n"] } {
|
|
||||||
puts "ERROR: the section is not closed"
|
|
||||||
} else {
|
|
||||||
puts "The section is OK"
|
|
||||||
}
|
|
||||||
|
|
||||||
set only_screen_axo 1
|
|
@@ -18,7 +18,7 @@ foreach i ${Indices} {
|
|||||||
if { [isdraw ext_1] } {
|
if { [isdraw ext_1] } {
|
||||||
mkedge e ext_1
|
mkedge e ext_1
|
||||||
regexp {Mass +: +([-0-9.+eE]+)} [lprops e] full l
|
regexp {Mass +: +([-0-9.+eE]+)} [lprops e] full l
|
||||||
if {$l > 2.5e-12} {
|
if {$l > 1e-12} {
|
||||||
puts "Error: invalid result"
|
puts "Error: invalid result"
|
||||||
}
|
}
|
||||||
renamevar ext_1 r_$i
|
renamevar ext_1 r_$i
|
||||||
|
37
tests/bugs/vis/bug26870
Normal file
37
tests/bugs/vis/bug26870
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
puts "============"
|
||||||
|
puts "CR26870"
|
||||||
|
puts "============"
|
||||||
|
puts ""
|
||||||
|
|
||||||
|
##########################################################################################
|
||||||
|
puts "Visualization - deactivated selections are not updated after object's re-computation"
|
||||||
|
##########################################################################################
|
||||||
|
|
||||||
|
pload VISUALIZATION MODELING
|
||||||
|
|
||||||
|
vinit
|
||||||
|
box b 1 1 1
|
||||||
|
vdisplay b
|
||||||
|
vfit
|
||||||
|
|
||||||
|
vselmode b 2 1
|
||||||
|
vselmode b 4 1
|
||||||
|
vselmode b 4 0
|
||||||
|
|
||||||
|
box b 3 3 3
|
||||||
|
vdisplay b
|
||||||
|
vfit
|
||||||
|
|
||||||
|
vselmode 4 1
|
||||||
|
|
||||||
|
# pick a point onto previously computed face
|
||||||
|
vmoveto 80 265
|
||||||
|
if {[vreadpixel 90 206 name] == "CYAN1 1"} {
|
||||||
|
puts "ERROR: previously computed entities are highlighted! Selection mode 4 was not updated after redisplaying the box."
|
||||||
|
}
|
||||||
|
# pick a point onto box
|
||||||
|
if {[vreadpixel 29 216 name] == "YELLOW 1"} {
|
||||||
|
puts "ERROR: the box's face is not highlighted! Selection mode 4 was not updated after redisplaying the box."
|
||||||
|
}
|
||||||
|
|
||||||
|
set only_screen 1
|
Reference in New Issue
Block a user