Version: 9.12.0
AdvancedEngine_IOperations.cxx File Reference
#include "AdvancedEngine_IOperations.hxx"
#include "AdvancedEngine_PipeTShapeDriver.hxx"
#include "AdvancedEngine_IPipeTShape.hxx"
#include "AdvancedEngine_DividedDiskDriver.hxx"
#include "AdvancedEngine_IDividedDisk.hxx"
#include "AdvancedEngine_SmoothingSurfaceDriver.hxx"
#include "AdvancedEngine_ISmoothingSurface.hxx"
#include <utilities.h>
#include <OpUtil.hxx>
#include <Utils_ExceptHandlers.hxx>
#include <GEOM_Function.hxx>
#include <GEOM_PythonDump.hxx>
#include <GEOMUtils.hxx>
#include <GEOMAlgo_ClsfSurf.hxx>
#include <GEOMAlgo_FinderShapeOn2.hxx>
#include <GEOMAlgo_Splitter.hxx>
#include <GEOMImpl_Gen.hxx>
#include <GEOMImpl_Types.hxx>
#include <GEOMImpl_IBasicOperations.hxx>
#include <GEOMImpl_IBooleanOperations.hxx>
#include <GEOMImpl_IShapesOperations.hxx>
#include <GEOMImpl_ITransformOperations.hxx>
#include <GEOMImpl_IBlocksOperations.hxx>
#include <GEOMImpl_I3DPrimOperations.hxx>
#include <GEOMImpl_ILocalOperations.hxx>
#include <GEOMImpl_IHealingOperations.hxx>
#include <GEOMImpl_IGroupOperations.hxx>
#include <GEOMImpl_GlueDriver.hxx>
#include <TDF_Tool.hxx>
#include <TFunction_DriverTable.hxx>
#include <TFunction_Driver.hxx>
#include <TNaming_CopyShape.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TColStd_IndexedDataMapOfTransientTransient.hxx>
#include <BRep_Builder.hxx>
#include <BRep_Tool.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepAlgoAPI_Cut.hxx>
#include <BRepAlgoAPI_Fuse.hxx>
#include <BRepBuilderAPI_MakeFace.hxx>
#include <BRepBuilderAPI_MakeVertex.hxx>
#include <BRepBuilderAPI_Transform.hxx>
#include <BRepPrimAPI_MakeCone.hxx>
#include <BRepPrimAPI_MakeCylinder.hxx>
#include <gp_Ax3.hxx>
#include <gp_Pln.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <GC_MakeConicalSurface.hxx>
#include <Geom_CylindricalSurface.hxx>
#include <ShapeAnalysis_Edge.hxx>
#include <cmath>
#include "AdvancedEngine_Types.hxx"
#include <Standard_Stream.hxx>
#include <Standard_Failure.hxx>
#include <StdFail_NotDone.hxx>
#include <Standard_ErrorHandler.hxx>

Macros

#define HALF_LENGTH_MAIN_PIPE   "Main pipe half length"
 
#define HALF_LENGTH_INCIDENT_PIPE   "Incident pipe half length"
 
#define CIRCULAR_QUARTER_PIPE   "Circular quarter of pipe"
 
#define THICKNESS   "Thickness"
 
#define FLANGE   "Flange"
 
#define CHAMFER_OR_FILLET   "Chamfer or fillet"
 
#define JUNCTION_FACE_1   "Junction 1"
 
#define JUNCTION_FACE_2   "Junction 2"
 
#define JUNCTION_FACE_3   "Junction 3"
 
#define FIND_GROUPS_BY_POINTS   1
 
#define FILLET_FIX_TOLERANCE
 

Functions

 Handle (TColStd_HSequenceOfTransient) AdvancedEngine_IOperations
 Create a T-shape object with specified caracteristics for the main and the incident pipes (radius, width, half-length). Center of the shape is (0,0,0). The main plane of the T-shape is XOY. More...
 
 Handle (GEOM_Object) AdvancedEngine_IOperations
 

Macro Definition Documentation

◆ CHAMFER_OR_FILLET

#define CHAMFER_OR_FILLET   "Chamfer or fillet"

◆ CIRCULAR_QUARTER_PIPE

