_sceneManager   = sceneManager;
                
                _xGeneral               = -100;
-               _yGeneral               = 10;
+               _yGeneral               = 100;
                _zGeneral               = 900;   //  ?????
                _countBoxes             = 0;
-               
-               _complexbox             = false;
+               _countInputs    = 0;
+               _countOutputs   = 0;
+
                bbtk::InterpreterVirtual::Init();
                
        }
        /// Creates a new black box in current complex box
     void InterpreterBBS::commandNew( const std::string& boxType, const std::string& boxName) // virtual
        {
+               _yGeneral                               = _yGeneral - 30;               
                std::string packagename = _factory->GetPackageNameOfaBlackBox(boxType);
                int idBox                               = _sceneManager->createGBlackBox( 0,0, packagename ,boxType);
                _countBoxes++;
-               _yGeneral                               = _yGeneral + 30;               
                double px                               = _xGeneral + (_countBoxes%2)*100;
                double py                               = _yGeneral;
                
        //=========================================================================
        
        
+       //=========================================================================
+       void InterpreterBBS::commandInput(const std::string &name,const std::string &box,const std::string &input,const std::string  &help)
+       {
+               double xIn      = -100+50+_countInputs*50;
+               double yIn      = 100; 
+               double zIn      = 900; 
+               _sceneManager->configGComBoxInputOutputPort(true,name,xIn,yIn,zIn);
+               _sceneManager->configGConnetion( name,name,box,input);
+               _countInputs++;
+               
+               printf("EED InterpreterBBS::commandInput  what to do with help information ..???? \n  ");               
+       }
+       //=========================================================================
+       
+       //=========================================================================
+       void InterpreterBBS::commandOutput(const std::string &name,const std::string &box,const std::string &output,const std::string  &help)
+       {
+               _yGeneral       = _yGeneral - 30;               
+               double xIn      = -100+_countOutputs*30;
+               double yIn      = _yGeneral; 
+               double zIn      = 900; 
+               _sceneManager->configGComBoxInputOutputPort(false,name,xIn,yIn,zIn);
+               _sceneManager->configGConnetion( box,output,name,name);
+               _countOutputs++;
+               
+               printf("EED InterpreterBBS::commandInput  what to do with help information ..???? \n  ");               
+       }
+       //=========================================================================
+       
+       
        //=========================================================================
        /// sets the input of the box with the value
        void InterpreterBBS::commandSet(const std::string &box,const std::string &input,const std::string &value) // virtual
        //=========================================================================     
        void InterpreterBBS::commandDefine(const std::string &name,const std::string &pack,const std::string &scriptfilename) // virtual
        {
-               _complexbox=true;
+               _sceneManager->setComplexBox(true);
+
        }
        //=========================================================================
 
        //=========================================================================
        void InterpreterBBS::commandEndDefine() // virtual
        {
-               _complexbox=false;
        }
        //=========================================================================
        
        //=========================================================================
        
 
+       //=========================================================================
        void InterpreterBBS::commandAuthor(const std::string &author)  // virtual 
        {
                printf("EED InterpreterBBS::commandAuthor   Warning !!!!!  method not implemented.. \n");
        }
+       //=========================================================================
        
+       //=========================================================================
        void InterpreterBBS::commandCategory(const std::string &categorytype)  // virtual
        {
                printf("EED InterpreterBBS::commandCategory   Warning !!!!!  method not implemented.. \n");
        }
+       //=========================================================================
        
+       //=========================================================================
        void InterpreterBBS::commandDescription(const std::string &description)  // virtual
        {
                printf("EED InterpreterBBS::commandDescription   Warning !!!!!  method not implemented.. \n");
        }
+       //=========================================================================
+       
        
        
        
 
 
                                        getline(inputStream,line);//FIN_COMPLEX_PORT
 
-                                       int idInputPort = createGComplexBoxInputPort(inputPortName);
-                                       GObjectController *cont = _controllers[idInputPort];
-                                       GBoxModel *cbmod = (GBoxModel*)cont->getModel();
-                                       cbmod->setInicPoint(xIn,yIn,zIn);
-                                       cbmod->notifyObservers(_idManager);
+                                       configGComBoxInputOutputPort(true, inputPortName,xIn,yIn,zIn);
+
+//ups 3 EED Borrame
+//                                     int idInputPort = createGComplexBoxInputPort(inputPortName);
+//                                     GObjectController *cont = _controllers[idInputPort];
+//                                     GBoxModel *cbmod = (GBoxModel*)cont->getModel();
+//                                     cbmod->setInicPoint(xIn,yIn,zIn);
+//                                     cbmod->notifyObservers(_idManager);
+
+                                       
                                } // for input complex box
 
 
 
                                        getline(inputStream,line);//FIN_COMPLEX_PORT
 
+                                       configGComBoxInputOutputPort(false, outputPortName,xIn,yIn,zIn);
+                                       
+//ups 3 EED Borrame
+//                                     int idOutputPort = createGComplexBoxOutputPort(outputPortName);
+//                                     GObjectController *cont = _controllers[idOutputPort];
+//                                     GBoxModel *cbmod = (GBoxModel*)cont->getModel();
+//                                     cbmod->setInicPoint(xIn,yIn,zIn);
+//                                     cbmod->notifyObservers(_idManager);
                                        
-                                       int idOutputPort = createGComplexBoxOutputPort(outputPortName);
-                                       GObjectController *cont = _controllers[idOutputPort];
-                                       GBoxModel *cbmod = (GBoxModel*)cont->getModel();
-                                       cbmod->setInicPoint(xIn,yIn,zIn);
-                                       cbmod->notifyObservers(_idManager);
                                } // for output complex box
 
                        } // complex box
         } // start
 
        }
+       //=========================================================================
 
+       
+       
+       //=========================================================================     
+       void wxVtkSceneManager::configGComBoxInputOutputPort(bool inputoutput, std::string portName, double xIn, double yIn,double zIn)
+       {
+               int idPort;
+               if (inputoutput==true)
+               {
+                       idPort = createGComplexBoxInputPort(portName);
+               } else  {
+                       idPort = createGComplexBoxOutputPort(portName);
+               }
+               GObjectController *cont = _controllers[idPort];
+               GBoxModel *cbmod                = (GBoxModel*)cont->getModel();
+               cbmod->setInicPoint(xIn,yIn,zIn);
+               cbmod->notifyObservers(_idManager);                             
+       }
        //=========================================================================
        
+       
+       //=========================================================================
        GBoxModel* wxVtkSceneManager::findGBox(std::string boxname)
        {       
                int j;