Index: trunk/SophyaPI/PIext/basexecut.cc
===================================================================
--- trunk/SophyaPI/PIext/basexecut.cc	(revision 456)
+++ trunk/SophyaPI/PIext/basexecut.cc	(revision 463)
@@ -325,5 +325,5 @@
     cout<<"Usage: copy name_from  name_to"<<endl;return(0); 
   }
-  srvo->CopyObjects(tokens[0],tokens[1]);
+  mObjMgr->CopyObj(tokens[0],tokens[1]);
 }
 
@@ -741,38 +741,43 @@
 usage += "\n Usage: mkdir dirname [true]";
 usage += "\n if second argument==true, the directory's KeepOld attribute is set to true";
-mpiac->RegisterCommand(kw, usage, this, "Object Managment");
+mpiac->RegisterCommand(kw, usage, this, "Object Management");
 kw = "rmdir";
 usage = "Removes an empty directory";
 usage += "\n Usage: remove dirname";
-mpiac->RegisterCommand(kw, usage, this, "Object Managment");
+mpiac->RegisterCommand(kw, usage, this, "Object Management");
 kw = "cd";
 usage = "Change current directory";
 usage += "\n Usage: cd [dirname]";
-mpiac->RegisterCommand(kw, usage, this, "Object Managment");
+mpiac->RegisterCommand(kw, usage, this, "Object Management");
 kw = "pwd";
 usage = "Prints current directory";
 usage += "\n Usage: pwd";
-mpiac->RegisterCommand(kw, usage, this, "Object Managment");
+mpiac->RegisterCommand(kw, usage, this, "Object Management");
 kw = "listdirs";
 usage = "Prints the list of directories";
 usage += "\n Usage: listdirs [patt=*] \n patt : * , ? ";
-mpiac->RegisterCommand(kw, usage, this, "Object Managment");
+mpiac->RegisterCommand(kw, usage, this, "Object Management");
 kw = "listobjs";
 usage = "Prints the list of objects (Alias: ls)";
  usage += "\n Usage: listobjs [patt=*] \n patt : /*/x?y* ... ";
-mpiac->RegisterCommand(kw, usage, this, "Object Managment");
+mpiac->RegisterCommand(kw, usage, this, "Object Management");
 kw = "rename";
 usage = "Rename an object (Alias: mv) \n Usage: rename nameobj namenew";
 usage += "\n  Related commands: del delobjs";  
-mpiac->RegisterCommand(kw, usage, this, "Object Managment");
+mpiac->RegisterCommand(kw, usage, this, "Object Management");
+kw = "copy";
+usage = "Copy objects \n";
+usage +="  Usage: copy name_from name_to";
+usage += "\n  Related commands: new...";  
+mpiac->RegisterCommand(kw, usage, this, "Object Management");
 kw = "del";
 usage = "Deletes an object (Alias: rm) \n Usage: del nameobj";
 usage += "\n  Related commands: delobjs  rename";  
-mpiac->RegisterCommand(kw, usage, this, "Object Managment");
+mpiac->RegisterCommand(kw, usage, this, "Object Management");
 kw = "delobjs";
 usage = "Delete a set of objects with names matching a pattern (x?y*)";
 usage += "\n Usage: delobjs nameobjpattern \n";
 usage += "\n  Related commands: del rename";  
-mpiac->RegisterCommand(kw, usage, this, "Object Managment");
+mpiac->RegisterCommand(kw, usage, this, "Object Management");
 
 kw = "newh1d";
@@ -807,10 +812,4 @@
 mpiac->RegisterCommand(kw, usage, this, "Objects");
 
-kw = "copy";
-usage = "Copy objects \n";
-usage +="  Usage: copy name_from name_to";
-usage += "\n  Related commands: new...";  
-mpiac->RegisterCommand(kw, usage, this, "Objects");
-
 kw = "disp";
 usage = "Displays an object \n Usage: disp nameobj [graphic_attributes]";