#define CIRCULAR_QUARTER_PIPE   "Circular quarter of pipe"

◆ FILLET_FIX_TOLERANCE

#define FILLET_FIX_TOLERANCE

◆ FIND_GROUPS_BY_POINTS

#define FIND_GROUPS_BY_POINTS   1

◆ FLANGE

#define FLANGE   "Flange"

◆ HALF_LENGTH_INCIDENT_PIPE

#define HALF_LENGTH_INCIDENT_PIPE   "Incident pipe half length"

◆ HALF_LENGTH_MAIN_PIPE

#define HALF_LENGTH_MAIN_PIPE   "Main pipe half length"

◆ JUNCTION_FACE_1

#define JUNCTION_FACE_1   "Junction 1"

◆ JUNCTION_FACE_2

#define JUNCTION_FACE_2   "Junction 2"

◆ JUNCTION_FACE_3

#define JUNCTION_FACE_3   "Junction 3"

◆ THICKNESS

#define THICKNESS   "Thickness"

Function Documentation

◆ Handle() [1/2]

Handle ( GEOM_Object  )

This function allows to create a disk already divided into blocks. It can be used to create divided pipes for later meshing in hexaedra.

Parameters
theRRadius of the disk
theRatioRelative size of the central square diagonal against the disk diameter
theOrientationPlane on which the disk will be built
thePatternThe division pattern of the disk (hexagon or square in the center)
Returns
New GEOM_Object, containing the created shape.

This function allows to create a disk already divided into blocks. It can be used to create divided pipes for later meshing in hexaedra.

Parameters
theRRadius of the disk
theRatioRelative size of the central square diagonal against the disk diameter
Returns
New GEOM_Object, containing the created shape.

Builds a cylinder prepared for hexa meshes

Parameters
theRRadius of the cylinder
theHHeight of the cylinder
Returns
New GEOM_Object, containing the created shape.

Create a smoothing surface from a set of points

Parameters
thelPointslist of points or compounds of points
theNbMaxmaximum number of Bezier pieces in the resulting surface.
theDegMaxmaximum degree of the resulting BSpline surface
theDMaxspecifies maximum value of the GeomPlate_PlateG0Criterion criterion.
Returns
New GEOM_Object, containing the created shape.

AddSubShape

GetReferencedObject

MakeBoxTwoPnt

MakeFaceHW

MakeFaceObjHW

MakeDiskPntVecR

MakeDiskThreePnt

MakeDiskR

MakeCylinderRH

MakeCylinderRHA

MakeCylinderPntVecRH

MakeCylinderPntVecRHA

MakeConeR1R2H

MakeConePntVecR1R2H

MakeSphereR

MakeSpherePntR

MakeTorusRR

MakeTorusPntVecRR

MakePrismVecH

MakePrismVecH2Ways

MakePrismTwoPnt

MakePrismTwoPnt2Ways

MakePrismDXDYDZ

MakePrismDXDYDZ_2WAYS

MakeDraftPrism

MakeRevolutionAxisAngle

MakeRevolutionAxisAngle2Ways

MakeFilling

MakeThruSections

MakeThickening

RestorePath

createGroup

MakePointWithReference

makePointOnGeom

MakePointOnCurve

MakePointOnCurveByCoord

MakePointOnCurveByLength

MakePointOnSurface

MakePointOnSurfaceByCoord

MakePointOnFace

MakePointOnLinesIntersection

MakeTangentOnCurve

MakeVectorDXDYDZ

MakeVectorTwoPnt

MakeLine

MakeLineTwoPnt

MakeLineTwoFaces

MakePlaneThreePnt

MakePlanePntVec

MakePlaneFace

MakePlane2Vec

MakePlaneLCS

MakeMarker

MakeMarkerFromShape

MakeMarkerPntTwoVec

MakeTangentPlaneOnFace

MakeQuad2Edges

MakeQuad4Vertices

MakeHexa

MakeHexa2Faces

MakeBlockCompound

GetPoint

GetVertexNearPoint

GetEdge

GetEdgeNearPoint

GetFaceByPoints

GetFaceByEdges

GetOppositeFace

GetFaceNearPoint

