mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-12-28 18:30:36 +05:00
0020719: EDF 1232 GEOM : Pipe construction dialog box, impossible to select a group or a compound
This commit is contained in:
parent
615afae166
commit
a4a980368a
@ -1946,18 +1946,34 @@ Standard_Integer GEOMImpl_PipeDriver::Execute(TFunction_Logbook& log) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get path contour
|
// Get path contour
|
||||||
if (aShapePath.ShapeType() == TopAbs_WIRE) {
|
bool isOk = false;
|
||||||
|
if ( aShapePath.ShapeType() == TopAbs_COMPOUND ) {
|
||||||
|
TopTools_SequenceOfShape anEdges;
|
||||||
|
TopExp_Explorer anExp;
|
||||||
|
BRep_Builder B;
|
||||||
|
TopoDS_Wire W;
|
||||||
|
B.MakeWire(W);
|
||||||
|
for ( anExp.Init( aShapePath, TopAbs_EDGE ); anExp.More(); anExp.Next() ) {
|
||||||
|
B.Add( W, anExp.Current() );
|
||||||
|
isOk = true;
|
||||||
|
}
|
||||||
|
if ( isOk )
|
||||||
|
aWirePath = W;
|
||||||
|
}
|
||||||
|
else if (aShapePath.ShapeType() == TopAbs_WIRE) {
|
||||||
aWirePath = TopoDS::Wire(aShapePath);
|
aWirePath = TopoDS::Wire(aShapePath);
|
||||||
|
isOk = true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (aShapePath.ShapeType() == TopAbs_EDGE) {
|
if (aShapePath.ShapeType() == TopAbs_EDGE) {
|
||||||
TopoDS_Edge anEdge = TopoDS::Edge(aShapePath);
|
TopoDS_Edge anEdge = TopoDS::Edge(aShapePath);
|
||||||
aWirePath = BRepBuilderAPI_MakeWire(anEdge);
|
aWirePath = BRepBuilderAPI_MakeWire(anEdge);
|
||||||
|
isOk = true;
|
||||||
}
|
}
|
||||||
else {
|
}
|
||||||
if(aCI) delete aCI;
|
if ( !isOk ) {
|
||||||
Standard_TypeMismatch::Raise("MakePipe aborted : path shape is neither a wire nor an edge");
|
if(aCI) delete aCI;
|
||||||
}
|
Standard_TypeMismatch::Raise("MakePipe aborted : path shape is neither a wire nor an edge");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -190,6 +190,7 @@ void GenerationGUI_PipeDlg::SelectionTypeButtonClicked()
|
|||||||
localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
|
localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
|
||||||
} else {
|
} else {
|
||||||
TColStd_MapOfInteger aMap;
|
TColStd_MapOfInteger aMap;
|
||||||
|
aMap.Add(GEOM_COMPOUND);
|
||||||
aMap.Add(GEOM_WIRE);
|
aMap.Add(GEOM_WIRE);
|
||||||
aMap.Add(GEOM_LINE);
|
aMap.Add(GEOM_LINE);
|
||||||
globalSelection(aMap);
|
globalSelection(aMap);
|
||||||
@ -370,6 +371,7 @@ void GenerationGUI_PipeDlg::SetEditCurrentArgument()
|
|||||||
localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
|
localSelection( GEOM::GEOM_Object::_nil(), TopAbs_EDGE );
|
||||||
} else {
|
} else {
|
||||||
TColStd_MapOfInteger aMap;
|
TColStd_MapOfInteger aMap;
|
||||||
|
aMap.Add(GEOM_COMPOUND);
|
||||||
aMap.Add(GEOM_WIRE);
|
aMap.Add(GEOM_WIRE);
|
||||||
aMap.Add(GEOM_LINE);
|
aMap.Add(GEOM_LINE);
|
||||||
globalSelection(aMap);
|
globalSelection(aMap);
|
||||||
|
Loading…
Reference in New Issue
Block a user