Example #1
0
        public TornituraSfacciatura()
            : base()
        {
            Sgrossatura = new Operazione(this, LavorazioniEnumOperazioni.TornituraSfacciaturaSgrossatura);

            Finitura = new Operazione(this, LavorazioniEnumOperazioni.TornituraSfacciaturaFinitura);
        }
Example #2
0
        public Maschiatura(bool foroCentraleTornio)
            : base(foroCentraleTornio)
        {
            MaschiaturaMaschioOp = new Operazione(this, LavorazioniEnumOperazioni.ForaturaMaschiaturaDx);

            SensoMaschiatura = SensoMaschiatura.Dx;
        }
        //internal override Utensile CreateTool(LavorazioniEnumOperazioni enumOperationType)
        //{
        //    var unit = Singleton.Instance.MeasureUnit;

        //    return FresaturaHelper.CreateTool((LavorazioniEnumOperazioni)enumOperationType, unit);
        //}

        //internal override List<Utensile> GetCompatibleTools(LavorazioniEnumOperazioni operationType, MagazzinoUtensile magazzino)
        //{
        //    var unit = Singleton.Instance.MeasureUnit;

        //    return magazzino.GetTools<FresaCandela>(unit).Cast<Utensile>().ToList();
        //}

        protected override void CreateSpecificProgram(ProgramOperation programPhase, Operazione operazione)
        {
            // var fresa = operazione.Utensile as IDiametrable;

            //var parametro = operazione.Utensile.ParametroUtensile as ParametroFresaCandela;

            //if (fresa == null || parametro == null)
            //    throw new NullReferenceException();

            //var diaFresa = fresa.Diametro;

            //var larghezzaPassata = parametro.GetLarghezzaPassata();

            //var profPassata = parametro.GetProfonditaPassata();

            var moveCollection = new MoveActionCollection();


            switch ((LavorazioniEnumOperazioni)operazione.OperationType)
            {
            default:
            {
                EngravingText(moveCollection, GetTextProfiles(), ProfonditaLavorazione, SicurezzaZ, InizioLavorazioneZ);
            } break;
            }
            var mm = base.GetFinalProgram(moveCollection);

            foreach (var variable in mm)
            {
                programPhase.AggiungiAzioneMovimento(variable);
            }
        }
Example #4
0
        internal override ProgramOperation GetOperationProgram(Operazione operazione)
        {
            /*
             * - init program
             * - toolChange ( poi in fase di calcolo programma vedo se saltarlo o meno )
             * - settaggio feed. ( vedere meglio)
             *
             * -- calcolo programma ( questo è l'unica parte diversa )
             *
             * - rototraslazione operazioni
             */

            var preference = Singleton.Preference.GetPreference(MeasureUnit);

            var program = new ProgramOperation(0);

            ExtraCorsa = preference.TurningSecureDistance;

            //RapidSecureFeed = preference.TurningRapidSecureFeedSync;

            var changeToolAction = new CambiaUtensileAction(program, operazione);

            var rapidFeed = FaseDiLavoro.GetRapidFeed();

            operazione.Utensile.ParametroUtensile.SetFeed(program, rapidFeed, 0, FeedType.Sync);

            CreateSpecificProgram(program, operazione);

            return(program);
        }
Example #5
0
        public async Task <ActionResult> CreateOperazione(Operazione fm)
        {
            var u = await _userManager.GetUserAsync(HttpContext.User);

            object operazione;

            if (ModelState.IsValid)
            {
                if (fm.TipoOperazione == 0)
                {
                    operazione = new MovimentoAvere(u.Id, fm.Cifra);
                }
                else
                {
                    operazione = new MovimentoDare(u.Id, fm.Cifra);
                }

                _appdbcontext.Add(operazione);
                await _appdbcontext.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                return(View(fm));
            }
        }
Example #6
0
        public Spianatura()
        {
            StartPoint = SquareShapeHelper.SquareShapeStartPoint.Center;

            Sgrossatura = new Operazione(this, LavorazioniEnumOperazioni.FresaturaSpianaturaSgrossatura);

            Finitura = new Operazione(this, LavorazioniEnumOperazioni.FresaturaSpianaturaFinitura);
        }
Example #7
0
        private void btnProdotto_Click(object sender, EventArgs e)
        {
            //SECONDO METODO Istanzio il delegato
            Operazione op = Prodotto;

            //Richiamo
            MessageBox.Show("Prodotto= " + op(10, 15));
        }