Index: trunk/SophyaPI/PIext/nobjmgr.cc
===================================================================
--- trunk/SophyaPI/PIext/nobjmgr.cc	(revision 456)
+++ trunk/SophyaPI/PIext/nobjmgr.cc	(revision 463)
@@ -390,4 +390,6 @@
 // void  RenameObj(string const& nom, string& nomnew)
 //	Change le nom d'un objet dans la liste.
+// void  CopyObj(string const& nom, string& nomcp)
+//	Copy l'objet "nom" de la liste dans l'objet "nomcp" de la liste.
 //--
 
@@ -516,4 +518,20 @@
 
 /* --Methode-- */
+bool NamedObjMgr::CopyObj(string & nom, string& nomcp)
+{
+if(nomcp.length()<=0)
+  {cout<<"NamedObjMgr::CopyObj() Error, copied obj name "<<nomcp<<" not valid"<<endl;
+  return(false);}
+NObjMgrAdapter* obnom = GetObjAdapter(nom);
+if(obnom==NULL)
+  {cout<<"NamedObjMgr::CopyObj() Error -  No "<<nom<<" object !"<<endl;
+  return(false);}
+AnyDataObj* obnomcp = obnom->GetCopyObj();
+if(obnomcp==NULL) return(false);
+if(! AddObj(obnomcp,nomcp) ) {delete obnomcp; return(false);}
+return true;
+}
+
+/* --Methode-- */
 bool NamedObjMgr::DelObj(string & nom, bool fgd)
 {
Index: trunk/SophyaPI/PIext/nobjmgr.h
===================================================================
--- trunk/SophyaPI/PIext/nobjmgr.h	(revision 456)
+++ trunk/SophyaPI/PIext/nobjmgr.h	(revision 463)
@@ -43,4 +43,5 @@
   virtual bool		AddObj(AnyDataObj* obj, string & nom, bool crd=false);
   virtual bool		RenameObj(string & nom, string& nomnew);
+  virtual bool		CopyObj(string & nom, string& nomcp); 
   virtual bool          DelObj(string & nom, bool fgd=true);
   virtual void		DelObjects(string & patt, bool fgd=true); 
Index: trunk/SophyaPI/PIext/nomgadapter.cc
===================================================================
--- trunk/SophyaPI/PIext/nomgadapter.cc	(revision 456)
+++ trunk/SophyaPI/PIext/nomgadapter.cc	(revision 463)
@@ -27,4 +27,12 @@
 {
 return(mObj);
+}
+
+/* --Methode-- */
+AnyDataObj* NObjMgrAdapter::GetCopyObj()
+{
+string s = typeid(*mObj).name();
+cout << "NObjMgrAdapter::GetCopyObj() - Error : Not supported for " << s << endl;
+return(NULL);
 }
 
Index: trunk/SophyaPI/PIext/nomgadapter.h
===================================================================
--- trunk/SophyaPI/PIext/nomgadapter.h	(revision 456)
+++ trunk/SophyaPI/PIext/nomgadapter.h	(revision 463)
@@ -26,4 +26,5 @@
 
   virtual AnyDataObj*		GetDataObj();
+  virtual AnyDataObj*		GetCopyObj();
 
   virtual void			ReadFits(string const & flnm);
Index: trunk/SophyaPI/PIext/nomgfdadapter.cc
===================================================================
--- trunk/SophyaPI/PIext/nomgfdadapter.cc	(revision 456)
+++ trunk/SophyaPI/PIext/nomgfdadapter.cc	(revision 463)
@@ -33,4 +33,10 @@
 
 /* --Methode-- */
+AnyDataObj* NOMAdapter_GeneralFitData::GetCopyObj()
+{
+return( new GeneralFitData(*mG) );
+}
+
+/* --Methode-- */
 void NOMAdapter_GeneralFitData::SavePPF(POutPersist& pos, string const & nom)
 {
Index: trunk/SophyaPI/PIext/nomgfdadapter.h
===================================================================
--- trunk/SophyaPI/PIext/nomgfdadapter.h	(revision 456)
+++ trunk/SophyaPI/PIext/nomgfdadapter.h	(revision 463)
@@ -20,4 +20,5 @@
 
   virtual NObjMgrAdapter*  Clone(AnyDataObj* o);
+  virtual AnyDataObj*      GetCopyObj();
 
   virtual void		   SavePPF(POutPersist& s, string const & nom);
Index: trunk/SophyaPI/PIext/nomhistadapter.cc
===================================================================
--- trunk/SophyaPI/PIext/nomhistadapter.cc	(revision 456)
+++ trunk/SophyaPI/PIext/nomhistadapter.cc	(revision 463)
@@ -34,4 +34,11 @@
 }
 
+/* --Methode-- */
+AnyDataObj* NOMAdapter_Histo::GetCopyObj()
+{
+HProf * hp = dynamic_cast<HProf *>(mHis);
+if (hp == NULL)   return( new Histo(*mHis) );
+else return( new HProf(*hp) );
+}
 
 /* --Methode-- */
@@ -145,4 +152,9 @@
 }
 
