1 #==============================================================================
3 # Created : sam nov 10 00:49:10 CET 2001
4 # Author : Paul RASCLE, EDF
8 #==============================================================================
10 #--------------------------------------------------------------------------
12 from batchmode_salome import *
14 #--------------------------------------------------------------------------
15 modulecatalog = naming_service.Resolve("/Kernel/ModulCatalog")
17 geom = lcc.FindOrLoadComponent("FactoryServer", "GEOM")
18 geom.GetCurrentStudy(myStudyId)
19 myBuilder = myStudy.NewBuilder()
21 father = myStudy.FindComponent("GEOM")
23 father = myBuilder.NewComponent("GEOM")
24 A1 = myBuilder.FindOrCreateAttribute(father, "AttributeName");
25 FName = A1._narrow(SALOMEDS.AttributeName)
26 # FName.SetValue("Geometry")
28 Comp = modulecatalog.GetComponent( "GEOM" )
29 FName.SetValue( Comp._get_componentusername() )
31 A2 = myBuilder.FindOrCreateAttribute(father, "AttributePixMap");
32 aPixmap = A2._narrow(SALOMEDS.AttributePixMap);
33 aPixmap.SetPixMap( "ICON_OBJBROWSER_Geometry" );
34 myBuilder.DefineComponentInstance(father,geom)
37 # -----------------------------------------------------------------------------
39 # -----------------------------------------------------------------------------
41 def SubShapeName(aSubId, aMainId):
42 # index = gg.getIndexTopology(aSubId, aMainId)
44 # name = gg.getShapeTypeString(aSubId) + "_%d"%(index)
49 def addArguments(aShape):
51 ListIOR = geom.GetReferencedObjects(aShape)
53 if aShape._get_StudyShapeId()!="":
54 father = IDToSObject(aShape._get_StudyShapeId())
56 myBuilder.NewCommand()
58 Arg = myBuilder.NewObject(father)
59 A1 = myBuilder.FindOrCreateAttribute(Arg, "AttributeName");
60 ArgName = A1._narrow(SALOMEDS.AttributeName)
61 ArgName.SetValue("Arguments")
62 A2 = myBuilder.FindOrCreateAttribute(Arg, "AttributeSelectable");
63 SelAttr = A2._narrow(SALOMEDS.AttributeSelectable);
64 SelAttr.SetSelectable(0);
68 Shape = orb.string_to_object(anIOR)
70 if Shape._get_StudyShapeId()!="":
71 Obj = IDToSObject(Shape._get_StudyShapeId())
73 Obj1 = myBuilder.NewObject(Arg)
74 myBuilder.Addreference(Obj1,Obj)
78 myBuilder.RemoveObject(Arg)
80 myBuilder.CommitCommand()
83 def addToStudy(aShape, aName):
85 myBuilder.NewCommand()
86 newObj = myBuilder.NewObject(father)
87 ior = orb.object_to_string(aShape)
88 A1 = myBuilder.FindOrCreateAttribute(newObj, "AttributeIOR");
89 ObjIOR = A1._narrow(SALOMEDS.AttributeIOR)
91 A2 = myBuilder.FindOrCreateAttribute(newObj, "AttributeName");
92 ObjName = A2._narrow(SALOMEDS.AttributeName)
93 ObjName.SetValue(aName)
95 aShape._set_StudyShapeId(id)
96 myBuilder.CommitCommand()
98 addArguments( aShape )
104 def addToStudyInFather(aFather, aShape, aName):
105 myBuilder.NewCommand()
106 newObj = myBuilder.NewObject( IDToSObject(aFather._get_StudyShapeId()) )
107 ior = orb.object_to_string(aShape)
108 A1 = myBuilder.FindOrCreateAttribute(newObj, "AttributeIOR");
109 ObjIOR = A1._narrow(SALOMEDS.AttributeIOR)
111 A2 = myBuilder.FindOrCreateAttribute(newObj, "AttributeName");
112 ObjName = A2._narrow(SALOMEDS.AttributeName)
113 ObjName.SetValue(aName)
115 aShape._set_StudyShapeId(id)
116 myBuilder.CommitCommand()
117 addArguments( aShape )
120 # -----------------------------------------------------------------------------
122 # -----------------------------------------------------------------------------
124 def MakeVertex(x,y,z):
125 anObj = geom.MakeVertex(x,y,z)
126 ior = orb.object_to_string(anObj)
130 def MakeVector(p1,p2):
131 anObj = geom.MakeVector(p1,p2)
132 ior = orb.object_to_string(anObj)
137 anObj = geom.MakeLine(p1,d1)
138 ior = orb.object_to_string(anObj)
142 def MakeArc(p1,p2,p3):
143 anObj = geom.MakeArc(p1,p2,p3)
144 ior = orb.object_to_string(anObj)
148 def MakeCircle(p1,d1,radius):
149 anObj = geom.MakeCircle(p1,d1,radius)
150 ior = orb.object_to_string(anObj)
154 def MakePlane(p1,d1,trimsize):
155 anObj = geom.MakePlane(p1,d1,trimsize)
156 ior = orb.object_to_string(anObj)
160 # -----------------------------------------------------------------------------
162 # -----------------------------------------------------------------------------
164 def MakeBox(x1,y1,z1,x2,y2,z2):
165 anObj = geom.MakeBox(x1,y1,z1,x2,y2,z2)
166 ior = orb.object_to_string(anObj)
170 def MakeCylinder(p1,d1,radius,height):
171 anObj = geom.MakeCylinder(p1,d1,radius,height)
172 ior = orb.object_to_string(anObj)
176 def MakeSphere(x,y,z,radius):
177 anObj = geom.MakeSphere(x,y,z,radius)
178 ior = orb.object_to_string(anObj)
182 def MakeCone(p1,d1,radius1,radius2,height):
183 anObj = geom.MakeCone(p1,d1,radius1,radius2,height)
184 ior = orb.object_to_string(anObj)
188 def MakeTorus(p1,d1,major_radius,minor_radius):
189 anObj = geom.MakeTorus(p1,d1,major_radius,minor_radius)
190 ior = orb.object_to_string(anObj)
194 # -----------------------------------------------------------------------------
195 # Create base objects
196 # -----------------------------------------------------------------------------
199 anObj = geom.MakeEdge(p1,p2)
200 ior = orb.object_to_string(anObj)
204 def MakeWire(ListShape):
205 anObj = geom.MakeWire(ListShape)
206 ior = orb.object_to_string(anObj)
210 def MakeFace(aShapeWire,WantPlanarFace):
211 anObj = geom.MakeFace(aShapeWire,WantPlanarFace)
212 ior = orb.object_to_string(anObj)
216 def MakeCompound(ListShape):
217 anObj = geom.MakeCompound(ListShape)
218 ior = orb.object_to_string(anObj)
222 # -----------------------------------------------------------------------------
223 # Create advanced objects
224 # -----------------------------------------------------------------------------
226 def MakeCopy(aShape):
227 anObj = geom.MakeCopy(aShape)
228 ior = orb.object_to_string(anObj)
232 def MakePrism(baseShape,p1,p2):
233 anObj = geom.MakePrism(baseShape,p1,p2)
234 ior = orb.object_to_string(anObj)
238 def MakeRevolution(aShape,axis,angle):
239 anObj = geom.MakeRevolution(aShape,axis,angle)
240 ior = orb.object_to_string(anObj)
244 def MakeFilling(aShape,mindeg,maxdeg,tol3d,tol2d,nbiter):
245 anObj = geom.MakeFilling(aShape,mindeg,maxdeg,tol3d,tol2d,nbiter)
246 ior = orb.object_to_string(anObj)
250 def MakePipe(pathShape,baseShape):
251 anObj = geom.MakePipe(pathShape,baseShape)
252 ior = orb.object_to_string(anObj)
256 def MakeSewing(ListShape,precision):
257 anObj = geom.MakeSewing(ListShape,precision)
258 ior = orb.object_to_string(anObj)
262 # -----------------------------------------------------------------------------
263 # Boolean (Common, Cut, Fuse, Section)
264 # -----------------------------------------------------------------------------
266 def MakeBoolean(shape1,shape2,operation):
267 anObj = geom.MakeBoolean(shape1,shape2,operation)
268 ior = orb.object_to_string(anObj)
272 # -----------------------------------------------------------------------------
274 # -----------------------------------------------------------------------------
276 def MakeTranslation(aShape,x,y,z):
277 anObj = geom.MakeTranslation(aShape,x,y,z)
278 ior = orb.object_to_string(anObj)
282 def MakeRotation(aShape,axis,angle):
283 anObj = geom.MakeRotation(aShape,axis,angle)
284 ior = orb.object_to_string(anObj)
288 def MakeScaleTransform(aShape,theCenterofScale,factor):
289 anObj = geom.MakeScaleTransform(aShape,theCenterofScale,factor)
290 ior = orb.object_to_string(anObj)
294 def MakeMirrorByPlane(aShape,aPlane):
295 anObj = geom.MakeMirrorByPlane(aShape,aPlane)
296 ior = orb.object_to_string(anObj)
300 def OrientationChange(aShape):
301 anObj = geom.OrientationChange(aShape)
302 ior = orb.object_to_string(anObj)
306 def MakeFillet(aShape,radius,ShapeType,ListShape):
307 anObj = geom.MakeFillet(aShape,radius,ShapeType,ListShape)
308 ior = orb.object_to_string(anObj)
312 def MakeChamfer(aShape,d1,d2,ShapeType,ListShape):
313 anObj = geom.MakeChamfer(aShape,d1,d2,ShapeType,ListShape)
314 ior = orb.object_to_string(anObj)
318 # -----------------------------------------------------------------------------
320 # -----------------------------------------------------------------------------
322 def SubShape(aShape,type,ListOfId):
323 anObj = geom.SubShape(aShape,type, ListOfId)
324 ior = orb.object_to_string(anObj)
328 def SubShapeAll(aShape,type):
329 ListObj = geom.SubShapeAll(aShape,type)
330 for anObj in ListObj :
331 ior = orb.object_to_string(anObj)
335 def SubShapeSorted(aShape,type,ListOfId):
336 anObj = geom.SubShapeSorted(aShape,type, ListOfId)
337 ior = orb.object_to_string(anObj)
341 def SubShapeAllSorted(aShape,type):
342 ListObj = geom.SubShapeAllSorted(aShape,type)
343 for anObj in ListObj :
344 ior = orb.object_to_string(anObj)
348 # -- enumeration ShapeType as a dictionary --
349 ShapeType = {"COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8}
351 def Partition(ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], Limit=ShapeType["SHAPE"]):
352 anObj = geom.Partition(ListShapes, ListTools, ListKeepInside, ListRemoveInside, Limit);
353 ior = orb.object_to_string(anObj)
357 def SuppressFaces(aShape,ListOfId):
358 anObj = geom.SuppressFaces(aShape,ListOfId)
359 ior = orb.object_to_string(anObj)
363 def SuppressHole(aShape,ListOfFace,ListOfWire,ListOfEndFace):
364 anObj = geom.SuppressHole(aShape,ListOfFace,ListOfWire,ListOfEndFace)
365 ior = orb.object_to_string(anObj)
369 # -----------------------------------------------------------------------------
371 # -----------------------------------------------------------------------------
373 def MakeMultiTranslation1D(aShape,aDir,aStep,aNbTimes):
374 anObj = geom.MakeMultiTranslation1D(aShape,aDir,aStep,aNbTimes)
375 ior = orb.object_to_string(anObj)
379 def MakeMultiTranslation2D(aShape,d1,step1,nbtimes1,d2,step2,nbtimes2):
380 anObj = geom.MakeMultiTranslation2D(aShape,d1,step1,nbtimes1,d2,step2,nbtimes2)
381 ior = orb.object_to_string(anObj)
385 def MakeMultiRotation1D(aShape,aDir,aPoint,aNbTimes):
386 anObj = geom.MakeMultiRotation1D(aShape,aDir,aPoint,aNbTimes)
387 ior = orb.object_to_string(anObj)
391 def MakeMultiRotation2D(aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2):
392 anObj = geom.MakeMultiRotation2D(aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2)
393 ior = orb.object_to_string(anObj)
397 # -----------------------------------------------------------------------------
399 # -----------------------------------------------------------------------------
401 def ImportBREP(filename):
402 anObj = geom.ImportBREP(filename)
403 ior = orb.object_to_string(anObj)
407 def ImportIGES(filename):
408 anObj = geom.ImportIGES(filename)
409 ior = orb.object_to_string(anObj)
413 def ImportSTEP(filename):
414 anObj = geom.ImportSTEP(filename)
415 ior = orb.object_to_string(anObj)
419 # -----------------------------------------------------------------------------
421 # -----------------------------------------------------------------------------
422 def ExportBREP(filename,aShape):
423 geom.ExportBREP(filename,aShape)
425 def ExportIGES(filename,aShape):
426 geom.ExportIGES(filename,aShape)
428 def ExportSTEP(filename,aShape):
429 geom.ExportSTEP(filename,aShape)
431 # -----------------------------------------------------------------------------
432 # Information objects
433 # -----------------------------------------------------------------------------
436 anObj = geom.MakeCDG(aShape)
437 ior = orb.object_to_string(anObj)
441 def Archimede(aShape,weight,WaterDensity,MeshingDeflection):
442 anObj = geom.Archimede(aShape,weight,WaterDensity,MeshingDeflection)
443 ior = orb.object_to_string(anObj)
447 def CheckShape(aShape):
448 Status = geom.CheckShape(aShape)