GetFaceByNormale

GetShapesNearPoint

GetNonBlocks

RemoveExtraEdges

UnionFaces

CheckAndImprove

GetBlockNearPoint

GetBlockByParts

MakeMultiTransformation1D

MakeMultiTransformation2D

MakeFuse

MakeFuseList

MakeCommonList

MakeCutList

MakePartition

MakeHalfPartition

MakeCircleCenter2Pnt

MakeCirclePntVecR

MakeEllipse

MakeArc

MakeArcCenter

MakeArcOfEllipse

MakePolyline

MakeSplineBezier

MakeSplineInterpolation

MakeSplineInterpolWithTangents

MakeCurveParametric

MakeSketcher

MakeSketcherOnPlane

Make3DSketcherCommand

Make3DSketcher

MakeIsoline

MakePolyline2D

MakePolyline2DOnPlane

UnionGroups

IntersectGroups

CutGroups

UnionListOfGroups

IntersectListOfGroups

CutListOfGroups

GetMainShape

SuppressFaces

CloseContour

RemoveIntWires

FillHoles

Sew

RemoveInternalFaces

DivideEdge

DivideEdgeByPoint

FuseCollinearEdgesWithinWire

ChangeOrientation

ChangeOrientationCopy

LimitTolerance

RestoreShape

MakeFilletEdges

MakeFilletEdges R1 R2

MakeFilletFaces

MakeFilletFaces R1 R2

MakeFillet2D

MakeFillet1D

MakeChamferAll

MakeChamferEdge

MakeChamferEdgeAD

MakeChamferFaces

MakeChamferFacesAD

MakeChamferEdges

MakeChamferEdgesAD

Archimede

GetVertexByIndex

GetNormal

GetBoundingBox

SurfaceCurvatureByPointAndDirection

MakeEdgeOnCurveByLength

MakeEdgeWire

MakeWire

MakeFace

MakeFaceWires

MakeFaceFromSurface

MakeFaceWithConstraints

MakeShell

MakeSolidShells

MakeCompound

MakeShape

MakeSolidFromConnectedFaces

MakeGlueFaces

GetGlueFaces

MakeGlueFacesByList

MakeGlueEdges

MakeGlueEdgesByList

GetSubShape

ReverseShape

MakeExtraction

case GetInPlace: default:

case GetInPlaceOld: default:

TranslateDXDYDZ

TranslateTwoPointsCopy

TranslateDXDYDZCopy

TranslateVector

TranslateVectorCopy

TranslateVectorDistance

Translate1D

Translate2D

TranslateShape1D

TranslateShape2D

MirrorPlane

MirrorPlaneCopy

MirrorPoint

MirrorPointCopy

MirrorAxis

MirrorAxisCopy

OffsetShape

OffsetShapeCopy

ProjectShapeCopy

ScaleShape

ScaleShapeCopy

ScaleShapeAlongAxes

PositionShape

PositionShapeCopy

PositionAlongPath

Rotate

RotateCopy

Rotate1D (for MultiRotate1DNbTimes)

Rotate1D (for MultiRotate1DByStep)

Rotate2D (for MultiRotate2DNbTimes)

Rotate2D (for MultiRotate2DByStep)

RotateThreePoints

RotateThreePointsCopy

TransformLikeOtherCopy

MakeProjectionOnCylinder

References DIVIDEDDISK_R_RATIO, GEOM_DIVIDEDDISK, GEOM_IOperations::GetEngine(), GEOM_IOperations::GetSolver(), AdvancedEngine_IOperations::Handle(), KO, OK, GEOM_IOperations::SetErrorCode(), AdvancedEngine_IDividedDisk::SetOrientation(), AdvancedEngine_IDividedDisk::SetR(), AdvancedEngine_IDividedDisk::SetRatio(), AdvancedEngine_IDividedDisk::SetType(), AdvancedEngine_IOperations::theOrientation, AdvancedEngine_IOperations::thePattern, AdvancedEngine_IOperations::theR, and AdvancedEngine_IOperations::theRatio.

◆ Handle() [2/2]

Handle ( TColStd_HSequenceOfTransient  )

Find sub-shapes complying with given status about quadrangle.

