Salome HOME
SWP12966 - MutiFile is not saved correctly
[modules/kernel.git] / src / KERNEL_PY / salome.py
1 #  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3
4 #  This library is free software; you can redistribute it and/or 
5 #  modify it under the terms of the GNU Lesser General Public 
6 #  License as published by the Free Software Foundation; either 
7 #  version 2.1 of the License. 
8
9 #  This library is distributed in the hope that it will be useful, 
10 #  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 #  Lesser General Public License for more details. 
13
14 #  You should have received a copy of the GNU Lesser General Public 
15 #  License along with this library; if not, write to the Free Software 
16 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20 #
21 #
22 #  File   : salome.py
23 #  Author : Paul RASCLE, EDF
24 #  Module : SALOME
25 #  $Header$
26
27 from salome_kernel import *
28 from salome_study import *
29 from salome_iapp import *
30
31 salome_initial=1
32 def salome_init(theStudyId=0,embedded=0):
33     """
34     Performs only once SALOME general purpose intialisation for scripts.
35     optional argument : theStudyId
36       When in embedded interpreter inside IAPP, theStudyId is not used
37       When used without GUI (external interpreter)
38         0      : create a new study (default).
39         n (>0) : try connection to study with Id = n, or create a new one
40                  if study not found.
41                  If study creation, its Id may be different from theStudyId !
42     Provides:
43     orb             reference to CORBA
44     lcc             a LifeCycleCorba instance
45     naming_service  a naming service instance
46     cm              reference to the container manager
47     sg              access to SALOME GUI (when linked with IAPP GUI)
48     myStudyManager  the study manager
49     myStudyId       active study identifier
50     myStudy         active study itself (CORBA reference)
51     myStudyName     active study name
52     """
53     global salome_initial
54     global orb, lcc, naming_service, cm
55     global sg
56     global myStudyManager, myStudyId, myStudy, myStudyName
57
58     try:
59         if salome_initial:
60             salome_initial=0
61             sg = salome_iapp_init(embedded)
62             orb, lcc, naming_service, cm = salome_kernel_init()
63             myStudyManager, myStudyId, myStudy, myStudyName =salome_study_init(theStudyId)
64             pass
65         pass
66     except RuntimeError, inst:
67         # wait a little to avoid trace mix
68         import time
69         time.sleep(0.2)
70         x = inst
71         print "salome.salome_init():", x
72         print """
73         ============================================
74         May be there is no running SALOME session
75         salome.salome_init() is intented to be used
76         within an already running session
77         ============================================
78         """
79         raise