/// <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); }
/* * 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); }
/// <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); }
/// <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; }
/* * 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)); }