Find shape objects and their entries by their ids.

Find sub-shapes complying with given status about surface.

Create a T-shape object with specified caracteristics for the main and the incident pipes (radius, width, half-length). A fillet is created on the junction of the pipes. The extremities of the main pipe are located on junctions points P1 and P2. The extremity of the incident pipe is located on junction point P3.

MakePipeTShape

Parameters
theR1Internal radius of main pipe
theW1Width of main pipe
theL1Half-length of main pipe
theR2Internal radius of incident pipe (R2 < R1)
theW2Width of incident pipe (R2+W2 < R1+W1)
theL2Half-length of incident pipe
theHexMeshBoolean indicating if shape is prepared for hex mesh
Returns
List of GEOM_Objects, containing the created shape and propagation groups.

MakePipeTShapeWithPosition Create a T-shape object with specified caracteristics for the main and the incident pipes (radius, width, half-length). The extremities of the main pipe are located on junctions points P1 and P2. The extremity of the incident pipe is located on junction point P3.

Parameters
theR1Internal radius of main pipe
theW1Width of main pipe
theL1Half-length of main pipe
theR2Internal radius of incident pipe (R2 < R1)
theW2Width of incident pipe (R2+W2 < R1+W1)
theL2Half-length of incident pipe
theHexMeshBoolean indicating if shape is prepared for hex mesh
theP11st junction point of main pipe
theP22nd junction point of main pipe
theP3Junction point of incident pipe
Returns
List of GEOM_Objects, containing the created shape and propagation groups..

MakePipeTShapeChamfer Create a T-shape object with specified caracteristics for the main and the incident pipes (radius, width, half-length). A chamfer is created on the junction of the pipes. Center of the shape is (0,0,0). The main plane of the T-shape is XOY.

Parameters
theR1Internal radius of main pipe
theW1Width of main pipe
theL1Half-length of main pipe
theR2Internal radius of incident pipe (R2 < R1)
theW2Width of incident pipe (R2+W2 < R1+W1)
theL2Half-length of incident pipe
theHHeight of chamfer.
theWWidth of chamfer.
theHexMeshBoolean indicating if shape is prepared for hex mesh
Returns
List of GEOM_Objects, containing the created shape and propagation groups.

MakePipeTShapeChamferWithPosition Create a T-shape object with specified caracteristics for the main and the incident pipes (radius, width, half-length). A chamfer is created on the junction of the pipes. The extremities of the main pipe are located on junctions points P1 and P2. The extremity of the incident pipe is located on junction point P3.

Parameters
theR1Internal radius of main pipe
theW1Width of main pipe
theL1Half-length of main pipe
theR2Internal radius of incident pipe (R2 < R1)
theW2Width of incident pipe (R2+W2 < R1+W1)
theL2Half-length of incident pipe
theHHeight of chamfer.
theWWidth of chamfer.
theHexMeshBoolean indicating if shape is prepared for hex mesh
theP11st junction point of main pipe
theP22nd junction point of main pipe
theP3Junction point of incident pipe
Returns
List of GEOM_Objects, containing the created shape and propagation groups.

MakePipeTShapeFillet Create a T-shape object with specified caracteristics for the main and the incident pipes (radius, width, half-length). A fillet is created on the junction of the pipes. Center of the shape is (0,0,0). The main plane of the T-shape is XOY.

Parameters
theR1Internal radius of main pipe
theW1Width of main pipe
theL1Half-length of main pipe
theR2Internal radius of incident pipe (R2 < R1)
theW2Width of incident pipe (R2+W2 < R1+W1)
theL2Half-length of incident pipe
theRFRadius of curvature of fillet.
theHexMeshBoolean indicating if shape is prepared for hex mesh
Returns
List of GEOM_Objects, containing the created shape and propagation groups.

MakePipeTShapeFilletWithPosition

Parameters
theR1Internal radius of main pipe
theW1Width of main pipe
theL1Half-length of main pipe
theR2Internal radius of incident pipe (R2 < R1)
theW2Width of incident pipe (R2+W2 < R1+W1)
theL2Half-length of incident pipe
theRFRadius of curvature of fillet
theHexMeshBoolean indicating if shape is prepared for hex mesh
theP11st junction point of main pipe
theP22nd junction point of main pipe
theP3Junction point of incident pipe
Returns
List of GEOM_Objects, containing the created shape and propagation groups.

