Wed, 10/04/2000 - 16:07
Forums:
Hello!
Could somebody help, please, with folowing: I have IGES file contaning frofile made of edges. I read the file and get all the edges but i have to compose closed wires from them in order to construct faces (i use faces then to make solids by sweeping them). Could you please advise me an algorythm or maybe ready to use function to construct such closed wires from my pack of edges? Thanks in advance, Dima Ivanets
Thu, 03/12/2009 - 01:42
hello!can someone plz reply to this post, as I have a similar doubt?
Mon, 03/16/2009 - 06:23
try something like
Handle(TopTools_HSequenceOfShape) EdgesQ = new TopTools_HSequenceOfShape();
Handle(TopTools_HSequenceOfShape) Wires = new TopTools_HSequenceOfShape();
for(Exo.Init(aCurrentWire,TopAbs_EDGE);Exo.More();Exo.Next())
{
TopoDS_Edge aCurrentEdge = TopoDS::Edge(Exo.Current());
SF.FixAddPCurve(aCurrentEdge ,NewFace,false,m_GlobalTolerance);
EdgesQ->Append(aCurrentEdge);
}
ShapeAnalysis_FreeBounds::ConnectEdgesToWires( EdgesQ,m_GlobalTolerance ,false,Wires);
Handle(TopTools_HSequenceOfShape) ClosedWires = new TopTools_HSequenceOfShape();
Handle(TopTools_HSequenceOfShape) OpenWires = new TopTools_HSequenceOfShape();
ShapeAnalysis_FreeBounds::SplitWires(Wires,m_GlobalTolerance,false,ClosedWires,OpenWires);
Standard_Integer nbWires =ClosedWires->Length();
if(nbWires==1) aCurrentWire = TopoDS::Wire(ClosedWires->Value(1));
Mon, 03/16/2009 - 19:30
what is SF.FixAddPCurve(aCurrentEdge ,NewFace,false,m_GlobalTolerance);
m_GlobalTolerance here!how to calculate it?please help!
Mon, 03/16/2009 - 20:13
Hi David,
In the approach u suggested above: there is a debug break between these statements
SF.FixAddPCurve(aCurrentEdge ,NewFace,false,m_GlobalTolerance);
EdgesQ->Append(aCurrentEdge);
ie when trying to append the edge, the code breaks!!please help!
Mon, 03/16/2009 - 22:30
Hi David,
In the function SF.FixAddPCurve(aCurrentEdge ,NewFace,false,m_GlobalTolerance);
what does seam-true,false mean?
what is the newface doing?