Example #8
0
        public FresaturaLato()
        {
            Sgrossatura = new Operazione(this, LavorazioniEnumOperazioni.Sgrossatura);

            Finitura = new Operazione(this, LavorazioniEnumOperazioni.Finitura);

            Smussatura = new Operazione(this, LavorazioniEnumOperazioni.Smussatura);
        }
Example #9
0
        private void btnSomma_Click(object sender, EventArgs e)
        {
            //PRIMO METODO per usare un delegate
            //Istanzio il delegate e come parametro passo il nome della funzione
            Operazione op = new Operazione(Somma);  //Somma è la "funzione" puntata dal delegate

            //Richiamo il delegate che eseguirà la funzione Somma
            MessageBox.Show("Somma= " + op(10, 15));
        }
        public FresaturaFilettatura()
        {
            Pattern = PatternForatura.Circolare;

            //Finitura = new Operazione(this, LavorazioniEnumOperazioni.Finitura);
            //CentrinoForoApertura = new Operazione(this, (int)FresaturaEnumOperazioni.Centrino);
            //ForaturaApertura = new Operazione(this, (int)FresaturaEnumOperazioni.Foratura);
            FilettaturaOp = new Operazione(this, LavorazioniEnumOperazioni.FresaturaFilettare);
            Smussatura    = new Operazione(this, LavorazioniEnumOperazioni.Smussatura);
        }
        public FresaturaScanalaturaChiusa()
        {
            MillingPattern = EnumPatternMilling.PoligonoRegolare;

            Sgrossatura = new Operazione(this, LavorazioniEnumOperazioni.Sgrossatura);
            Finitura    = new Operazione(this, LavorazioniEnumOperazioni.Finitura);
            //CentrinoForoApertura = new Operazione(this, (int)FresaturaEnumOperazioni.Centrino);
            //ForaturaApertura = new Operazione(this, (int)FresaturaEnumOperazioni.Foratura);
            Smussatura = new Operazione(this, LavorazioniEnumOperazioni.Smussatura);
        }
Example #12
0
        public TornituraScanalatura(GrooveDirection grooveDirection)
            : base()
        {
            Sgrossatura = new Operazione(this, LavorazioniEnumOperazioni.TornituraScanalaturaSgrossatura);

            Finitura = new Operazione(this, LavorazioniEnumOperazioni.TornituraScanalaturaFinitura);

            NumeroGole = 1;

            ScanalaturaType = grooveDirection;
        }
Example #13
0
 public int dif(int a, int b, Operazione op)
 {
     if (a >= b)
     {
         return(op(a, b));
     }
     else
     {
         return(op(b, a));
     }
 }
Example #14
0
        /// <summary>
        /// Metodo per ottenere miglior utensile fra quelli selezionati.
        /// </summary>
        /// <param name="operazione"></param>
        /// <param name="utensiles"></param>
        /// <param name="matGuid"></param>
        /// <returns></returns>
        public virtual Utensile PickBestTool(Operazione operazione, IEnumerable <Utensile> utensiles, Guid matGuid)
        {
            var tool = (from utensile in utensiles
                        from parametro in utensile.ParametriUtensile
                        where parametro.MaterialGuid == matGuid
                        orderby utensile.SaveTime descending
                        where utensile.OperazioneTipo == operazione.OperationType
                        select utensile).FirstOrDefault();

            return(tool);
        }
        public TextEngravingModel()
        {
            AngleStart = -180;

            AngleWidth = 180;


            TextToEngrave = "Sample Text";

            Smussatura = new Operazione(this, LavorazioniEnumOperazioni.Smussatura);
        }
