Ejemplo n.º 1
0
        /// <summary>
        /// Ritorna il valore più basso fra limitatore giri macchina e quello settato
        /// </summary>
        /// <returns></returns>
        internal double GetLimitatoreGiri(ToolMachine.ToolMachine macchina)
        {
            var lM = 0.0d;

            if (macchina != null)
            {
                lM = macchina.MaxGiri;
            }

            if (LimitatoreTornio <= 0 && lM > 0)
            {
                return(lM);
            }

            if (LimitatoreTornio > 0 && lM <= 0)
            {
                return(LimitatoreTornio);
            }

            if (LimitatoreTornio > 0 && lM > 0)
            {
                return(Math.Min(LimitatoreTornio, lM));
            }

            return(0);
        }
Ejemplo n.º 2
0
        /*
         * tool -> parameter
         *
         * toolHolder -> dato da macchina
         */


        /// <summary>
        /// Questo è il metodo che restituisce il Program in formato universale.
        /// </summary>
        /// <returns></returns>
        public ProgramOperation GetProgramPhase(ToolMachine.ToolMachine toolMachine, bool forceUpdate = false)
        {
            if (ProgramNeedUpdate || forceUpdate)
            {
                UpdateProgramPath(toolMachine);
            }

            return(ProgramPhase);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Qui restituisce path anteprima , decido di
        /// </summary>
        /// <param name="toolMachine"></param>
        /// <returns></returns>
        public IEnumerable <IEntity3D> GetPathPreview(ToolMachine.ToolMachine toolMachine)
        {
            var rslt = new List <IEntity3D>();

            // var workPreview = Lavorazione.GetPreview();

            if (ProgramNeedUpdate)
            {
                return(rslt);
                //  UpdateProgramPath(toolMachine);
            }

            //   rslt.AddRange(workPreview);
            var p = PreviewEntityHelper.GetIEntity3DFromIPreviewEntity(PathPreview);

            rslt.AddRange(p);

            return(rslt);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Aggiorna il programma per l'operazione.
        /// Dal programma crea oggetti per rappresentare anteprima.
        /// Dagli oggetti che rappresentano anteprima calcola il tempo macchina.
        /// </summary>
        public void UpdateProgramPath(ToolMachine.ToolMachine machine)
        {
            if (machine == null)
            {
                throw new Exception("Operazione.UpdateProgramPath- Machine == null");
            }

            ProgramPhase = Lavorazione.GetOperationProgram(this);

            PathPreview = Lavorazione.GetPathPreview(ProgramPhase, machine);

            OperationTime = machine.GetTime(PathPreview);

            // qui recupero info rigurdo tool e parametro che mi serviranno in 2nd momento
            OperationTime.NumeroUtensile = GetToolPosition();
            //OperationTime.ConsumoUtensilePerMinuto = Utensile.ParametroUtensile.CostoUtensilePerMinuto;

            CycleTime = OperationTime.TempoTotale;

            ProgramNeedUpdate = false;
        }
Ejemplo n.º 5
0
        /*
         * come operation program anche qui posso fare come preview per gestire array e rotazioni.
         *
         * ovverro
         *
         * in quanto il codice per creare la parte e richiamo utensile puo esserre messo in modo astratto
         *
         * la parte che mi serve è solamente qella relativa al codice , comunque per ora non me ne proccoupa
         */

        internal List <IPreviewEntity> GetPathPreview(ProgramOperation programPhase, ToolMachine.ToolMachine toolMachine)
        {
            return(toolMachine.GetPreview(programPhase));
        }