1 #==============================================================================
3 # Created : sam nov 10 00:49:10 CET 2001
4 # Author : Paul RASCLE, EDF
8 #==============================================================================
10 #--------------------------------------------------------------------------
12 from batchmode_salome import *
14 #--------------------------------------------------------------------------
16 geom = lcc.FindOrLoadComponent("FactoryServer", "GEOM")
17 geom.GetCurrentStudy(myStudyId)
18 myBuilder = myStudy.NewBuilder()
20 father = myStudy.FindComponent("GEOM")
22 father = myBuilder.NewComponent("GEOM")
23 A1 = myBuilder.FindOrCreateAttribute(father, "AttributeName");
24 FName = A1._narrow(SALOMEDS.AttributeName)
25 FName.SetValue("Geometry")
26 A2 = myBuilder.FindOrCreateAttribute(father, "AttributePixMap");
27 aPixmap = A2._narrow(SALOMEDS.AttributePixMap);
28 aPixmap.SetPixMap( "ICON_OBJBROWSER_Geometry" );
29 myBuilder.DefineComponentInstance(father,geom)
32 # -----------------------------------------------------------------------------
34 # -----------------------------------------------------------------------------
36 def SubShapeName(aSubId, aMainId):
37 # index = gg.getIndexTopology(aSubId, aMainId)
39 # name = gg.getShapeTypeString(aSubId) + "_%d"%(index)
44 def addArguments(aShape):
46 ListIOR = geom.GetReferencedObjects(aShape)
48 if aShape._get_StudyShapeId()!="":
49 father = IDToSObject(aShape._get_StudyShapeId())
51 myBuilder.NewCommand()
53 Arg = myBuilder.NewObject(father)
54 A1 = myBuilder.FindOrCreateAttribute(Arg, "AttributeName");
55 ArgName = A1._narrow(SALOMEDS.AttributeName)
56 ArgName.SetValue("Arguments")
57 A2 = myBuilder.FindOrCreateAttribute(Arg, "AttributeSelectable");
58 SelAttr = A2._narrow(SALOMEDS.AttributeSelectable);
59 SelAttr.SetSelectable(0);
63 Shape = orb.string_to_object(anIOR)
65 if Shape._get_StudyShapeId()!="":
66 Obj = IDToSObject(Shape._get_StudyShapeId())
68 Obj1 = myBuilder.NewObject(Arg)
69 myBuilder.Addreference(Obj1,Obj)
73 myBuilder.RemoveObject(Arg)
75 myBuilder.CommitCommand()
78 def addToStudy(aShape, aName):
80 myBuilder.NewCommand()
81 newObj = myBuilder.NewObject(father)
82 ior = orb.object_to_string(aShape)
83 A1 = myBuilder.FindOrCreateAttribute(newObj, "AttributeIOR");
84 ObjIOR = A1._narrow(SALOMEDS.AttributeIOR)
86 A2 = myBuilder.FindOrCreateAttribute(newObj, "AttributeName");
87 ObjName = A2._narrow(SALOMEDS.AttributeName)
88 ObjName.SetValue(aName)
90 aShape._set_StudyShapeId(id)
91 myBuilder.CommitCommand()
93 addArguments( aShape )
99 def addToStudyInFather(aFather, aShape, aName):
100 myBuilder.NewCommand()
101 newObj = myBuilder.NewObject( IDToSObject(aFather._get_StudyShapeId()) )
102 ior = orb.object_to_string(aShape)
103 A1 = myBuilder.FindOrCreateAttribute(newObj, "AttributeIOR");
104 ObjIOR = A1._narrow(SALOMEDS.AttributeIOR)
106 A2 = myBuilder.FindOrCreateAttribute(newObj, "AttributeName");
107 ObjName = A2._narrow(SALOMEDS.AttributeName)
108 ObjName.SetValue(aName)
110 aShape._set_StudyShapeId(id)
111 myBuilder.CommitCommand()
112 addArguments( aShape )
115 # -----------------------------------------------------------------------------
117 # -----------------------------------------------------------------------------
119 def MakeVertex(x,y,z):
120 anObj = geom.MakeVertex(x,y,z)
121 ior = orb.object_to_string(anObj)
125 def MakeVector(p1,p2):
126 anObj = geom.MakeVector(p1,p2)
127 ior = orb.object_to_string(anObj)
132 anObj = geom.MakeLine(p1,d1)
133 ior = orb.object_to_string(anObj)
137 def MakeArc(p1,p2,p3):
138 anObj = geom.MakeArc(p1,p2,p3)
139 ior = orb.object_to_string(anObj)
143 def MakeCircle(p1,d1,radius):
144 anObj = geom.MakeCircle(p1,d1,radius)
145 ior = orb.object_to_string(anObj)
149 def MakePlane(p1,d1,trimsize):
150 anObj = geom.MakePlane(p1,d1,trimsize)
151 ior = orb.object_to_string(anObj)
155 # -----------------------------------------------------------------------------
157 # -----------------------------------------------------------------------------
159 def MakeBox(x1,y1,z1,x2,y2,z2):
160 anObj = geom.MakeBox(x1,y1,z1,x2,y2,z2)
161 ior = orb.object_to_string(anObj)
165 def MakeCylinder(p1,d1,radius,height):
166 anObj = geom.MakeCylinder(p1,d1,radius,height)
167 ior = orb.object_to_string(anObj)
171 def MakeSphere(x,y,z,radius):
172 anObj = geom.MakeSphere(x,y,z,radius)
173 ior = orb.object_to_string(anObj)
177 def MakeCone(p1,d1,radius1,radius2,height):
178 anObj = geom.MakeCone(p1,d1,radius1,radius2,height)
179 ior = orb.object_to_string(anObj)
183 def MakeTorus(p1,d1,major_radius,minor_radius):
184 anObj = geom.MakeTorus(p1,d1,major_radius,minor_radius)
185 ior = orb.object_to_string(anObj)
189 # -----------------------------------------------------------------------------
190 # Create base objects
191 # -----------------------------------------------------------------------------
194 anObj = geom.MakeEdge(p1,p2)
195 ior = orb.object_to_string(anObj)
199 def MakeWire(ListShape):
200 anObj = geom.MakeWire(ListShape)
201 ior = orb.object_to_string(anObj)
205 def MakeFace(aShapeWire,WantPlanarFace):
206 anObj = geom.MakeFace(aShapeWire,WantPlanarFace)
207 ior = orb.object_to_string(anObj)
211 def MakeCompound(ListShape):
212 anObj = geom.MakeCompound(ListShape)
213 ior = orb.object_to_string(anObj)
217 # -----------------------------------------------------------------------------
218 # Create advanced objects
219 # -----------------------------------------------------------------------------
221 def MakeCopy(aShape):
222 anObj = geom.MakeCopy(aShape)
223 ior = orb.object_to_string(anObj)
227 def MakePrism(baseShape,p1,p2):
228 anObj = geom.MakePrism(baseShape,p1,p2)
229 ior = orb.object_to_string(anObj)
233 def MakeRevolution(aShape,axis,angle):
234 anObj = geom.MakeRevolution(aShape,axis,angle)
235 ior = orb.object_to_string(anObj)
239 def MakeFilling(aShape,mindeg,maxdeg,tol3d,tol2d,nbiter):
240 anObj = geom.MakeFilling(aShape,mindeg,maxdeg,tol3d,tol2d,nbiter)
241 ior = orb.object_to_string(anObj)
245 def MakePipe(pathShape,baseShape):
246 anObj = geom.MakePipe(pathShape,baseShape)
247 ior = orb.object_to_string(anObj)
251 def MakeSewing(ListShape,precision):
252 anObj = geom.MakeSewing(ListShape,precision)
253 ior = orb.object_to_string(anObj)
257 # -----------------------------------------------------------------------------
258 # Boolean (Common, Cut, Fuse, Section)
259 # -----------------------------------------------------------------------------
261 def MakeBoolean(shape1,shape2,operation):
262 anObj = geom.MakeBoolean(shape1,shape2,operation)
263 ior = orb.object_to_string(anObj)
267 # -----------------------------------------------------------------------------
269 # -----------------------------------------------------------------------------
271 def MakeTranslation(aShape,x,y,z):
272 anObj = geom.MakeTranslation(aShape,x,y,z)
273 ior = orb.object_to_string(anObj)
277 def MakeRotation(aShape,axis,angle):
278 anObj = geom.MakeRotation(aShape,axis,angle)
279 ior = orb.object_to_string(anObj)
283 def MakeScaleTransform(aShape,theCenterofScale,factor):
284 anObj = geom.MakeScaleTransform(aShape,theCenterofScale,factor)
285 ior = orb.object_to_string(anObj)
289 def MakeMirrorByPlane(aShape,aPlane):
290 anObj = geom.MakeMirrorByPlane(aShape,aPlane)
291 ior = orb.object_to_string(anObj)
295 def OrientationChange(aShape):
296 anObj = geom.OrientationChange(aShape)
297 ior = orb.object_to_string(anObj)
301 def MakeFillet(aShape,radius,ShapeType,ListShape):
302 anObj = geom.MakeFillet(aShape,radius,ShapeType,ListShape)
303 ior = orb.object_to_string(anObj)
307 def MakeChamfer(aShape,d1,d2,ShapeType,ListShape):
308 anObj = geom.MakeChamfer(aShape,d1,d2,ShapeType,ListShape)
309 ior = orb.object_to_string(anObj)
313 # -----------------------------------------------------------------------------
315 # -----------------------------------------------------------------------------
317 def SubShape(aShape,type,ListOfId):
318 anObj = geom.SubShape(aShape,type, ListOfId)
319 ior = orb.object_to_string(anObj)
323 def SubShapeAll(aShape,type):
324 ListObj = geom.SubShapeAll(aShape,type)
325 for anObj in ListObj :
326 ior = orb.object_to_string(anObj)
330 def SubShapeSorted(aShape,type,ListOfId):
331 anObj = geom.SubShapeSorted(aShape,type, ListOfId)
332 ior = orb.object_to_string(anObj)
336 def SubShapeAllSorted(aShape,type):
337 ListObj = geom.SubShapeAllSorted(aShape,type)
338 for anObj in ListObj :
339 ior = orb.object_to_string(anObj)
343 # -- enumeration ShapeType as a dictionary --
344 ShapeType = {"COMPOUND":0, "COMPSOLID":1, "SOLID":2, "SHELL":3, "FACE":4, "WIRE":5, "EDGE":6, "VERTEX":7, "SHAPE":8}
346 def Partition(ListShapes, ListTools=[], ListKeepInside=[], ListRemoveInside=[], Limit=ShapeType["SHAPE"]):
347 anObj = geom.Partition(ListShapes, ListTools, ListKeepInside, ListRemoveInside, Limit);
348 ior = orb.object_to_string(anObj)
352 def SuppressFaces(aShape,ListOfId):
353 anObj = geom.SuppressFaces(aShape,ListOfId)
354 ior = orb.object_to_string(anObj)
358 def SuppressHole(aShape,ListOfFace,ListOfWire,ListOfEndFace):
359 anObj = geom.SuppressHole(aShape,ListOfFace,ListOfWire,ListOfEndFace)
360 ior = orb.object_to_string(anObj)
364 # -----------------------------------------------------------------------------
366 # -----------------------------------------------------------------------------
368 def MakeMultiTranslation1D(aShape,aDir,aStep,aNbTimes):
369 anObj = geom.MakeMultiTranslation1D(aShape,aDir,aStep,aNbTimes)
370 ior = orb.object_to_string(anObj)
374 def MakeMultiTranslation2D(aShape,d1,step1,nbtimes1,d2,step2,nbtimes2):
375 anObj = geom.MakeMultiTranslation2D(aShape,d1,step1,nbtimes1,d2,step2,nbtimes2)
376 ior = orb.object_to_string(anObj)
380 def MakeMultiRotation1D(aShape,aDir,aPoint,aNbTimes):
381 anObj = geom.MakeMultiRotation1D(aShape,aDir,aPoint,aNbTimes)
382 ior = orb.object_to_string(anObj)
386 def MakeMultiRotation2D(aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2):
387 anObj = geom.MakeMultiRotation2D(aShape,aDir,aPoint,anAngle,nbtimes1,aStep,nbtimes2)
388 ior = orb.object_to_string(anObj)
392 # -----------------------------------------------------------------------------
394 # -----------------------------------------------------------------------------
396 def ImportBREP(filename):
397 anObj = geom.ImportBREP(filename)
398 ior = orb.object_to_string(anObj)
402 def ImportIGES(filename):
403 anObj = geom.ImportIGES(filename)
404 ior = orb.object_to_string(anObj)
408 def ImportSTEP(filename):
409 anObj = geom.ImportSTEP(filename)
410 ior = orb.object_to_string(anObj)
414 # -----------------------------------------------------------------------------
416 # -----------------------------------------------------------------------------
417 def ExportBREP(filename,aShape):
418 geom.ExportBREP(filename,aShape)
420 def ExportIGES(filename,aShape):
421 geom.ExportIGES(filename,aShape)
423 def ExportSTEP(filename,aShape):
424 geom.ExportSTEP(filename,aShape)
426 # -----------------------------------------------------------------------------
427 # Information objects
428 # -----------------------------------------------------------------------------
431 anObj = geom.MakeCDG(aShape)
432 ior = orb.object_to_string(anObj)
436 def Archimede(aShape,weight,WaterDensity,MeshingDeflection):
437 anObj = geom.Archimede(aShape,weight,WaterDensity,MeshingDeflection)
438 ior = orb.object_to_string(anObj)
442 def CheckShape(aShape):
443 Status = geom.CheckShape(aShape)