+/* --Methode-- */
+AnyDataObj* NOMAdapter_Histo2D::GetCopyObj()
+{
+return ( new Histo2D(*mHis) );
+}
 
 /* --Methode-- */
@@ -268,4 +280,9 @@
 }
 
+/* --Methode-- */
+AnyDataObj* NOMAdapter_NTuple::GetCopyObj()
+{
+return ( new NTuple(*mNt) );
+}
 
 /* --Methode-- */
Index: trunk/SophyaPI/PIext/nomhistadapter.h
===================================================================
--- trunk/SophyaPI/PIext/nomhistadapter.h	(revision 456)
+++ trunk/SophyaPI/PIext/nomhistadapter.h	(revision 463)
@@ -24,4 +24,5 @@
 
   virtual NObjMgrAdapter*	Clone(AnyDataObj* o);
+  virtual AnyDataObj*		GetCopyObj();
 
   //  virtual void			ReadFits(string const & flnm);
@@ -61,4 +62,5 @@
 
   virtual NObjMgrAdapter*	Clone(AnyDataObj* o);
+  virtual AnyDataObj*		GetCopyObj();
 
   //  virtual void			ReadFits(string const & flnm);
@@ -100,4 +102,5 @@
 
   virtual NObjMgrAdapter*	Clone(AnyDataObj* o);
+  virtual AnyDataObj*		GetCopyObj();
 
   //  virtual void			ReadFits(string const & flnm);
Index: trunk/SophyaPI/PIext/nomimagadapter.cc
===================================================================
--- trunk/SophyaPI/PIext/nomimagadapter.cc	(revision 456)
+++ trunk/SophyaPI/PIext/nomimagadapter.cc	(revision 463)
@@ -38,4 +38,12 @@
 }
 
+/* --Methode-- */
+template <class T>
+AnyDataObj* NOMAdapter_Image<T>::GetCopyObj()
+{
+FitsImage<T> * fima = dynamic_cast<FitsImage<T> *>(mImg);
+if (fima == NULL)   return( new Image<T>(*mImg ) );
+else return ( new FitsImage<T>(*fima) );
+}
 
 /* --Methode-- */
Index: trunk/SophyaPI/PIext/nomimagadapter.h
===================================================================
--- trunk/SophyaPI/PIext/nomimagadapter.h	(revision 456)
+++ trunk/SophyaPI/PIext/nomimagadapter.h	(revision 463)
@@ -23,4 +23,5 @@
 
   virtual NObjMgrAdapter*	Clone(AnyDataObj* o);
+  virtual AnyDataObj*		GetCopyObj();
 
   //  virtual void			ReadFits(string const & flnm);
Index: trunk/SophyaPI/PIext/nommatvecadapter.cc
===================================================================
--- trunk/SophyaPI/PIext/nommatvecadapter.cc	(revision 456)
+++ trunk/SophyaPI/PIext/nommatvecadapter.cc	(revision 463)
@@ -31,4 +31,10 @@
 if (v) return ( new NOMAdapter_Vector(v) );
 return ( new NObjMgrAdapter(o) );
+}
+
+/* --Methode-- */
+AnyDataObj* NOMAdapter_Vector::GetCopyObj()
+{
+return ( new Vector(*mVec) );
 }
 
