Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
            }
        }