mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-12-25 08:50:36 +05:00
0020081: EDF 886 GEOM : GetShapesOnCylinderWithLocation function in TUI
+ ListOfGO GetShapesOnCylinderWithLocation (in GEOM_Object theShape,
This commit is contained in:
parent
0b6826bc5f
commit
ec1c5fd3a4
@ -1516,6 +1516,25 @@ module GEOM
|
|||||||
in double theRadius,
|
in double theRadius,
|
||||||
in shape_state theState);
|
in shape_state theState);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
||||||
|
* the specified cylinder by the certain way, defined through \a theState parameter.
|
||||||
|
* \param theShape Shape to find sub-shapes of.
|
||||||
|
* \param theShapeType Type of sub-shapes to be retrieved.
|
||||||
|
* \param theAxis Vector (or line, or linear edge), specifying
|
||||||
|
* axis of the cylinder to find shapes on.
|
||||||
|
* \param thePnt Point specifying location of the bottom of the cylinder.
|
||||||
|
* \param theRadius Radius of the cylinder to find shapes on.
|
||||||
|
* \param theState The state of the subshapes to find.
|
||||||
|
* \return List of all found sub-shapes.
|
||||||
|
*/
|
||||||
|
ListOfGO GetShapesOnCylinderWithLocation (in GEOM_Object theShape,
|
||||||
|
in long theShapeType,
|
||||||
|
in GEOM_Object theAxis,
|
||||||
|
in GEOM_Object thePnt,
|
||||||
|
in double theRadius,
|
||||||
|
in shape_state theState);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
||||||
* the specified sphere by the certain way, defined through \a theState parameter.
|
* the specified sphere by the certain way, defined through \a theState parameter.
|
||||||
@ -1601,6 +1620,25 @@ module GEOM
|
|||||||
in double theRadius,
|
in double theRadius,
|
||||||
in shape_state theState);
|
in shape_state theState);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
||||||
|
* the specified cylinder by the certain way, defined through \a theState parameter.
|
||||||
|
* \param theShape Shape to find sub-shapes of.
|
||||||
|
* \param theShapeType Type of sub-shapes to be retrieved.
|
||||||
|
* \param theAxis Vector (or line, or linear edge), specifying
|
||||||
|
* axis of the cylinder to find shapes on.
|
||||||
|
* \param thePnt Point specifying location of the bottom of the cylinder.
|
||||||
|
* \param theRadius Radius of the cylinder to find shapes on.
|
||||||
|
* \param theState The state of the subshapes to find.
|
||||||
|
* \return List of IDs all found sub-shapes.
|
||||||
|
*/
|
||||||
|
ListOfLong GetShapesOnCylinderWithLocationIDs (in GEOM_Object theShape,
|
||||||
|
in long theShapeType,
|
||||||
|
in GEOM_Object theAxis,
|
||||||
|
in GEOM_Object thePnt,
|
||||||
|
in double theRadius,
|
||||||
|
in shape_state theState);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
* Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
||||||
* the specified sphere by the certain way, defined through \a theState parameter.
|
* the specified sphere by the certain way, defined through \a theState parameter.
|
||||||
|
@ -109,12 +109,13 @@
|
|||||||
|
|
||||||
#include <Bnd_Box.hxx>
|
#include <Bnd_Box.hxx>
|
||||||
#include <GProp_GProps.hxx>
|
#include <GProp_GProps.hxx>
|
||||||
#include <gp_Pnt.hxx>
|
|
||||||
#include <gp_Lin.hxx>
|
|
||||||
#include <TColStd_ListOfInteger.hxx>
|
|
||||||
#include <TColStd_ListIteratorOfListOfInteger.hxx>
|
|
||||||
#include <TColStd_Array1OfReal.hxx>
|
#include <TColStd_Array1OfReal.hxx>
|
||||||
#include <TColStd_HArray1OfInteger.hxx>
|
#include <TColStd_HArray1OfInteger.hxx>
|
||||||
|
#include <TColStd_ListIteratorOfListOfInteger.hxx>
|
||||||
|
#include <TColStd_ListOfInteger.hxx>
|
||||||
|
#include <gp_Cylinder.hxx>
|
||||||
|
#include <gp_Lin.hxx>
|
||||||
|
#include <gp_Pnt.hxx>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
@ -2231,6 +2232,77 @@ Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::GetShapesOnCyli
|
|||||||
return aSeq;
|
return aSeq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* GetShapesOnCylinderWithLocation
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
Handle(TColStd_HSequenceOfTransient) GEOMImpl_IShapesOperations::GetShapesOnCylinderWithLocation
|
||||||
|
(const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
const Handle(GEOM_Object)& theAxis,
|
||||||
|
const Handle(GEOM_Object)& thePnt,
|
||||||
|
const Standard_Real theRadius,
|
||||||
|
const GEOMAlgo_State theState)
|
||||||
|
{
|
||||||
|
SetErrorCode(KO);
|
||||||
|
|
||||||
|
if (theShape.IsNull() || theAxis.IsNull() || thePnt.IsNull()) return NULL;
|
||||||
|
|
||||||
|
TopoDS_Shape aShape = theShape->GetValue();
|
||||||
|
TopoDS_Shape anAxis = theAxis->GetValue();
|
||||||
|
TopoDS_Shape aPnt = thePnt->GetValue();
|
||||||
|
|
||||||
|
if (aShape.IsNull() || anAxis.IsNull() || aPnt.IsNull()) return NULL;
|
||||||
|
|
||||||
|
if (aPnt.ShapeType() != TopAbs_VERTEX )
|
||||||
|
{
|
||||||
|
SetErrorCode("Bottom location point must be vertex");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
TopAbs_ShapeEnum aShapeType = TopAbs_ShapeEnum(theShapeType);
|
||||||
|
if ( !checkTypeShapesOn( aShapeType ))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// Create a cylinder surface
|
||||||
|
Handle(Geom_Surface) aCylinder = makeCylinder( anAxis, theRadius );
|
||||||
|
if ( aCylinder.IsNull() )
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// translate the surface
|
||||||
|
Handle(Geom_CylindricalSurface) aCylSurface =
|
||||||
|
Handle(Geom_CylindricalSurface)::DownCast( aCylinder );
|
||||||
|
if ( aCylSurface.IsNull() )
|
||||||
|
{
|
||||||
|
SetErrorCode("Unexpected surface type instead of Geom_CylindricalSurface");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
gp_Pnt fromLoc = aCylSurface->Cylinder().Location();
|
||||||
|
gp_Pnt toLoc = BRep_Tool::Pnt( TopoDS::Vertex( aPnt ));
|
||||||
|
aCylinder->Translate( fromLoc, toLoc );
|
||||||
|
|
||||||
|
// Find objects
|
||||||
|
TCollection_AsciiString anAsciiList;
|
||||||
|
Handle(TColStd_HSequenceOfTransient) aSeq;
|
||||||
|
aSeq = getShapesOnSurface( aCylinder, theShape, aShapeType, theState, anAsciiList );
|
||||||
|
if ( aSeq.IsNull() || aSeq->Length() == 0 )
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// Make a Python command
|
||||||
|
|
||||||
|
Handle(GEOM_Object) anObj = Handle(GEOM_Object)::DownCast( aSeq->Value( 1 ));
|
||||||
|
Handle(GEOM_Function) aFunction = anObj->GetLastFunction();
|
||||||
|
|
||||||
|
GEOM::TPythonDump(aFunction)
|
||||||
|
<< "[" << anAsciiList.ToCString()
|
||||||
|
<< "] = geompy.GetShapesOnCylinderWithLocation(" << theShape << ", " << aShapeType << ", "
|
||||||
|
<< theAxis << ", " << thePnt << ", " << theRadius << ", " << theState << ")";
|
||||||
|
|
||||||
|
SetErrorCode(OK);
|
||||||
|
return aSeq;
|
||||||
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
* GetShapesOnSphere
|
* GetShapesOnSphere
|
||||||
@ -2443,6 +2515,74 @@ Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetShapesOnCylind
|
|||||||
return aSeq;
|
return aSeq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* GetShapesOnCylinderWithLocationIDs
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
Handle(TColStd_HSequenceOfInteger) GEOMImpl_IShapesOperations::GetShapesOnCylinderWithLocationIDs
|
||||||
|
(const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
const Handle(GEOM_Object)& theAxis,
|
||||||
|
const Handle(GEOM_Object)& thePnt,
|
||||||
|
const Standard_Real theRadius,
|
||||||
|
const GEOMAlgo_State theState)
|
||||||
|
{
|
||||||
|
SetErrorCode(KO);
|
||||||
|
|
||||||
|
if (theShape.IsNull() || theAxis.IsNull() || thePnt.IsNull()) return NULL;
|
||||||
|
|
||||||
|
TopoDS_Shape aShape = theShape->GetValue();
|
||||||
|
TopoDS_Shape anAxis = theAxis->GetValue();
|
||||||
|
TopoDS_Shape aPnt = thePnt->GetValue();
|
||||||
|
|
||||||
|
if (aShape.IsNull() || anAxis.IsNull() || aPnt.IsNull()) return NULL;
|
||||||
|
|
||||||
|
if (aPnt.ShapeType() != TopAbs_VERTEX )
|
||||||
|
{
|
||||||
|
SetErrorCode("Bottom location point must be vertex");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
TopAbs_ShapeEnum aShapeType = TopAbs_ShapeEnum(theShapeType);
|
||||||
|
if ( !checkTypeShapesOn( aShapeType ))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// Create a cylinder surface
|
||||||
|
Handle(Geom_Surface) aCylinder = makeCylinder( anAxis, theRadius );
|
||||||
|
if ( aCylinder.IsNull() )
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// translate the surface
|
||||||
|
Handle(Geom_CylindricalSurface) aCylSurface =
|
||||||
|
Handle(Geom_CylindricalSurface)::DownCast( aCylinder );
|
||||||
|
if ( aCylSurface.IsNull() )
|
||||||
|
{
|
||||||
|
SetErrorCode("Unexpected surface type instead of Geom_CylindricalSurface");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
gp_Pnt fromLoc = aCylSurface->Cylinder().Location();
|
||||||
|
gp_Pnt toLoc = BRep_Tool::Pnt( TopoDS::Vertex( aPnt ));
|
||||||
|
aCylinder->Translate( fromLoc, toLoc );
|
||||||
|
|
||||||
|
// Find object IDs
|
||||||
|
Handle(TColStd_HSequenceOfInteger) aSeq;
|
||||||
|
aSeq = getShapesOnSurfaceIDs( aCylinder, aShape, aShapeType, theState );
|
||||||
|
|
||||||
|
// The GetShapesOnCylinder() doesn't change object so no new function is required.
|
||||||
|
Handle(GEOM_Function) aFunction =
|
||||||
|
GEOM::GetCreatedLast(theShape, GEOM::GetCreatedLast(thePnt,theAxis))->GetLastFunction();
|
||||||
|
|
||||||
|
// Make a Python command
|
||||||
|
GEOM::TPythonDump(aFunction, /*append=*/true)
|
||||||
|
<< "listShapesOnCylinder = geompy.GetShapesOnCylinderWithLocationIDs"
|
||||||
|
<< "(" << theShape << ", " << aShapeType << ", " << theAxis << ", "
|
||||||
|
<< thePnt << ", " << theRadius << ", " << theState << ")";
|
||||||
|
|
||||||
|
SetErrorCode(OK);
|
||||||
|
return aSeq;
|
||||||
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
* GetShapesOnSphereIDs
|
* GetShapesOnSphereIDs
|
||||||
|
@ -134,6 +134,14 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
|
|||||||
const Standard_Real theRadius,
|
const Standard_Real theRadius,
|
||||||
const GEOMAlgo_State theState);
|
const GEOMAlgo_State theState);
|
||||||
|
|
||||||
|
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
|
||||||
|
GetShapesOnCylinderWithLocation (const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
const Handle(GEOM_Object)& theAxis,
|
||||||
|
const Handle(GEOM_Object)& thePnt,
|
||||||
|
const Standard_Real theRadius,
|
||||||
|
const GEOMAlgo_State theState);
|
||||||
|
|
||||||
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
|
Standard_EXPORT Handle(TColStd_HSequenceOfTransient)
|
||||||
GetShapesOnSphere (const Handle(GEOM_Object)& theShape,
|
GetShapesOnSphere (const Handle(GEOM_Object)& theShape,
|
||||||
const Standard_Integer theShapeType,
|
const Standard_Integer theShapeType,
|
||||||
@ -161,6 +169,14 @@ class GEOMImpl_IShapesOperations : public GEOM_IOperations
|
|||||||
const Standard_Real theRadius,
|
const Standard_Real theRadius,
|
||||||
const GEOMAlgo_State theState);
|
const GEOMAlgo_State theState);
|
||||||
|
|
||||||
|
Standard_EXPORT Handle(TColStd_HSequenceOfInteger)
|
||||||
|
GetShapesOnCylinderWithLocationIDs (const Handle(GEOM_Object)& theShape,
|
||||||
|
const Standard_Integer theShapeType,
|
||||||
|
const Handle(GEOM_Object)& theAxis,
|
||||||
|
const Handle(GEOM_Object)& thePnt,
|
||||||
|
const Standard_Real theRadius,
|
||||||
|
const GEOMAlgo_State theState);
|
||||||
|
|
||||||
Standard_EXPORT Handle(TColStd_HSequenceOfInteger)
|
Standard_EXPORT Handle(TColStd_HSequenceOfInteger)
|
||||||
GetShapesOnSphereIDs (const Handle(GEOM_Object)& theShape,
|
GetShapesOnSphereIDs (const Handle(GEOM_Object)& theShape,
|
||||||
const Standard_Integer theShapeType,
|
const Standard_Integer theShapeType,
|
||||||
|
@ -809,6 +809,45 @@ GEOM::ListOfGO* GEOM_IShapesOperations_i::GetShapesOnCylinder
|
|||||||
return aSeq._retn();
|
return aSeq._retn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* GetShapesOnCylinderWithLocation
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
GEOM::ListOfGO* GEOM_IShapesOperations_i::GetShapesOnCylinderWithLocation
|
||||||
|
(GEOM::GEOM_Object_ptr theShape,
|
||||||
|
const CORBA::Long theShapeType,
|
||||||
|
GEOM::GEOM_Object_ptr theAxis,
|
||||||
|
GEOM::GEOM_Object_ptr thePnt,
|
||||||
|
const CORBA::Double theRadius,
|
||||||
|
const GEOM::shape_state theState)
|
||||||
|
{
|
||||||
|
GEOM::ListOfGO_var aSeq = new GEOM::ListOfGO;
|
||||||
|
|
||||||
|
//Set a not done flag
|
||||||
|
GetOperations()->SetNotDone();
|
||||||
|
|
||||||
|
//Get the reference objects
|
||||||
|
Handle(GEOM_Object) aShape = GetObjectImpl(theShape);
|
||||||
|
Handle(GEOM_Object) anAxis = GetObjectImpl(theAxis);
|
||||||
|
Handle(GEOM_Object) aPnt = GetObjectImpl(thePnt);
|
||||||
|
|
||||||
|
if (aShape.IsNull() || anAxis.IsNull() || aPnt.IsNull()) return aSeq._retn();
|
||||||
|
|
||||||
|
//Get Shapes On Cylinder
|
||||||
|
Handle(TColStd_HSequenceOfTransient) aHSeq = GetOperations()->GetShapesOnCylinderWithLocation
|
||||||
|
(aShape, theShapeType, anAxis, aPnt, theRadius, ShapeState(theState));
|
||||||
|
if (!GetOperations()->IsDone() || aHSeq.IsNull())
|
||||||
|
return aSeq._retn();
|
||||||
|
|
||||||
|
Standard_Integer aLength = aHSeq->Length();
|
||||||
|
aSeq->length(aLength);
|
||||||
|
for (Standard_Integer i = 1; i <= aLength; i++)
|
||||||
|
aSeq[i-1] = GetObject(Handle(GEOM_Object)::DownCast(aHSeq->Value(i)));
|
||||||
|
|
||||||
|
return aSeq._retn();
|
||||||
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
* GetShapesOnSphere
|
* GetShapesOnSphere
|
||||||
@ -1007,6 +1046,45 @@ GEOM::ListOfLong* GEOM_IShapesOperations_i::GetShapesOnCylinderIDs
|
|||||||
return aSeq._retn();
|
return aSeq._retn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
/*!
|
||||||
|
* GetShapesOnCylinderWithLocationIDs
|
||||||
|
*/
|
||||||
|
//=============================================================================
|
||||||
|
GEOM::ListOfLong* GEOM_IShapesOperations_i::GetShapesOnCylinderWithLocationIDs
|
||||||
|
(GEOM::GEOM_Object_ptr theShape,
|
||||||
|
const CORBA::Long theShapeType,
|
||||||
|
GEOM::GEOM_Object_ptr theAxis,
|
||||||
|
GEOM::GEOM_Object_ptr thePnt,
|
||||||
|
const CORBA::Double theRadius,
|
||||||
|
const GEOM::shape_state theState)
|
||||||
|
{
|
||||||
|
GEOM::ListOfLong_var aSeq = new GEOM::ListOfLong;
|
||||||
|
|
||||||
|
//Set a not done flag
|
||||||
|
GetOperations()->SetNotDone();
|
||||||
|
|
||||||
|
//Get the reference objects
|
||||||
|
Handle(GEOM_Object) aShape = GetObjectImpl(theShape);
|
||||||
|
Handle(GEOM_Object) anAxis = GetObjectImpl(theAxis);
|
||||||
|
Handle(GEOM_Object) aPnt = GetObjectImpl(thePnt);
|
||||||
|
|
||||||
|
if (aShape.IsNull() || anAxis.IsNull() || aPnt.IsNull()) return aSeq._retn();
|
||||||
|
|
||||||
|
//Get Shapes On Cylinder
|
||||||
|
Handle(TColStd_HSequenceOfInteger) aHSeq = GetOperations()->GetShapesOnCylinderWithLocationIDs
|
||||||
|
(aShape, theShapeType, anAxis, aPnt, theRadius, ShapeState(theState));
|
||||||
|
if (!GetOperations()->IsDone() || aHSeq.IsNull())
|
||||||
|
return aSeq._retn();
|
||||||
|
|
||||||
|
Standard_Integer aLength = aHSeq->Length();
|
||||||
|
aSeq->length(aLength);
|
||||||
|
for (Standard_Integer i = 1; i <= aLength; i++)
|
||||||
|
aSeq[i-1] = aHSeq->Value(i);
|
||||||
|
|
||||||
|
return aSeq._retn();
|
||||||
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
/*!
|
/*!
|
||||||
* GetShapesOnSphereIDs
|
* GetShapesOnSphereIDs
|
||||||
|
@ -124,6 +124,13 @@ class GEOM_I_EXPORT GEOM_IShapesOperations_i :
|
|||||||
CORBA::Double theRadius,
|
CORBA::Double theRadius,
|
||||||
GEOM::shape_state theState);
|
GEOM::shape_state theState);
|
||||||
|
|
||||||
|
GEOM::ListOfGO* GetShapesOnCylinderWithLocation (GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Long theShapeType,
|
||||||
|
GEOM::GEOM_Object_ptr theAxis,
|
||||||
|
GEOM::GEOM_Object_ptr thePnt,
|
||||||
|
CORBA::Double theRadius,
|
||||||
|
GEOM::shape_state theState);
|
||||||
|
|
||||||
GEOM::ListOfGO* GetShapesOnSphere (GEOM::GEOM_Object_ptr theShape,
|
GEOM::ListOfGO* GetShapesOnSphere (GEOM::GEOM_Object_ptr theShape,
|
||||||
CORBA::Long theShapeType,
|
CORBA::Long theShapeType,
|
||||||
GEOM::GEOM_Object_ptr theCenter,
|
GEOM::GEOM_Object_ptr theCenter,
|
||||||
@ -155,6 +162,13 @@ class GEOM_I_EXPORT GEOM_IShapesOperations_i :
|
|||||||
CORBA::Double theRadius,
|
CORBA::Double theRadius,
|
||||||
GEOM::shape_state theState);
|
GEOM::shape_state theState);
|
||||||
|
|
||||||
|
GEOM::ListOfLong* GetShapesOnCylinderWithLocationIDs (GEOM::GEOM_Object_ptr theShape,
|
||||||
|
CORBA::Long theShapeType,
|
||||||
|
GEOM::GEOM_Object_ptr theAxis,
|
||||||
|
GEOM::GEOM_Object_ptr thePnt,
|
||||||
|
CORBA::Double theRadius,
|
||||||
|
GEOM::shape_state theState);
|
||||||
|
|
||||||
GEOM::ListOfLong* GetShapesOnSphereIDs (GEOM::GEOM_Object_ptr theShape,
|
GEOM::ListOfLong* GetShapesOnSphereIDs (GEOM::GEOM_Object_ptr theShape,
|
||||||
CORBA::Long theShapeType,
|
CORBA::Long theShapeType,
|
||||||
GEOM::GEOM_Object_ptr theCenter,
|
GEOM::GEOM_Object_ptr theCenter,
|
||||||
|
@ -551,6 +551,19 @@ def TestOtherOperations (geompy, math):
|
|||||||
geompy.UnionIDs(edges_in, edges_in_cyl_ids)
|
geompy.UnionIDs(edges_in, edges_in_cyl_ids)
|
||||||
geompy.addToStudy(edges_in, "Group of edges inside Cylinder (axis = (0, 1, 0), r = 55)")
|
geompy.addToStudy(edges_in, "Group of edges inside Cylinder (axis = (0, 1, 0), r = 55)")
|
||||||
|
|
||||||
|
# GetShapesOnCylinderWithLocation
|
||||||
|
edges_out_cyl = geompy.GetShapesOnCylinderWithLocation(blocksComp, geompy.ShapeType["EDGE"],
|
||||||
|
vy, 55, geompy.GEOM.ST_OUT)
|
||||||
|
for edge_i in edges_out_cyl:
|
||||||
|
geompy.addToStudy(edge_i, "Edge out of Cylinder (axis = (0, 1, 0), r = 55)")
|
||||||
|
|
||||||
|
# GetShapesOnCylinderIDs
|
||||||
|
edges_in_cyl_ids = geompy.GetShapesOnCylinderIDs(blocksComp, geompy.ShapeType["EDGE"],
|
||||||
|
vy, 80, geompy.GEOM.ST_IN)
|
||||||
|
edges_in = geompy.CreateGroup(blocksComp, geompy.ShapeType["EDGE"])
|
||||||
|
geompy.UnionIDs(edges_in, edges_in_cyl_ids)
|
||||||
|
geompy.addToStudy(edges_in, "Group of edges inside Cylinder (axis = (0, 1, 0), r = 55)")
|
||||||
|
|
||||||
# GetShapesOnSphere
|
# GetShapesOnSphere
|
||||||
vertices_on_sph = geompy.GetShapesOnSphere(blocksComp, geompy.ShapeType["VERTEX"],
|
vertices_on_sph = geompy.GetShapesOnSphere(blocksComp, geompy.ShapeType["VERTEX"],
|
||||||
p0, 100, geompy.GEOM.ST_ON)
|
p0, 100, geompy.GEOM.ST_ON)
|
||||||
|
@ -1774,6 +1774,34 @@ class geompyDC(GEOM._objref_GEOM_Gen):
|
|||||||
RaiseIfFailed("GetShapesOnCylinderIDs", self.ShapesOp)
|
RaiseIfFailed("GetShapesOnCylinderIDs", self.ShapesOp)
|
||||||
return aList
|
return aList
|
||||||
|
|
||||||
|
## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
||||||
|
# the specified cylinder by the certain way, defined through \a theState parameter.
|
||||||
|
# @param theShape Shape to find sub-shapes of.
|
||||||
|
# @param theShapeType Type of sub-shapes to be retrieved.
|
||||||
|
# @param theAxis Vector (or line, or linear edge), specifying
|
||||||
|
# axis of the cylinder to find shapes on.
|
||||||
|
# @param thePnt Point specifying location of the bottom of the cylinder.
|
||||||
|
# @param theRadius Radius of the cylinder to find shapes on.
|
||||||
|
# @param theState The state of the subshapes to find. It can be one of
|
||||||
|
# ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
|
||||||
|
# @return List of all found sub-shapes.
|
||||||
|
#
|
||||||
|
# @ref swig_GetShapesOnCylinderWithLocation "Example"
|
||||||
|
def GetShapesOnCylinderWithLocation(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState):
|
||||||
|
# Example: see GEOM_TestOthers.py
|
||||||
|
aList = self.ShapesOp.GetShapesOnCylinderWithLocation(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
|
||||||
|
RaiseIfFailed("GetShapesOnCylinderWithLocation", self.ShapesOp)
|
||||||
|
return aList
|
||||||
|
|
||||||
|
## Works like the above method, but returns list of sub-shapes indices
|
||||||
|
#
|
||||||
|
# @ref swig_GetShapesOnCylinderWithLocationIDs "Example"
|
||||||
|
def GetShapesOnCylinderWithLocationIDs(self, theShape, theShapeType, theAxis, thePnt, theRadius, theState):
|
||||||
|
# Example: see GEOM_TestOthers.py
|
||||||
|
aList = self.ShapesOp.GetShapesOnCylinderWithLocationIDs(theShape, theShapeType, theAxis, thePnt, theRadius, theState)
|
||||||
|
RaiseIfFailed("GetShapesOnCylinderWithLocationIDs", self.ShapesOp)
|
||||||
|
return aList
|
||||||
|
|
||||||
## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
## Find in \a theShape all sub-shapes of type \a theShapeType, situated relatively
|
||||||
# the specified sphere by the certain way, defined through \a theState parameter.
|
# the specified sphere by the certain way, defined through \a theState parameter.
|
||||||
# @param theShape Shape to find sub-shapes of.
|
# @param theShape Shape to find sub-shapes of.
|
||||||
|
Loading…
Reference in New Issue
Block a user