Example #16
0
        public void Intro()
        {
            Operazione[] ops = new Operazione[3];

            ops[0] = Somma;
            ops[1] = Sottrai;
            ops[2] = Moltiplica;

            var result = ops[2](50, 3);

            // -- dictionary ----

            Dictionary <TipoOperazione, Operazione> operazioni
                = new Dictionary <TipoOperazione, Operazione>();

            operazioni[TipoOperazione.Piu]  = Somma;
            operazioni[TipoOperazione.Meno] = Sottrai;
            operazioni[TipoOperazione.Per]  = Moltiplica;

            var res = operazioni[TipoOperazione.Meno](20, 5);

            int[] values = { 1, 2, 43, 6, 88, 2, 11 };

            var res2 = ApplicaOperazioni(values, Moltiplica);


            Trasformazione <string>[] trasformazioniStringhe =
            {
                Maiuscole, Minuscole, AggiungiChiocciola
            };

            Trasformazione <int>[] trasformazioniNumeriche =
            {
                Raddoppia, Quadrato
            };

            var resultNum = ApplicaTrasformazioni(5, trasformazioniNumeriche);

            // Esercizio =>
            //int[] risultati = ApplicaTrasformazioniSuArray(values, trasformazioniNumeriche);
        }
        protected override void CreateSpecificProgram(ProgramOperation programPhase, Operazione operazione)
        {
            var diametrable = operazione.Utensile as IDiametrable;

            var parametro = operazione.Utensile.ParametroUtensile as ParametroFresaCandela;

            if (diametrable == null)
            {
                return;
            }

            var diaFresa = diametrable.Diametro;


            double profPassata      = 0;
            double larghezzaPassata = 0;

            if (parametro != null)
            {
                profPassata = parametro.GetProfonditaPassata();

                larghezzaPassata = parametro.GetLarghezzaPassata();
            }


            var moveCollection = new MoveActionCollection();


            switch (operazione.OperationType)
            {
            case LavorazioniEnumOperazioni.Sgrossatura:
            {
                MillProgrammingHelper.FresaturaScanalaturaChiusaProgram(moveCollection, GetProfile(), ProfonditaLavorazione, Larghezza, SicurezzaZ, InizioLavorazioneZ, diaFresa, larghezzaPassata, profPassata, ExtraCorsa, SovrametalloFinituraProfilo, FinishWithCompensation);
            } break;

            case LavorazioniEnumOperazioni.Finitura:
            {
                MillProgrammingHelper.FresaturaScanalaturaChiusaProgram(moveCollection, GetProfile(), ProfonditaLavorazione, Larghezza, SicurezzaZ, InizioLavorazioneZ, diaFresa, larghezzaPassata, profPassata, ExtraCorsa, 0, FinishWithCompensation);
            } break;

            case LavorazioniEnumOperazioni.Smussatura:
            {
                FresaturaSmussaturaScanalaturaChiusaProgram(moveCollection, GetProfile(), ProfonditaLavorazione, SicurezzaZ, InizioLavorazioneZ, diaFresa, Larghezza);
            } break;
            }
            var mm = base.GetFinalProgram(moveCollection);

            foreach (var variable in mm)
            {
                programPhase.AggiungiAzioneMovimento(variable);
            }
        }
Example #18
0
        private void btnSottrazione_Click(object sender, EventArgs e)
        {
            /*
             * Operazione op = Sottrazione;
             *
             * MessageBox.Show("Sottrazione= "+op(15,10));
             */

            //3° metodo
            //istanziamo il delegato
            Operazione op = Sottrazione;  //puntatore a sottrazione

            //richiamo dif passandogli come parametro il delegato
            MessageBox.Show("differenza = " + dif(10, 12, op).ToString());
        }
        public OperazioneViewModel(Operazione operazione, EditWorkViewModel parent)
            : base(operazione.Descrizione, parent)
        {
            Operazione = operazione;

            if (operazione.FirstStart)
            {
                AutoToolFind();
                operazione.FirstStart = false;
            }
            else
            {
                LoadCompatibleTools();
            }
        }
Example #20
0
        public Alesatura(bool foraturaCentraleTornio)
            : base(foraturaCentraleTornio)
        {
            DiametroForatura = 10;

            ProfonditaForatura = 25;

            SicurezzaZ = 2;

            InizioZ = 0;

            ProfonditaCentrino = 4;

            ProfonditaSvasatura = 4;

            AlesaturaOp = new Operazione(this, LavorazioniEnumOperazioni.ForaturaAlesatore);
        }
Example #21
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 #22
0
        protected DrillBaseClass(bool foraturaCentraleTornio)
        {
            ForaturaCentraleTornio = foraturaCentraleTornio;

            if (ForaturaCentraleTornio)
            {
                Pattern = PatternForatura.TornioForaturaCentrale;
            }
            else
            {
                Pattern = PatternForatura.Circolare;
            }

            Centrinatura = new Operazione(this, LavorazioniEnumOperazioni.ForaturaCentrino);

            Foratura = new Operazione(this, LavorazioniEnumOperazioni.ForaturaPunta);

            Svasatura = new Operazione(this, LavorazioniEnumOperazioni.ForaturaSmusso);
        }
