1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
4 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
7 # This library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2.1 of the License.
12 # This library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # Lesser General Public License for more details.
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with this library; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
24 # ================================================================================
25 # WARNING: this file is deprecated and should not be used any more. It has been
26 # replaced by the file __init__.py of the python package named "salome".
27 # To prevent any error, a warning is raised in the case where this file is imported
28 raise RuntimeError("WRN - the file salome.py is deprecated. It should NOT be used any more.")
29 # ================================================================================
33 # Author : Paul RASCLE, EDF
38 Module salome gives access to Salome ressources.
43 - salome.naming_service : instance of naming Service class
45 - Resolve(name) : find a CORBA object (ior) by its pathname
46 - Register(name) : register a CORBA object under a pathname
48 - salome.lcc : instance of lifeCycleCORBA class
50 - FindOrLoadComponent(server,name) :
51 obtain an Engine (CORBA object)
52 or launch the Engine if not found,
53 with a Server name and an Engine name
55 - salome.sg : salome object to communicate with the graphical user interface (if any)
57 - updateObjBrowser(bool):
59 - getActiveStudyName():
61 - SelectedCount(): returns number of selected objects
62 - getSelected(i): returns entry of selected object number i
63 - getAllSelected(): returns list of entry of selected objects
64 - AddIObject(Entry): select an existing Interactive object
65 - RemoveIObject(Entry): remove object from selection
66 - ClearIObjects(): clear selection
74 - IDToObject(Entry): returns CORBA reference from entry
76 - salome.myStudyName : active Study Name
77 - salome.myStudyId : active Study Id
78 - salome.myStudy : the active Study itself (CORBA ior)
79 - methods : defined in SALOMEDS.idl
83 # Module salome gives access to Salome ressources.
85 # \param salome.orb : CORBA orb object
86 # \param salome.naming_service : instance of naming Service class (SALOME_NamingServicePy::SALOME_NamingServicePy_i)
87 # \param salome.lcc : instance of lifeCycleCORBA class (SALOME_LifeCycleCORBA)
88 # \param salome.sg : Salome object to communicate with the graphical user interface, if running (see interface in salome_iapp::SalomeOutsideGUI)
89 # \param salome.myStudyName : active Study Name
90 # \param salome.myStudyId : active Study Id
91 # \param salome.myStudy : the active Study (interface SALOMEDS::Study)
94 from salome_kernel import *
95 from salome_study import *
96 from salome_iapp import *
100 # The next block is workaround for the problem of shared symbols loading for the extension modules (e.g. SWIG-generated)
101 # that causes RTTI unavailable in some cases. To solve this problem, sys.setdlopenflags() function is used.
102 # Depending on the Python version and platform, the dlopen flags can be defined in the dl, DLFUN or ctypes module.
108 # dl module can be unavailable
110 flags = dl.RTLD_NOW | dl.RTLD_GLOBAL
116 # DLFCN module can be unavailable
118 flags = DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL
124 # ctypes module can be unavailable
126 flags = ctypes.RTLD_GLOBAL
132 sys.setdlopenflags(flags)
135 orb, lcc, naming_service, cm,sg=None,None,None,None,None
136 myStudyManager, myStudyId, myStudy, myStudyName=None,None,None,None
139 def salome_init(theStudyId=0,embedded=0):
141 Performs only once SALOME general purpose intialisation for scripts.
142 optional argument : theStudyId
143 When in embedded interpreter inside IAPP, theStudyId is not used
144 When used without GUI (external interpreter)
145 0 : create a new study (default).
146 n (>0) : try connection to study with Id = n, or create a new one
148 If study creation, its Id may be different from theStudyId !
150 orb reference to CORBA
151 lcc a LifeCycleCorba instance
152 naming_service a naming service instance
153 cm reference to the container manager
154 sg access to SALOME GUI (when linked with IAPP GUI)
155 myStudyManager the study manager
156 myStudyId active study identifier
157 myStudy active study itself (CORBA reference)
158 myStudyName active study name
160 global salome_initial
161 global orb, lcc, naming_service, cm
163 global myStudyManager, myStudyId, myStudy, myStudyName
168 sg = salome_iapp_init(embedded)
169 orb, lcc, naming_service, cm = salome_kernel_init()
170 myStudyManager, myStudyId, myStudy, myStudyName =salome_study_init(theStudyId)
173 except RuntimeError, inst:
174 # wait a little to avoid trace mix
178 print "salome.salome_init():", x
180 ============================================
181 May be there is no running SALOME session
182 salome.salome_init() is intented to be used
183 within an already running session
184 ============================================
188 #to expose all objects to pydoc