Replace BRepTools_ReShape with BRepBuilderAPI_MakeSolid in refinement algorithm
This commit is contained in:
parent
723d034cf0
commit
48f8d67b50
|
@ -274,10 +274,7 @@ class RefineShape:
|
|||
def execute(self, fp):
|
||||
if fp.Base and fp.Base.Shape.isValid():
|
||||
sh=fp.Base.Shape.removeSplitter()
|
||||
if sh.Placement.isNull():
|
||||
fp.Shape=sh
|
||||
else:
|
||||
fp.Shape=sh.transformGeometry(sh.Placement.toMatrix())
|
||||
fp.Shape=sh
|
||||
|
||||
class GetWire:
|
||||
'''return the first wire from a given shape'''
|
||||
|
|
|
@ -1970,7 +1970,7 @@ TopoDS_Shape TopoShape::removeSplitter() const
|
|||
|
||||
if (_Shape.ShapeType() == TopAbs_SOLID) {
|
||||
const TopoDS_Solid &solid = TopoDS::Solid(_Shape);
|
||||
BRepTools_ReShape reshape;
|
||||
BRepBuilderAPI_MakeSolid mkSolid;
|
||||
TopExp_Explorer it;
|
||||
for (it.Init(solid, TopAbs_SHELL); it.More(); it.Next()) {
|
||||
const TopoDS_Shell ¤tShell = TopoDS::Shell(it.Current());
|
||||
|
@ -1978,7 +1978,7 @@ TopoDS_Shape TopoShape::removeSplitter() const
|
|||
if (uniter.process()) {
|
||||
if (uniter.isModified()) {
|
||||
const TopoDS_Shell &newShell = uniter.getShell();
|
||||
reshape.Replace(currentShell, newShell);
|
||||
mkSolid.Add(newShell);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -1986,7 +1986,7 @@ TopoDS_Shape TopoShape::removeSplitter() const
|
|||
return _Shape;
|
||||
}
|
||||
}
|
||||
return reshape.Apply(solid);
|
||||
return mkSolid.Solid();
|
||||
}
|
||||
else if (_Shape.ShapeType() == TopAbs_SHELL) {
|
||||
const TopoDS_Shell& shell = TopoDS::Shell(_Shape);
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#include <BRepLib_MakeWire.hxx>
|
||||
#include <BRepLib_FuseEdges.hxx>
|
||||
#include <BRepBuilderAPI_MakeFace.hxx>
|
||||
#include <BRepBuilderAPI_MakeSolid.hxx>
|
||||
#include <BRepBuilderAPI_Sewing.hxx>
|
||||
#include <ShapeBuild_ReShape.hxx>
|
||||
#include <ShapeFix_Face.hxx>
|
||||
|
@ -698,7 +699,7 @@ void Part::BRepBuilderAPI_RefineModel::Build()
|
|||
|
||||
if (myShape.ShapeType() == TopAbs_SOLID) {
|
||||
const TopoDS_Solid &solid = TopoDS::Solid(myShape);
|
||||
BRepTools_ReShape reshape;
|
||||
BRepBuilderAPI_MakeSolid mkSolid;
|
||||
TopExp_Explorer it;
|
||||
for (it.Init(solid, TopAbs_SHELL); it.More(); it.Next()) {
|
||||
const TopoDS_Shell ¤tShell = TopoDS::Shell(it.Current());
|
||||
|
@ -706,7 +707,7 @@ void Part::BRepBuilderAPI_RefineModel::Build()
|
|||
if (uniter.process()) {
|
||||
if (uniter.isModified()) {
|
||||
const TopoDS_Shell &newShell = uniter.getShell();
|
||||
reshape.Replace(currentShell, newShell);
|
||||
mkSolid.Add(newShell);
|
||||
LogModifications(uniter);
|
||||
}
|
||||
}
|
||||
|
@ -714,7 +715,7 @@ void Part::BRepBuilderAPI_RefineModel::Build()
|
|||
Standard_Failure::Raise("Removing splitter failed");
|
||||
}
|
||||
}
|
||||
myShape = reshape.Apply(solid);
|
||||
myShape = mkSolid.Solid();
|
||||
}
|
||||
else if (myShape.ShapeType() == TopAbs_SHELL) {
|
||||
const TopoDS_Shell& shell = TopoDS::Shell(myShape);
|
||||
|
|
Loading…
Reference in New Issue
Block a user