Example #23
0
        public CambiaUtensileAction(ProgramOperation parent, Operazione operazione)
            : base(parent)
        {
            // todo:  gestire meglio secure z
            SicurezzaZ = parent.SecureZ;

            EtichettaUtensile = operazione.GetToolDescriptionName();
            IsUtensileRotante = operazione.IsRotaryTool;
            NumeroUtensile    = operazione.GetToolPosition();
            Velocità          = operazione.GetSpeed();
            Refrigerante      = operazione.GetCoolant();

            /*
             * prendo sia numero postazioni che correttori centro di lavoro.
             */
            CorrettoreUtensileTornio        = operazione.GetLatheToolCorrector();
            CorrettoreUtensileAltezzaCentro = operazione.GetToolHeightCorrector();
            ModalitaVelocita  = operazione.GetSpeedType();
            RotazioneMandrino = operazione.SpindleRotation;
        }
Example #24
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 #25
0
        /// <summary>
        /// Metodo utilizzato nella selezione automatica dell'utensile.
        /// </summary>
        /// <param name="operazione"></param>
        /// <param name="utensiles"></param>
        /// <param name="matGuid"></param>
        /// <returns></returns>
        public override Utensile PickBestTool(Operazione operazione, IEnumerable <Utensile> utensiles, Guid matGuid)
        {
            var d = GetDiameter(operazione.OperationType);

            /* Fra utensili IDiameter */
            var tool = (from utensile in utensiles
                        from parametro in utensile.ParametriUtensile
                        where parametro.MaterialGuid == matGuid
                        orderby utensile.SaveTime descending
                        //where utensile.OperazioneTipo == operazione.OperationType
                        select utensile);

            var t = (from t1 in tool.OfType <IDiametrable>()
                     orderby Math.Abs(t1.Diametro - d)
                     select t1).FirstOrDefault();

            if (t == null)
            {
                base.PickBestTool(operazione, utensiles, matGuid);
            }

            return(t as Utensile);
        }
Example #26
0
        public Tornitura(TipoTornitura tipoTornitura)
            : base()
        {
            _tipoTornitura = tipoTornitura;

            Profile = new RawProfile(true);

            /*
             * per evitare danni inserisco punto iniziale qui,
             * anche se e meglio che venga creato dentro ctorù             */

            var ini = new RawInitPoint2D(Profile);

            Profile.Add(ini);
            ini.X.SetValue(true, 0);


            // AddDummyProfile(_tipoTornitura);

            Sgrossatura = new Operazione(this, LavorazioniEnumOperazioni.TornituraSgrossatura);

            Finitura = new Operazione(this, LavorazioniEnumOperazioni.TornituraFinitura);
        }
Example #27
0
 public OperationMainScreenViewModel(Operazione operazione)
 {
     Operazione = operazione;
 }
