mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-04 13:13:25 +03:00
0026150: BRepOffsetAPI_ThruSections doesn't implement history method Generated().
Virtual method Generated is redefined. Now it returns: - chain of generated faces for sub-edge of a profile; - chain of generated edges for sub-vertex of a profile; - bunch of chains of generated edges for start or end vertex if it is degenerated section. Correction according to the remarks. Fix compiler's warnings and add 4 new test cases. Correction of mistake. Compilation warnings are gone.
This commit is contained in:
parent
56689b2700
commit
50258e776a
@ -745,6 +745,24 @@ const TopTools_ListOfShape& BRepFill_CompatibleWires::GeneratedShapes
|
||||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//function : IsDegeneratedFirstSection
|
||||
//purpose :
|
||||
//==========================================================================
|
||||
Standard_Boolean BRepFill_CompatibleWires::IsDegeneratedFirstSection() const
|
||||
{
|
||||
return myDegen1;
|
||||
}
|
||||
|
||||
//=========================================================================
|
||||
//function : IsDegeneratedLastSection
|
||||
//purpose :
|
||||
//=========================================================================
|
||||
Standard_Boolean BRepFill_CompatibleWires::IsDegeneratedLastSection() const
|
||||
{
|
||||
return myDegen2;
|
||||
}
|
||||
|
||||
|
||||
//=======================================================================
|
||||
//function : Perform
|
||||
@ -1223,7 +1241,22 @@ void BRepFill_CompatibleWires::
|
||||
}
|
||||
|
||||
// blocking sections?
|
||||
if (vClosed) myWork(myWork.Length()) = myWork(1);
|
||||
if (vClosed)
|
||||
{
|
||||
TopoDS_Iterator iter1(myWork(myWork.Length())), iter2(myWork(1));
|
||||
for (; iter1.More(); iter1.Next(), iter2.Next())
|
||||
{
|
||||
const TopoDS_Shape& anEdge = iter1.Value();
|
||||
const TopoDS_Shape& aNewEdge = iter2.Value();
|
||||
if (!anEdge.IsSame(aNewEdge))
|
||||
{
|
||||
TopTools_SequenceOfShape aSeq;
|
||||
aSeq.Append(aNewEdge);
|
||||
EdgeNewEdges.Bind(anEdge, aSeq);
|
||||
}
|
||||
}
|
||||
myWork(myWork.Length()) = myWork(1);
|
||||
}
|
||||
|
||||
// check the number of edges for debug
|
||||
Standard_Integer nbmax=0, nbmin=0;
|
||||
@ -1442,7 +1475,8 @@ void BRepFill_CompatibleWires::SameNumberByACR(const Standard_Boolean report)
|
||||
}
|
||||
|
||||
// blocking sections ?
|
||||
if (vClosed) myWork(myWork.Length()) = myWork(1);
|
||||
if (vClosed)
|
||||
myWork(myWork.Length()) = myWork(1);
|
||||
|
||||
// check the number of edges for debug
|
||||
nbmax = 0;
|
||||
@ -2028,7 +2062,8 @@ void BRepFill_CompatibleWires::ComputeOrigin(const Standard_Boolean /*polar*/ )
|
||||
#endif
|
||||
|
||||
// blocking sections ?
|
||||
if (vClosed) myWork(myWork.Length()) = myWork(1);
|
||||
if (vClosed)
|
||||
myWork(myWork.Length()) = myWork(1);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@ -2190,5 +2225,6 @@ void BRepFill_CompatibleWires::SearchOrigin()
|
||||
}
|
||||
|
||||
// blocking sections ?
|
||||
if (vClosed) myWork(myWork.Length()) = myWork(1);
|
||||
if (vClosed)
|
||||
myWork(myWork.Length()) = myWork(1);
|
||||
}
|
||||
|
@ -64,6 +64,9 @@ public:
|
||||
|
||||
Standard_EXPORT const TopTools_DataMapOfShapeListOfShape& Generated() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDegeneratedFirstSection() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDegeneratedLastSection() const;
|
||||
|
||||
|
||||
|
||||
|
@ -89,6 +89,7 @@
|
||||
#include <TopTools_Array1OfShape.hxx>
|
||||
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
|
||||
#include <TopTools_ListIteratorOfListOfShape.hxx>
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : PreciseUpar
|
||||
@ -243,9 +244,13 @@ static TopoDS_Solid MakeSolid(TopoDS_Shell& shell, const TopoDS_Wire& wire1,
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
BRepOffsetAPI_ThruSections::BRepOffsetAPI_ThruSections(const Standard_Boolean isSolid, const Standard_Boolean ruled,
|
||||
const Standard_Real pres3d):
|
||||
myIsSolid(isSolid), myIsRuled(ruled), myPres3d(pres3d)
|
||||
BRepOffsetAPI_ThruSections::BRepOffsetAPI_ThruSections(const Standard_Boolean isSolid,
|
||||
const Standard_Boolean ruled,
|
||||
const Standard_Real pres3d):
|
||||
myNbEdgesInSection(0),
|
||||
myIsSolid(isSolid), myIsRuled(ruled),
|
||||
myPres3d(pres3d),
|
||||
myDegen1(Standard_False), myDegen2(Standard_False)
|
||||
{
|
||||
myWCheck = Standard_True;
|
||||
//----------------------------
|
||||
@ -361,6 +366,8 @@ void BRepOffsetAPI_ThruSections::Build()
|
||||
throw Standard_Failure("Wrong usage of punctual sections");
|
||||
}
|
||||
|
||||
myNbEdgesInSection = 0;
|
||||
|
||||
if (myWCheck) {
|
||||
// compute origin and orientation on wires to avoid twisted results
|
||||
// and update wires to have same number of edges
|
||||
@ -377,8 +384,94 @@ void BRepOffsetAPI_ThruSections::Build()
|
||||
if (Georges.IsDone()) {
|
||||
WorkingSections = Georges.Shape();
|
||||
WorkingMap = Georges.Generated();
|
||||
myDegen1 = Georges.IsDegeneratedFirstSection();
|
||||
myDegen2 = Georges.IsDegeneratedLastSection();
|
||||
//For each sub-edge of each section
|
||||
//we save its splits
|
||||
Standard_Integer IndFirstSec = 1;
|
||||
if (Georges.IsDegeneratedFirstSection())
|
||||
IndFirstSec = 2;
|
||||
TopoDS_Shape aWorkingSection = WorkingSections(IndFirstSec);
|
||||
TopoDS_Iterator itw(aWorkingSection);
|
||||
for (; itw.More(); itw.Next())
|
||||
myNbEdgesInSection++;
|
||||
for (Standard_Integer ii = 1; ii <= myWires.Length(); ii++)
|
||||
{
|
||||
TopExp_Explorer Explo(myWires(ii), TopAbs_EDGE);
|
||||
for (; Explo.More(); Explo.Next())
|
||||
{
|
||||
const TopoDS_Edge& anEdge = TopoDS::Edge(Explo.Current());
|
||||
Standard_Integer aSign = 1;
|
||||
TopoDS_Vertex Vfirst, Vlast;
|
||||
TopExp::Vertices(anEdge, Vfirst, Vlast);
|
||||
TopTools_ListOfShape aNewEdges = Georges.GeneratedShapes(anEdge);
|
||||
TColStd_ListOfInteger IList;
|
||||
aWorkingSection = WorkingSections(ii);
|
||||
Standard_Integer NbNewEdges = aNewEdges.Extent();
|
||||
TopTools_ListIteratorOfListOfShape itl(aNewEdges);
|
||||
for (Standard_Integer kk = 1; itl.More(); itl.Next(),kk++)
|
||||
{
|
||||
const TopoDS_Edge& aNewEdge = TopoDS::Edge(itl.Value());
|
||||
Standard_Integer inde = 1;
|
||||
for (itw.Initialize(aWorkingSection); itw.More(); itw.Next(),inde++)
|
||||
{
|
||||
const TopoDS_Shape& aWorkingEdge = itw.Value();
|
||||
if (aWorkingEdge.IsSame(aNewEdge))
|
||||
{
|
||||
aSign = (aWorkingEdge.Orientation() == TopAbs_FORWARD)? 1 : -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
IList.Append(inde);
|
||||
if (kk == 1 || kk == NbNewEdges)
|
||||
{
|
||||
//For each sub-vertex of each section
|
||||
//we save its index of new edge
|
||||
TopoDS_Vertex NewVfirst, NewVlast;
|
||||
TopExp::Vertices(aNewEdge, NewVfirst, NewVlast);
|
||||
if (NewVfirst.IsSame(Vfirst) && !myVertexIndex.IsBound(Vfirst))
|
||||
myVertexIndex.Bind(Vfirst, aSign*inde);
|
||||
if (NewVlast.IsSame(Vlast) && !myVertexIndex.IsBound(Vlast))
|
||||
myVertexIndex.Bind(Vlast, aSign*(-inde));
|
||||
}
|
||||
}
|
||||
myEdgeNewIndices.Bind(anEdge, IList);
|
||||
}
|
||||
}
|
||||
}
|
||||
myWires = WorkingSections;
|
||||
} //if (myWCheck)
|
||||
else //no check
|
||||
{
|
||||
TopoDS_Edge anEdge;
|
||||
for (Standard_Integer ii = 1; ii <= myWires.Length(); ii++)
|
||||
{
|
||||
TopExp_Explorer Explo(myWires(ii), TopAbs_EDGE);
|
||||
Standard_Integer inde = 1;
|
||||
for (; Explo.More(); Explo.Next(),inde++)
|
||||
{
|
||||
anEdge = TopoDS::Edge(Explo.Current());
|
||||
TColStd_ListOfInteger IList;
|
||||
IList.Append(inde);
|
||||
myEdgeNewIndices.Bind(anEdge, IList);
|
||||
TopoDS_Vertex V1, V2;
|
||||
TopExp::Vertices(anEdge, V1, V2);
|
||||
if (!myVertexIndex.IsBound(V1))
|
||||
myVertexIndex.Bind(V1, inde);
|
||||
if (!myVertexIndex.IsBound(V2))
|
||||
myVertexIndex.Bind(V2, -inde);
|
||||
}
|
||||
inde--;
|
||||
if (inde > myNbEdgesInSection)
|
||||
myNbEdgesInSection = inde;
|
||||
if (inde == 1 && BRep_Tool::Degenerated(anEdge))
|
||||
{
|
||||
if (ii == 1)
|
||||
myDegen1 = Standard_True;
|
||||
else
|
||||
myDegen2 = Standard_True;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
@ -504,7 +597,7 @@ void BRepOffsetAPI_ThruSections::CreateRuled()
|
||||
for (it.Initialize(MV.FindFromKey(Vdegen)); it.More(); it.Next()) {
|
||||
const TopoDS_Shape& Face = it.Value();
|
||||
if (MapFaces.Contains(Face)) {
|
||||
myGenerated.Bind(edge1, Face);
|
||||
myEdgeFace.Bind(edge1, Face);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -513,7 +606,7 @@ void BRepOffsetAPI_ThruSections::CreateRuled()
|
||||
for (it.Initialize(M.FindFromKey(edge1)); it.More(); it.Next()) {
|
||||
const TopoDS_Shape& Face = it.Value();
|
||||
if (MapFaces.Contains(Face)) {
|
||||
myGenerated.Bind(edge1, Face);
|
||||
myEdgeFace.Bind(edge1, Face);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -793,7 +886,7 @@ void BRepOffsetAPI_ThruSections::CreateSmoothed()
|
||||
BW2.Add(newW2, edge22);
|
||||
|
||||
// history
|
||||
myGenerated.Bind(firstEdge, face);
|
||||
myEdgeFace.Bind(firstEdge, face);
|
||||
}
|
||||
|
||||
if (uClosed && w1Point && w2Point)
|
||||
@ -1070,6 +1163,206 @@ const TopoDS_Shape& BRepOffsetAPI_ThruSections::LastShape() const
|
||||
return myLast;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : Generated
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const TopTools_ListOfShape&
|
||||
BRepOffsetAPI_ThruSections::Generated(const TopoDS_Shape& S)
|
||||
{
|
||||
myGenerated.Clear();
|
||||
|
||||
TopTools_SequenceOfShape AllFaces;
|
||||
TopExp_Explorer Explo(myShape, TopAbs_FACE);
|
||||
for (; Explo.More(); Explo.Next())
|
||||
AllFaces.Append(Explo.Current());
|
||||
|
||||
if (S.ShapeType() == TopAbs_EDGE)
|
||||
{
|
||||
if (!myEdgeNewIndices.IsBound(S))
|
||||
return myGenerated;
|
||||
|
||||
const TColStd_ListOfInteger& Indices = myEdgeNewIndices(S);
|
||||
//Append the faces corresponding to <Indices>
|
||||
//These faces "grow" from the first section
|
||||
TColStd_ListIteratorOfListOfInteger itl(Indices);
|
||||
for (; itl.More(); itl.Next())
|
||||
{
|
||||
Standard_Integer IndOfFace = itl.Value();
|
||||
myGenerated.Append(AllFaces(IndOfFace));
|
||||
}
|
||||
|
||||
if (myIsRuled)
|
||||
//Append the next faces corresponding to <Indices>
|
||||
for (Standard_Integer i = 2; i < myWires.Length(); i++)
|
||||
for (itl.Initialize(Indices); itl.More(); itl.Next())
|
||||
{
|
||||
Standard_Integer IndOfFace = itl.Value();
|
||||
IndOfFace += (i-1)*myNbEdgesInSection;
|
||||
myGenerated.Append(AllFaces(IndOfFace));
|
||||
}
|
||||
}
|
||||
else if (S.ShapeType() == TopAbs_VERTEX)
|
||||
{
|
||||
if (!myVertexIndex.IsBound(S))
|
||||
return myGenerated;
|
||||
|
||||
TopTools_IndexedDataMapOfShapeListOfShape VEmap;
|
||||
|
||||
Standard_Boolean IsDegen [2] = {Standard_False, Standard_False};
|
||||
if (myDegen1 || myDegen2)
|
||||
{
|
||||
TopoDS_Shape EndSections [2];
|
||||
EndSections[0] = myWires(1);
|
||||
EndSections[1] = myWires(myWires.Length());
|
||||
for (Standard_Integer i = 0; i < 2; i++)
|
||||
{
|
||||
if (i == 0 && !myDegen1)
|
||||
continue;
|
||||
if (i == 1 && !myDegen2)
|
||||
continue;
|
||||
|
||||
Explo.Init(EndSections[i], TopAbs_VERTEX);
|
||||
const TopoDS_Shape& aVertex = Explo.Current();
|
||||
if (S.IsSame(aVertex))
|
||||
{
|
||||
IsDegen[i] = Standard_True;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Only one of <IsDegen> can be True:
|
||||
// in case of one vertex for start and end degenerated sections
|
||||
// IsDegen[0] is True;
|
||||
if (IsDegen[0] || IsDegen[1])
|
||||
{
|
||||
//For start or end degenerated section
|
||||
//we return the whole bunch of longitudinal edges
|
||||
TopExp::MapShapesAndAncestors(myShape, TopAbs_VERTEX, TopAbs_EDGE, VEmap);
|
||||
TopTools_IndexedMapOfShape Emap;
|
||||
const TopTools_ListOfShape& Elist = VEmap.FindFromKey(S);
|
||||
TopTools_ListIteratorOfListOfShape itl(Elist);
|
||||
for (; itl.More(); itl.Next())
|
||||
{
|
||||
const TopoDS_Edge& anEdge = TopoDS::Edge(itl.Value());
|
||||
if (!BRep_Tool::Degenerated(anEdge))
|
||||
{
|
||||
TopoDS_Vertex VV [2];
|
||||
TopExp::Vertices(anEdge, VV[0], VV[1]);
|
||||
//Comprehensive check for possible case of
|
||||
//one vertex for start and end degenerated sections:
|
||||
//we must take only outgoing or only ingoing edges
|
||||
if ((IsDegen[0] && S.IsSame(VV[0])) ||
|
||||
(IsDegen[1] && S.IsSame(VV[1])))
|
||||
Emap.Add(anEdge);
|
||||
}
|
||||
}
|
||||
for (Standard_Integer j = 1; j <= Emap.Extent(); j++)
|
||||
{
|
||||
TopoDS_Edge anEdge = TopoDS::Edge(Emap(j));
|
||||
myGenerated.Append(anEdge);
|
||||
if (myIsRuled)
|
||||
{
|
||||
Standard_Integer i,k;
|
||||
for (i = 2,k = myWires.Length()-1; i < myWires.Length(); i++,k--)
|
||||
{
|
||||
Standard_Integer IndOfSec = (IsDegen[0])? i : k;
|
||||
TopoDS_Vertex aVertex = (IsDegen[0])?
|
||||
TopExp::LastVertex(anEdge) : TopExp::FirstVertex(anEdge);
|
||||
const TopTools_ListOfShape& EElist = VEmap.FindFromKey(aVertex);
|
||||
TopTools_IndexedMapOfShape EmapOfSection;
|
||||
TopExp::MapShapes(myWires(IndOfSec), TopAbs_EDGE, EmapOfSection);
|
||||
TopoDS_Edge NextEdge;
|
||||
for (itl.Initialize(EElist); itl.More(); itl.Next())
|
||||
{
|
||||
NextEdge = TopoDS::Edge(itl.Value());
|
||||
if (!NextEdge.IsSame(anEdge) &&
|
||||
!EmapOfSection.Contains(NextEdge))
|
||||
break;
|
||||
}
|
||||
myGenerated.Append(NextEdge);
|
||||
anEdge = NextEdge;
|
||||
}
|
||||
}
|
||||
}
|
||||
return myGenerated;
|
||||
} //end of if (IsDegen[0] || IsDegen[1])
|
||||
|
||||
Standard_Integer Eindex = myVertexIndex(S);
|
||||
Standard_Integer Vindex = (Eindex > 0)? 0 : 1;
|
||||
Eindex = Abs(Eindex);
|
||||
const TopoDS_Shape& FirstSection = myWires(1);
|
||||
TopoDS_Edge FirstEdge;
|
||||
TopoDS_Iterator itw(FirstSection);
|
||||
for (Standard_Integer inde = 1; itw.More(); itw.Next(),inde++)
|
||||
{
|
||||
FirstEdge = TopoDS::Edge(itw.Value());
|
||||
if (inde == Eindex)
|
||||
break;
|
||||
}
|
||||
|
||||
//Find the first longitudinal edge
|
||||
TopoDS_Face FirstFace = TopoDS::Face(AllFaces(Eindex));
|
||||
FirstFace.Orientation(TopAbs_FORWARD);
|
||||
Explo.Init(FirstFace, TopAbs_EDGE);
|
||||
TopoDS_Edge anEdge;
|
||||
BRepAdaptor_Surface BAsurf(FirstFace, Standard_False);
|
||||
TopoDS_Vertex FirstVertex;
|
||||
TopExp::MapShapesAndAncestors(FirstFace, TopAbs_VERTEX, TopAbs_EDGE, VEmap);
|
||||
if (myDegen1 && BAsurf.GetType() == GeomAbs_Plane)
|
||||
{
|
||||
//There are only 3 edges in the face in this case:
|
||||
//we take 1-st or 3-rd edge
|
||||
if (Vindex == 0)
|
||||
{
|
||||
Explo.Next();
|
||||
Explo.Next();
|
||||
}
|
||||
anEdge = TopoDS::Edge(Explo.Current());
|
||||
}
|
||||
else
|
||||
{
|
||||
TopoDS_Shape FirstEdgeInFace;
|
||||
FirstEdgeInFace = Explo.Current();
|
||||
TopoDS_Vertex VV [2];
|
||||
TopExp::Vertices(FirstEdge, VV[0], VV[1]);
|
||||
FirstVertex = VV[Vindex];
|
||||
const TopTools_ListOfShape& Elist = VEmap.FindFromKey(FirstVertex);
|
||||
TopTools_ListIteratorOfListOfShape itl(Elist);
|
||||
TopAbs_Orientation anEdgeOr = (Vindex == 0)? TopAbs_REVERSED : TopAbs_FORWARD;
|
||||
for (; itl.More(); itl.Next())
|
||||
{
|
||||
anEdge = TopoDS::Edge(itl.Value());
|
||||
if (!anEdge.IsSame(FirstEdgeInFace) &&
|
||||
!BRep_Tool::Degenerated(anEdge) &&
|
||||
anEdge.Orientation() == anEdgeOr)
|
||||
break;
|
||||
}
|
||||
}
|
||||
myGenerated.Append(anEdge);
|
||||
if (myIsRuled)
|
||||
//Find the chain of longitudinal edges from first to last
|
||||
for (Standard_Integer i = 2; i < myWires.Length(); i++)
|
||||
{
|
||||
FirstVertex = TopExp::LastVertex(anEdge);
|
||||
const TopTools_ListOfShape& Elist1 = VEmap.FindFromKey(FirstVertex);
|
||||
FirstEdge = (anEdge.IsSame(Elist1.First()))?
|
||||
TopoDS::Edge(Elist1.Last()) : TopoDS::Edge(Elist1.First());
|
||||
Eindex += myNbEdgesInSection;
|
||||
FirstFace = TopoDS::Face(AllFaces(Eindex));
|
||||
FirstFace.Orientation(TopAbs_FORWARD);
|
||||
VEmap.Clear();
|
||||
TopExp::MapShapesAndAncestors(FirstFace, TopAbs_VERTEX, TopAbs_EDGE, VEmap);
|
||||
const TopTools_ListOfShape& Elist2 = VEmap.FindFromKey(FirstVertex);
|
||||
anEdge = (FirstEdge.IsSame(Elist2.First()))?
|
||||
TopoDS::Edge(Elist2.Last()) : TopoDS::Edge(Elist2.First());
|
||||
myGenerated.Append(anEdge);
|
||||
}
|
||||
}
|
||||
|
||||
return myGenerated;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : GeneratedFace
|
||||
//purpose :
|
||||
@ -1078,8 +1371,8 @@ const TopoDS_Shape& BRepOffsetAPI_ThruSections::LastShape() const
|
||||
TopoDS_Shape BRepOffsetAPI_ThruSections::GeneratedFace(const TopoDS_Shape& edge) const
|
||||
{
|
||||
TopoDS_Shape bid;
|
||||
if (myGenerated.IsBound(edge)) {
|
||||
return myGenerated(edge);
|
||||
if (myEdgeFace.IsBound(edge)) {
|
||||
return myEdgeFace(edge);
|
||||
}
|
||||
else {
|
||||
return bid;
|
||||
|
@ -26,6 +26,8 @@
|
||||
#include <Standard_Real.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TopTools_DataMapOfShapeShape.hxx>
|
||||
#include <TopTools_DataMapOfShapeListOfInteger.hxx>
|
||||
#include <TopTools_DataMapOfShapeInteger.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Approx_ParametrizationType.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
@ -143,6 +145,11 @@ public:
|
||||
//! Returns the Face generated by each edge of the first wire
|
||||
Standard_EXPORT TopoDS_Shape GeneratedFace (const TopoDS_Shape& Edge) const;
|
||||
|
||||
//! Returns a list of new shapes generated from the shape
|
||||
//! S by the shell-generating algorithm.
|
||||
//! This function is redefined from BRepBuilderAPI_MakeShape::Generated.
|
||||
//! S can be an edge or a vertex of a given Profile (see methods AddWire and AddVertex).
|
||||
Standard_EXPORT virtual const TopTools_ListOfShape& Generated (const TopoDS_Shape& S) Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
@ -159,17 +166,27 @@ private:
|
||||
|
||||
Standard_EXPORT void CreateSmoothed();
|
||||
|
||||
Standard_EXPORT Handle(Geom_BSplineSurface) TotalSurf (const TopTools_Array1OfShape& shapes, const Standard_Integer NbSect, const Standard_Integer NbEdges, const Standard_Boolean w1Point, const Standard_Boolean w2Point, const Standard_Boolean vClosed) const;
|
||||
Standard_EXPORT Handle(Geom_BSplineSurface) TotalSurf (const TopTools_Array1OfShape& shapes,
|
||||
const Standard_Integer NbSect,
|
||||
const Standard_Integer NbEdges,
|
||||
const Standard_Boolean w1Point,
|
||||
const Standard_Boolean w2Point,
|
||||
const Standard_Boolean vClosed) const;
|
||||
|
||||
|
||||
TopTools_SequenceOfShape myWires;
|
||||
TopTools_DataMapOfShapeListOfInteger myEdgeNewIndices;
|
||||
TopTools_DataMapOfShapeInteger myVertexIndex;
|
||||
Standard_Integer myNbEdgesInSection;
|
||||
Standard_Boolean myIsSolid;
|
||||
Standard_Boolean myIsRuled;
|
||||
Standard_Boolean myWCheck;
|
||||
Standard_Real myPres3d;
|
||||
TopoDS_Face myFirst;
|
||||
TopoDS_Face myLast;
|
||||
TopTools_DataMapOfShapeShape myGenerated;
|
||||
Standard_Boolean myDegen1;
|
||||
Standard_Boolean myDegen2;
|
||||
TopTools_DataMapOfShapeShape myEdgeFace;
|
||||
GeomAbs_Shape myContinuity;
|
||||
Approx_ParametrizationType myParamType;
|
||||
Standard_Integer myDegMax;
|
||||
|
@ -43,6 +43,7 @@
|
||||
#include <TColgp_Array1OfPnt2d.hxx>
|
||||
|
||||
static BRepOffsetAPI_MakePipeShell* Sweep= 0;
|
||||
static BRepOffsetAPI_ThruSections* Generator = 0;
|
||||
|
||||
#include <stdio.h>
|
||||
#include <Geom_Curve.hxx>
|
||||
@ -323,19 +324,19 @@ Standard_Integer gener(Draw_Interpretor&, Standard_Integer n, const char** a)
|
||||
|
||||
TopoDS_Shape Shape;
|
||||
|
||||
BRepFill_Generator Generator;
|
||||
BRepFill_Generator aGenerator;
|
||||
|
||||
for ( Standard_Integer i = 2; i<= n-1 ; i++) {
|
||||
Shape = DBRep::Get(a[i],TopAbs_WIRE);
|
||||
if ( Shape.IsNull())
|
||||
return 1;
|
||||
|
||||
Generator.AddWire(TopoDS::Wire(Shape));
|
||||
aGenerator.AddWire(TopoDS::Wire(Shape));
|
||||
}
|
||||
|
||||
Generator.Perform();
|
||||
aGenerator.Perform();
|
||||
|
||||
TopoDS_Shell Shell = Generator.Shell();
|
||||
TopoDS_Shell Shell = aGenerator.Shell();
|
||||
|
||||
DBRep::Set(a[1], Shell);
|
||||
|
||||
@ -368,7 +369,12 @@ Standard_Integer thrusections(Draw_Interpretor&, Standard_Integer n, const char*
|
||||
Standard_Boolean issolid = ( Draw::Atoi(a[index]) == 1 );
|
||||
Standard_Boolean isruled = ( Draw::Atoi(a[index+1]) == 1 );
|
||||
|
||||
BRepOffsetAPI_ThruSections Generator(issolid,isruled);
|
||||
if (Generator != 0)
|
||||
{
|
||||
delete Generator;
|
||||
Generator = 0;
|
||||
}
|
||||
Generator = new BRepOffsetAPI_ThruSections(issolid,isruled);
|
||||
|
||||
Standard_Integer NbEdges = 0;
|
||||
Standard_Boolean IsFirstWire = Standard_False;
|
||||
@ -377,7 +383,7 @@ Standard_Integer thrusections(Draw_Interpretor&, Standard_Integer n, const char*
|
||||
Shape = DBRep::Get(a[i], TopAbs_WIRE);
|
||||
if (!Shape.IsNull())
|
||||
{
|
||||
Generator.AddWire(TopoDS::Wire(Shape));
|
||||
Generator->AddWire(TopoDS::Wire(Shape));
|
||||
if (!IsFirstWire)
|
||||
IsFirstWire = Standard_True;
|
||||
else
|
||||
@ -388,7 +394,7 @@ Standard_Integer thrusections(Draw_Interpretor&, Standard_Integer n, const char*
|
||||
Shape = DBRep::Get(a[i], TopAbs_VERTEX);
|
||||
IsWire = Standard_False;
|
||||
if (!Shape.IsNull())
|
||||
Generator.AddVertex(TopoDS::Vertex(Shape));
|
||||
Generator->AddVertex(TopoDS::Vertex(Shape));
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
@ -407,12 +413,12 @@ Standard_Integer thrusections(Draw_Interpretor&, Standard_Integer n, const char*
|
||||
}
|
||||
|
||||
check = (check || !samenumber);
|
||||
Generator.CheckCompatibility(check);
|
||||
Generator->CheckCompatibility(check);
|
||||
|
||||
Generator.Build();
|
||||
Generator->Build();
|
||||
|
||||
if (Generator.IsDone()) {
|
||||
TopoDS_Shape Shell = Generator.Shape();
|
||||
if (Generator->IsDone()) {
|
||||
TopoDS_Shape Shell = Generator->Shape();
|
||||
DBRep::Set(a[index-1], Shell);
|
||||
}
|
||||
else {
|
||||
@ -421,6 +427,55 @@ Standard_Integer thrusections(Draw_Interpretor&, Standard_Integer n, const char*
|
||||
return 0;
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
//function : genthrus
|
||||
//purpose : returns generated shape for subshape of a section of thrusections
|
||||
// Thrusections must be done previously
|
||||
//============================================================================
|
||||
static Standard_Integer genthrus(Draw_Interpretor& di,
|
||||
Standard_Integer n, const char** a)
|
||||
{
|
||||
if (n != 3)
|
||||
{
|
||||
di << "genthrus: it is called after thrusections command\n";
|
||||
di << "returns:\n";
|
||||
di << "- chain of generated faces for sub-edge of a profile;\n";
|
||||
di << "- chain of generated edges for sub-vertex of a profile;\n";
|
||||
di << "- bunch of chains of generated edges for start or end vertex if it is degenerated section.\n";
|
||||
di << "Usage: genthrus res subshape_of_profile, thrusections must be done\n";
|
||||
return 1;
|
||||
}
|
||||
if (Generator == 0)
|
||||
{
|
||||
di << "You have forgotten the <<thrusections>> command !\n";
|
||||
return 1;
|
||||
}
|
||||
if (!Generator->IsDone())
|
||||
{
|
||||
di << "Thrusections is not done\n";
|
||||
return 1;
|
||||
}
|
||||
TopoDS_Shape aShape = DBRep::Get(a[2]);
|
||||
if (aShape.IsNull())
|
||||
{
|
||||
cout<<"Null subshape"<<endl;
|
||||
return 1;
|
||||
}
|
||||
const TopTools_ListOfShape& Edges = Generator->Generated(aShape);
|
||||
TopoDS_Compound aCompound;
|
||||
BRep_Builder BB;
|
||||
BB.MakeCompound(aCompound);
|
||||
TopTools_ListIteratorOfListOfShape iter(Edges);
|
||||
for (; iter.More(); iter.Next())
|
||||
{
|
||||
const TopoDS_Shape& anEdge = iter.Value();
|
||||
BB.Add(aCompound, anEdge);
|
||||
}
|
||||
|
||||
DBRep::Set(a[1], aCompound);
|
||||
return 0;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
// mksweep
|
||||
//=======================================================================
|
||||
@ -920,6 +975,8 @@ void BRepTest::SweepCommands(Draw_Interpretor& theCommands)
|
||||
theCommands.Add("thrusections", "thrusections [-N] result issolid isruled shape1 shape2 [..shape..], the option -N means no check on wires, shapes must be wires or vertices (only first or last)",
|
||||
__FILE__,thrusections,g);
|
||||
|
||||
theCommands.Add("genthrus", "genthrus res subshape_of_profile",
|
||||
__FILE__,genthrus,g);
|
||||
|
||||
theCommands.Add("mksweep", "mksweep wire",
|
||||
__FILE__,mksweep,g);
|
||||
|
75
tests/bugs/modalg_6/bug26150_1
Normal file
75
tests/bugs/modalg_6/bug26150_1
Normal file
@ -0,0 +1,75 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 -10 0 10 -10 0 10 10 0 -10 10 0 -10 -10 0
|
||||
polyline w2 0 -10 20 -10 7 20 10 8 20 0 -10 20
|
||||
circle w3 0 0 40 10
|
||||
mkedge w3 w3
|
||||
wire w3 w3
|
||||
|
||||
explode w1
|
||||
explode w2
|
||||
explode w3
|
||||
|
||||
thrusections r 1 1 w1 w2 w3
|
||||
|
||||
genthrus r1 w1_1
|
||||
genthrus r2 w1_2
|
||||
genthrus r3 w1_3
|
||||
genthrus r4 w1_4
|
||||
genthrus r5 w2_1
|
||||
genthrus r6 w2_2
|
||||
genthrus r7 w2_3
|
||||
genthrus r8 w3_1
|
||||
|
||||
checknbshapes r1 -face 4
|
||||
checkprops r1 -s 668.19
|
||||
checknbshapes r2 -face 6
|
||||
checkprops r2 -s 650.955
|
||||
checknbshapes r3 -face 2
|
||||
checkprops r3 -s 590.746
|
||||
checknbshapes r4 -face 4
|
||||
checkprops r4 -s 650.315
|
||||
checknbshapes r5 -face 4
|
||||
checkprops r5 -s 835.461
|
||||
checknbshapes r6 -face 6
|
||||
checkprops r6 -s 852.53
|
||||
checknbshapes r7 -face 6
|
||||
checkprops r7 -s 872.216
|
||||
checknbshapes r8 -face 16
|
||||
checkprops r8 -s 2560.21
|
||||
|
||||
explode w1 v
|
||||
explode w2 v
|
||||
explode w3 v
|
||||
|
||||
genthrus r9 w1_1
|
||||
genthrus r10 w1_2
|
||||
genthrus r11 w1_3
|
||||
genthrus r12 w1_4
|
||||
genthrus r13 w2_1
|
||||
genthrus r14 w2_2
|
||||
genthrus r15 w2_3
|
||||
genthrus r16 w3_1
|
||||
|
||||
checknbshapes r9 -edge 2
|
||||
checkprops r9 -l 42.6998
|
||||
checknbshapes r10 -edge 2
|
||||
checkprops r10 -l 42.8761
|
||||
checknbshapes r11 -edge 2
|
||||
checkprops r11 -l 40.5019
|
||||
checknbshapes r12 -edge 2
|
||||
checkprops r12 -l 40.7504
|
||||
checknbshapes r13 -edge 2
|
||||
checkprops r13 -l 40.0002
|
||||
checknbshapes r14 -edge 2
|
||||
checkprops r14 -l 40.2389
|
||||
checknbshapes r15 -edge 2
|
||||
checkprops r15 -l 40.2965
|
||||
checknbshapes r16 -edge 2
|
||||
checkprops r16 -l 40.7511
|
84
tests/bugs/modalg_6/bug26150_10
Normal file
84
tests/bugs/modalg_6/bug26150_10
Normal file
@ -0,0 +1,84 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
restore [locate_data_file bug27386_pr1.brep] pr1
|
||||
restore [locate_data_file bug27386_pr2.brep] pr2
|
||||
restore [locate_data_file bug27386_pr3.brep] pr3
|
||||
beziercurve c1 3 0 50 -45 5 50 -50 0 50 -55
|
||||
beziercurve c2 3 0 50 -45 -5 50 -50 0 50 -55
|
||||
mkedge e1 c1
|
||||
mkedge e2 c2
|
||||
orientation e2 R
|
||||
wire pr4 e1 e2
|
||||
donly pr1 pr2 pr3 pr4
|
||||
|
||||
explode pr1
|
||||
explode pr2
|
||||
explode pr3
|
||||
explode pr4
|
||||
|
||||
thrusections r 1 0 pr1 pr2 pr3 pr4 pr1
|
||||
|
||||
genthrus r1 pr1_1
|
||||
genthrus r2 pr1_2
|
||||
genthrus r3 pr1_3
|
||||
genthrus r4 pr1_4
|
||||
genthrus r5 pr2_1
|
||||
genthrus r6 pr2_2
|
||||
genthrus r7 pr2_3
|
||||
genthrus r8 pr3_1
|
||||
genthrus r9 pr4_1
|
||||
genthrus r10 pr4_2
|
||||
|
||||
checknbshapes r1 -face 2
|
||||
checkprops r1 -s 2254.99
|
||||
checknbshapes r2 -face 2
|
||||
checkprops r2 -s 2416.89
|
||||
checknbshapes r3 -face 2
|
||||
checkprops r3 -s 2792.66
|
||||
checknbshapes r4 -face 3
|
||||
checkprops r4 -s 2422.18
|
||||
checknbshapes r5 -face 3
|
||||
checkprops r5 -s 3484.47
|
||||
checknbshapes r6 -face 2
|
||||
checkprops r6 -s 3479.17
|
||||
checknbshapes r7 -face 4
|
||||
checkprops r7 -s 2923.08
|
||||
checknbshapes r8 -face 9
|
||||
checkprops r8 -s 9886.72
|
||||
checknbshapes r9 -face 5
|
||||
checkprops r9 -s 4946.01
|
||||
checknbshapes r10 -face 4
|
||||
checkprops r10 -s 4940.71
|
||||
|
||||
explode pr1 v
|
||||
explode pr2 v
|
||||
explode pr3 v
|
||||
explode pr4 v
|
||||
|
||||
genthrus r11 pr1_1
|
||||
genthrus r12 pr1_2
|
||||
genthrus r13 pr1_3
|
||||
genthrus r14 pr1_4
|
||||
genthrus r15 pr2_1
|
||||
genthrus r16 pr2_2
|
||||
genthrus r17 pr2_3
|
||||
genthrus r18 pr3_1
|
||||
genthrus r19 pr4_1
|
||||
genthrus r20 pr4_2
|
||||
|
||||
checkprops r11 -l 305.61
|
||||
checkprops r12 -l 305.61
|
||||
checkprops r13 -l 347.48
|
||||
checkprops r14 -l 347.48
|
||||
checkprops r15 -l 309.372
|
||||
checkprops r16 -l 362.824
|
||||
checkprops r17 -l 309.372
|
||||
checkprops r18 -l 327.615
|
||||
checkprops r19 -l 296.856
|
||||
checkprops r20 -l 362.824
|
71
tests/bugs/modalg_6/bug26150_11
Normal file
71
tests/bugs/modalg_6/bug26150_11
Normal file
@ -0,0 +1,71 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
restore [locate_data_file bug27386_pr2.brep] pr2
|
||||
restore [locate_data_file bug27386_pr3.brep] pr3
|
||||
beziercurve c1 3 0 50 -45 5 50 -50 0 50 -55
|
||||
beziercurve c2 3 0 50 -45 -5 50 -50 0 50 -55
|
||||
mkedge e1 c1
|
||||
mkedge e2 c2
|
||||
orientation e2 R
|
||||
wire pr4 e1 e2
|
||||
vertex vv 0 0 0
|
||||
donly vv pr2 pr3 pr4
|
||||
|
||||
explode pr2
|
||||
explode pr3
|
||||
explode pr4
|
||||
|
||||
thrusections r 1 1 vv pr2 pr3 pr4 vv
|
||||
|
||||
genthrus r1 pr2_1
|
||||
genthrus r2 pr2_2
|
||||
genthrus r3 pr2_3
|
||||
genthrus r4 pr3_1
|
||||
genthrus r5 pr4_1
|
||||
genthrus r6 pr4_2
|
||||
|
||||
checknbshapes r1 -face 8
|
||||
checkprops r1 -s 1659.7
|
||||
checknbshapes r2 -face 4
|
||||
checkprops r2 -s 1660.96
|
||||
checknbshapes r3 -face 8
|
||||
checkprops r3 -s 1671.28
|
||||
checknbshapes r4 -face 20
|
||||
checkprops r4 -s 4991.94
|
||||
checknbshapes r5 -face 12
|
||||
checkprops r5 -s 2495.34
|
||||
checknbshapes r6 -face 8
|
||||
checkprops r6 -s 2496.6
|
||||
|
||||
explode pr2 v
|
||||
explode pr3 v
|
||||
explode pr4 v
|
||||
|
||||
genthrus r7 vv
|
||||
genthrus r8 pr2_1
|
||||
genthrus r9 pr2_2
|
||||
genthrus r10 pr2_3
|
||||
genthrus r11 pr3_1
|
||||
genthrus r12 pr4_1
|
||||
genthrus r13 pr4_2
|
||||
|
||||
checknbshapes r7 -edge 20
|
||||
checkprops r7 -l 1386.75
|
||||
checknbshapes r8 -edge 4
|
||||
checkprops r8 -l 269.926
|
||||
checknbshapes r9 -edge 4
|
||||
checkprops r9 -l 304.224
|
||||
checknbshapes r10 -edge 4
|
||||
checkprops r10 -l 269.926
|
||||
checknbshapes r11 -edge 4
|
||||
checkprops r11 -l 280.861
|
||||
checknbshapes r12 -edge 4
|
||||
checkprops r12 -l 261.815
|
||||
checknbshapes r13 -edge 4
|
||||
checkprops r13 -l 304.224
|
65
tests/bugs/modalg_6/bug26150_12
Normal file
65
tests/bugs/modalg_6/bug26150_12
Normal file
@ -0,0 +1,65 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
restore [locate_data_file bug27386_pr2.brep] pr2
|
||||
restore [locate_data_file bug27386_pr3.brep] pr3
|
||||
beziercurve c1 3 0 50 -45 5 50 -50 0 50 -55
|
||||
beziercurve c2 3 0 50 -45 -5 50 -50 0 50 -55
|
||||
mkedge e1 c1
|
||||
mkedge e2 c2
|
||||
orientation e2 R
|
||||
wire pr4 e1 e2
|
||||
vertex vv 0 0 0
|
||||
donly vv pr2 pr3 pr4
|
||||
|
||||
explode pr2
|
||||
explode pr3
|
||||
explode pr4
|
||||
|
||||
thrusections r 1 0 vv pr2 pr3 pr4 vv
|
||||
|
||||
genthrus r1 pr2_1
|
||||
genthrus r2 pr2_2
|
||||
genthrus r3 pr2_3
|
||||
genthrus r4 pr3_1
|
||||
genthrus r5 pr4_1
|
||||
genthrus r6 pr4_2
|
||||
|
||||
checknbshapes r1 -face 2
|
||||
checkprops r1 -s 2756.24
|
||||
checknbshapes r2 -face 1
|
||||
checkprops r2 -s 2749.35
|
||||
checknbshapes r3 -face 2
|
||||
checkprops r3 -s 2322.62
|
||||
checknbshapes r4 -face 5
|
||||
checkprops r4 -s 7828.21
|
||||
checknbshapes r5 -face 3
|
||||
checkprops r5 -s 3917.55
|
||||
checknbshapes r6 -face 2
|
||||
checkprops r6 -s 3910.66
|
||||
|
||||
explode pr2 v
|
||||
explode pr3 v
|
||||
explode pr4 v
|
||||
|
||||
genthrus r7 vv
|
||||
genthrus r8 pr2_1
|
||||
genthrus r9 pr2_2
|
||||
genthrus r10 pr2_3
|
||||
genthrus r11 pr3_1
|
||||
genthrus r12 pr4_1
|
||||
genthrus r13 pr4_2
|
||||
|
||||
checknbshapes r7 -edge 5
|
||||
checkprops r7 -l 1618.63
|
||||
checkprops r8 -l 313.428
|
||||
checkprops r9 -l 360.862
|
||||
checkprops r10 -l 313.428
|
||||
checkprops r11 -l 328.857
|
||||
checkprops r12 -l 302.052
|
||||
checkprops r13 -l 360.862
|
73
tests/bugs/modalg_6/bug26150_13
Normal file
73
tests/bugs/modalg_6/bug26150_13
Normal file
@ -0,0 +1,73 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 10 0 -10 -10 0 10 -10 0 10 10 0
|
||||
polyline w2 10 8 20 0 -10 20 -10 7 20
|
||||
circle w3 0 0 40 10
|
||||
trim w3 w3 pi 2*pi
|
||||
mkedge w3 w3
|
||||
wire w3 w3
|
||||
|
||||
explode w1
|
||||
explode w2
|
||||
explode w3
|
||||
|
||||
thrusections r 0 1 w1 w2 w3
|
||||
|
||||
genthrus r1 w1_1
|
||||
genthrus r2 w1_2
|
||||
genthrus r3 w1_3
|
||||
genthrus r4 w2_1
|
||||
genthrus r5 w2_2
|
||||
genthrus r6 w3_1
|
||||
|
||||
checknbshapes r1 -face 2
|
||||
checkprops r1 -s 577.142
|
||||
checknbshapes r2 -face 4
|
||||
checkprops r2 -s 541.715
|
||||
checknbshapes r3 -face 2
|
||||
checkprops r3 -s 578.464
|
||||
checknbshapes r4 -face 4
|
||||
checkprops r4 -s 866.24
|
||||
checknbshapes r5 -face 4
|
||||
checkprops r5 -s 831.08
|
||||
checknbshapes r6 -face 8
|
||||
checkprops r6 -s 1697.32
|
||||
|
||||
explode w1 v
|
||||
explode w2 v
|
||||
explode w3 v
|
||||
|
||||
genthrus r7 w1_1
|
||||
genthrus r8 w1_2
|
||||
genthrus r9 w1_3
|
||||
genthrus r10 w1_4
|
||||
genthrus r11 w2_1
|
||||
genthrus r12 w2_2
|
||||
genthrus r13 w2_3
|
||||
genthrus r14 w3_1
|
||||
genthrus r15 w3_2
|
||||
|
||||
checknbshapes r7 -edge 2
|
||||
checkprops r7 -l 41.4134
|
||||
checknbshapes r8 -edge 2
|
||||
checkprops r8 -l 42.3039
|
||||
checknbshapes r9 -edge 2
|
||||
checkprops r9 -l 42.5986
|
||||
checknbshapes r10 -edge 2
|
||||
checkprops r10 -l 41.6404
|
||||
checknbshapes r11 -edge 2
|
||||
checkprops r11 -l 41.6404
|
||||
checknbshapes r12 -edge 2
|
||||
checkprops r12 -l 40.0133
|
||||
checknbshapes r13 -edge 2
|
||||
checkprops r13 -l 41.4134
|
||||
checknbshapes r14 -edge 2
|
||||
checkprops r14 -l 41.4134
|
||||
checknbshapes r15 -edge 2
|
||||
checkprops r15 -l 41.6404
|
64
tests/bugs/modalg_6/bug26150_14
Normal file
64
tests/bugs/modalg_6/bug26150_14
Normal file
@ -0,0 +1,64 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 10 0 -10 -10 0 10 -10 0 10 10 0
|
||||
polyline w2 10 8 20 0 -10 20 -10 7 20
|
||||
circle w3 0 0 40 10
|
||||
trim w3 w3 pi 2*pi
|
||||
mkedge w3 w3
|
||||
wire w3 w3
|
||||
|
||||
explode w1
|
||||
explode w2
|
||||
explode w3
|
||||
|
||||
thrusections r 0 0 w1 w2 w3
|
||||
|
||||
genthrus r1 w1_1
|
||||
genthrus r2 w1_2
|
||||
genthrus r3 w1_3
|
||||
genthrus r4 w2_1
|
||||
genthrus r5 w2_2
|
||||
genthrus r6 w3_1
|
||||
|
||||
checknbshapes r1 -face 1
|
||||
checkprops r1 -s 574.919
|
||||
checknbshapes r2 -face 2
|
||||
checkprops r2 -s 543.935
|
||||
checknbshapes r3 -face 1
|
||||
checkprops r3 -s 576.17
|
||||
checknbshapes r4 -face 2
|
||||
checkprops r4 -s 865.397
|
||||
checknbshapes r5 -face 2
|
||||
checkprops r5 -s 829.628
|
||||
checknbshapes r6 -face 4
|
||||
checkprops r6 -s 1695.02
|
||||
|
||||
explode w1 v
|
||||
explode w2 v
|
||||
explode w3 v
|
||||
|
||||
genthrus r7 w1_1
|
||||
genthrus r8 w1_2
|
||||
genthrus r9 w1_3
|
||||
genthrus r10 w1_4
|
||||
genthrus r11 w2_1
|
||||
genthrus r12 w2_2
|
||||
genthrus r13 w2_3
|
||||
genthrus r14 w3_1
|
||||
genthrus r15 w3_2
|
||||
|
||||
checkprops r7 -l 41.4735
|
||||
checkprops r8 -l 42.8862
|
||||
checkprops r9 -l 43.2561
|
||||
checkprops r10 -l 41.7738
|
||||
checkprops r11 -l 41.7738
|
||||
checkprops r12 -l 40.0173
|
||||
checkprops r13 -l 41.4735
|
||||
checkprops r14 -l 41.4735
|
||||
checkprops r15 -l 41.7738
|
89
tests/bugs/modalg_6/bug26150_15
Normal file
89
tests/bugs/modalg_6/bug26150_15
Normal file
@ -0,0 +1,89 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
restore [locate_data_file bug27386_pr2.brep] pr2
|
||||
polyline pr1 5 0 0 5 -5 0 -5 -5 0 -5 0 0
|
||||
explode pr2
|
||||
wire pr2 pr2_1 pr2_2
|
||||
circle cc 0 100 0 5
|
||||
trim cc cc 0 pi
|
||||
mkedge cc cc
|
||||
wire pr3 cc
|
||||
beziercurve c1 3 0 50 -45 5 50 -50 0 50 -55
|
||||
beziercurve c2 3 0 50 -45 -5 50 -50 0 50 -55
|
||||
trim c1 c1 0.5 1
|
||||
trim c2 c2 0.5 1
|
||||
mkedge e1 c1
|
||||
mkedge e2 c2
|
||||
orientation e2 R
|
||||
wire pr4 e1 e2
|
||||
donly pr1 pr2 pr3 pr4
|
||||
|
||||
explode pr1
|
||||
explode pr2
|
||||
explode pr3
|
||||
explode pr4
|
||||
|
||||
thrusections r 1 1 pr1 pr2 pr3 pr4 pr1
|
||||
|
||||
genthrus r1 pr1_1
|
||||
genthrus r2 pr1_2
|
||||
genthrus r3 pr1_3
|
||||
genthrus r4 pr2_1
|
||||
genthrus r5 pr2_2
|
||||
genthrus r6 pr3_1
|
||||
genthrus r7 pr4_1
|
||||
genthrus r8 pr4_2
|
||||
|
||||
checknbshapes r1 -face 4
|
||||
checkprops r1 -s 902.335
|
||||
checknbshapes r2 -face 8
|
||||
checkprops r2 -s 2278.73
|
||||
checknbshapes r3 -face 4
|
||||
checkprops r3 -s 902.335
|
||||
checknbshapes r4 -face 8
|
||||
checkprops r4 -s 2041.7
|
||||
checknbshapes r5 -face 8
|
||||
checkprops r5 -s 2041.7
|
||||
checknbshapes r6 -face 16
|
||||
checkprops r6 -s 4083.4
|
||||
checknbshapes r7 -face 8
|
||||
checkprops r7 -s 2041.7
|
||||
checknbshapes r8 -face 8
|
||||
checkprops r8 -s 2041.7
|
||||
|
||||
explode pr1 v
|
||||
explode pr2 v
|
||||
explode pr3 v
|
||||
explode pr4 v
|
||||
|
||||
genthrus r9 pr1_1
|
||||
genthrus r10 pr1_2
|
||||
genthrus r11 pr1_3
|
||||
genthrus r12 pr1_4
|
||||
genthrus r13 pr2_1
|
||||
genthrus r14 pr2_2
|
||||
genthrus r15 pr2_3
|
||||
genthrus r16 pr3_1
|
||||
genthrus r17 pr3_2
|
||||
genthrus r18 pr4_1
|
||||
genthrus r19 pr4_2
|
||||
genthrus r20 pr4_3
|
||||
|
||||
checkprops r9 -l 276.046
|
||||
checkprops r10 -l 298.732
|
||||
checkprops r11 -l 298.732
|
||||
checkprops r12 -l 276.046
|
||||
checkprops r13 -l 276.046
|
||||
checkprops r14 -l 311.127
|
||||
checkprops r15 -l 276.046
|
||||
checkprops r16 -l 276.046
|
||||
checkprops r17 -l 276.046
|
||||
checkprops r18 -l 276.046
|
||||
checkprops r19 -l 311.127
|
||||
checkprops r20 -l 276.046
|
89
tests/bugs/modalg_6/bug26150_16
Normal file
89
tests/bugs/modalg_6/bug26150_16
Normal file
@ -0,0 +1,89 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
restore [locate_data_file bug27386_pr2.brep] pr2
|
||||
polyline pr1 5 0 0 5 -5 0 -5 -5 0 -5 0 0
|
||||
explode pr2
|
||||
wire pr2 pr2_1 pr2_2
|
||||
circle cc 0 100 0 5
|
||||
trim cc cc 0 pi
|
||||
mkedge cc cc
|
||||
wire pr3 cc
|
||||
beziercurve c1 3 0 50 -45 5 50 -50 0 50 -55
|
||||
beziercurve c2 3 0 50 -45 -5 50 -50 0 50 -55
|
||||
trim c1 c1 0.5 1
|
||||
trim c2 c2 0.5 1
|
||||
mkedge e1 c1
|
||||
mkedge e2 c2
|
||||
orientation e2 R
|
||||
wire pr4 e1 e2
|
||||
donly pr1 pr2 pr3 pr4
|
||||
|
||||
explode pr1
|
||||
explode pr2
|
||||
explode pr3
|
||||
explode pr4
|
||||
|
||||
thrusections r 1 0 pr1 pr2 pr3 pr4 pr1
|
||||
|
||||
genthrus r1 pr1_1
|
||||
genthrus r2 pr1_2
|
||||
genthrus r3 pr1_3
|
||||
genthrus r4 pr2_1
|
||||
genthrus r5 pr2_2
|
||||
genthrus r6 pr3_1
|
||||
genthrus r7 pr4_1
|
||||
genthrus r8 pr4_2
|
||||
|
||||
checknbshapes r1 -face 1
|
||||
checkprops r1 -s 1427.73
|
||||
checknbshapes r2 -face 2
|
||||
checkprops r2 -s 2845.67
|
||||
checknbshapes r3 -face 1
|
||||
checkprops r3 -s 1427.73
|
||||
checknbshapes r4 -face 2
|
||||
checkprops r4 -s 2850.56
|
||||
checknbshapes r5 -face 2
|
||||
checkprops r5 -s 2850.56
|
||||
checknbshapes r6 -face 4
|
||||
checkprops r6 -s 5701.12
|
||||
checknbshapes r7 -face 2
|
||||
checkprops r7 -s 2850.56
|
||||
checknbshapes r8 -face 2
|
||||
checkprops r8 -s 2850.56
|
||||
|
||||
explode pr1 v
|
||||
explode pr2 v
|
||||
explode pr3 v
|
||||
explode pr4 v
|
||||
|
||||
genthrus r9 pr1_1
|
||||
genthrus r10 pr1_2
|
||||
genthrus r11 pr1_3
|
||||
genthrus r12 pr1_4
|
||||
genthrus r13 pr2_1
|
||||
genthrus r14 pr2_2
|
||||
genthrus r15 pr2_3
|
||||
genthrus r16 pr3_1
|
||||
genthrus r17 pr3_2
|
||||
genthrus r18 pr4_1
|
||||
genthrus r19 pr4_2
|
||||
genthrus r20 pr4_3
|
||||
|
||||
checkprops r9 -l 322.713
|
||||
checkprops r10 -l 347.889
|
||||
checkprops r11 -l 347.889
|
||||
checkprops r12 -l 322.713
|
||||
checkprops r13 -l 322.713
|
||||
checkprops r14 -l 363.603
|
||||
checkprops r15 -l 322.713
|
||||
checkprops r16 -l 322.713
|
||||
checkprops r17 -l 322.713
|
||||
checkprops r18 -l 322.713
|
||||
checkprops r19 -l 363.603
|
||||
checkprops r20 -l 322.713
|
81
tests/bugs/modalg_6/bug26150_17
Normal file
81
tests/bugs/modalg_6/bug26150_17
Normal file
@ -0,0 +1,81 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 10 0 -10 -10 0 10 -10 0 10 10 0
|
||||
polyline w2 10 8 20 0 -10 20 -10 7 20
|
||||
circle w3 0 0 40 10
|
||||
trim w3 w3 pi 2*pi
|
||||
mkedge w3 w3
|
||||
wire w3 w3
|
||||
vertex v1 0 0 -30
|
||||
vertex v2 0 0 70
|
||||
|
||||
explode w1
|
||||
explode w2
|
||||
explode w3
|
||||
|
||||
thrusections r 0 1 v1 w1 w2 w3 v2
|
||||
|
||||
genthrus r1 w1_1
|
||||
genthrus r2 w1_2
|
||||
genthrus r3 w1_3
|
||||
genthrus r4 w2_1
|
||||
genthrus r5 w2_2
|
||||
genthrus r6 w3_1
|
||||
|
||||
checknbshapes r1 -face 4
|
||||
checkprops r1 -s 1058.95
|
||||
checknbshapes r2 -face 8
|
||||
checkprops r2 -s 1023.52
|
||||
checknbshapes r3 -face 4
|
||||
checkprops r3 -s 1060.27
|
||||
checknbshapes r4 -face 8
|
||||
checkprops r4 -s 1604.51
|
||||
checknbshapes r5 -face 8
|
||||
checkprops r5 -s 1538.22
|
||||
checknbshapes r6 -face 16
|
||||
checkprops r6 -s 3142.73
|
||||
|
||||
explode w1 v
|
||||
explode w2 v
|
||||
explode w3 v
|
||||
|
||||
genthrus r7 w1_1
|
||||
genthrus r8 w1_2
|
||||
genthrus r9 w1_3
|
||||
genthrus r10 w1_4
|
||||
genthrus r11 w2_1
|
||||
genthrus r12 w2_2
|
||||
genthrus r13 w2_3
|
||||
genthrus r14 w3_1
|
||||
genthrus r15 w3_2
|
||||
genthrus r16 v1
|
||||
genthrus r17 v2
|
||||
|
||||
checknbshapes r7 -edge 4
|
||||
checkprops r7 -l 106.202
|
||||
checknbshapes r8 -edge 4
|
||||
checkprops r8 -l 107.093
|
||||
checknbshapes r9 -edge 4
|
||||
checkprops r9 -l 107.388
|
||||
checknbshapes r10 -edge 4
|
||||
checkprops r10 -l 106.429
|
||||
checknbshapes r11 -edge 4
|
||||
checkprops r11 -l 106.429
|
||||
checknbshapes r12 -edge 4
|
||||
checkprops r12 -l 103.265
|
||||
checknbshapes r13 -edge 4
|
||||
checkprops r13 -l 106.202
|
||||
checknbshapes r14 -edge 4
|
||||
checkprops r14 -l 106.202
|
||||
checknbshapes r15 -edge 4
|
||||
checkprops r15 -l 106.429
|
||||
checknbshapes r16 -edge 20
|
||||
checkprops r16 -l 530.378
|
||||
checknbshapes r17 -edge 20
|
||||
checkprops r17 -l 530.378
|
70
tests/bugs/modalg_6/bug26150_18
Normal file
70
tests/bugs/modalg_6/bug26150_18
Normal file
@ -0,0 +1,70 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 10 0 -10 -10 0 10 -10 0 10 10 0
|
||||
polyline w2 10 8 20 0 -10 20 -10 7 20
|
||||
circle w3 0 0 40 10
|
||||
trim w3 w3 pi 2*pi
|
||||
mkedge w3 w3
|
||||
wire w3 w3
|
||||
vertex v1 0 0 -30
|
||||
vertex v2 0 0 70
|
||||
|
||||
explode w1
|
||||
explode w2
|
||||
explode w3
|
||||
|
||||
thrusections r 0 0 v1 w1 w2 w3 v2
|
||||
|
||||
genthrus r1 w1_1
|
||||
genthrus r2 w1_2
|
||||
genthrus r3 w1_3
|
||||
genthrus r4 w2_1
|
||||
genthrus r5 w2_2
|
||||
genthrus r6 w3_1
|
||||
|
||||
checknbshapes r1 -face 1
|
||||
checkprops r1 -s 1409.51
|
||||
checknbshapes r2 -face 2
|
||||
checkprops r2 -s 1703.44
|
||||
checknbshapes r3 -face 1
|
||||
checkprops r3 -s 1401.17
|
||||
checknbshapes r4 -face 2
|
||||
checkprops r4 -s 2316.52
|
||||
checknbshapes r5 -face 2
|
||||
checkprops r5 -s 2197.61
|
||||
checknbshapes r6 -face 4
|
||||
checkprops r6 -s 4514.13
|
||||
|
||||
explode w1 v
|
||||
explode w2 v
|
||||
explode w3 v
|
||||
|
||||
genthrus r7 w1_1
|
||||
genthrus r8 w1_2
|
||||
genthrus r9 w1_3
|
||||
genthrus r10 w1_4
|
||||
genthrus r11 w2_1
|
||||
genthrus r12 w2_2
|
||||
genthrus r13 w2_3
|
||||
genthrus r14 w3_1
|
||||
genthrus r15 w3_2
|
||||
genthrus r16 v1
|
||||
genthrus r17 v2
|
||||
|
||||
checkprops r7 -l 109.077
|
||||
checkprops r8 -l 122.394
|
||||
checkprops r9 -l 124.029
|
||||
checkprops r10 -l 109.865
|
||||
checkprops r11 -l 109.865
|
||||
checkprops r12 -l 104.896
|
||||
checkprops r13 -l 109.077
|
||||
checkprops r14 -l 109.077
|
||||
checkprops r15 -l 109.865
|
||||
checkprops r16 -l 570.261
|
||||
checkprops r17 -l 570.261
|
50
tests/bugs/modalg_6/bug26150_2
Normal file
50
tests/bugs/modalg_6/bug26150_2
Normal file
@ -0,0 +1,50 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 -10 0 10 -10 0 10 10 0 -10 10 0 -10 -10 0
|
||||
vertex v1 0 -10 20
|
||||
vertex v2 10 8 20
|
||||
vertex v3 -10 7 20
|
||||
edge e1 v1 v2
|
||||
orientation e1 R
|
||||
edge e2 v2 v3
|
||||
orientation e2 R
|
||||
edge e3 v3 v1
|
||||
orientation e3 R
|
||||
wire w2 e1 e2 e3
|
||||
circle w3 0 0 40 10
|
||||
mkedge w3 w3
|
||||
wire w3 w3
|
||||
|
||||
explode w2
|
||||
|
||||
thrusections r 1 1 w1 w2 w3
|
||||
|
||||
genthrus r5 w2_1
|
||||
genthrus r6 w2_2
|
||||
genthrus r7 w2_3
|
||||
|
||||
checknbshapes r5 -face 6
|
||||
checkprops r5 -s 872.216
|
||||
checknbshapes r6 -face 6
|
||||
checkprops r6 -s 852.53
|
||||
checknbshapes r7 -face 4
|
||||
checkprops r7 -s 835.461
|
||||
|
||||
explode w2 v
|
||||
|
||||
genthrus r13 w2_1
|
||||
genthrus r14 w2_2
|
||||
genthrus r15 w2_3
|
||||
|
||||
checknbshapes r13 -edge 2
|
||||
checkprops r13 -l 40.0002
|
||||
checknbshapes r14 -edge 2
|
||||
checkprops r14 -l 40.2965
|
||||
checknbshapes r15 -edge 2
|
||||
checkprops r15 -l 40.2389
|
75
tests/bugs/modalg_6/bug26150_3
Normal file
75
tests/bugs/modalg_6/bug26150_3
Normal file
@ -0,0 +1,75 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 -10 0 10 -10 0 10 10 0 -10 10 0 -10 -10 0
|
||||
polyline w2 0 -10 20 -10 7 20 10 8 20 0 -10 20
|
||||
circle w3 0 0 40 10
|
||||
mkedge w3 w3
|
||||
wire w3 w3
|
||||
|
||||
explode w1
|
||||
explode w2
|
||||
explode w3
|
||||
|
||||
thrusections r 1 0 w1 w2 w3
|
||||
|
||||
genthrus r1 w1_1
|
||||
genthrus r2 w1_2
|
||||
genthrus r3 w1_3
|
||||
genthrus r4 w1_4
|
||||
genthrus r5 w2_1
|
||||
genthrus r6 w2_2
|
||||
genthrus r7 w2_3
|
||||
genthrus r8 w3_1
|
||||
|
||||
checknbshapes r1 -face 2
|
||||
checkprops r1 -s 679.305
|
||||
checknbshapes r2 -face 3
|
||||
checkprops r2 -s 649.975
|
||||
checknbshapes r3 -face 1
|
||||
checkprops r3 -s 554.732
|
||||
checknbshapes r4 -face 2
|
||||
checkprops r4 -s 648.481
|
||||
checknbshapes r5 -face 2
|
||||
checkprops r5 -s 828.494
|
||||
checknbshapes r6 -face 3
|
||||
checkprops r6 -s 837.872
|
||||
checknbshapes r7 -face 3
|
||||
checkprops r7 -s 866.128
|
||||
checknbshapes r8 -face 8
|
||||
checkprops r8 -s 2532.49
|
||||
|
||||
explode w1 v
|
||||
explode w2 v
|
||||
explode w3 v
|
||||
|
||||
genthrus r9 w1_1
|
||||
genthrus r10 w1_2
|
||||
genthrus r11 w1_3
|
||||
genthrus r12 w1_4
|
||||
genthrus r13 w2_1
|
||||
genthrus r14 w2_2
|
||||
genthrus r15 w2_3
|
||||
genthrus r16 w3_1
|
||||
|
||||
checknbshapes r9 -edge 1
|
||||
checkprops r9 -l 43.4094
|
||||
checknbshapes r10 -edge 1
|
||||
checkprops r10 -l 43.6285
|
||||
checknbshapes r11 -edge 1
|
||||
checkprops r11 -l 40.596
|
||||
checknbshapes r12 -edge 1
|
||||
checkprops r12 -l 40.9228
|
||||
checknbshapes r13 -edge 1
|
||||
checkprops r13 -l 40.0003
|
||||
checknbshapes r14 -edge 1
|
||||
checkprops r14 -l 40.3103
|
||||
checknbshapes r15 -edge 1
|
||||
checkprops r15 -l 40.3794
|
||||
checknbshapes r16 -edge 1
|
||||
checkprops r16 -l 40.9892
|
50
tests/bugs/modalg_6/bug26150_4
Normal file
50
tests/bugs/modalg_6/bug26150_4
Normal file
@ -0,0 +1,50 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 -10 0 10 -10 0 10 10 0 -10 10 0 -10 -10 0
|
||||
vertex v1 0 -10 20
|
||||
vertex v2 10 8 20
|
||||
vertex v3 -10 7 20
|
||||
edge e1 v1 v2
|
||||
orientation e1 R
|
||||
edge e2 v2 v3
|
||||
orientation e2 R
|
||||
edge e3 v3 v1
|
||||
orientation e3 R
|
||||
wire w2 e1 e2 e3
|
||||
circle w3 0 0 40 10
|
||||
mkedge w3 w3
|
||||
wire w3 w3
|
||||
|
||||
explode w2
|
||||
|
||||
thrusections r 1 0 w1 w2 w3
|
||||
|
||||
genthrus r5 w2_1
|
||||
genthrus r6 w2_2
|
||||
genthrus r7 w2_3
|
||||
|
||||
checknbshapes r5 -face 3
|
||||
checkprops r5 -s 866.128
|
||||
checknbshapes r6 -face 3
|
||||
checkprops r6 -s 837.872
|
||||
checknbshapes r7 -face 2
|
||||
checkprops r7 -s 828.494
|
||||
|
||||
explode w2 v
|
||||
|
||||
genthrus r13 w2_1
|
||||
genthrus r14 w2_2
|
||||
genthrus r15 w2_3
|
||||
|
||||
checknbshapes r13 -edge 1
|
||||
checkprops r13 -l 40.0003
|
||||
checknbshapes r14 -edge 1
|
||||
checkprops r14 -l 40.3794
|
||||
checknbshapes r15 -edge 1
|
||||
checkprops r15 -l 40.3103
|
41
tests/bugs/modalg_6/bug26150_5
Normal file
41
tests/bugs/modalg_6/bug26150_5
Normal file
@ -0,0 +1,41 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 -10 0 10 -10 0 10 10 0 -10 10 0 -10 -10 0
|
||||
polyline w2 0 -10 20 -10 7 20 10 8 20 0 -10 20
|
||||
circle w3 0 0 40 10
|
||||
mkedge w3 w3
|
||||
wire w3 w3
|
||||
vertex v1 0 0 -30
|
||||
vertex v2 0 0 70
|
||||
|
||||
explode w1
|
||||
|
||||
thrusections r 1 1 v1 w1 w2 w3 v2
|
||||
|
||||
genthrus r1 w1_1
|
||||
genthrus r2 w1_2
|
||||
genthrus r3 w1_3
|
||||
genthrus r4 w1_4
|
||||
|
||||
checknbshapes r1 -face 8
|
||||
checkprops r1 -s 1232.78
|
||||
checknbshapes r2 -face 12
|
||||
checkprops r2 -s 1215.55
|
||||
checknbshapes r3 -face 4
|
||||
checkprops r3 -s 1155.34
|
||||
checknbshapes r4 -face 8
|
||||
checkprops r4 -s 1214.91
|
||||
|
||||
genthrus r5 v1
|
||||
genthrus r6 v2
|
||||
|
||||
checknbshapes r5 -edge 32
|
||||
checkprops r5 -l 841.334
|
||||
checknbshapes r6 -edge 32
|
||||
checkprops r6 -l 841.334
|
41
tests/bugs/modalg_6/bug26150_6
Normal file
41
tests/bugs/modalg_6/bug26150_6
Normal file
@ -0,0 +1,41 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 -10 0 10 -10 0 10 10 0 -10 10 0 -10 -10 0
|
||||
polyline w2 0 -10 20 -10 7 20 10 8 20 0 -10 20
|
||||
circle w3 0 0 40 10
|
||||
mkedge w3 w3
|
||||
wire w3 w3
|
||||
vertex v1 0 0 -30
|
||||
vertex v2 0 0 70
|
||||
|
||||
explode w1
|
||||
|
||||
thrusections r 1 0 v1 w1 w2 w3 v2
|
||||
|
||||
genthrus r1 w1_1
|
||||
genthrus r2 w1_2
|
||||
genthrus r3 w1_3
|
||||
genthrus r4 w1_4
|
||||
|
||||
checknbshapes r1 -face 2
|
||||
checkprops r1 -s 1970.62
|
||||
checknbshapes r2 -face 3
|
||||
checkprops r2 -s 1933.42
|
||||
checknbshapes r3 -face 1
|
||||
checkprops r3 -s 1690.2
|
||||
checknbshapes r4 -face 2
|
||||
checkprops r4 -s 1859.72
|
||||
|
||||
genthrus r5 v1
|
||||
genthrus r6 v2
|
||||
|
||||
checknbshapes r5 -edge 8
|
||||
checkprops r5 -l 902.911
|
||||
checknbshapes r6 -edge 8
|
||||
checkprops r6 -l 902.911
|
41
tests/bugs/modalg_6/bug26150_7
Normal file
41
tests/bugs/modalg_6/bug26150_7
Normal file
@ -0,0 +1,41 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 -10 0 10 -10 0 10 10 0 -10 10 0 -10 -10 0
|
||||
polyline w2 -10 -10 20 10 -10 20 10 10 20 -10 10 20 -10 -10 20
|
||||
trotate w2 0 0 0 0 0 1 45
|
||||
polyline w3 -10 -10 40 10 -10 40 10 10 40 -10 10 40 -10 -10 40
|
||||
trotate w3 0 0 0 0 0 1 90
|
||||
vertex v1 0 0 -30
|
||||
vertex v2 0 0 70
|
||||
|
||||
explode w1
|
||||
|
||||
thrusections -N r 1 1 v1 w1 w2 w3 v2
|
||||
|
||||
genthrus r1 w1_1
|
||||
genthrus r2 w1_2
|
||||
genthrus r3 w1_3
|
||||
genthrus r4 w1_4
|
||||
|
||||
checknbshapes r1 -face 4
|
||||
checkprops r1 -s 1412.16
|
||||
checknbshapes r2 -face 4
|
||||
checkprops r2 -s 1412.16
|
||||
checknbshapes r3 -face 4
|
||||
checkprops r3 -s 1412.16
|
||||
checknbshapes r4 -face 4
|
||||
checkprops r4 -s 1412.16
|
||||
|
||||
genthrus r5 v1
|
||||
genthrus r6 v2
|
||||
|
||||
checknbshapes r5 -edge 16
|
||||
checkprops r5 -l 447.259
|
||||
checknbshapes r6 -edge 16
|
||||
checkprops r6 -l 447.259
|
37
tests/bugs/modalg_6/bug26150_8
Normal file
37
tests/bugs/modalg_6/bug26150_8
Normal file
@ -0,0 +1,37 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
polyline w1 -10 -10 0 10 -10 0 10 10 0 -10 10 0 -10 -10 0
|
||||
polyline w2 -10 -10 20 10 -10 20 10 10 20 -10 10 20 -10 -10 20
|
||||
trotate w2 0 0 0 0 0 1 45
|
||||
polyline w3 -10 -10 40 10 -10 40 10 10 40 -10 10 40 -10 -10 40
|
||||
trotate w3 0 0 0 0 0 1 90
|
||||
vertex v1 0 0 -30
|
||||
vertex v2 0 0 70
|
||||
|
||||
explode w1
|
||||
|
||||
thrusections -N r 1 0 v1 w1 w2 w3 v2
|
||||
|
||||
genthrus r1 w1_1
|
||||
genthrus r2 w1_2
|
||||
genthrus r3 w1_3
|
||||
genthrus r4 w1_4
|
||||
|
||||
checkprops r1 -s 1694.42
|
||||
checkprops r2 -s 1694.42
|
||||
checkprops r3 -s 1694.42
|
||||
checkprops r4 -s 1694.42
|
||||
|
||||
genthrus r5 v1
|
||||
genthrus r6 v2
|
||||
|
||||
checknbshapes r5 -edge 4
|
||||
checkprops r5 -l 466.764
|
||||
checknbshapes r6 -edge 4
|
||||
checkprops r6 -l 466.764
|
94
tests/bugs/modalg_6/bug26150_9
Normal file
94
tests/bugs/modalg_6/bug26150_9
Normal file
@ -0,0 +1,94 @@
|
||||
puts "============"
|
||||
puts "OCC26150"
|
||||
puts "============"
|
||||
puts ""
|
||||
#########################################################################
|
||||
# BRepOffsetAPI_ThruSections doesn't implement history method Generated()
|
||||
#########################################################################
|
||||
|
||||
restore [locate_data_file bug27386_pr1.brep] pr1
|
||||
restore [locate_data_file bug27386_pr2.brep] pr2
|
||||
restore [locate_data_file bug27386_pr3.brep] pr3
|
||||
beziercurve c1 3 0 50 -45 5 50 -50 0 50 -55
|
||||
beziercurve c2 3 0 50 -45 -5 50 -50 0 50 -55
|
||||
mkedge e1 c1
|
||||
mkedge e2 c2
|
||||
orientation e2 R
|
||||
wire pr4 e1 e2
|
||||
donly pr1 pr2 pr3 pr4
|
||||
|
||||
explode pr1
|
||||
explode pr2
|
||||
explode pr3
|
||||
explode pr4
|
||||
|
||||
thrusections r 1 1 pr1 pr2 pr3 pr4 pr1
|
||||
|
||||
genthrus r1 pr1_1
|
||||
genthrus r2 pr1_2
|
||||
genthrus r3 pr1_3
|
||||
genthrus r4 pr1_4
|
||||
genthrus r5 pr2_1
|
||||
genthrus r6 pr2_2
|
||||
genthrus r7 pr2_3
|
||||
genthrus r8 pr3_1
|
||||
genthrus r9 pr4_1
|
||||
genthrus r10 pr4_2
|
||||
|
||||
checknbshapes r1 -face 8
|
||||
checkprops r1 -s 1909.23
|
||||
checknbshapes r2 -face 8
|
||||
checkprops r2 -s 1520.59
|
||||
checknbshapes r3 -face 8
|
||||
checkprops r3 -s 2249.48
|
||||
checknbshapes r4 -face 12
|
||||
checkprops r4 -s 1518.88
|
||||
checknbshapes r5 -face 12
|
||||
checkprops r5 -s 2414.6
|
||||
checknbshapes r6 -face 8
|
||||
checkprops r6 -s 2416.3
|
||||
checknbshapes r7 -face 16
|
||||
checkprops r7 -s 2367.27
|
||||
checknbshapes r8 -face 36
|
||||
checkprops r8 -s 7198.18
|
||||
checknbshapes r9 -face 20
|
||||
checkprops r9 -s 3598.24
|
||||
checknbshapes r10 -face 16
|
||||
checkprops r10 -s 3599.94
|
||||
|
||||
explode pr1 v
|
||||
explode pr2 v
|
||||
explode pr3 v
|
||||
explode pr4 v
|
||||
|
||||
genthrus r11 pr1_1
|
||||
genthrus r12 pr1_2
|
||||
genthrus r13 pr1_3
|
||||
genthrus r14 pr1_4
|
||||
genthrus r15 pr2_1
|
||||
genthrus r16 pr2_2
|
||||
genthrus r17 pr2_3
|
||||
genthrus r18 pr3_1
|
||||
genthrus r19 pr4_1
|
||||
genthrus r20 pr4_2
|
||||
|
||||
checknbshapes r11 -edge 4
|
||||
checkprops r11 -l 260.921
|
||||
checknbshapes r12 -edge 4
|
||||
checkprops r12 -l 260.921
|
||||
checknbshapes r13 -edge 4
|
||||
checkprops r13 -l 299.007
|
||||
checknbshapes r14 -edge 4
|
||||
checkprops r14 -l 299.007
|
||||
checknbshapes r15 -edge 4
|
||||
checkprops r15 -l 264.795
|
||||
checknbshapes r16 -edge 4
|
||||
checkprops r16 -l 311.127
|
||||
checknbshapes r17 -edge 4
|
||||
checkprops r17 -l 264.795
|
||||
checknbshapes r18 -edge 4
|
||||
checkprops r18 -l 280.806
|
||||
checknbshapes r19 -edge 4
|
||||
checkprops r19 -l 254.558
|
||||
checknbshapes r20 -edge 4
|
||||
checkprops r20 -l 311.127
|
Loading…
x
Reference in New Issue
Block a user