mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
0029523: Problem with BRepOffsetAPI_MakeEvolved
1. New class BRepFill_Voluved has been created in order to provide new OCCT-algorithm combining BRepFill_PipeShell and BOPAlgo_MakerVolume. 2. The interface of DRAW-command "evolved" has been corrected. 3. DRAW-command "evolvedsolid" has been deleted. Currently it can be replaced with DRAW-command "evolved" with specific options. 4. Some test cases have been corrected. 5. Testgrid "evolved" has been created.
This commit is contained in:
@@ -692,7 +692,7 @@ void BRepFill_PipeShell::SetForceApproxC1(const Standard_Boolean ForceApproxC1)
|
||||
//function : Build
|
||||
//purpose : Construct the Shell and the history
|
||||
//=======================================================================
|
||||
Standard_Boolean BRepFill_PipeShell::Build()
|
||||
Standard_Boolean BRepFill_PipeShell::Build()
|
||||
{
|
||||
Standard_Boolean Ok;
|
||||
Standard_Real FirstS, LastS;
|
||||
@@ -746,8 +746,9 @@ void BRepFill_PipeShell::SetForceApproxC1(const Standard_Boolean ForceApproxC1)
|
||||
MkSw.SetTolerance(myTol3d, myBoundTol, 1.e-5, myTolAngular);
|
||||
MkSw.SetAngularControl(angmin, angmax);
|
||||
MkSw.SetForceApproxC1(myForceApproxC1);
|
||||
MkSw.SetBounds(TopoDS::Wire(myFirst),
|
||||
TopoDS::Wire(myLast));
|
||||
MkSw.SetBounds(TopoDS::Wire(myFirst),
|
||||
TopoDS::Wire(myLast));
|
||||
|
||||
GeomAbs_Shape theContinuity = GeomAbs_C2;
|
||||
if (myTrihedron == GeomFill_IsDiscreteTrihedron)
|
||||
theContinuity = GeomAbs_C0;
|
||||
|
@@ -168,6 +168,10 @@ public:
|
||||
Standard_EXPORT void Simulate (const Standard_Integer NumberOfSection, TopTools_ListOfShape& Sections);
|
||||
|
||||
//! Builds the resulting shape (redefined from MakeShape).
|
||||
//! If theIsToCheckValidity == FALSE then BRepFill_Sweep algorithm
|
||||
//! is allowed to create invalid faces (having self-interferences).
|
||||
//! It is considered for them that such faces will be processed and
|
||||
//! fixed by the high-level algorithms
|
||||
Standard_EXPORT Standard_Boolean Build();
|
||||
|
||||
//! Transform the sweeping Shell in Solid.
|
||||
|
@@ -914,7 +914,7 @@ static Standard_Boolean Filling(const TopoDS_Shape& EF,
|
||||
// Control the direction of the rotation
|
||||
Standard_Boolean ToReverseResult = Standard_False;
|
||||
gp_Vec d1u;
|
||||
d1u = Surf->DN(0, (f1+l1)/2, 1, 0);
|
||||
d1u = Surf->DN(0, aPrm[aMaxIdx], 1, 0);
|
||||
if (d1u.Angle(TangentOnPart1) > M_PI/2) { //Invert everything
|
||||
ToReverseResult = Standard_True;
|
||||
/*
|
||||
@@ -1815,8 +1815,6 @@ BRepFill_Sweep::BRepFill_Sweep(const Handle(BRepFill_SectionLaw)& Section,
|
||||
const Standard_Boolean WithKPart) :
|
||||
isDone(Standard_False),
|
||||
KPart(WithKPart)
|
||||
|
||||
|
||||
{
|
||||
mySec = Section;
|
||||
myLoc = Location;
|
||||
@@ -3353,7 +3351,8 @@ TopoDS_Shape BRepFill_Sweep::Tape(const Standard_Integer Index) const
|
||||
// Filling
|
||||
B = Filling(It1.Value(), myFaces->Value(ii, I1),
|
||||
It2.Value(), myFaces->Value(ii, I2),
|
||||
myVEdgesModified, myTol3d, Axe, T1, Bord1, Bord2, FF);
|
||||
myVEdgesModified, myTol3d, Axe, T1,
|
||||
Bord1, Bord2, FF);
|
||||
|
||||
if (B) {
|
||||
myAuxShape.Append(FF);
|
||||
|
@@ -80,7 +80,7 @@ public:
|
||||
//! to be C0.
|
||||
Standard_EXPORT void SetForceApproxC1 (const Standard_Boolean ForceApproxC1);
|
||||
|
||||
//! Build the Sweeep Surface
|
||||
//! Build the Sweep Surface
|
||||
//! Transition define Transition strategy
|
||||
//! Approx define Approximation Strategy
|
||||
//! - GeomFill_Section : The composed Function Location X Section
|
||||
@@ -118,13 +118,6 @@ public:
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Boolean CorrectApproxParameters();
|
||||
|
||||
Standard_EXPORT Standard_Boolean BuildWire (const BRepFill_TransitionStyle Transition);
|
||||
@@ -142,6 +135,13 @@ private:
|
||||
Standard_EXPORT void RebuildTopOrBottomEdge (const TopoDS_Edge& aNewEdge, TopoDS_Edge& anEdge, TopTools_MapOfShape& ReversedEdges) const;
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
Standard_Boolean isDone;
|
||||
Standard_Boolean KPart;
|
||||
Standard_Real myTol3d;
|
||||
@@ -168,7 +168,6 @@ private:
|
||||
TopoDS_Wire FirstShape;
|
||||
TopoDS_Wire LastShape;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
1700
src/BRepFill/BRepFill_Voluved.cxx
Normal file
1700
src/BRepFill/BRepFill_Voluved.cxx
Normal file
File diff suppressed because it is too large
Load Diff
106
src/BRepFill/BRepFill_Voluved.hxx
Normal file
106
src/BRepFill/BRepFill_Voluved.hxx
Normal file
@@ -0,0 +1,106 @@
|
||||
// Created on: 2018-03-14
|
||||
// Created by: Nikolai BUKHALOV
|
||||
// Copyright (c) 1999-2018 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _BRepFill_Voluved_HeaderFile
|
||||
#define _BRepFill_Voluved_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <TopoDS_Compound.hxx>
|
||||
#include <TopoDS_Wire.hxx>
|
||||
#include <TopTools_IndexedMapOfShape.hxx>
|
||||
#include <TopTools_ListOfShape.hxx>
|
||||
class BOPAlgo_MakerVolume;
|
||||
|
||||
//! Constructs an evolved volume from a spine (wire or face)
|
||||
//! and a profile ( wire).
|
||||
class BRepFill_Voluved
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
Standard_EXPORT BRepFill_Voluved() :myErrorStatus(BRepFill_Voluved_Empty),
|
||||
myFuzzyValue(0.0)
|
||||
{
|
||||
}
|
||||
|
||||
Standard_EXPORT void Perform(const TopoDS_Wire& theSpine, const TopoDS_Wire& theProfile, const Standard_Real theTolerance, const Standard_Boolean theSolidReq = Standard_True);
|
||||
|
||||
Standard_Boolean IsDone(unsigned int* theErrorCode = 0) const
|
||||
{
|
||||
if (theErrorCode)
|
||||
*theErrorCode = myErrorStatus;
|
||||
|
||||
return (myErrorStatus == BRepFill_Voluved_OK);
|
||||
}
|
||||
|
||||
//! returns the resulting shape.
|
||||
const TopoDS_Shape& Shape() const
|
||||
{
|
||||
return myResult;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
Standard_EXPORT void PerformSweep();
|
||||
|
||||
Standard_EXPORT void GetLids();
|
||||
|
||||
Standard_EXPORT void BuildSolid();
|
||||
|
||||
Standard_EXPORT void RemoveExcessSolids(const TopTools_ListOfShape& theLSplits,
|
||||
TopoDS_Shape& theShape,
|
||||
TopTools_ListOfShape& theArgsList,
|
||||
BOPAlgo_MakerVolume& theMV);
|
||||
|
||||
Standard_EXPORT void ExtractOuterSolid(TopoDS_Shape& theShape,
|
||||
TopTools_ListOfShape& theArgsList);
|
||||
|
||||
Standard_EXPORT void GetSpineAndProfile(const TopoDS_Wire& theSpine,
|
||||
const TopoDS_Wire& theProfile);
|
||||
|
||||
private:
|
||||
|
||||
enum
|
||||
{
|
||||
BRepFill_Voluved_Empty = 0,
|
||||
BRepFill_Voluved_NotPlanarSpine,
|
||||
BRepFill_Voluved_SweepError,
|
||||
BRepFill_Voluved_NoLids,
|
||||
BRepFill_Voluved_NotSolid,
|
||||
BRepFill_Voluved_NotVolume,
|
||||
BRepFill_Voluved_OK = UINT_MAX
|
||||
} myErrorStatus;
|
||||
|
||||
TopoDS_Wire mySpine;
|
||||
TopoDS_Wire myProfile;
|
||||
TopoDS_Shape myPipeShell;
|
||||
TopoDS_Compound myTopBottom; // Lids can be split on several faces
|
||||
TopoDS_Shape myResult;
|
||||
Standard_Real myFuzzyValue;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _BRepFill_Voluved_HeaderFile
|
@@ -83,3 +83,5 @@ BRepFill_TrimShellCorner.hxx
|
||||
BRepFill_TrimSurfaceTool.cxx
|
||||
BRepFill_TrimSurfaceTool.hxx
|
||||
BRepFill_TypeOfContact.hxx
|
||||
BRepFill_Voluved.cxx
|
||||
BRepFill_Voluved.hxx
|
@@ -22,6 +22,8 @@
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TopoDS_Wire.hxx>
|
||||
#include <TopoDS_Iterator.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : BRepOffsetAPI_MakeEvolved
|
||||
@@ -43,19 +45,29 @@ BRepOffsetAPI_MakeEvolved::BRepOffsetAPI_MakeEvolved(const TopoDS_Wire& Spin
|
||||
const Standard_Boolean AxeProf,
|
||||
const Standard_Boolean Solid,
|
||||
const Standard_Boolean ProfOnSpine,
|
||||
const Standard_Real Tol)
|
||||
const Standard_Boolean theIsVolume,
|
||||
const Standard_Real Tol)
|
||||
{
|
||||
gp_Ax3 Axis(gp_Pnt(0.,0.,0.),
|
||||
gp_Dir(0.,0.,1.),
|
||||
gp_Dir(1.,0.,0.));
|
||||
if (theIsVolume)
|
||||
{
|
||||
myVolume.Perform(Spine, Profil, Tol);
|
||||
}
|
||||
else
|
||||
{
|
||||
gp_Ax3 Axis(gp_Pnt(0., 0., 0.),
|
||||
gp_Dir(0., 0., 1.),
|
||||
gp_Dir(1., 0., 0.));
|
||||
|
||||
if ( !AxeProf) {
|
||||
Standard_Boolean POS;
|
||||
BRepFill::Axe(Spine,Profil,Axis,POS,Tol);
|
||||
if (ProfOnSpine && !POS) return;
|
||||
if (!AxeProf)
|
||||
{
|
||||
Standard_Boolean POS;
|
||||
BRepFill::Axe(Spine, Profil, Axis, POS, Max(Tol, Precision::Confusion()));
|
||||
if (ProfOnSpine && !POS) return;
|
||||
}
|
||||
|
||||
myEvolved.Perform(Spine, Profil, Axis, Join, Solid);
|
||||
}
|
||||
|
||||
myEvolved.Perform(Spine,Profil,Axis,Join,Solid);
|
||||
Build();
|
||||
Done();
|
||||
}
|
||||
@@ -72,20 +84,31 @@ BRepOffsetAPI_MakeEvolved::BRepOffsetAPI_MakeEvolved(const TopoDS_Face& Spin
|
||||
const Standard_Boolean AxeProf,
|
||||
const Standard_Boolean Solid,
|
||||
const Standard_Boolean ProfOnSpine,
|
||||
const Standard_Real Tol)
|
||||
const Standard_Boolean theIsVolume,
|
||||
const Standard_Real Tol)
|
||||
{
|
||||
gp_Ax3 Axis(gp_Pnt(0.,0.,0.),
|
||||
gp_Dir(0.,0.,1.),
|
||||
gp_Dir(1.,0.,0.));
|
||||
if (theIsVolume)
|
||||
{
|
||||
myVolume.Perform(TopoDS::Wire(TopoDS_Iterator(Spine).Value()), Profil, Tol);
|
||||
}
|
||||
else
|
||||
{
|
||||
gp_Ax3 Axis(gp_Pnt(0., 0., 0.),
|
||||
gp_Dir(0., 0., 1.),
|
||||
gp_Dir(1., 0., 0.));
|
||||
|
||||
if ( !AxeProf) {
|
||||
Standard_Boolean POS;
|
||||
BRepFill::Axe(Spine,Profil,Axis,POS,Tol);
|
||||
if (ProfOnSpine && !POS) return;
|
||||
if (!AxeProf)
|
||||
{
|
||||
Standard_Boolean POS;
|
||||
BRepFill::Axe(Spine, Profil, Axis, POS, Max(Tol, Precision::Confusion()));
|
||||
if (ProfOnSpine && !POS) return;
|
||||
}
|
||||
|
||||
myEvolved.Perform(Spine, Profil, Axis, Join, Solid);
|
||||
}
|
||||
|
||||
myEvolved.Perform(Spine,Profil,Axis,Join,Solid);
|
||||
Build();
|
||||
Done();
|
||||
}
|
||||
|
||||
|
||||
@@ -107,8 +130,16 @@ const BRepFill_Evolved& BRepOffsetAPI_MakeEvolved::Evolved() const
|
||||
|
||||
void BRepOffsetAPI_MakeEvolved::Build()
|
||||
{
|
||||
myShape = myEvolved.Shape();
|
||||
if (myEvolved.IsDone()) Done();
|
||||
if (myEvolved.IsDone())
|
||||
{
|
||||
myShape = myEvolved.Shape();
|
||||
}
|
||||
else if (myVolume.IsDone())
|
||||
{
|
||||
myShape = myVolume.Shape();
|
||||
}
|
||||
|
||||
Done();
|
||||
}
|
||||
|
||||
|
||||
|
@@ -22,6 +22,7 @@
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <BRepFill_Evolved.hxx>
|
||||
#include <BRepFill_Voluved.hxx>
|
||||
#include <BRepBuilderAPI_MakeShape.hxx>
|
||||
#include <GeomAbs_JoinType.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
@@ -66,7 +67,7 @@ public:
|
||||
|
||||
Standard_EXPORT BRepOffsetAPI_MakeEvolved();
|
||||
|
||||
Standard_EXPORT BRepOffsetAPI_MakeEvolved(const TopoDS_Wire& Spine, const TopoDS_Wire& Profil, const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Boolean AxeProf = Standard_True, const Standard_Boolean Solid = Standard_False, const Standard_Boolean ProfOnSpine = Standard_False, const Standard_Real Tol = 0.0000001);
|
||||
Standard_EXPORT BRepOffsetAPI_MakeEvolved(const TopoDS_Wire& Spine, const TopoDS_Wire& Profil, const GeomAbs_JoinType Join/* = GeomAbs_Arc*/, const Standard_Boolean AxeProf/* = Standard_True*/, const Standard_Boolean Solid/* = Standard_False*/, const Standard_Boolean ProfOnSpine/* = Standard_False*/, const Standard_Boolean theIsVolume, const Standard_Real Tol/* = Precision::Confusion()*/);
|
||||
|
||||
//! These constructors construct an evolved shape by sweeping the profile
|
||||
//! Profile along the spine Spine.
|
||||
@@ -88,7 +89,7 @@ public:
|
||||
//! axis passing along the vertex and the normal to the
|
||||
//! plane of the spine. At present, this is the only
|
||||
//! construction type implemented.
|
||||
Standard_EXPORT BRepOffsetAPI_MakeEvolved(const TopoDS_Face& Spine, const TopoDS_Wire& Profil, const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Boolean AxeProf = Standard_True, const Standard_Boolean Solid = Standard_False, const Standard_Boolean ProfOnSpine = Standard_False, const Standard_Real Tol = 0.0000001);
|
||||
Standard_EXPORT BRepOffsetAPI_MakeEvolved(const TopoDS_Face& Spine, const TopoDS_Wire& Profil, const GeomAbs_JoinType Join/* = GeomAbs_Arc*/, const Standard_Boolean AxeProf/* = Standard_True*/, const Standard_Boolean Solid/* = Standard_False*/, const Standard_Boolean ProfOnSpine/* = Standard_False*/, const Standard_Boolean theIsVolume, const Standard_Real Tol/* = Precision::Confusion()*/);
|
||||
|
||||
Standard_EXPORT const BRepFill_Evolved& Evolved() const;
|
||||
|
||||
@@ -118,9 +119,8 @@ protected:
|
||||
private:
|
||||
|
||||
|
||||
|
||||
BRepFill_Evolved myEvolved;
|
||||
|
||||
BRepFill_Voluved myVolume;
|
||||
|
||||
};
|
||||
|
||||
|
@@ -33,8 +33,6 @@
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
BRepOffsetAPI_MakePipeShell::BRepOffsetAPI_MakePipeShell(const TopoDS_Wire& Spine)
|
||||
|
||||
|
||||
{
|
||||
myPipe = new (BRepFill_PipeShell) (Spine);
|
||||
SetTolerance();
|
||||
@@ -255,7 +253,7 @@ void BRepOffsetAPI_MakePipeShell::SetMaxSegments(const Standard_Integer NewMaxSe
|
||||
//function :Build()
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void BRepOffsetAPI_MakePipeShell::Build()
|
||||
void BRepOffsetAPI_MakePipeShell::Build()
|
||||
{
|
||||
Standard_Boolean Ok;
|
||||
Ok = myPipe->Build();
|
||||
|
@@ -211,7 +211,7 @@ public:
|
||||
//! discontinuities are treated like round
|
||||
//! corner. The corner is treated as rotation
|
||||
//! of the profile around an axis which
|
||||
//! passes through the point of the spine?s
|
||||
//! passes through the point of the spine's
|
||||
//! fracture. This axis is based on cross
|
||||
//! product of directions tangent to the
|
||||
//! adjacent segments of the spine at their common point.
|
||||
@@ -276,7 +276,6 @@ private:
|
||||
|
||||
Handle(BRepFill_PipeShell) myPipe;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
@@ -237,33 +237,84 @@ Standard_Integer evolved(Draw_Interpretor& di, Standard_Integer n, const char**
|
||||
|
||||
if ( n < 4 ) return 1;
|
||||
Standard_Boolean IsAFace = Standard_False;
|
||||
Standard_Boolean Solid = (!strcmp(a[0],"evolvedsolid"));
|
||||
Standard_Boolean Solid = Standard_False;
|
||||
Standard_Boolean isVolume = Standard_False;
|
||||
Standard_Boolean hasToComputeAxes = Standard_False;
|
||||
Standard_Real aTolerance = 0.0;
|
||||
TopoDS_Shape Base;
|
||||
TopoDS_Wire Prof;
|
||||
|
||||
for (Standard_Integer i = 2; i < n; i++)
|
||||
{
|
||||
if (a[i][0] != '-')
|
||||
{
|
||||
di << "Error: wrong option!\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!Solid && !strcmp(a[i], "-solid"))
|
||||
{
|
||||
Solid = Standard_True;
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (a[i][1])
|
||||
{
|
||||
case 's':
|
||||
{
|
||||
Base = DBRep::Get(a[++i], TopAbs_WIRE, Standard_False);
|
||||
if (Base.IsNull())
|
||||
{
|
||||
Base = DBRep::Get(a[i], TopAbs_FACE, Standard_False);
|
||||
IsAFace = Standard_True;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'p':
|
||||
{
|
||||
Prof = TopoDS::Wire(DBRep::Get(a[++i], TopAbs_WIRE, Standard_False));
|
||||
}
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
{
|
||||
isVolume = Standard_True;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'a':
|
||||
{
|
||||
hasToComputeAxes = Standard_True;
|
||||
}
|
||||
break;
|
||||
|
||||
case 't':
|
||||
{
|
||||
aTolerance = Draw::Atof(a[++i]);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
di << "Error: Unknown option!\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
TopoDS_Shape Base = DBRep::Get(a[2],TopAbs_WIRE,Standard_False);
|
||||
if ( Base.IsNull()) {
|
||||
Base = DBRep::Get(a[2],TopAbs_FACE,Standard_False);
|
||||
IsAFace = Standard_True;
|
||||
if (Base.IsNull() || Prof.IsNull())
|
||||
{
|
||||
di << "Error: Null-shapes are not allowed\n";
|
||||
return 1;
|
||||
}
|
||||
if ( Base.IsNull()) return 1;
|
||||
|
||||
TopoDS_Shape InpuTShape(DBRep::Get(a[3],TopAbs_WIRE,Standard_False));
|
||||
TopoDS_Wire Prof = TopoDS::Wire(InpuTShape);
|
||||
// TopoDS_Wire Prof =
|
||||
// TopoDS::Wire(DBRep::Get(a[3],TopAbs_WIRE,Standard_False));
|
||||
if ( Prof.IsNull()) return 1;
|
||||
TopoDS_Shape Volevo = IsAFace ? BRepOffsetAPI_MakeEvolved(TopoDS::Face(Base),
|
||||
Prof, GeomAbs_Arc, !hasToComputeAxes,
|
||||
Solid, Standard_False, isVolume, aTolerance) :
|
||||
BRepOffsetAPI_MakeEvolved(TopoDS::Wire(Base),
|
||||
Prof, GeomAbs_Arc, !hasToComputeAxes,
|
||||
Solid, Standard_False, isVolume, aTolerance);
|
||||
|
||||
if (IsAFace) {
|
||||
TopoDS_Shape Volevo
|
||||
= BRepOffsetAPI_MakeEvolved(TopoDS::Face(Base),Prof,GeomAbs_Arc,n == 4,Solid);
|
||||
DBRep::Set(a[1],Volevo);
|
||||
}
|
||||
else {
|
||||
TopoDS_Shape Volevo
|
||||
= BRepOffsetAPI_MakeEvolved(TopoDS::Wire(Base),Prof,GeomAbs_Arc,n == 4,Solid);
|
||||
DBRep::Set(a[1],Volevo);
|
||||
}
|
||||
DBRep::Set(a[1],Volevo);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -785,7 +836,11 @@ static Standard_Integer buildsweep(Draw_Interpretor& di,
|
||||
Sweep->SetTransitionMode(Transition);
|
||||
}
|
||||
// Reading solid ?
|
||||
if ((n>cur) && (!strcmp(a[cur],"-S")) ) mksolid = Standard_True;
|
||||
if ((n > cur) && (!strcmp(a[cur], "-S")))
|
||||
{
|
||||
mksolid = Standard_True;
|
||||
++cur;
|
||||
}
|
||||
|
||||
// Calcul le resultat
|
||||
Sweep->Build();
|
||||
@@ -979,10 +1034,6 @@ void BRepTest::SweepCommands(Draw_Interpretor& theCommands)
|
||||
"evolved , no args to get help",
|
||||
__FILE__,evolved,g);
|
||||
|
||||
theCommands.Add("evolvedsolid",
|
||||
"evolved , no args to get help",
|
||||
__FILE__,evolved,g);
|
||||
|
||||
theCommands.Add("pruled",
|
||||
"pruled result Edge1/Wire1 Edge2/Wire2",
|
||||
__FILE__,pruled,g);
|
||||
|
@@ -117,7 +117,7 @@ LocOpe_DPrism::LocOpe_DPrism(const TopoDS_Face& Spine,
|
||||
|
||||
myProfile = BRepLib_MakeWire(myProfile1,myProfile2,myProfile3);
|
||||
|
||||
myDPrism.Perform(mySpine,myProfile,gp::XOY());
|
||||
myDPrism.Perform(mySpine,myProfile,gp::XOY(), GeomAbs_Arc, Standard_False);
|
||||
|
||||
|
||||
if (myDPrism.IsDone()) {
|
||||
@@ -370,7 +370,7 @@ LocOpe_DPrism::LocOpe_DPrism(const TopoDS_Face& Spine,
|
||||
myProfile1 = BRepLib_MakeEdge(Vert4, Vert1);
|
||||
|
||||
myProfile = BRepLib_MakeWire(myProfile1,myProfile2,myProfile3);
|
||||
myDPrism.Perform(mySpine,myProfile,gp::XOY());
|
||||
myDPrism.Perform(mySpine,myProfile,gp::XOY(), GeomAbs_Arc, Standard_False);
|
||||
|
||||
|
||||
if (myDPrism.IsDone()) {
|
||||
|
@@ -142,7 +142,8 @@ public:
|
||||
PAppend(pNew, theIter);
|
||||
}
|
||||
|
||||
//! Append another list at the end
|
||||
//! Append another list at the end.
|
||||
//! After this operation, theOther list will be cleared.
|
||||
void Append (NCollection_List& theOther)
|
||||
{
|
||||
if (this == &theOther || theOther.Extent()<1)
|
||||
|
@@ -165,15 +165,19 @@ void math_NewtonMinimum::Perform(math_MultipleVarFunctionWithHessian& F,
|
||||
Standard_Real aMult = RealLast();
|
||||
for(Standard_Integer anIdx = 1; anIdx <= myLeft.Upper(); anIdx++)
|
||||
{
|
||||
const Standard_Real anAbsStep = Abs(TheStep(anIdx));
|
||||
if (anAbsStep < gp::Resolution())
|
||||
continue;
|
||||
|
||||
if (suivant->Value(anIdx) < myLeft(anIdx))
|
||||
{
|
||||
Standard_Real aValue = Abs(precedent->Value(anIdx) - myLeft(anIdx)) / Abs(TheStep(anIdx));
|
||||
Standard_Real aValue = Abs(precedent->Value(anIdx) - myLeft(anIdx)) / anAbsStep;
|
||||
aMult = Min (aValue, aMult);
|
||||
}
|
||||
|
||||
if (suivant->Value(anIdx) > myRight(anIdx))
|
||||
{
|
||||
Standard_Real aValue = Abs(precedent->Value(anIdx) - myRight(anIdx)) / Abs(TheStep(anIdx));
|
||||
Standard_Real aValue = Abs(precedent->Value(anIdx) - myRight(anIdx)) / anAbsStep;
|
||||
aMult = Min (aValue, aMult);
|
||||
}
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@ checkshape b
|
||||
restore [locate_data_file pro19424b.brep] p
|
||||
checkshape p
|
||||
|
||||
if [catch {evolved result b p o } catch_result] {
|
||||
if [catch {evolved result -s b -p p -a } catch_result] {
|
||||
puts "Faulty PRO19424 : function EVOLVED works wrongly"
|
||||
} else {
|
||||
puts "PRO19424 OK: function EVOLVED works properly"
|
||||
|
@@ -8,4 +8,4 @@ puts ""
|
||||
|
||||
restore [locate_data_file OCC26470-ClosedWire.brep] a
|
||||
restore [locate_data_file OCC26470-wprof1.brep] b
|
||||
evolved res a b o
|
||||
evolved res -s a -p b -a
|
||||
|
@@ -8,5 +8,5 @@ puts ""
|
||||
|
||||
restore [locate_data_file OCC26470-ClosedWire.brep] a
|
||||
restore [locate_data_file OCC26470-wprof2.brep] b
|
||||
evolved res a b o
|
||||
evolved res -s a -p b -a
|
||||
checkshape res
|
||||
|
13
tests/evolved/begin
Normal file
13
tests/evolved/begin
Normal file
@@ -0,0 +1,13 @@
|
||||
# To prevent loops limit to 10 minutes
|
||||
cpulimit 60
|
||||
|
||||
if { [array get Draw_Groups "TOPOLOGY Feature commands"] == "" } {
|
||||
pload TOPTEST
|
||||
}
|
||||
|
||||
if { [info exists imagedir] == 0 } {
|
||||
set imagedir .
|
||||
}
|
||||
if { [info exists test_image ] == 0 } {
|
||||
set test_image photo
|
||||
}
|
2
tests/evolved/end
Normal file
2
tests/evolved/end
Normal file
@@ -0,0 +1,2 @@
|
||||
# to end a test script
|
||||
puts "TEST COMPLETED"
|
1
tests/evolved/evolved/begin
Normal file
1
tests/evolved/evolved/begin
Normal file
@@ -0,0 +1 @@
|
||||
set subgroup evolved
|
11
tests/evolved/evolved/bug26470_1
Normal file
11
tests/evolved/evolved/bug26470_1
Normal file
@@ -0,0 +1,11 @@
|
||||
puts "========"
|
||||
puts "OCC26470"
|
||||
puts "========"
|
||||
puts ""
|
||||
##################################################
|
||||
# BRepFill_Evolved: exception and invalid result
|
||||
##################################################
|
||||
|
||||
restore [locate_data_file OCC26470-ClosedWire.brep] a
|
||||
restore [locate_data_file OCC26470-wprof1.brep] b
|
||||
evolved res -s a -p b -a
|
12
tests/evolved/evolved/bug26470_2
Normal file
12
tests/evolved/evolved/bug26470_2
Normal file
@@ -0,0 +1,12 @@
|
||||
puts "========"
|
||||
puts "OCC26470"
|
||||
puts "========"
|
||||
puts ""
|
||||
##################################################
|
||||
# BRepFill_Evolved: exception and invalid result
|
||||
##################################################
|
||||
|
||||
restore [locate_data_file OCC26470-ClosedWire.brep] a
|
||||
restore [locate_data_file OCC26470-wprof2.brep] b
|
||||
evolved res -s a -p b -a
|
||||
checkshape res
|
20
tests/evolved/evolved/pro19424
Normal file
20
tests/evolved/evolved/pro19424
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
puts "=========="
|
||||
puts "PRO19424"
|
||||
puts "=========="
|
||||
|
||||
restore [locate_data_file pro19424a.brep] b
|
||||
checkshape b
|
||||
restore [locate_data_file pro19424b.brep] p
|
||||
checkshape p
|
||||
|
||||
if [catch {evolved result -s b -p p -a } catch_result] {
|
||||
puts "Faulty PRO19424 : function EVOLVED works wrongly"
|
||||
} else {
|
||||
puts "PRO19424 OK: function EVOLVED works properly"
|
||||
}
|
||||
|
||||
checkprops result -s 246.506
|
||||
checkshape result
|
||||
checkview -display result -2d -path ${imagedir}/${test_image}.png
|
||||
|
2
tests/evolved/grids.list
Normal file
2
tests/evolved/grids.list
Normal file
@@ -0,0 +1,2 @@
|
||||
001 evolved
|
||||
002 voluved
|
1
tests/evolved/parse.rules
Normal file
1
tests/evolved/parse.rules
Normal file
@@ -0,0 +1 @@
|
||||
FAILED /\bFaulty\b/ bad shape
|
24
tests/evolved/voluved/AGT001
Normal file
24
tests/evolved/voluved/AGT001
Normal file
@@ -0,0 +1,24 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
profile p F -1 10 TT -1 -1 C 1 90 TT 10 -1 W
|
||||
polyline t -1 -1 0 0 -1.5 5
|
||||
evolved result -s p -p t -a -solid -v
|
||||
|
||||
checkprops result -s 268.774 -v 245.265
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 1.5e-7
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
24
tests/evolved/voluved/AGT002
Normal file
24
tests/evolved/voluved/AGT002
Normal file
@@ -0,0 +1,24 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
polyline p 0 0 0 0 10 0 20 10 0 20 0 0 13 0 0 13 5 0 6 5 0 6 0 0 0 0 0
|
||||
polyline t -2 2 0 0 2 5 0 2 10 1 2 10 1 2 0 -2 2 0
|
||||
evolved result -s p -p t -a -solid -v
|
||||
|
||||
checkprops result -s 1649.58 -v 1023.79
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 1.5e-7
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
24
tests/evolved/voluved/AGT003
Normal file
24
tests/evolved/voluved/AGT003
Normal file
@@ -0,0 +1,24 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
polyline p 0 0 0 0 10 0 20 10 0 20 0 0 13 0 0 13 5 0 6 5 0 6 0 0 0 0 0
|
||||
polyline t -1 2 0 0 1 5 0 1 10 0.5 0.5 10 0.5 0.5 0
|
||||
evolved result -s p -p t -a -solid -v
|
||||
|
||||
checkprops result -s 1803.56 -v 532.942
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 5.0e-6
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
25
tests/evolved/voluved/AGT004
Normal file
25
tests/evolved/voluved/AGT004
Normal file
@@ -0,0 +1,25 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
profile p X 10 Y 2 X -10 W
|
||||
polyline t -1 1 0 1 1 10
|
||||
evolved result -s p -p t -a -solid -v
|
||||
|
||||
checkprops result -s 287.517 -v 211.903
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
# See issue #0029657
|
||||
#if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
# puts "Error: bopargcheck has found some faulties in res2"
|
||||
#}
|
||||
|
||||
checkmaxtol result -ref 1.5e-007
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
24
tests/evolved/voluved/AGT005
Normal file
24
tests/evolved/voluved/AGT005
Normal file
@@ -0,0 +1,24 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
profile p X 10 Y 2 X -10 W
|
||||
polyline t -1 1 0 1.2 1 10
|
||||
evolved result -s p -p t -a -solid -v
|
||||
|
||||
checkprops result -s 266.546 -v 192.639
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 1.5e-7
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
25
tests/evolved/voluved/AGT006
Normal file
25
tests/evolved/voluved/AGT006
Normal file
@@ -0,0 +1,25 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
# Different results in command "evolved" with and without "-v"
|
||||
profile p X 10 Y 2 X -10 W
|
||||
profile t O 0 1 0 P 0 1 0 0 0 1 X 5 T -1 2 WW
|
||||
evolved result -s p -p t -a -solid -v
|
||||
|
||||
checkprops result -s 137.58 -v 80.9221
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 0.00011504480776721356
|
||||
|
||||
smallview
|
||||
don result p t
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
28
tests/evolved/voluved/AGT007
Normal file
28
tests/evolved/voluved/AGT007
Normal file
@@ -0,0 +1,28 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
# Result contains intersected faces
|
||||
profile p X 15 C 1 90 Y 5 X -7 Y -2 C -1 90 X -8 W
|
||||
profile t O 0 1 0 P 0 1 0 0 0 1 X 5 T -1 2 WW
|
||||
evolved result -s p -p t -a -solid -v
|
||||
|
||||
checkprops result -s 308.284 -v 195.169
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 1.5e-7
|
||||
|
||||
regexp {Tolerance MAX=([-0-9.+eE]+)} [tolerance result] full toler
|
||||
checkreal MAXTOL $toler 1.5e-7 0.0 0.1
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
25
tests/evolved/voluved/AGT008
Normal file
25
tests/evolved/voluved/AGT008
Normal file
@@ -0,0 +1,25 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
# Different results with and without "-v"; internal/intersecting faces created
|
||||
profile p X 10 Y 2 X -10 W
|
||||
profile t O 0 1 0 P 0 1 0 0 0 1 X 2 RR -45 C 1 90 T -1 2 WW
|
||||
evolved result -s p -p t -a -solid -v
|
||||
|
||||
checkprops result -s 129.967 -v 70.6801
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 3.25e-007
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
25
tests/evolved/voluved/AGT009
Normal file
25
tests/evolved/voluved/AGT009
Normal file
@@ -0,0 +1,25 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
# Solids are correctly built but r_1 should be eliminated as junk
|
||||
profile p X 10 Y 2 X -10 W
|
||||
profile t O 0 1 0 P 0 1 0 0 0 1 RR 30 C -10 60 WW
|
||||
evolved result -s p -p t -a -solid -v
|
||||
|
||||
checkprops result -s 308.284 -v 195.169
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 1.5e-7
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
26
tests/evolved/voluved/HMC001
Normal file
26
tests/evolved/voluved/HMC001
Normal file
@@ -0,0 +1,26 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
restore [locate_data_file bug29523_cut_extrudewire00.brep] sw
|
||||
restore [locate_data_file bug29523_cut_toolwire00.brep] tw
|
||||
|
||||
evolved result -s sw -p tw -solid -a -v
|
||||
|
||||
checkprops result -s 1.94263e+010 -v 6.2718e+013
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 0.00013577499521488808
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
||||
|
26
tests/evolved/voluved/HMC002
Normal file
26
tests/evolved/voluved/HMC002
Normal file
@@ -0,0 +1,26 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
restore [locate_data_file bug29523_cut_extrudewire01.brep] sw
|
||||
restore [locate_data_file bug29523_cut_toolwire01.brep] tw
|
||||
|
||||
evolved result -s sw -p tw -solid -a -v
|
||||
|
||||
checkprops result -s 2.18924e+011 -v 2.47705e+014
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 1.0e-7
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
||||
|
26
tests/evolved/voluved/HMC003
Normal file
26
tests/evolved/voluved/HMC003
Normal file
@@ -0,0 +1,26 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
restore [locate_data_file bug29523_cut_extrudewire02.brep] sw
|
||||
restore [locate_data_file bug29523_cut_toolwire02.brep] tw
|
||||
|
||||
evolved result -s sw -p tw -solid -a -v
|
||||
|
||||
checkprops result -s 2.18616e+011 -v 2.46411e+014
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 1.6e-5
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
||||
|
26
tests/evolved/voluved/HMC004
Normal file
26
tests/evolved/voluved/HMC004
Normal file
@@ -0,0 +1,26 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
restore [locate_data_file bug29523_cut_extrudewire03.brep] sw
|
||||
restore [locate_data_file bug29523_cut_toolwire03.brep] tw
|
||||
|
||||
evolved result -s sw -p tw -solid -a -v
|
||||
|
||||
checkprops result -s 3.02832e+010 -v 4.97434e+013
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 7.0e-7
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
||||
|
26
tests/evolved/voluved/HMC005
Normal file
26
tests/evolved/voluved/HMC005
Normal file
@@ -0,0 +1,26 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
restore [locate_data_file bug29523_cut_extrudewire04.brep] sw
|
||||
restore [locate_data_file bug29523_cut_toolwire04.brep] tw
|
||||
|
||||
evolved result -s sw -p tw -solid -a -v
|
||||
|
||||
checkprops result -s 1.94263e+010 -v 6.2718e+013
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 0.00013577500067185611
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
||||
|
26
tests/evolved/voluved/HMC006
Normal file
26
tests/evolved/voluved/HMC006
Normal file
@@ -0,0 +1,26 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
restore [locate_data_file bug29523_cut_extrudewire05.brep] sw
|
||||
restore [locate_data_file bug29523_cut_toolwire05.brep] tw
|
||||
|
||||
evolved result -s sw -p tw -solid -a -v
|
||||
|
||||
checkprops result -s 2.84249e+010 -v 8.95554e+013
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 4.4607852024588505e-007
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
||||
|
26
tests/evolved/voluved/HMC007
Normal file
26
tests/evolved/voluved/HMC007
Normal file
@@ -0,0 +1,26 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
restore [locate_data_file bug29523_cut_extrudewire06.brep] sw
|
||||
restore [locate_data_file bug29523_cut_toolwire06.brep] tw
|
||||
|
||||
evolved result -s sw -p tw -solid -a -v
|
||||
|
||||
checkprops result -s 1.99565e+011 -v 6.75431e+014
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 4.7e-6
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
||||
|
28
tests/evolved/voluved/HMC008
Normal file
28
tests/evolved/voluved/HMC008
Normal file
@@ -0,0 +1,28 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
cpulimit 100
|
||||
|
||||
restore [locate_data_file bug29523_cut_extrudewire07.brep] sw
|
||||
restore [locate_data_file bug29523_cut_toolwire07.brep] tw
|
||||
|
||||
evolved result -s sw -p tw -solid -a -v
|
||||
|
||||
checkprops result -s 1.99565e+011 -v 6.75431e+014
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 4.7e-6
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
||||
|
28
tests/evolved/voluved/HMC009
Normal file
28
tests/evolved/voluved/HMC009
Normal file
@@ -0,0 +1,28 @@
|
||||
puts "=========="
|
||||
puts "OCC29523"
|
||||
puts "=========="
|
||||
|
||||
cpulimit 100
|
||||
|
||||
restore [locate_data_file bug29523_cut_extrudewire08.brep] sw
|
||||
restore [locate_data_file bug29523_cut_toolwire08.brep] tw
|
||||
|
||||
evolved result -s sw -p tw -solid -a -v
|
||||
|
||||
checkprops result -s 1.99565e+011 -v 6.75431e+014
|
||||
checkshape result
|
||||
|
||||
checknbshapes result -solid 1 -shell 1
|
||||
|
||||
if {[regexp "Faulties" [bopargcheck result]]} {
|
||||
puts "Error: bopargcheck has found some faulties in res2"
|
||||
}
|
||||
|
||||
checkmaxtol result -ref 4.7e-6
|
||||
|
||||
smallview
|
||||
don result sw tw
|
||||
fit
|
||||
|
||||
checkview -screenshot -2d -path ${imagedir}/${test_image}.png
|
||||
|
1
tests/evolved/voluved/begin
Normal file
1
tests/evolved/voluved/begin
Normal file
@@ -0,0 +1 @@
|
||||
set subgroup voluved
|
11
tests/evolved/voluved/bug26470_1
Normal file
11
tests/evolved/voluved/bug26470_1
Normal file
@@ -0,0 +1,11 @@
|
||||
puts "========"
|
||||
puts "OCC26470"
|
||||
puts "========"
|
||||
puts ""
|
||||
##################################################
|
||||
# BRepFill_Evolved: exception and invalid result
|
||||
##################################################
|
||||
|
||||
restore [locate_data_file OCC26470-ClosedWire.brep] a
|
||||
restore [locate_data_file OCC26470-wprof1.brep] b
|
||||
evolved res -s a -p b -a -v
|
12
tests/evolved/voluved/bug26470_2
Normal file
12
tests/evolved/voluved/bug26470_2
Normal file
@@ -0,0 +1,12 @@
|
||||
puts "========"
|
||||
puts "OCC26470"
|
||||
puts "========"
|
||||
puts ""
|
||||
##################################################
|
||||
# BRepFill_Evolved: exception and invalid result
|
||||
##################################################
|
||||
|
||||
restore [locate_data_file OCC26470-ClosedWire.brep] a
|
||||
restore [locate_data_file OCC26470-wprof2.brep] b
|
||||
evolved res -s a -p b -a -v
|
||||
checkshape res
|
20
tests/evolved/voluved/pro19424
Normal file
20
tests/evolved/voluved/pro19424
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
puts "=========="
|
||||
puts "PRO19424"
|
||||
puts "=========="
|
||||
|
||||
restore [locate_data_file pro19424a.brep] b
|
||||
checkshape b
|
||||
restore [locate_data_file pro19424b.brep] p
|
||||
checkshape p
|
||||
|
||||
if [catch {evolved result -s b -p p -a -v } catch_result] {
|
||||
puts "Faulty PRO19424 : function EVOLVED works wrongly"
|
||||
} else {
|
||||
puts "PRO19424 OK: function EVOLVED works properly"
|
||||
}
|
||||
|
||||
checkprops result -s 246.506
|
||||
checkshape result
|
||||
checkview -display result -2d -path ${imagedir}/${test_image}.png
|
||||
|
Reference in New Issue
Block a user