Example #28
0
        internal override ProgramOperation  GetOperationProgram(Operazione operazione)
        {
            /*
             * - init program
             * - toolChange ( poi in fase di calcolo programma vedo se saltarlo o meno )
             * - settaggio feed. ( vedere meglio)
             *
             * -- calcolo programma ( questo è l'unica parte diversa )
             *
             * - rototraslazione operazioni
             */

            // todo : tenere conto anche dell'asse c attivazione g112 per il tornio ..
            // Creo nuovo programma, tutte le lavorazioni (  hanno Z Sicurezza )
            // anche perchè pensavo di settarla a livello di fase di lavoro..
            var program = new ProgramOperation(SicurezzaZ);

            // Se cambio utensile è opzionale , oppure se è forzato non cambio utensile..
            //var cambioUtensile = (operazione.ToolChangeOptional && operazione.ForceToolChange) || !operazione.ToolChangeOptional;

            var changeToolAction = new CambiaUtensileAction(program, operazione);

            changeToolAction.CutViewerToolInfo = CutViewerHelper.PrintTool(operazione.Utensile);


            // Ora setto avanzamenti comuni - Rapido - SecureFeed - Ecc..
            // per ora setto cazzo .. dove lo posso prendere ??

            var preference = Singleton.Preference.GetPreference(MeasureUnit);

            ExtraCorsa = preference.MillEntryExitSecureDistance;

            SecureFeed = preference.MillingRapidSecureFeedAsync;

            /*
             * L'idea per i feed e di cercare di inserirli tutti nel dizionario, se poi vengono usati ok,
             * altrimenti è lo stesso..
             */
            // Magari è piu corretto settarle nella classe base parametro..

            var feed       = operazione.Utensile.ParametroUtensile.GetFeed(FeedType.ASync);
            var plungeFeed = operazione.Utensile.ParametroUtensile.GetPlungeFeed(FeedType.ASync);

            /*
             * Non controllo più che i feed siano <= 0 , al limite nel prog ci sarà scritto F0
             */
            var rapidFeed = FaseDiLavoro.GetRapidFeed();

            operazione.Utensile.ParametroUtensile.SetFeed(program, rapidFeed, SecureFeed, FeedType.ASync);

            //var feedDictionary = new Dictionary<MoveType, double>
            //                         {
            //                             {MoveType.Rapid, 10000},
            //                             {MoveType.SecureRapidFeed, SecureFeed},
            //                             {MoveType.Work, feed},
            //                             {MoveType.Cw, feed},
            //                             {MoveType.Ccw, feed},
            //                             {MoveType.PlungeFeed, plungeFeed},
            //                         };

            //program.SetFeedDictionary(feedDictionary);

            /*
             * ora c'è richiamo il metodo specifico della lavorazione.
             * In ingresso prende il ProgramPhase. e Operazione.
             */
            CreateSpecificProgram(program, operazione);

            /*
             * todo.
             * qui andrebbe il metodo per fare le rototraslazioni.
             * per ora lo lascio delegato alla lavorazione specifica
             * per via del problemi con ciclo di foratura..
             */

            return(program);
        }
Example #29
0
        private void ExecuteControl(Operazione tipoOperazione)
        {
            if (UrlDaTestare.Count <= 0)
            {
                MessageBox.Show("Nessun URL selezionato");
                return;
            }

            var lastFile = tipoOperazione == Operazione.ACCESSIBILITA ? Settings.Default.AccessFileName : Settings.Default.W3cFileName;


            using (var dlg = new SaveFileDialog())
            {
                var lastDir = Settings.Default.LastDir;

                dlg.InitialDirectory = lastDir;
                dlg.Title = "Save result in ";
                dlg.Filter = "txt files (*.txt)|*.txt|html files (*.html)|*.html";
                var date = DateTime.Now;
                //var name = string.Format("{0}_{1:dd-MM-yyyy_hh-mm-ss}.txt", Settings.Default.AccessFileName, date);
                var name = string.Format("{0}.txt", lastFile, date);

                dlg.FileName = name;

                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    Settings.Default.LastDir = Path.GetDirectoryName(dlg.FileName);
                    //Settings.Default.AccessFileName = Path.GetFileNameWithoutExtension(dlg.FileName).Replace(string.Format("_{0:dd-MM-yyyy_hh-mm-ss}", date), "");

                    switch (tipoOperazione)
                    {
                        case Operazione.ACCESSIBILITA:
                            Settings.Default.AccessFileName = Path.GetFileNameWithoutExtension(dlg.FileName);
                            break;
                        case Operazione.VALIDAZIONE:
                            Settings.Default.W3cFileName = Path.GetFileNameWithoutExtension(dlg.FileName);
                            break;
                        default:
                            throw new Exception("Impossibile");
                    }

                    Settings.Default.Save();
                    if (File.Exists(dlg.FileName))
                    {
                        File.Delete(dlg.FileName);
                    }

                    InitBGWorkerStart();
                    //bgWorker do work
                    backgroundWorker1.RunWorkerAsync(new object[] { dlg.FileName, tipoOperazione });
                }
            }
        }
Example #30
0
 /// 18/08/2011
 /// <summary>
 /// Metodo V2 per creazione programma.
 /// Cerco di raggruppare ulteriormente metodi comuni per avere meno problemi.
 /// </summary>
 /// <returns></returns>
 internal abstract ProgramOperation GetOperationProgram(Operazione operazione);
Example #31
0
 /// <summary>
 /// Metodo astratto dove si genera la parte del programma specifica di ogni lavorazione.
 /// La parte in comune è stata raggruppata nel metodo GetOperationProgram.
 /// </summary>
 /// <param name="programPhase"></param>
 /// <param name="operazione"></param>
 protected abstract void CreateSpecificProgram(ProgramOperation programPhase, Operazione operazione);