1 #==============================================================================
2 # File : batchmode_smesh.py
3 # Created : Fri Nov 15 13:51:00 2002
4 # Author : Oksana TCHEBANOVA
6 # Copyright : OPEN CASCADE 2002
8 #==============================================================================
10 #--------------------------------------------------------------------------
12 from batchmode_salome import *
15 #--------------------------------------------------------------------------
16 modulecatalog = naming_service.Resolve("/Kernel/ModulCatalog")
18 smesh = lcc.FindOrLoadComponent("FactoryServer", "SMESH")
19 myStudyBuilder = myStudy.NewBuilder()
21 if myStudyBuilder is None:
22 raise RuntimeError, " Null myStudyBuilder"
24 father = myStudy.FindComponent("MESH")
26 father = myStudyBuilder.NewComponent("MESH")
27 A1 = myStudyBuilder.FindOrCreateAttribute(father, "AttributeName");
28 FName = A1._narrow(SALOMEDS.AttributeName)
29 # FName.SetValue("Mesh")
31 Comp = modulecatalog.GetComponent( "SMESH" )
32 FName.SetValue( Comp._get_componentusername() )
34 A2 = myStudyBuilder.FindOrCreateAttribute(father, "AttributePixMap");
35 aPixmap = A2._narrow(SALOMEDS.AttributePixMap);
36 aPixmap.SetPixMap( "ICON_OBJBROWSER_Mesh" );
38 myStudyBuilder.DefineComponentInstance(father,smesh)
40 mySComponentMesh = father._narrow(SALOMEDS.SComponent)
42 Tag_HypothesisRoot = 1;
43 Tag_AlgorithmsRoot = 2;
46 Tag_RefOnAppliedHypothesis = 2;
47 Tag_RefOnAppliedAlgorithms = 3;
49 Tag_SubMeshOnVertex = 4;
50 Tag_SubMeshOnEdge = 5;
51 Tag_SubMeshOnFace = 6;
52 Tag_SubMeshOnSolid = 7;
53 Tag_SubMeshOnCompound = 8;
55 Tag = {"HypothesisRoot":1,"AlgorithmsRoot":2,"RefOnShape":1,"RefOnAppliedHypothesis":2,"RefOnAppliedAlgorithms":3,"SubMeshOnVertex":4,"SubMeshOnEdge":5,"SubMeshOnFace":6,"SubMeshOnSolid":7,"SubMeshOnCompound":8}
58 ShapeTypeCompSolid = 1
66 # -- enumeration ShapeType as a dictionary --
67 ShapeType = {"CompSolid":1, "Solid":2, "Shell":3, "Face":4, "Wire":5, "Edge":6, "Vertex":7}
69 #------------------------------------------------------------
72 #------------------------------------------------------------
74 res,HypothesisRoot = mySComponentMesh.FindSubObject ( Tag_HypothesisRoot )
75 if HypothesisRoot is None or res == 0:
76 HypothesisRoot = myStudyBuilder.NewObjectToTag(mySComponentMesh, Tag_HypothesisRoot)
77 anAttr = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributeName")
78 aName = anAttr._narrow(SALOMEDS.AttributeName)
79 aName.SetValue("Hypothesis Definition")
80 anAttr = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributePixMap")
81 aPixmap = anAttr._narrow(SALOMEDS.AttributePixMap)
82 aPixmap.SetPixMap( "mesh_tree_hypo.png" )
83 anAttr = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable")
84 aSelAttr = anAttr._narrow(SALOMEDS.AttributeSelectable)
85 aSelAttr.SetSelectable(0);
87 res, AlgorithmsRoot = mySComponentMesh.FindSubObject (Tag_AlgorithmsRoot)
88 if AlgorithmsRoot is None or res == 0:
89 AlgorithmsRoot = myStudyBuilder.NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot)
90 anAttr = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributeName")
91 aName = anAttr._narrow(SALOMEDS.AttributeName)
92 aName.SetValue("Algorithms Definition");
93 anAttr = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap");
94 aPixmap = anAttr._narrow(SALOMEDS.AttributePixMap);
95 aPixmap.SetPixMap( "mesh_tree_algo.png" );
96 anAttr = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable");
97 aSelAttr = anAttr._narrow(SALOMEDS.AttributeSelectable);
98 aSelAttr.SetSelectable(0);
100 HypothesisRoot = HypothesisRoot._narrow(SALOMEDS.SObject)
101 newMesh = myStudyBuilder.NewObject(mySComponentMesh)
102 newMesh = newMesh._narrow(SALOMEDS.SObject)
103 anAttr = myStudyBuilder.FindOrCreateAttribute(newMesh, "AttributePixMap")
104 aPixmap = anAttr._narrow(SALOMEDS.AttributePixMap)
105 aPixmap.SetPixMap( "mesh_tree_mesh.png" )
106 anAttr = myStudyBuilder.FindOrCreateAttribute(newMesh, "AttributeIOR")
107 anIOR = anAttr._narrow(SALOMEDS.AttributeIOR)
109 return newMesh.GetID()
111 #------------------------------------------------------------
112 def AddNewHypothesis(IOR):
113 res, HypothesisRoot = mySComponentMesh.FindSubObject (Tag_HypothesisRoot)
114 if HypothesisRoot is None or res == 0:
115 HypothesisRoot = myStudyBuilder.NewObjectToTag (mySComponentMesh, Tag_HypothesisRoot)
116 anAttr = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributeName");
117 aName = anAttr._narrow(SALOMEDS.AttributeName);
118 aName.SetValue("Hypothesis Definition");
119 anAttr = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributeSelectable");
120 aSelAttr = anAttr._narrow(SALOMEDS.AttributeSelectable);
121 aSelAttr.SetSelectable(0);
122 anAttr = myStudyBuilder.FindOrCreateAttribute(HypothesisRoot, "AttributePixMap");
123 aPixmap = anAttr._narrow(SALOMEDS.AttributePixMap);
124 aPixmap.SetPixMap( "mesh_tree_hypo.png" );
127 newHypo = myStudyBuilder.NewObject(HypothesisRoot)
128 newHypo = newHypo._narrow(SALOMEDS.SObject)
129 anAttr = myStudyBuilder.FindOrCreateAttribute(newHypo, "AttributePixMap")
130 aPixmap = anAttr._narrow(SALOMEDS.AttributePixMap)
131 H = orb.string_to_object(IOR)
132 H = H._narrow( SMESH.SMESH_Hypothesis );
134 aPixmap.SetPixMap( "mesh_tree_hypo.png_" + aType );
135 anAttr = myStudyBuilder.FindOrCreateAttribute(newHypo, "AttributeIOR");
136 anIOR = anAttr._narrow(SALOMEDS.AttributeIOR);
138 return newHypo.GetID();
140 #------------------------------------------------------------
141 def AddNewAlgorithms(IOR):
142 res, AlgorithmsRoot = mySComponentMesh.FindSubObject (Tag_AlgorithmsRoot)
143 if AlgorithmsRoot is None or res == 0:
144 AlgorithmsRoot = myStudyBuilde.NewObjectToTag (mySComponentMesh, Tag_AlgorithmsRoot)
145 anAttr = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributeName")
146 aName = anAttr._narrow(SALOMEDS.AttributeName);
147 aName.SetValue("Algorithms Definition");
148 anAttr = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributeSelectable")
149 aSelAttr = anAttr._narrow(SALOMEDS.AttributeSelectable);
150 aSelAttr.SetSelectable(0);
151 anAttr = myStudyBuilder.FindOrCreateAttribute(AlgorithmsRoot, "AttributePixMap");
152 aPixmap = anAttr._narrow(SALOMEDS.AttributePixMap);
153 aPixmap.SetPixMap( "mesh_tree_algo.png" );
156 newHypo = myStudyBuilder.NewObject(AlgorithmsRoot)
157 newHypo = newHypo._narrow(SALOMEDS.SObject)
158 anAttr = myStudyBuilder.FindOrCreateAttribute(newHypo, "AttributePixMap");
159 aPixmap = anAttr._narrow(SALOMEDS.AttributePixMap);
160 H = orb.string_to_object(IOR)
161 H = H._narrow( SMESH.SMESH_Hypothesis);
162 aType = H.GetName(); #QString in fact
163 aPixmap.SetPixMap( "mesh_tree_algo.png_" + aType );
164 anAttr = myStudyBuilder.FindOrCreateAttribute(newHypo, "AttributeIOR");
165 anIOR = anAttr._narrow(SALOMEDS.AttributeIOR);
167 return newHypo.GetID();
170 #------------------------------------------------------------
171 def SetShape(ShapeEntry, MeshEntry):
173 SO_MorSM = myStudy.FindObjectID( MeshEntry )
174 SO_MorSM = SO_MorSM._narrow(SALOMEDS.SObject)
175 SO_GeomShape = myStudy.FindObjectID( ShapeEntry );
176 SO_GeomShape = SO_GeomShape._narrow(SALOMEDS.SObject)
178 if SO_MorSM is not None and SO_GeomShape is not None :
179 SO = myStudyBuilder.NewObjectToTag (SO_MorSM, Tag_RefOnShape);
180 SO = SO._narrow(SALOMEDS.SObject)
181 myStudyBuilder.Addreference (SO,SO_GeomShape);
184 #------------------------------------------------------------
185 def SetHypothesis(Mesh_Or_SubMesh_Entry, Hypothesis_Entry):
186 SO_MorSM = myStudy.FindObjectID( Mesh_Or_SubMesh_Entry );
187 SO_Hypothesis = myStudy.FindObjectID( Hypothesis_Entry );
189 if SO_MorSM is not None and SO_Hypothesis is not None :
191 #Find or Create Applied Hypothesis root
192 res, AHR = SO_MorSM.FindSubObject (Tag_RefOnAppliedHypothesis)
193 if AHR is None or res == 0:
194 AHR = myStudyBuilder.NewObjectToTag (SO_MorSM, Tag_RefOnAppliedHypothesis);
195 anAttr = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributeName");
196 aName = anAttr._narrow(SALOMEDS.AttributeName);
197 aName.SetValue("Applied Hypothesis");
198 anAttr = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributeSelectable");
199 aSelAttr = anAttr._narrow(SALOMEDS.AttributeSelectable);
200 aSelAttr.SetSelectable(0);
201 anAttr = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributePixMap");
202 aPixmap = anAttr._narrow(SALOMEDS.AttributePixMap);
203 aPixmap.SetPixMap( "mesh_tree_hypo.png" );
205 SO = myStudyBuilder.NewObject(AHR);
206 SO = SO._narrow(SALOMEDS.SObject)
207 myStudyBuilder.Addreference (SO,SO_Hypothesis);
209 #------------------------------------------------------------
210 def SetAlgorithms(Mesh_Or_SubMesh_Entry, Algorithms_Entry):
211 SO_MorSM = myStudy.FindObjectID( Mesh_Or_SubMesh_Entry )
212 SO_Algorithms = myStudy.FindObjectID( Algorithms_Entry )
213 if SO_MorSM != None and SO_Algorithms != None :
214 #Find or Create Applied Algorithms root
215 res, AHR = SO_MorSM.FindSubObject (Tag_RefOnAppliedAlgorithms);
216 if AHR is None or res == 0:
217 AHR = myStudyBuilder.NewObjectToTag (SO_MorSM, Tag_RefOnAppliedAlgorithms);
218 anAttr = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributeName");
219 aName = anAttr._narrow(SALOMEDS.AttributeName);
220 aName.SetValue("Applied Algorithm");
221 anAttr = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributeSelectable");
222 aSelAttr = anAttr._narrow(SALOMEDS.AttributeSelectable);
223 aSelAttr.SetSelectable(0);
224 anAttr = myStudyBuilder.FindOrCreateAttribute(AHR, "AttributePixMap");
225 aPixmap = anAttr._narrow(SALOMEDS.AttributePixMap);
226 aPixmap.SetPixMap( "mesh_tree_algo.png" );
228 SO = myStudyBuilder.NewObject(AHR);
229 myStudyBuilder.Addreference (SO,SO_Algorithms);
232 #------------------------------------------------------------
233 def UnSetHypothesis( Applied_Hypothesis_Entry ):
234 SO_Applied_Hypothesis = myStudy.FindObjectID( Applied_Hypothesis_Entry );
235 if SO_Applied_Hypothesis :
236 myStudyBuilder.RemoveObject(SO_Applied_Hypothesis);
239 #------------------------------------------------------------
240 def AddSubMesh ( SO_Mesh_Entry, SM_IOR, ST):
241 SO_Mesh = myStudy.FindObjectID( SO_Mesh_Entry )
244 if ST == ShapeTypeCompSolid :
245 Tag_Shape = Tag_SubMeshOnSolid;
246 Name = "SubMeshes On Solid";
247 elif ST == ShapeTypeFace :
248 Tag_Shape = Tag_SubMeshOnFace;
249 Name = "SubMeshes On Face";
250 elif ST == ShapeTypeEdge :
251 Tag_Shape = Tag_SubMeshOnEdge;
252 Name = "SubMeshes On Edge";
253 elif ST == ShapeTypeVertex :
254 Tag_Shape = Tag_SubMeshOnVertex;
255 Name = "SubMeshes On Vertex";
257 Tag_Shape = Tag_SubMeshOnCompound;
258 Name = "SubMeshes On Compound";
260 res, SubmeshesRoot = SO_Mesh.FindSubObject (Tag_Shape)
261 if SubmeshesRoot is None or res == 0:
262 SubmeshesRoot = myStudyBuilder.NewObjectToTag (SO_Mesh, Tag_Shape);
263 anAttr = myStudyBuilder.FindOrCreateAttribute(SubmeshesRoot, "AttributeName");
265 aName = anAttr._narrow(SALOMEDS.AttributeName);
266 aName.SetValue(Name);
267 anAttr = myStudyBuilder.FindOrCreateAttribute(SubmeshesRoot, "AttributeSelectable");
268 aSelAttr = anAttr._narrow(SALOMEDS.AttributeSelectable);
269 aSelAttr.SetSelectable(0);
271 SO = myStudyBuilder.NewObject (SubmeshesRoot);
272 SO = SO._narrow(SALOMEDS.SObject)
273 anAttr = myStudyBuilder.FindOrCreateAttribute(SO, "AttributeIOR");
274 anIOR = anAttr._narrow(SALOMEDS.AttributeIOR);
275 anIOR.SetValue(SM_IOR);
280 #------------------------------------------------------------
281 def AddSubMeshOnShape (Mesh_Entry, GeomShape_Entry, SM_IOR, ST) :
282 SO_GeomShape = myStudy.FindObjectID( GeomShape_Entry );
283 if SO_GeomShape != None :
284 SM_Entry = AddSubMesh (Mesh_Entry,SM_IOR,ST);
285 SO_SM = myStudy.FindObjectID( SM_Entry );
288 SetShape (GeomShape_Entry, SM_Entry);
289 return SO_SM.GetID();
294 #------------------------------------------------------------
295 def SetName(Entry, Name):
296 SO = myStudy.FindObjectID( Entry );
298 anAttr = myStudyBuilder.FindOrCreateAttribute(SO, "AttributeName");
299 aName = anAttr._narrow(SALOMEDS.AttributeName);
300 aName.SetValue(Name);