X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOM_SWIG%2FGEOM_usinggeom.py;h=2ab866b10943f2c8df8daf571999691825cff551;hb=f190cc9ae627a8bd91983609a5b008fbdabad5d1;hp=aa315c2db78179e196d474d300928d0e7b0faeb7;hpb=ecb53a73db547cbbb50f2df55faa344e3ad41594;p=modules%2Fgeom.git diff --git a/src/GEOM_SWIG/GEOM_usinggeom.py b/src/GEOM_SWIG/GEOM_usinggeom.py index aa315c2db..2ab866b10 100644 --- a/src/GEOM_SWIG/GEOM_usinggeom.py +++ b/src/GEOM_SWIG/GEOM_usinggeom.py @@ -1,233 +1,45 @@ -#============================================================================== -# File : GEOM_usinggeom.py -# Created : mon apr 22 11:55:00 CET 2002 -# Author : Damien COQUERET, Open CASCADE -# Project : SALOME -# Copyright : Open CASCADE, 2002 -# $Header$ -#============================================================================== - +# -*- coding: iso-8859-1 -*- +# Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# GEOM GEOM_SWIG : binding of C++ implementation with Python +# File : GEOM_usinggeom.py +# Author : Damien COQUERET, Open CASCADE +# Module : GEOM +# import salome -import geompy -import math - -geom = salome.lcc.FindOrLoadComponent("FactoryServer", "Geometry") -myBuilder = salome.myStudy.NewBuilder() - -from geompy import gg - -#Create base Variables -nbtimes1 = 5 #Short -nbtimes2 = 5 -mindeg = 2 -maxdeg = 5 -nbiter = 5 -ShapeTypeFace = 4 -ShapeTypeEdge = 6 -WantPlanarFace = 1 #True - -radius = 10. #Double -radius1 = 100. -radius2 = 200. -height = 200. -d1 = 10. -d2 = 10. -step1 = 250. -step2 = 250. -angle = 45. -angle1 = angle * math.pi / 180 -angle2 = 2 * angle1 -factor = 2. -tol3d = 0.0001 -tol2d = 0.0001 -weight = 1000000. -waterdensity = 1. -meshingdeflection = 0.01 -trimsize = 1000. -precision = 0.00001 - -#Create base points -p0 = geom.MakePointStruct(0., 0., 0.) #(Double, Double, Double)->PointStruct -px = geom.MakePointStruct(100., 0., 0.) -py = geom.MakePointStruct(0., 100., 0.) -pz = geom.MakePointStruct(0., 0., 100.) -pxyz = geom.MakePointStruct(100., 100., 100.) - -#Create base directions -vx = geom.MakeDirection(px) #(PointStruct)->DirStruct -vy = geom.MakeDirection(py) -vz = geom.MakeDirection(pz) -vxyz = geom.MakeDirection(pxyz) -ax = geom.MakeAxisStruct(0., 0., 0., 100., 0., 0.) #(Double, Double, Double, Double, Double, Double)->AxisStruct -axy = geom.MakeAxisStruct(100., 0., 0., -100., 100., 0.) -ay = geom.MakeAxisStruct(0., 0., 0., 0., 100., 0.) -az = geom.MakeAxisStruct(0., 0., 0., 0., 0., 100.) - -#Create base geometry 2D -Vertex = geom.MakeVertex(100., 50., 200.) #(Double, Double, Double)->GEOM_Shape_ptr -Vector = geom.MakeVector(px, py) #(PointStruct, PointStruct)->GEOM_Shape_ptr -Line = geom.MakeLine(p0, vxyz) #(PointStruct, DirStruct)->GEOM_Shape_ptr -Arc = geom.MakeArc(py, pz, px) #(PointStruct, PointStruct, PointStruct)->GEOM_Shape_ptr -Circle = geom.MakeCircle(p0, vz, radius1) #(PointStruct, DirStruct, Double)->GEOM_Shape_ptr -Plane = geom.MakePlane(pz, vxyz, trimsize) #(PointStruct, DirStruct, Double)->GEOM_Shape_ptr - -#Create base geometry 3D -Box = geompy.MakeBox(0., 0., 0., 200., 200., 200.) #(Double, Double, Double)->GEOM_Shape_ptr -Cylinder = geompy.MakeCylinder(p0, vz, radius1, height) #(Double, Double, Double)->GEOM_Shape_ptr -Sphere = geompy.MakeSphere(0., 0., 0., radius1) #(Double, Double, Double)->GEOM_Shape_ptr -Cone = geompy.MakeCone(p0, vz, radius2, radius, height) #(PointStruct)->DirStruct -Torus = geompy.MakeTorus(p0, vz, radius2, radius) #(Double, Double, Double)->GEOM_Shape_ptr - -#Boolean (Common, Cut, Fuse, Section) -Common = geompy.MakeBoolean(Box, Sphere, 1) #(GEOM_Shape_ptr, GEOM_Shape_ptr, Short)->GEOM_Shape_ptr -Cut = geompy.MakeBoolean(Box, Sphere, 2) -Fuse = geompy.MakeBoolean(Box, Sphere, 3) -Section = geompy.MakeBoolean(Box, Sphere, 4) - -#IORList for Wire -ShapeListWire = [] -IORListWire = [] -ShapeListWire.append(Vector) -ShapeListWire.append(Arc) -for Shape in ShapeListWire : - IORListWire.append(Shape._get_Name()) - -#IORList for Compound -ShapeListCompound = [] -IORListCompound = [] -i = 0 -while i <= 3 : - S = geompy.MakeTranslation(Arc, i * 100., i * 100., i * 100.) - ShapeListCompound.append(S) - i = i + 1 -for Shape in ShapeListCompound : - IORListCompound.append(Shape._get_Name()) - -#Create base objects -Edge = geompy.MakeEdge(p0, pxyz) #(PointStruct, PointStruct)->GEOM_Shape_ptr -Wire = geompy.MakeWire(IORListWire) #(ListOfIOR)->GEOM_Shape_ptr -Face = geompy.MakeFace(Wire, WantPlanarFace) #(GEOM_Shape_ptr, Boolean)->GEOM_Shape_ptr -Compound = geompy.MakeCompound(IORListCompound) #(ListOfIOR)->GEOM_Shape_ptr - -#IORList for Sewing -ShapeListSewing = [] -IORListSewing = [] -ShapeListSewing.append(Face) -S = geompy.MakeRotation(Face, axy, angle1) -ShapeListSewing.append(S) -for Shape in ShapeListSewing : - IORListSewing.append(Shape._get_Name()) - -#Create advanced objects -Copy = geompy.MakeCopy(Box) #(GEOM_Shape_ptr)->GEOM_Shape_ptr -Prism = geompy.MakePrism(Face, p0, pz) #(GEOM_Shape_ptr, PointStruct, PointStruct)->GEOM_Shape_ptr -Revolution = geompy.MakeRevolution(Face, az, angle2) #(GEOM_Shape_ptr, AxisStruct, Double)->GEOM_Shape_ptr -Filling = geompy.MakeFilling(Compound, mindeg, maxdeg, tol3d, tol2d, nbiter) #(GEOM_Shape_ptr, Short, Short, Double, Double, Short)->GEOM_Shape_ptr -Pipe = geompy.MakePipe(Edge, Wire) #(GEOM_Shape_ptr, GEOM_Shape_ptr)->GEOM_Shape_ptr -Sewing = geompy.MakeSewing(IORListSewing, precision) #(ListOfIOR, Double)->GEOM_Shape_ptr +from salome.geom import geomBuilder +geompy = geomBuilder.New() -#IDList for Fillet/Chamfer -IDlist = [] -i = 1 -while i <= 3 : - IDlist.append(i) - i = i + 1 - -#Transform objects -Translation = geompy.MakeTranslation(Box, 300., 300., 300.) #(GEOM_Shape_ptr, Double, Double, Double)->GEOM_Shape_ptr -Rotation = geompy.MakeRotation(Box, az, angle1) #(GEOM_Shape_ptr, AxisStruct, Double)->GEOM_Shape_ptr -Scale = geompy.MakeScaleTransform(Box, p0, factor) #(GEOM_Shape_ptr, PointStruct, Double)->GEOM_Shape_ptr -Mirror = geompy.MakeMirrorByPlane(Box, Plane) #(GEOM_Shape_ptr, GEOM_Shape_ptr)->GEOM_Shape_ptr -Orientation = geompy.OrientationChange(Box) #(GEOM_Shape_ptr)->GEOM_Shape_ptr -Fillet = geompy.MakeFillet (Prism, radius, ShapeTypeEdge, IDlist) #(GEOM_Shape_ptr, Double, Short, ListOfSubShapeID)->GEOM_Shape_ptr -Chamfer = geompy.MakeChamfer(Prism, d1, d2, ShapeTypeEdge, IDlist) #(GEOM_Shape_ptr, Double, Double, Short, ListOfSubShapeID)->GEOM_Shape_ptr - -#Create Patterns -MultiTrans1D = geompy.MakeMultiTranslation1D(Fillet, vz, step1, nbtimes1) #(GEOM_Shape_ptr, DirStruct, Double, Short)->GEOM_Shape_ptr -MultiTrans2D = geompy.MakeMultiTranslation2D(Fillet, vz, step1, nbtimes1, vy, step2, nbtimes2) #(GEOM_Shape_ptr, DirStruct, Double, Short, DirStruct, Double, Short)->GEOM_Shape_ptr -#!!!!Angle In Degree!!!! -MultiRot1D = geompy.MakeMultiRotation1D(Chamfer, vx, px, nbtimes1) #(GEOM_Shape_ptr, DirStruct, PointStruct, Short)->GEOM_Shape_ptr -MultiRot2D = geompy.MakeMultiRotation2D(Chamfer, vx, px, angle, nbtimes1, step1, nbtimes2) #(GEOM_Shape_ptr, DirStruct, PointStruct, Double, Short, Double, Short)->GEOM_Shape_ptr - -#IDList for Partition -ShapeListPartition1 = [] -ShapeListPartition1.append(Box) -IORListPartition1 = [] -for Shape in ShapeListPartition1 : - IORListPartition1.append(Shape._get_Name()) -ShapeListPartition2 = [] -ShapeListPartition2.append(Plane) -IORListPartition2 = [] -for Shape in ShapeListPartition2 : - IORListPartition2.append(Shape._get_Name()) - -#IDList for SubShape -IDlistSubShape = [] -IDlistSubShape.append(3) - -#Create Informations objects -CDG = geompy.MakeCDG(Prism) #(GEOM_Shape_ptr)->GEOM_Shape_ptr -Archimede = geompy.Archimede(Box, weight, waterdensity, meshingdeflection) #(GEOM_Shape_ptr, Double, Double, Double)->GEOM_Shape_ptr -CheckShape = geompy.CheckShape(Prism) #(GEOM_Shape_ptr)->Boolean - -#Partition objects -Partition = geompy.Partition(IORListPartition1, IORListPartition2) #(ListOfIOR, ListOfIOR)->GEOM_Shape_ptr - -#Add In Study -id_Vertex = geompy.addToStudy(Vertex, "Vertex") -id_Vector = geompy.addToStudy(Vector, "Vector") -id_Line = geompy.addToStudy(Line, "Line") -id_Arc = geompy.addToStudy(Arc, "Arc") -id_Circle = geompy.addToStudy(Circle, "Circle") -id_Plane = geompy.addToStudy(Plane, "Plane") - -id_Box = geompy.addToStudy(Box, "Box") -id_Cylinder = geompy.addToStudy(Cylinder, "Cylinder") -id_Sphere = geompy.addToStudy(Sphere, "Sphere") -id_Cone = geompy.addToStudy(Cone, "Cone") -id_Torus = geompy.addToStudy(Torus, "Torus") - -id_Edge = geompy.addToStudy(Edge, "Edge") -id_Wire = geompy.addToStudy(Wire, "Wire") -id_Face = geompy.addToStudy(Face, "Face") -id_Compound = geompy.addToStudy(Compound, "Compound") - -id_Common = geompy.addToStudy(Common, "Common") -id_Cut = geompy.addToStudy(Cut, "Cut") -id_Fuse = geompy.addToStudy(Fuse, "Fuse") -id_Section = geompy.addToStudy(Section, "Section") - -id_Copy = geompy.addToStudy(Copy, "Copy") -id_Prism = geompy.addToStudy(Prism, "Prism") -id_Revolution = geompy.addToStudy(Revolution, "Revolution") -id_Filling = geompy.addToStudy(Filling, "Filling") -id_Pipe = geompy.addToStudy(Pipe, "Pipe") -id_Sewing = geompy.addToStudy(Sewing, "Sewing") - -Id_Translation = geompy.addToStudy(Translation, "Translation") -Id_Rotation = geompy.addToStudy(Rotation, "Rotation") -Id_Scale = geompy.addToStudy(Scale, "Scale") -Id_Mirror = geompy.addToStudy(Mirror, "Mirror") -Id_Orientation = geompy.addToStudy(Orientation, "Orientation") -Id_Fillet = geompy.addToStudy(Fillet, "Fillet") -Id_Chamfer = geompy.addToStudy(Chamfer, "Chamfer") - -Id_MultiTrans1D = geompy.addToStudy(MultiTrans1D, "MultiTrans1D") -Id_MultiTrans2D = geompy.addToStudy(MultiTrans2D, "MultiTrans2D") -Id_MultiRot1D = geompy.addToStudy(MultiRot1D, "MultiRot1D") -Id_MultiRot2D = geompy.addToStudy(MultiRot2D, "MultiRot2D") - -Id_Partition = geompy.addToStudy(Partition, "Partition") -Id_CDG = geompy.addToStudy(CDG, "CDG") -Id_Archimede = geompy.addToStudy(Archimede, "Archimede") - -#Decompose objects -SubShape = geompy.SubShape(Box, ShapeTypeFace, IDlistSubShape) #(GEOM_Shape_ptr, Short, ListOfSubShapeID)->GEOM_Shape_ptr -name = geompy.SubShapeName( SubShape._get_Name(), Box._get_Name() ) -Id_SubShape = geompy.addToStudyInFather(Box, SubShape, name) +import math -SubShapeAllList = [] -SubShapeAllList = geompy.SubShapeAll(SubShape, ShapeTypeEdge) #(GEOM_Shape_ptr, Short)->ListOfGeomShapes -for Shape in SubShapeAllList : - name = geompy.SubShapeName( Shape._get_Name(), Box._get_Name() ) - Id_SubShapeAll = geompy.addToStudyInFather(SubShape, Shape, name) +import GEOM_TestAll +import GEOM_TestOthers +import GEOM_TestHealing +import GEOM_TestMeasures +import GEOM_TestField + +GEOM_TestField.TestField(geompy, math) # it goes 1st as it checks Python Dump +GEOM_TestMeasures.TestMeasureOperations(geompy, math) +GEOM_TestHealing.TestHealingOperations(geompy, math) +GEOM_TestOthers.TestOtherOperations(geompy, math) +GEOM_TestAll.TestAll(geompy, math)