@@ -142,4 +148,9 @@
 }
 
+/* --Methode-- */
+AnyDataObj* NOMAdapter_Matrix::GetCopyObj()
+{
+return ( new Matrix(*mMtx) );
+}
 
 /* --Methode-- */
Index: trunk/SophyaPI/PIext/nommatvecadapter.h
===================================================================
--- trunk/SophyaPI/PIext/nommatvecadapter.h	(revision 456)
+++ trunk/SophyaPI/PIext/nommatvecadapter.h	(revision 463)
@@ -21,4 +21,5 @@
 
   virtual NObjMgrAdapter*	Clone(AnyDataObj* o);
+  virtual AnyDataObj*		GetCopyObj();
 
   //  virtual void			ReadFits(string const & flnm);
@@ -60,4 +61,5 @@
 
   virtual NObjMgrAdapter*	Clone(AnyDataObj* o);
+  virtual AnyDataObj*		GetCopyObj();
 
   //  virtual void			ReadFits(string const & flnm);
Index: trunk/SophyaPI/PIext/pawexecut.cc
===================================================================
--- trunk/SophyaPI/PIext/pawexecut.cc	(revision 463)
+++ trunk/SophyaPI/PIext/pawexecut.cc	(revision 463)
@@ -0,0 +1,36 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <iostream.h>
+#include <typeinfo>
+
+#include "histos.h"
+#include "histos2.h"
+#include "ntuple.h"
+
+#include "pawexecut.h"
+#include "nobjmgr.h"
+#include "pistdimgapp.h"
+
+PAWExecutor::PAWExecutor(PIACmd *piac, PIStdImgApp* app)
+  : mApp(app)
+{
+string kw, usage;
+string hgrp = "pawCmd";
+kw = "h/op/res";
+usage = "Reset histogram - " ;
+piac->RegisterCommand(kw,usage,this,hgrp);
+}
+
+PAWExecutor::~PAWExecutor()
+{
+}
+
+int PAWExecutor::Execute(string& kw, vector<string>& tokens)
+{
+if(kw == "h/op/res") {
+  cout << " CMV-A faire - h/op/res pas implemente " << endl;
+  return(0);
+  }
+else return(1); 
+}
Index: trunk/SophyaPI/PIext/pawexecut.h
===================================================================
--- trunk/SophyaPI/PIext/pawexecut.h	(revision 463)
+++ trunk/SophyaPI/PIext/pawexecut.h	(revision 463)
@@ -0,0 +1,26 @@
+// This may look like C code, but it is really -*- C++ -*-
+// Classe d ajustement pour  piapp
+// cmv                            98-99
+// CEA-DAPNIA      LAL-IN2P3/CNRS
+
+#ifndef PAWEXECUTOR_H_SEEN
+#define PAWEXECUTOR_H_SEEN
+
+#include "machdefs.h"
+#include <string>
+#include <vector>
+
+#include "anydataobj.h"
+#include "piacmd.h"
+
+class PAWExecutor : public CmdExecutor {
+public:
+                   PAWExecutor(PIACmd* piac, PIStdImgApp* app);
+  virtual          ~PAWExecutor();
+  virtual int      Execute(string& keyw, vector<string>& args);
+protected:
+  PIStdImgApp* mApp;
+};
+
+#endif
+
Index: trunk/SophyaPI/PIext/piacmd.cc
===================================================================
--- trunk/SophyaPI/PIext/piacmd.cc	(revision 456)
+++ trunk/SophyaPI/PIext/piacmd.cc	(revision 463)
@@ -14,4 +14,5 @@
 #include "nobjmgr.h"
 #include "piafitting.h"
+#include "pawexecut.h"
 
 #include PISTDWDG_H 
@@ -311,4 +312,5 @@
 basexec = new PIABaseExecutor(this, omg, app);
 fitexec = new PIAFitter(this, app);
+pawexec = new PAWExecutor(this, app);
 AddInterpreter(this);
 curcmdi = this;
@@ -331,4 +333,5 @@
 delete basexec;
 delete fitexec;
+delete pawexec;
 }
 
@@ -901,3 +904,52 @@
 }
 
