protected override void CreateSpecificProgram(ProgramOperation programPhase, Operazione operazione) { var moveCollection = new MoveActionCollection(); var parametro = operazione.Utensile.ParametroUtensile as ParametroUtensileTornitura; if (parametro == null) { return; } // La profondità di passata = x2 var profPassata = parametro.ProfonditaPassata * 2; var preference = Singleton.Preference.GetPreference(Singleton.Instance.MeasureUnit); var distacco = preference.DistaccoSgrossaturaTornitura; var profile2D = Profile.GetProfileResult(false); switch (operazione.OperationType) { case LavorazioniEnumOperazioni.TornituraSgrossatura: { TurnProgrammingHelper.GetRoughingTurnProgram(programPhase, moveCollection, profile2D, profPassata, ExtraCorsa, distacco, _tipoTornitura, UsaMacroSgrossatura, SovrametalloFinituraX, SovrametalloFinituraY); } break; case LavorazioniEnumOperazioni.TornituraFinitura: { TurnProgrammingHelper.GetFinishingProgram(moveCollection, profile2D, _tipoTornitura, ExtraCorsa); } break; default: Trace.WriteLine("Tornitura.CreateSpecificProgram"); break; } foreach (var variable in moveCollection) { programPhase.AggiungiAzioneMovimento(variable); } }
protected override void CreateSpecificProgram(ProgramOperation programPhase, Operazione operazione) { var moveCollection = new MoveActionCollection(); var zStart = InizioZ + Sovrametallo; var parametro = operazione.Utensile.ParametroUtensile as ParametroUtensileTornitura; if (parametro == null) { return; } var profPassata = parametro.ProfonditaPassata; switch (operazione.OperationType) { case LavorazioniEnumOperazioni.TornituraSfacciaturaSgrossatura: { TurnProgrammingHelper.GetFaceRoughing(moveCollection, DiametroMax, DiametroMin, InizioZ, zStart, profPassata, 1); } break; case LavorazioniEnumOperazioni.TornituraSfacciaturaFinitura: { TurnProgrammingHelper.GetFaceFinishing(moveCollection, DiametroMax, DiametroMin, InizioZ, 1); } break; default: Trace.WriteLine("Tornitura.CreateSpecificProgram"); break; } foreach (var action in moveCollection) { programPhase.AggiungiAzioneMovimento(action); } }
protected override void CreateSpecificProgram(ProgramOperation programPhase, Operazione operazione) { var parametro = operazione.Utensile.ParametroUtensile as ParametroUtensileTornituraScanalatura; var utensile = operazione.Utensile as UtensileScanalatura; if (parametro == null || utensile == null) { return; } var larghUtensile = utensile.LarghezzaUtensile; var larghPassata = parametro.LarghezzaPassata; var step = parametro.Step; var moveCollection = new MoveActionCollection(); if (larghUtensile > Larghezza) { return; } for (int i = 0; i < NumeroGole; i++) { switch (ScanalaturaType) { case GrooveDirection.Extern: { var stepGole = i * DistanzaGole; var startZ = StartZ - stepGole; var endZ = startZ + Larghezza - larghUtensile; var dMax = Math.Max(DiameterIniziale, DiameterFinale); var dMin = Math.Min(DiameterIniziale, DiameterFinale); var dIni = dMax; var dFin = dMin; //var effectiveStart = startZ + larghUtensile; switch (operazione.OperationType) { case LavorazioniEnumOperazioni.TornituraScanalaturaSgrossatura: { TurnProgrammingHelper.GetSgrossaturaGolaEsterna(moveCollection, dIni, dFin, startZ, endZ, step, larghPassata, 0); } break; case LavorazioniEnumOperazioni.TornituraScanalaturaFinitura: { TurnProgrammingHelper.GetFinituraGolaEsternaInterna(moveCollection, DiameterIniziale, DiameterFinale, startZ, endZ, 0, ExtraCorsa); } break; } } break; case GrooveDirection.Intern: { var stepGole = i * DistanzaGole; var startZ = StartZ - stepGole; var endZ = startZ + Larghezza - larghUtensile; var dMax = Math.Max(DiameterIniziale, DiameterFinale); var dMin = Math.Min(DiameterIniziale, DiameterFinale); var dIni = dMin; var dFin = dMax; //var effectiveStart = startZ + larghUtensile; switch (operazione.OperationType) { case LavorazioniEnumOperazioni.TornituraScanalaturaSgrossatura: { TurnProgrammingHelper.GetSgrossaturaGolaInterna(moveCollection, dIni, dFin, startZ, endZ, step, larghPassata, 0); } break; case LavorazioniEnumOperazioni.TornituraScanalaturaFinitura: { TurnProgrammingHelper.GetFinituraGolaEsternaInterna(moveCollection, DiameterIniziale, DiameterFinale, startZ, endZ, 0, ExtraCorsa); } break; } } break; case GrooveDirection.Face: { var stepGole = i * DistanzaGole; var startZ = StartZ; var endZ = startZ - Larghezza; var dMax = Math.Max(DiameterIniziale, DiameterFinale); var dMin = Math.Min(DiameterIniziale, DiameterFinale); var diaIni = dMin + stepGole; var diaFin = dMax + stepGole - larghUtensile; switch (operazione.OperationType) { case LavorazioniEnumOperazioni.TornituraScanalaturaSgrossatura: { TurnProgrammingHelper.GetSgrossaturaGolaFrontale(moveCollection, diaIni, diaFin, startZ, endZ, step, larghPassata, 0); } break; case LavorazioniEnumOperazioni.TornituraScanalaturaFinitura: { TurnProgrammingHelper.GetFinituraGolaFrontale(moveCollection, diaIni, diaFin, startZ, endZ, ExtraCorsa, 0); } break; } } break; } } foreach (var variable in moveCollection) { programPhase.AggiungiAzioneMovimento(variable); } }