GetLastDependency

MakePipeWithDifferentSections

MakePipeWithShellSections

MakePipeShellsWithoutPath

MakePipeBiNormalAlongVector

GetBlocksByParts

Propagate

SmallEdges Find edges, which are fully covered by tolerances of vertices.

Parameters
theCheckslist of failed checks, contains type of check and failed shapes

GetExistingSubObjects

MakeExplode

MakeSubShapes

Parameters
theBox- the box to check state of sub-shapes against
theShape- the shape to explore
theShapeType- type of sub-shape of theShape
theState- required state
Return values
Handle(TColStd_HSequenceOfTransient)- found sub-shapes
Parameters
theCheckShape- the shape to check state of sub-shapes against
theShape- the shape to explore
theShapeType- type of sub-shape of theShape
theState- required state
Return values
Handle(TColStd_HSequenceOfTransient)- found sub-shapes

GetSubShapeEdgeSorted

GetSubShapesWithTolerance

Parameters
theShapeIDs- incoming shape ids
theShapeEntries- outgoing entries like "entry1, entry2, ..."
Return values
Handle(TColStd_HSequenceOfTransient)- found shape objects
Parameters
theSurface- the surface to check state of sub-shapes against
theShape- the shape to explore
theShapeType- type of sub-shape of theShape
theState- required state
theShapeEntries- outgoing entries like "entry1, entry2, ..."
Return values
Handle(TColStd_HSequenceOfInteger)- IDs of found sub-shapes

GetShapesOnPlane

GetShapesOnPlaneWithLocation

GetShapesOnCylinder

GetShapesOnCylinderWithLocation

GetShapesOnSphere

Parameters
theShape- the shape to explore
theShapeType- type of sub-shape of theShape
theTopLeftPoint- top left quadrangle corner
theTopRightPoint- top right quadrangle corner
theBottomLeftPoint- bottom left quadrangle corner
theBottomRightPoint- bottom right quadrangle corner
theState- required state
Return values
Handle(TColStd_HSequenceOfInteger)- IDs of found sub-shapes

References GEOM_Solver::ComputeFunction(), GEOM_TSHAPE, GEOM_IOperations::GetEngine(), GEOM_IOperations::GetSolver(), AdvancedEngine_IOperations::Handle(), KO, AdvancedEngine_IOperations::MakeGroups(), AdvancedEngine_IOperations::MakeInternalGroup(), AdvancedEngine_IOperations::MakePipeTShapeMirrorAndGlue(), AdvancedEngine_IOperations::MakePipeTShapePartition(), AdvancedEngine_IOperations::MakePipeTShapeThicknessReduction(), OK, GEOM_IOperations::SetErrorCode(), AdvancedEngine_IPipeTShape::SetHexMesh(), AdvancedEngine_IPipeTShape::SetL1(), AdvancedEngine_IPipeTShape::SetL2(), AdvancedEngine_IPipeTShape::SetR1(), AdvancedEngine_IPipeTShape::SetR2(), AdvancedEngine_IPipeTShape::SetW1(), AdvancedEngine_IPipeTShape::SetW2(), AdvancedEngine_IOperations::theHexMesh, AdvancedEngine_IOperations::theL1, AdvancedEngine_IOperations::theL2, AdvancedEngine_IOperations::theLthinI, AdvancedEngine_IOperations::theLthinL, AdvancedEngine_IOperations::theLthinR, AdvancedEngine_IOperations::theLtransI, AdvancedEngine_IOperations::theLtransL, AdvancedEngine_IOperations::theLtransR, AdvancedEngine_IOperations::theR2, AdvancedEngine_IOperations::theRI, AdvancedEngine_IOperations::theRL, AdvancedEngine_IOperations::theRR, AdvancedEngine_IOperations::theW1, AdvancedEngine_IOperations::theW2, AdvancedEngine_IOperations::theWI, AdvancedEngine_IOperations::theWL, AdvancedEngine_IOperations::theWR, and TSHAPE_BASIC.