-
+/* --Methode-- */
+void PIACmd::HelptoLaTex(string const & fname)
+{
+FILE *fip;
+if ((fip = fopen(fname.c_str(), "w")) == NULL)   { 
+  cout << "PIACmd::HelptoLaTex_Error: fopen( " << fname << endl; 
+  return;
+  }
+
+fputs("% ----- Liste des groupes de Help ----- \n",fip);
+fputs("List of {\\bf piapp} on-line Help groups: \n", fip);
+fputs("\\begin{itemize} \n",fip);
+CmdHGroup::iterator it;
+for(it = cmdhgrp.begin(); it != cmdhgrp.end(); it++) 
+  fprintf(fip,"\\item {\\bf %s } \n", (*it).first.c_str());
+
+fputs("\\end{itemize} \n",fip);
+
+fputs("% ----- Liste des commandes dans chaque groupe ----- \n",fip);
+fputs("\\newpage \n",fip);
+CmdExmap::iterator ite;
+int gid;
+for(it = cmdhgrp.begin(); it != cmdhgrp.end(); it++) {
+  gid = (*it).second;
+  if (gid == 0)  continue;
+  fprintf(fip,"\\subsection{%s} \n", (*it).first.c_str());
+  for(ite = helpexmap.begin(); ite != helpexmap.end(); ite++) {
+    if ((*ite).second.group != gid)  continue;
+    fprintf(fip,"{ \\Large $ \\star \\star \\star $ }  Help item {\\bf \\Large %s } \n", 
+            (*ite).first.c_str());
+    fputs("\\begin{verbatim} \n",fip);
+    fprintf(fip,"%s\n", (*ite).second.us.c_str());
+    fputs("\\end{verbatim} \n",fip);
+    }
+  for(ite = cmdexmap.begin(); ite != cmdexmap.end(); ite++) {
+    if ((*ite).second.group != gid)  continue;
+    fprintf(fip,"{ \\Large $ \\star \\star \\star $ }  Command {\\bf \\Large %s } \n", 
+            (*ite).first.c_str());
+    fputs("\\begin{verbatim} \n",fip);
+    fprintf(fip,"%s\n", (*ite).second.us.c_str());
+    fputs("\\end{verbatim} \n",fip);
+    }
+}
+
+fclose(fip);
+return;
+}
+
+
+
Index: trunk/SophyaPI/PIext/piacmd.h
===================================================================
--- trunk/SophyaPI/PIext/piacmd.h	(revision 456)
+++ trunk/SophyaPI/PIext/piacmd.h	(revision 463)
@@ -76,4 +76,6 @@
   virtual void		ShowHelpWindow();
 
+  virtual void 		HelptoLaTex(string const & flnm);
+
   inline  CmdInterpreter* CurrentInterpreter() { return(curcmdi); }
   inline  CmdExecutor*    BaseExecutor()  { return(basexec); }
@@ -92,4 +94,5 @@
   CmdExecutor* basexec;
   CmdExecutor* fitexec;
+  CmdExecutor* pawexec;
 
 // Pour enregistrer la liste de commandes et leurs executeurs et le help
Index: trunk/SophyaPI/PIext/servnobjm.cc
===================================================================
--- trunk/SophyaPI/PIext/servnobjm.cc	(revision 456)
+++ trunk/SophyaPI/PIext/servnobjm.cc	(revision 463)
@@ -921,107 +921,4 @@
 
 if (adel) delete objnt;   // Delete de l'objet NTupleInterface si necessaire
