1 # GEOM GEOM_SWIG : binding of C++ omplementaion with Python
3 # Copyright (C) 2003 CEA/DEN, EDF R&D
8 # Author : Paul RASCLE, EDF
12 from batchmode_salome import *
15 #--------------------------------------------------------------------------
16 modulecatalog = naming_service.Resolve("/Kernel/ModulCatalog")
18 geom = lcc.FindOrLoadComponent("FactoryServer", "GEOM")
19 geom.GetCurrentStudy(myStudyId)
20 myBuilder = myStudy.NewBuilder()
22 father = myStudy.FindComponent("GEOM")
24 father = myBuilder.NewComponent("GEOM")
25 A1 = myBuilder.FindOrCreateAttribute(father, "AttributeName");
26 FName = A1._narrow(SALOMEDS.AttributeName)
27 # FName.SetValue("Geometry")
29 Comp = modulecatalog.GetComponent( "GEOM" )
30 FName.SetValue( Comp._get_componentusername() )
32 A2 = myBuilder.FindOrCreateAttribute(father, "AttributePixMap");
33 aPixmap = A2._narrow(SALOMEDS.AttributePixMap);
34 aPixmap.SetPixMap( "ICON_OBJBROWSER_Geometry" );
35 myBuilder.DefineComponentInstance(father,geom)
38 # -----------------------------------------------------------------------------
40 # -----------------------------------------------------------------------------
42 def SubShapeName(aSubId, aMainId):
43 # index = gg.getIndexTopology(aSubId, aMainId)
45 # name = gg.getShapeTypeString(aSubId) + "_%d"%(index)
50 def addArguments(aShape):
52 ListIOR = geom.GetReferencedObjects(aShape)
54 if aShape._get_StudyShapeId()!="":
55 father = IDToSObject(aShape._get_StudyShapeId())
57 myBuilder.NewCommand()
59 Arg = myBuilder.NewObject(father)
60 A1 = myBuilder.FindOrCreateAttribute(Arg, "AttributeName");
61 ArgName = A1._narrow(SALOMEDS.AttributeName)
62 ArgName.SetValue("Arguments")
63 A2 = myBuilder.FindOrCreateAttribute(Arg, "AttributeSelectable");
64 SelAttr = A2._narrow(SALOMEDS.AttributeSelectable);
65 SelAttr.SetSelectable(0);
69 Shape = orb.string_to_object(anIOR)
71 if Shape._get_StudyShapeId()!="":
72 Obj = IDToSObject(Shape._get_StudyShapeId())
74 Obj1 = myBuilder.NewObject(Arg)
75 myBuilder.Addreference(Obj1,Obj)
79 myBuilder.RemoveObject(Arg)
81 myBuilder.CommitCommand()
84 def addToStudy(aShape, aName):
86 myBuilder.NewCommand()
87 newObj = myBuilder.NewObject(father)
88 ior = orb.object_to_string(aShape)
89 A1 = myBuilder.FindOrCreateAttribute(newObj, "AttributeIOR");
90 ObjIOR = A1._narrow(SALOMEDS.AttributeIOR)
92 A2 = myBuilder.FindOrCreateAttribute(newObj, "AttributeName");
93 ObjName = A2._narrow(SALOMEDS.AttributeName)
94 ObjName.SetValue(aName)
96 aShape._set_StudyShapeId(id)
97 myBuilder.CommitCommand()
99 addArguments( aShape )
105 def addToStudyInFather(aFather, aShape, aName):
106 myBuilder.NewCommand()
107 newObj = myBuilder.NewObject( IDToSObject(aFather._get_StudyShapeId()) )
108 ior = orb.object_to_string(aShape)
109 A1 = myBuilder.FindOrCreateAttribute(newObj, "AttributeIOR");
110 ObjIOR = A1._narrow(SALOMEDS.AttributeIOR)
112 A2 = myBuilder.FindOrCreateAttribute(newObj, "AttributeName");
113 ObjName = A2._narrow(SALOMEDS.AttributeName)
114 ObjName.SetValue(aName)
116 aShape._set_StudyShapeId(id)
117 myBuilder.CommitCommand()
118 addArguments( aShape )
121 # -----------------------------------------------------------------------------
123 # -----------------------------------------------------------------------------
125 def MakeVertex(x,y,z):
126 anObj = geom.MakeVertex(x,y,z)
127 ior = orb.object_to_string(anObj)
131 def MakeVector(p1,p2):
132 anObj = geom.MakeVector(p1,p2)
133 ior = orb.object_to_string(anObj)
138 anObj = geom.MakeLine(p1,d1)
139 ior = orb.object_to_string(anObj)
143 def MakeArc(p1,p2,p3):
144 anObj = geom.MakeArc(p1,p2,p3)
145 ior = orb.object_to_string(anObj)
149 def MakeCircle(p1,d1,radius):
150 anObj = geom.MakeCircle(p1,d1,radius)
151 ior = orb.object_to_string(anObj)
155 def MakePlane(p1,d1,trimsize):
156 anObj = geom.MakePlane(p1,d1,trimsize)
157 ior = orb.object_to_string(anObj)
161 # -----------------------------------------------------------------------------
163 # -----------------------------------------------------------------------------
165 def MakeBox(x1,y1,z1,x2,y2,z2):
166 anObj = geom.MakeBox(x1,y1,z1,x2,y2,z2)
167 ior = orb.object_to_string(anObj)
171 def MakeCylinder(p1,d1,radius,height):
172 anObj = geom.MakeCylinder(p1,d1,radius,height)
173 ior = orb.object_to_string(anObj)
177 def MakeSphere(x,y,z,radius):
178 anObj = geom.MakeSphere(x,y,z,radius)
179 ior = orb.object_to_string(anObj)
183 def MakeCone(p1,d1,radius1,radius2,height):
184 anObj = geom.MakeCone(p1,d1,radius1,radius2,height)
185 ior = orb.object_to_string(anObj)
189 def MakeTorus(p1,d1,major_radius,minor_radius):
190 anObj = geom.MakeTorus(p1,d1,major_radius,minor_radius)
191 ior = orb.object_to_string(anObj)
195 # -----------------------------------------------------------------------------
196 # Create base objects
197 # -----------------------------------------------------------------------------
200 anObj = geom.MakeEdge(p1,p2)
201 ior = orb.object_to_string(anObj)
205 def MakeWire(ListShape):
206 anObj = geom.MakeWire(ListShape)
207 ior = orb.object_to_string(anObj)
211 def MakeFace(aShapeWire,WantPlanarFace):
212 anObj = geom.MakeFace(aShapeWire,WantPlanarFace)
213 ior = orb.object_to_string(anObj)
217 def MakeCompound(ListShape):
218 anObj = geom.MakeCompound(ListShape)
219 ior = orb.object_to_string(anObj)
223 # -----------------------------------------------------------------------------
224 # Create advanced objects
225 # -----------------------------------------------------------------------------
227 def MakeCopy(aShape):
228 anObj = geom.MakeCopy(aShape)
229 ior = orb.object_to_string(anObj)
233 def MakePrism(baseShape,p1,p2):
234 anObj = geom.MakePrism(baseShape,p1,p2)
235 ior = orb.object_to_string(anObj)
239 def MakeRevolution(aShape,axis,angle):
240 anObj = geom.MakeRevolution(aShape,axis,angle)
241 ior = orb.object_to_string(anObj)
245 def MakeFilling(aShape,mindeg,maxdeg,tol3d,tol2d,nbiter):
246 anObj = geom.MakeFilling(aShape,mindeg,maxdeg,tol3d,tol2d,nbiter)
247 ior = orb.object_to_string(anObj)
251 def MakePipe(pathShape,baseShape):
252 anObj = geom.MakePipe(pathShape,baseShape)
253 ior = orb.object_to_string(anObj)
257 def MakeSewing(ListShape,precision):
258 anObj = geom.MakeSewing(ListShape,precision)
259 ior = orb.object_to_string(anObj)
263 # -----------------------------------------------------------------------------
264 # Boolean (Common, Cut, Fuse, Section)
265 # -----------------------------------------------------------------------------
267 def MakeBoolean(shape1,shape2,operation):
268 anObj = geom.MakeBoolean(shape1,shape2,operation)
269 ior = orb.object_to_string(anObj)
273 # -----------------------------------------------------------------------------
275 # -----------------------------------------------------------------------------
277 def MakeTranslation(aShape,x,y,z):
278 anObj = geom.MakeTranslation(aShape,x,y,z)
279 ior = orb.object_to_string(anObj)
283 def MakeRotation(aShape,axis,angle):
284 anObj = geom.MakeRotation(aShape,axis,angle)
285 ior = orb.object_to_string(anObj)
289 def MakeScaleTransform(aShape,theCenterofScale,factor):
290 anObj = geom.MakeScaleTransform(aShape,theCenterofScale,factor)
291 ior = orb.object_to_string(anObj)
295 def MakeMirrorByPlane(aShape,aPlane):
296 anObj = geom.MakeMirrorByPlane(aShape,aPlane)
297 ior = orb.object_to_string(anObj)
301 def OrientationChange(aShape):
302 anObj = geom.OrientationChange(aShape)
303 ior = orb.object_to_string(anObj)
307 def MakeFillet(aShape,radius,ShapeType,ListShape):
308 anObj = geom.MakeFillet(aShape,radius,ShapeType,ListShape)
309 ior = orb.object_to_string(anObj)
313 def MakeChamfer(aShape,d1,d2,ShapeType,ListShape):
314 anObj = geom.MakeChamfer(aShape,d1,d2,ShapeType,ListShape)
315 ior = orb.object_to_string(anObj)
319 # -----------------------------------------------------------------------------
321 # -----------------------------------------------------------------------------
323 def SubShape(aShape,type,ListOfId):
324 anObj = geom.SubShape(aShape,type, ListOfId)
325 ior = orb.object_to_string(anObj)
329 def SubShapeAll(aShape,type):
330 ListObj = geom.SubShapeAll(aShape,type)
331 for anObj in ListObj :
332 ior = orb.object_to_string(anObj)
336 def SubShapeSorted(aShape,type,ListOfId):
337 anObj = geom.SubShapeSorted(aShape,type, ListOfId)
338 ior = orb.object_to_string(anObj)
342 def SubShapeAllSorted(aShape,type):
343 ListObj = geom.SubShapeAllSorted(aShape,type)
344 for anObj in ListObj :
345 ior = orb.object_to_string(anObj)
349 # -- enumeration ShapeType as a dictionary --
350 ShapeType = {"COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8}
352 def Partition(ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], Limit=ShapeType["SHAPE"]):
353 anObj = geom.Partition(ListShapes, ListTools, ListKeepInside, ListRemoveInside, Limit);
354 ior = orb.object_to_string(anObj)
358 def SuppressFaces(aShape,ListOfId):
359 anObj = geom.SuppressFaces(aShape,ListOfId)
360 ior = orb.object_to_string(anObj)
364 def SuppressHole(aShape,ListOfFace,ListOfWire,ListOfEndFace):
365 anObj = geom.SuppressHole(aShape,ListOfFace,ListOfWire,ListOfEndFace)
366 ior = orb.object_to_string(anObj)
370 # -----------------------------------------------------------------------------
372 # -----------------------------------------------------------------------------
374 def MakeMultiTranslation1D(aShape,aDir,aStep,aNbTimes):
375 anObj = geom.MakeMultiTranslation1D(aShape,aDir,aStep,aNbTimes)
376 ior = orb.object_to_string(anObj)
380 def MakeMultiTranslation2D(aShape,d1,step1,nbtimes1,d2,step2,nbtimes2):
381 anObj = geom.MakeMultiTranslation2D(aShape,d1,step1,nbtimes1,d2,step2,nbtimes2)
382 ior = orb.object_to_string(anObj)
386 def MakeMultiRotation1D(aShape,aDir,aPoint,aNbTimes):
387 anObj = geom.MakeMultiRotation1D(aShape,aDir,aPoint,aNbTimes)
388 ior = orb.object_to_string(anObj)
392 def MakeMultiRotation2D(aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2):
393 anObj = geom.MakeMultiRotation2D(aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2)
394 ior = orb.object_to_string(anObj)
398 # -----------------------------------------------------------------------------
400 # -----------------------------------------------------------------------------
402 def ImportBREP(filename):
403 anObj = geom.ImportBREP(filename)
404 ior = orb.object_to_string(anObj)
408 def ImportIGES(filename):
409 anObj = geom.ImportIGES(filename)
410 ior = orb.object_to_string(anObj)
414 def ImportSTEP(filename):
415 anObj = geom.ImportSTEP(filename)
416 ior = orb.object_to_string(anObj)
420 # -----------------------------------------------------------------------------
422 # -----------------------------------------------------------------------------
423 def ExportBREP(filename,aShape):
424 geom.ExportBREP(filename,aShape)
426 def ExportIGES(filename,aShape):
427 geom.ExportIGES(filename,aShape)
429 def ExportSTEP(filename,aShape):
430 geom.ExportSTEP(filename,aShape)
432 # -----------------------------------------------------------------------------
433 # Information objects
434 # -----------------------------------------------------------------------------
437 anObj = geom.MakeCDG(aShape)
438 ior = orb.object_to_string(anObj)
442 def Archimede(aShape,weight,WaterDensity,MeshingDeflection):
443 anObj = geom.Archimede(aShape,weight,WaterDensity,MeshingDeflection)
444 ior = orb.object_to_string(anObj)
448 def CheckShape(aShape):
449 Status = geom.CheckShape(aShape)