mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-10 18:51:21 +03:00
0027065: BRepOffsetAPI_MakePipe misses definition of virtual method Generated()
Virtual method Generated() inherited from BRepPrimAPI_MakeSweep is overridden in class BRepOffsetAPI_MakePipe, providing information on shapes generated from the profile.
This commit is contained in:
parent
9e5394288d
commit
b3cbd47d26
@ -15,11 +15,11 @@
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
|
||||
class Pipe from BRepFill
|
||||
class Pipe from BRepFill
|
||||
|
||||
---Purpose: Create a shape by sweeping a shape (the profile)
|
||||
-- along a wire (the spine).
|
||||
--
|
||||
--
|
||||
-- For each edge or vertex from the spine the user
|
||||
-- may ask for the shape generated from each subshape
|
||||
-- of the profile.
|
||||
@ -28,38 +28,40 @@ uses
|
||||
|
||||
HArray2OfShape from TopTools,
|
||||
MapOfShape from TopTools,
|
||||
ListOfShape from TopTools,
|
||||
DataMapOfShapeHArray2OfShape from BRepFill,
|
||||
DataMapOfShapeListOfShape from TopTools,
|
||||
LocationLaw from BRepFill,
|
||||
Shape from TopoDS,
|
||||
Face from TopoDS,
|
||||
Wire from TopoDS,
|
||||
Edge from TopoDS,
|
||||
Vertex from TopoDS,
|
||||
Vertex from TopoDS,
|
||||
Pnt from gp,
|
||||
Trsf from gp,
|
||||
Shape from GeomAbs,
|
||||
Trihedron from GeomFill
|
||||
|
||||
raises
|
||||
DomainError from Standard,
|
||||
DomainError from Standard,
|
||||
NotDone from StdFail
|
||||
|
||||
is
|
||||
|
||||
Create returns Pipe from BRepFill;
|
||||
|
||||
Create ( Spine : Wire from TopoDS;
|
||||
|
||||
Create ( Spine : Wire from TopoDS;
|
||||
Profile : Shape from TopoDS;
|
||||
aMode : Trihedron from GeomFill = GeomFill_IsCorrectedFrenet;
|
||||
ForceApproxC1 : Boolean from Standard = Standard_False;
|
||||
GeneratePartCase : Boolean from Standard = Standard_False)
|
||||
GeneratePartCase : Boolean from Standard = Standard_False)
|
||||
returns Pipe from BRepFill;
|
||||
|
||||
Perform (me : in out; Spine : Wire from TopoDS;
|
||||
|
||||
Perform (me : in out; Spine : Wire from TopoDS;
|
||||
Profile : Shape from TopoDS;
|
||||
GeneratePartCase : Boolean from Standard = Standard_False)
|
||||
GeneratePartCase : Boolean from Standard = Standard_False)
|
||||
is static;
|
||||
|
||||
|
||||
Spine(me) returns Shape from TopoDS
|
||||
---C++ : return const &
|
||||
is static;
|
||||
@ -74,7 +76,7 @@ is
|
||||
|
||||
ErrorOnSurface (me)
|
||||
returns Real from Standard;
|
||||
|
||||
|
||||
FirstShape(me) returns Shape from TopoDS
|
||||
---C++ : return const &
|
||||
is static;
|
||||
@ -83,27 +85,30 @@ is
|
||||
---C++ : return const &
|
||||
is static;
|
||||
|
||||
Generated(me: in out; S: Shape from TopoDS; L: in out ListOfShape from TopTools);
|
||||
---Purpose: Returns the list of shapes generated from the shape <S>.
|
||||
|
||||
Face(me : in out; ESpine, EProfile : Edge from TopoDS)
|
||||
returns Face from TopoDS
|
||||
---Purpose: Returns the face created from an edge of the spine
|
||||
-- and an edge of the profile.
|
||||
raises
|
||||
DomainError from Standard
|
||||
DomainError from Standard
|
||||
---Purpose: if the edges are not in the spine or the profile
|
||||
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
Edge(me : in out; ESpine : Edge from TopoDS; VProfile : Vertex from TopoDS)
|
||||
returns Edge from TopoDS
|
||||
---Purpose: Returns the edge created from an edge of the spine
|
||||
-- and a vertex of the profile.
|
||||
raises
|
||||
DomainError from Standard
|
||||
DomainError from Standard
|
||||
---Purpose: if the edge or the vertex are not in the spine or
|
||||
-- the profile.
|
||||
|
||||
|
||||
is static;
|
||||
|
||||
|
||||
Section(me; VSpine : Vertex from TopoDS)
|
||||
returns Shape from TopoDS
|
||||
---Purpose: Returns the shape created from the profile at the
|
||||
@ -111,50 +116,50 @@ is
|
||||
raises
|
||||
DomainError from Standard
|
||||
---Purpose: if the vertex is not in the Spine
|
||||
is static;
|
||||
|
||||
|
||||
PipeLine(me : in out; Point : Pnt from gp)
|
||||
is static;
|
||||
|
||||
|
||||
PipeLine(me : in out; Point : Pnt from gp)
|
||||
---Purpose: Create a Wire by sweeping the Point along the <spine>
|
||||
returns Wire from TopoDS
|
||||
returns Wire from TopoDS
|
||||
raises
|
||||
DomainError from Standard
|
||||
---Purpose: if the <Spine> is undefined
|
||||
---Purpose: if the <Spine> is undefined
|
||||
is static;
|
||||
|
||||
|
||||
--
|
||||
-- Private methods
|
||||
--
|
||||
|
||||
MakeShape(me : in out; S : Shape from TopoDS;
|
||||
--
|
||||
|
||||
MakeShape(me : in out; S : Shape from TopoDS;
|
||||
FirstShape, LastShape : Shape from TopoDS)
|
||||
returns Shape from TopoDS
|
||||
---Purpose: Auxiliary recursive method used to build the
|
||||
-- result.
|
||||
-- result.
|
||||
is static private;
|
||||
|
||||
|
||||
FindEdge(me; S : Shape from TopoDS;
|
||||
E : Edge from TopoDS;
|
||||
Init : in out Integer)
|
||||
FindEdge(me; S : Shape from TopoDS;
|
||||
E : Edge from TopoDS;
|
||||
Init : in out Integer)
|
||||
---Purpose: Auxiliary recursive method used to find the edge's index
|
||||
returns Integer
|
||||
is static private;
|
||||
|
||||
FindVertex(me; S : Shape from TopoDS;
|
||||
V : Vertex from TopoDS;
|
||||
Init : in out Integer)
|
||||
FindVertex(me; S : Shape from TopoDS;
|
||||
V : Vertex from TopoDS;
|
||||
Init : in out Integer)
|
||||
returns Integer
|
||||
is static private;
|
||||
|
||||
is static private;
|
||||
|
||||
DefineRealSegmax(me : in out)
|
||||
is static private;
|
||||
|
||||
is static private;
|
||||
|
||||
RebuildTopOrBottomFace(me; aFace: Shape from TopoDS;
|
||||
IsTop: Boolean from Standard)
|
||||
is static private;
|
||||
|
||||
is static private;
|
||||
|
||||
ShareFaces(me: in out; theShape: Shape from TopoDS;
|
||||
theInitialFacesLen: Integer;
|
||||
theInitialEdgesLen: Integer;
|
||||
@ -164,30 +169,31 @@ is
|
||||
-- Returns the shared shape. If theShape is not modified this
|
||||
-- method returns it.
|
||||
returns Shape from TopoDS
|
||||
is static private;
|
||||
|
||||
is static private;
|
||||
|
||||
fields
|
||||
mySpine : Wire from TopoDS;
|
||||
myProfile : Shape from TopoDS;
|
||||
myShape : Shape from TopoDS;
|
||||
myTrsf : Trsf from gp;
|
||||
myShape : Shape from TopoDS;
|
||||
myTrsf : Trsf from gp;
|
||||
myLoc : LocationLaw from BRepFill;
|
||||
mySections: HArray2OfShape from TopTools;
|
||||
myFaces : HArray2OfShape from TopTools;
|
||||
myEdges : HArray2OfShape from TopTools;
|
||||
myReversedEdges : MapOfShape from TopTools;
|
||||
mySections: HArray2OfShape from TopTools;
|
||||
myFaces : HArray2OfShape from TopTools;
|
||||
myEdges : HArray2OfShape from TopTools;
|
||||
myReversedEdges : MapOfShape from TopTools;
|
||||
myTapes : DataMapOfShapeHArray2OfShape from BRepFill;
|
||||
myRails : DataMapOfShapeHArray2OfShape from BRepFill;
|
||||
myCurIndexOfSectionEdge : Integer from Standard;
|
||||
myFirst : Shape from TopoDS;
|
||||
myLast : Shape from TopoDS;
|
||||
|
||||
myFirst : Shape from TopoDS;
|
||||
myLast : Shape from TopoDS;
|
||||
myGenMap : DataMapOfShapeListOfShape from TopTools;
|
||||
|
||||
myDegmax : Integer from Standard;
|
||||
mySegmax : Integer from Standard;
|
||||
myContinuity : Shape from GeomAbs;
|
||||
myMode : Trihedron from GeomFill;
|
||||
myForceApproxC1 : Boolean from Standard;
|
||||
|
||||
|
||||
myErrorOnSurf : Real from Standard;
|
||||
|
||||
|
||||
end Pipe;
|
||||
|
@ -69,6 +69,38 @@
|
||||
static Standard_Boolean Affich = 0;
|
||||
#endif
|
||||
|
||||
// ---------------------------------------------------------------------------------
|
||||
// static function: UpdateMap
|
||||
// purpose:
|
||||
// ---------------------------------------------------------------------------------
|
||||
static Standard_Boolean UpdateMap(const TopoDS_Shape& theKey,
|
||||
const TopoDS_Shape& theValue,
|
||||
TopTools_DataMapOfShapeListOfShape& theMap)
|
||||
{
|
||||
if(!theMap.IsBound(theKey))
|
||||
{
|
||||
TopTools_ListOfShape thelist;
|
||||
theMap.Bind(theKey, thelist);
|
||||
}
|
||||
TopTools_ListOfShape& aList = theMap.ChangeFind(theKey);
|
||||
TopTools_ListIteratorOfListOfShape anIt(aList);
|
||||
Standard_Boolean found = Standard_False;
|
||||
|
||||
for(; anIt.More(); anIt.Next())
|
||||
{
|
||||
if(theValue.IsSame(anIt.Value()))
|
||||
{
|
||||
found = Standard_True;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!found)
|
||||
aList.Append(theValue);
|
||||
|
||||
return !found;
|
||||
}
|
||||
|
||||
static void ReverseModifiedEdges(TopoDS_Shape& aShape,
|
||||
TopTools_MapOfShape& Emap)
|
||||
{
|
||||
@ -374,6 +406,47 @@ const TopoDS_Shape& BRepFill_Pipe::LastShape() const
|
||||
return myLast;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Generated
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void BRepFill_Pipe::Generated(const TopoDS_Shape& theShape,
|
||||
TopTools_ListOfShape& theList)
|
||||
{
|
||||
theList.Clear();
|
||||
|
||||
if (theShape.IsSame(myProfile))
|
||||
theList.Append(myShape);
|
||||
else
|
||||
{
|
||||
if (theShape.ShapeType() == TopAbs_FACE ||
|
||||
theShape.ShapeType() == TopAbs_WIRE)
|
||||
{
|
||||
if(myGenMap.IsBound(theShape))
|
||||
theList = myGenMap.Find(theShape);
|
||||
}
|
||||
else if (theShape.ShapeType() == TopAbs_EDGE)
|
||||
{
|
||||
TopoDS_Iterator itw(mySpine);
|
||||
for (; itw.More(); itw.Next())
|
||||
{
|
||||
const TopoDS_Edge& aSpineEdge = TopoDS::Edge(itw.Value());
|
||||
const TopoDS_Shape& aFace = Face(aSpineEdge, TopoDS::Edge(theShape));
|
||||
theList.Append(aFace);
|
||||
}
|
||||
}
|
||||
else if (theShape.ShapeType() == TopAbs_VERTEX)
|
||||
{
|
||||
TopoDS_Iterator itw(mySpine);
|
||||
for (; itw.More(); itw.Next())
|
||||
{
|
||||
const TopoDS_Edge& aSpineEdge = TopoDS::Edge(itw.Value());
|
||||
const TopoDS_Shape& anEdge = Edge(aSpineEdge, TopoDS::Vertex(theShape));
|
||||
theList.Append(anEdge);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Face
|
||||
@ -640,6 +713,7 @@ TopoDS_Shape BRepFill_Pipe::MakeShape(const TopoDS_Shape& S,
|
||||
MkSw.Build( myReversedEdges, myTapes, myRails,
|
||||
BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax );
|
||||
result = MkSw.Shape();
|
||||
UpdateMap(TheS.Located(myProfile.Location()), result, myGenMap);
|
||||
myErrorOnSurf = MkSw.ErrorOnSurface();
|
||||
|
||||
Handle(TopTools_HArray2OfShape) aSections = MkSw.Sections();
|
||||
@ -662,6 +736,7 @@ TopoDS_Shape BRepFill_Pipe::MakeShape(const TopoDS_Shape& S,
|
||||
MkSw.Build( myReversedEdges, myTapes, myRails,
|
||||
BRepFill_Modified, myContinuity, GeomFill_Location, myDegmax, mySegmax );
|
||||
result = MkSw.Shape();
|
||||
UpdateMap(TheS.Located(myProfile.Location()), result, myGenMap);
|
||||
myErrorOnSurf = MkSw.ErrorOnSurface();
|
||||
//Correct <myFirst> and <myLast>
|
||||
ReverseModifiedEdges(myFirst, myReversedEdges);
|
||||
@ -769,6 +844,7 @@ TopoDS_Shape BRepFill_Pipe::MakeShape(const TopoDS_Shape& S,
|
||||
BS.Add(solid,TopoDS::Shell(aLocalShape));
|
||||
// BS.Add(solid,TopoDS::Shell(result.Reversed()));
|
||||
}
|
||||
UpdateMap(TheS.Located(myProfile.Location()), solid, myGenMap);
|
||||
return solid;
|
||||
}
|
||||
else {
|
||||
|
@ -36,8 +36,8 @@ uses
|
||||
ListOfShape from TopTools
|
||||
|
||||
is
|
||||
|
||||
|
||||
|
||||
|
||||
Create( Spine : Wire from TopoDS;
|
||||
Profile : Shape from TopoDS )
|
||||
---Purpose: Constructs a pipe by sweeping the shape Profile along
|
||||
@ -52,7 +52,7 @@ is
|
||||
-- Standard_DomainError if the profile is a solid or a
|
||||
-- composite solid.
|
||||
returns MakePipe from BRepOffsetAPI;
|
||||
|
||||
|
||||
Create( Spine : Wire from TopoDS;
|
||||
Profile : Shape from TopoDS;
|
||||
aMode : Trihedron from GeomFill;
|
||||
@ -72,7 +72,7 @@ is
|
||||
Build(me : in out)
|
||||
is redefined;
|
||||
---Purpose: Builds the resulting shape (redefined from MakeShape).
|
||||
---Level: Public
|
||||
---Level: Public
|
||||
|
||||
|
||||
FirstShape (me : in out)
|
||||
@ -84,6 +84,11 @@ is
|
||||
---Purpose: Returns the TopoDS Shape of the top of the prism.
|
||||
returns Shape from TopoDS;
|
||||
|
||||
Generated (me: in out; S: Shape from TopoDS)
|
||||
returns ListOfShape from TopTools
|
||||
is redefined;
|
||||
---C++: return const &
|
||||
---Level: Public
|
||||
|
||||
Generated (me: in out; SSpine, SProfile : Shape from TopoDS)
|
||||
---Level: Public
|
||||
@ -99,4 +104,4 @@ fields
|
||||
|
||||
myPipe : Pipe from BRepFill;
|
||||
|
||||
end MakePipe;
|
||||
end MakePipe;
|
||||
|
@ -109,14 +109,23 @@ TopoDS_Shape BRepOffsetAPI_MakePipe::LastShape()
|
||||
return myPipe.LastShape();
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Generated
|
||||
//purpose : standard method
|
||||
//=======================================================================
|
||||
const TopTools_ListOfShape& BRepOffsetAPI_MakePipe::Generated(const TopoDS_Shape& S)
|
||||
{
|
||||
myPipe.Generated(S, myGenerated);
|
||||
return myGenerated;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Generated
|
||||
//purpose :
|
||||
//purpose : returns generated elementary subshape
|
||||
//=======================================================================
|
||||
|
||||
TopoDS_Shape BRepOffsetAPI_MakePipe::Generated (const TopoDS_Shape& SSpine,
|
||||
const TopoDS_Shape& SProfile)
|
||||
TopoDS_Shape BRepOffsetAPI_MakePipe::Generated(const TopoDS_Shape& SSpine,
|
||||
const TopoDS_Shape& SProfile)
|
||||
{
|
||||
if (SProfile.ShapeType () == TopAbs_EDGE) {
|
||||
return myPipe.Face (TopoDS::Edge (SSpine), TopoDS::Edge (SProfile));
|
||||
|
@ -53,6 +53,7 @@
|
||||
#include <GeomFill_Trihedron.hxx>
|
||||
#include <BRepOffsetAPI_MakePipe.hxx>
|
||||
#include <Standard_Atomic.hxx>
|
||||
#include <TopTools_ListIteratorOfListOfShape.hxx>
|
||||
|
||||
#include <Standard_Version.hxx>
|
||||
|
||||
@ -4306,6 +4307,95 @@ static Standard_Integer OCC26313(Draw_Interpretor& di,Standard_Integer n,const c
|
||||
return 0;
|
||||
}
|
||||
|
||||
//========================================================================
|
||||
//function : OCC27065
|
||||
//purpose : Tests overloaded method "Generated" of BRepOffsetAPI_MakePipe
|
||||
//========================================================================
|
||||
static Standard_Integer OCC27065(Draw_Interpretor& di,
|
||||
Standard_Integer n, const char** a)
|
||||
{
|
||||
if (n < 3) return 1;
|
||||
BRep_Builder BB;
|
||||
|
||||
TopoDS_Shape SpineShape = DBRep::Get(a[1],TopAbs_WIRE);
|
||||
if ( SpineShape.IsNull()) return 1;
|
||||
TopoDS_Wire Spine = TopoDS::Wire(SpineShape);
|
||||
|
||||
TopoDS_Shape Profile = DBRep::Get(a[2]);
|
||||
if ( Profile.IsNull()) return 1;
|
||||
|
||||
BRepOffsetAPI_MakePipe aPipeBuilder(Spine, Profile);
|
||||
if (!aPipeBuilder.IsDone())
|
||||
{
|
||||
di << "Error: failed to create pipe\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
TopExp_Explorer Explo(Profile, TopAbs_SHELL);
|
||||
TopoDS_Shape aShape;
|
||||
TopTools_ListIteratorOfListOfShape itl;
|
||||
if (Explo.More())
|
||||
{
|
||||
aShape = Explo.Current();
|
||||
TopoDS_Compound res1;
|
||||
BB.MakeCompound(res1);
|
||||
itl.Initialize(aPipeBuilder.Generated(aShape));
|
||||
for (; itl.More(); itl.Next())
|
||||
BB.Add(res1, itl.Value());
|
||||
DBRep::Set("res_shell", res1);
|
||||
}
|
||||
|
||||
Explo.Init(Profile, TopAbs_FACE);
|
||||
if (Explo.More())
|
||||
{
|
||||
aShape = Explo.Current();
|
||||
TopoDS_Compound res2;
|
||||
BB.MakeCompound(res2);
|
||||
itl.Initialize(aPipeBuilder.Generated(aShape));
|
||||
for (; itl.More(); itl.Next())
|
||||
BB.Add(res2, itl.Value());
|
||||
DBRep::Set("res_face", res2);
|
||||
}
|
||||
|
||||
Explo.Init(Profile, TopAbs_WIRE);
|
||||
if (Explo.More())
|
||||
{
|
||||
aShape = Explo.Current();
|
||||
TopoDS_Compound res3;
|
||||
BB.MakeCompound(res3);
|
||||
itl.Initialize(aPipeBuilder.Generated(aShape));
|
||||
for (; itl.More(); itl.Next())
|
||||
BB.Add(res3, itl.Value());
|
||||
DBRep::Set("res_wire", res3);
|
||||
}
|
||||
|
||||
Explo.Init(Profile, TopAbs_EDGE);
|
||||
if (Explo.More())
|
||||
{
|
||||
aShape = Explo.Current();
|
||||
TopoDS_Compound res4;
|
||||
BB.MakeCompound(res4);
|
||||
itl.Initialize(aPipeBuilder.Generated(aShape));
|
||||
for (; itl.More(); itl.Next())
|
||||
BB.Add(res4, itl.Value());
|
||||
DBRep::Set("res_edge", res4);
|
||||
}
|
||||
|
||||
Explo.Init(Profile, TopAbs_VERTEX);
|
||||
if (Explo.More())
|
||||
{
|
||||
aShape = Explo.Current();
|
||||
TopoDS_Compound res5;
|
||||
BB.MakeCompound(res5);
|
||||
itl.Initialize(aPipeBuilder.Generated(aShape));
|
||||
for (; itl.More(); itl.Next())
|
||||
BB.Add(res5, itl.Value());
|
||||
DBRep::Set("res_vertex", res5);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void QABugs::Commands_19(Draw_Interpretor& theCommands) {
|
||||
const char *group = "QABugs";
|
||||
|
||||
@ -4397,5 +4487,9 @@ void QABugs::Commands_19(Draw_Interpretor& theCommands) {
|
||||
|
||||
theCommands.Add ("OCC26313", "OCC26313 result shape", __FILE__, OCC26313, group);
|
||||
|
||||
theCommands.Add ("OCC27065",
|
||||
"OCC27065 spine profile",
|
||||
__FILE__, OCC27065, group);
|
||||
|
||||
return;
|
||||
}
|
||||
|
24
tests/bugs/modalg_6/bug27065_1
Normal file
24
tests/bugs/modalg_6/bug27065_1
Normal file
@ -0,0 +1,24 @@
|
||||
puts "============"
|
||||
puts "OCC27065"
|
||||
puts "============"
|
||||
puts ""
|
||||
###############################
|
||||
## BRepOffsetAPI_MakePipe misses definition of virtual method Generated()
|
||||
###############################
|
||||
|
||||
pload QAcommands
|
||||
|
||||
restore [locate_data_file bug24840_comp.brep] sh
|
||||
explode sh
|
||||
OCC27065 sh_1 sh_2
|
||||
fit
|
||||
|
||||
checknbshapes res_shell -vertex 56 -edge 130 -wire 99 -face 99 -shell 24 -solid 24 -compsolid 1 -compound 1 -shape 434
|
||||
|
||||
checknbshapes res_face -vertex 8 -edge 12 -wire 6 -face 6 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 35
|
||||
|
||||
checknbshapes res_wire -vertex 8 -edge 12 -wire 4 -face 4 -shell 1 -solid 0 -compsolid 0 -compound 1 -shape 30
|
||||
|
||||
checknbshapes res_edge -vertex 4 -edge 4 -wire 1 -face 1 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 11
|
||||
|
||||
checknbshapes res_vertex -vertex 2 -edge 1 -wire 0 -face 0 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 4
|
28
tests/bugs/modalg_6/bug27065_2
Normal file
28
tests/bugs/modalg_6/bug27065_2
Normal file
@ -0,0 +1,28 @@
|
||||
puts "============"
|
||||
puts "OCC27065"
|
||||
puts "============"
|
||||
puts ""
|
||||
###############################
|
||||
## BRepOffsetAPI_MakePipe misses definition of virtual method Generated()
|
||||
###############################
|
||||
|
||||
pload QAcommands
|
||||
|
||||
restore [locate_data_file bug23903_base.brep] base
|
||||
restore [locate_data_file bug23903_path.brep] sp
|
||||
explode base
|
||||
shape pr Sh
|
||||
add base_1 pr
|
||||
add base_2 pr
|
||||
OCC27065 sp pr
|
||||
fit
|
||||
|
||||
checknbshapes res_shell -vertex 2 -edge 5 -wire 3 -face 3 -shell 2 -solid 2 -compsolid 1 -compound 1 -shape 19
|
||||
|
||||
checknbshapes res_face -vertex 2 -edge 4 -wire 2 -face 2 -shell 1 -solid 1 -compsolid 0 -compound 1 -shape 13
|
||||
|
||||
checknbshapes res_wire -vertex 2 -edge 4 -wire 2 -face 2 -shell 1 -solid 0 -compsolid 0 -compound 1 -shape 12
|
||||
|
||||
checknbshapes res_edge -vertex 2 -edge 3 -wire 1 -face 1 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 8
|
||||
|
||||
checknbshapes res_vertex -vertex 1 -edge 1 -wire 0 -face 0 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 3
|
Loading…
x
Reference in New Issue
Block a user