-return;
-}
-
-/* --Methode-- cmv 08/10/99 */
-void Services2NObjMgr::CopyObjects(string& namefrom, string& nameto)
-//	Pour copier l'object "namefrom" dans l'objet "nameto".
-{
-AnyDataObj* mobj = mOmg->GetObj(namefrom);
-if(mobj == NULL) {
-  cout<<"CopyObjects() Error, object "<<namefrom<<" not existing"<<endl;
-  return;
-}
-if(nameto.length()<=0) {
-  cout<<"CopyObjects() Error, copied object name "<<nameto<<" not valid"<<endl;
-  return;
-}
-
-// Les histos
-if(typeid(*mobj) == typeid(Histo)) {
-  Histo* objfr = (Histo*) mobj;
-  Histo* objto = new Histo(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(Histo2D)) {
-  Histo2D* objfr = (Histo2D*) mobj;
-  Histo2D* objto = new Histo2D(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(HProf)) {
-  HProf* objfr = (HProf*) mobj;
-  HProf* objto = new HProf(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(NTuple)) {
-  NTuple* objfr = (NTuple*) mobj;
-  NTuple* objto = new NTuple(*objfr);
-  mOmg->AddObj(objto,nameto);
-
-// Les vecteurs et matrices
-} else if (typeid(*mobj) == typeid(Vector)) {
-  Vector* objfr = (Vector*) mobj;
-  Vector* objto = new Vector(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(Matrix)) {
-  Matrix* objfr = (Matrix*) mobj;
-  Matrix* objto = new Matrix(*objfr);
-  mOmg->AddObj(objto,nameto);
-
-// Les generalfitdata
-} else if (typeid(*mobj) == typeid(GeneralFitData)) {
-  GeneralFitData* objfr = (GeneralFitData*) mobj;
-  GeneralFitData* objto = new GeneralFitData(*objfr);
-  mOmg->AddObj(objto,nameto);
-
-// Les images
-} else if (typeid(*mobj) == typeid(RzImage)) {
-  RzImage* objfr = (RzImage*) mobj;
-  RzImage* objto = new RzImage(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(ImageU1)) {
-  ImageU1* objfr = (ImageU1*) mobj;
-  ImageU1* objto = new ImageU1(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(ImageU2)) {
-  ImageU2* objfr = (ImageU2*) mobj;
-  ImageU2* objto = new ImageU2(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(ImageI2)) {
-  ImageI2* objfr = (ImageI2*) mobj;
-  ImageI2* objto = new ImageI2(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(ImageI4)) {
-  ImageI4* objfr = (ImageI4*) mobj;
-  ImageI4* objto = new ImageI4(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(ImageR4)) {
-  ImageR4* objfr = (ImageR4*) mobj;
-  ImageR4* objto = new ImageR4(*objfr);
-  mOmg->AddObj(objto,nameto);
-
-// Les FITS images
-} else if (typeid(*mobj) == typeid(FitsImage<uint_2>)) {
-  FitsImage<uint_2>* objfr = (FitsImage<uint_2>*) mobj;
-  FitsImage<uint_2>* objto = new FitsImage<uint_2>(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(FitsImage<int_2>)) {
-  FitsImage<int_2>* objfr = (FitsImage<int_2>*) mobj;
-  FitsImage<int_2>* objto = new FitsImage<int_2>(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(FitsImage<int_4>)) {
-  FitsImage<int_4>* objfr = (FitsImage<int_4>*) mobj;
-  FitsImage<int_4>* objto = new FitsImage<int_4>(*objfr);
-  mOmg->AddObj(objto,nameto);
-} else if (typeid(*mobj) == typeid(FitsImage<r_4>)) {
-  FitsImage<r_4>* objfr = (FitsImage<r_4>*) mobj;
-  FitsImage<r_4>* objto = new FitsImage<r_4>(*objfr);
-  mOmg->AddObj(objto,nameto);
-
-// Pas prevu
-} else {
-  cout<<"CopyObjects() Error, object "<<typeid(*mobj).name()
-
-      <<" could not be copied"<<endl;
-  return;
-}
-
 return;
 }
Index: trunk/SophyaPI/PIext/servnobjm.h
===================================================================
--- trunk/SophyaPI/PIext/servnobjm.h	(revision 456)
+++ trunk/SophyaPI/PIext/servnobjm.h	(revision 463)
@@ -86,7 +86,4 @@
                                                  string const & funcname);
 
-// Copies d'Objects
-  virtual void		CopyObjects(string& namefrom, string& nameto);
-
 // Calcul d'expressions d'interface NTuple pour les objets
   void 		ComputeExpressions(NObjMgrAdapter* obja, string& expx, string& expy, 
