X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FKERNEL_PY%2Fsalome_study.py;h=048c67d1b0cb3e5edbc61009cd4bd6ee2346c1f9;hb=15a97ac169f8acd9cfcb6c4f9ef236d79c9d6a32;hp=5626aecdf8b13c3722364f03b1a79d6014d43d8e;hpb=910e1b8c12ac2978e64847e9694b080c8381bc60;p=modules%2Fkernel.git diff --git a/src/KERNEL_PY/salome_study.py b/src/KERNEL_PY/salome_study.py old mode 100755 new mode 100644 index 5626aecdf..048c67d1b --- a/src/KERNEL_PY/salome_study.py +++ b/src/KERNEL_PY/salome_study.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2024 CEA, EDF, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -271,11 +271,43 @@ def FindFileInDataDir(filename): #-------------------------------------------------------------------------- def openStudy(theStudyPath): - print("openStudy") global myStudy, myStudyName myStudy.Open(theStudyPath) myStudyName = myStudy._get_Name() - print(theStudyPath, myStudy._get_Name()) + + #-------------------------------------------------------------------------- + +def salome_study_init_without_session(theStudyPath=None): + """ + Performs only once study creation or connection. + optional argument : theStudyPath + None : attach to the currently active single study; + create new empty study if there is active study + (str) : open study with the given file name + """ + global myStudy, myStudyName + global orb, lcc, naming_service, cm + + if not myStudy: + import CORBA + orb = CORBA.ORB_init(['']) + + # get Study reference + import KernelDS + myStudy = KernelDS.myStudy() + pass + + import types + if theStudyPath and isinstance(theStudyPath, (str, bytes)): + if isinstance(theStudyPath, bytes): + theStudyPath = str(theStudyPath, 'UTF8') + openStudy(theStudyPath) + else: + myStudy.Init() + + myStudyName = myStudy._get_Name() + + return myStudy, myStudyName #-------------------------------------------------------------------------- @@ -290,15 +322,12 @@ def salome_study_init(theStudyPath=None): global myStudy, myStudyName global orb, lcc, naming_service, cm - if verbose(): print("theStudyPath:", theStudyPath) if not myStudy: - orb, lcc, naming_service, cm = salome_kernel.salome_kernel_init() + orb, lcc, naming_service, cm, _, _, _ = salome_kernel.salome_kernel_init() # get Study reference - if verbose(): print("looking for study...") obj = naming_service.Resolve('/Study') myStudy = obj._narrow(SALOMEDS.Study) - if verbose(): print("Study found") pass import types @@ -306,7 +335,13 @@ def salome_study_init(theStudyPath=None): if isinstance(theStudyPath, bytes): theStudyPath = str(theStudyPath, 'UTF8') openStudy(theStudyPath) + else: + myStudy.Init() myStudyName = myStudy._get_Name() return myStudy, myStudyName + +def salome_study_close(): + global myStudy, myStudyName + myStudy, myStudyName = None, None