Exemple #1
0
 /// <summary>
 /// Создание припуска
 /// </summary>
 public void NewPrirusk()
 {
     if (!isCreatingDimension)
     {
         foreach (UIElement UI in leftStackPanel.Children)
         {
             UI.IsEnabled = false;
         }
         isCreatingDimension = true;
         UnPickIfChosed();
         UI_Dimension newDim = new UI_PripuskDimension(PUC);
         creatingDimAtThisMoment = newDim;
         (newDim as UI_PripuskDimension).PripuskApdatedEvent += new UI_PripuskDimension.PripuskApdatedEventHandler(Controller_PripuskApdated);     // подписываемся на событие изменения нового размера
     }
 }
Exemple #2
0
        /// <summary>
        /// обработка события при изменении припуска пользователем (желаемого пользователем максимума или минимума)
        /// </summary>
        /// <param name="dim">UI-припуск, который сгенерировал событие</param>
        void Controller_PripuskApdated(UI_Dimension dim)
        {
            UI_PripuskDimension UI_pd = dim as UI_PripuskDimension;

            if (dim.lblNominal.Content.ToString() != "?")
            {
                double _max = Double.Parse(dim.lblNominal.Content.ToString()) + Double.Parse(dim.lblUp.Content.ToString());
                double _min = Double.Parse(dim.lblNominal.Content.ToString()) + Double.Parse(dim.lblDown.Content.ToString());
                if (_max > (dim as UI_PripuskDimension).max || _min < (dim as UI_PripuskDimension).min)
                {
                    (dim as UI_PripuskDimension).Alarm();
                }
                else
                {
                    (dim as UI_PripuskDimension).NotAlarm();
                }
            }
        }
Exemple #3
0
 public void ReNull()
 {
     UI_D            = null;
     textBoxMin.Text = "0";
     textBoxMax.Text = "0";
 }
Exemple #4
0
 public void SetUI_PD(UI_PripuskDimension UI_PD)
 {
     UI_D            = UI_PD;
     textBoxMin.Text = UI_D.min.ToString();
     textBoxMax.Text = UI_D.max.ToString();
 }
Exemple #5
0
 public UI_PripuskDimension_Save(UI_PripuskDimension dim) : base(dim)
 {
     max = dim.max;
     min = dim.min;
     typ = type.pripusk;
 }
Exemple #6
0
        void MainWindow_OpenSaved()
        {
            OpenFileDialog OFD = new OpenFileDialog();

            OFD.Filter = "*.dch|*.dch";
            OFD.ShowDialog();
            fileName = OFD.FileName;
            if (fileName == "")
            {
                MessageBox.Show("Файл не выбран!");
                return;
            }

            try
            {
                FileStream      fs   = new FileStream(fileName, FileMode.Open);
                BinaryFormatter bf   = new BinaryFormatter();
                Save            save = (Save)bf.Deserialize(fs);
                fs.Close();
                MainWindow_EscPressed();    // если вдруг в этот момент создаётся размер
                window.SetSaveEnable(true);
                window.Title = "Автоматический рассчёт размерных цепей - " + fileName;

                canv.Children.Clear();
                rightStackPanel.Children.Clear();

                this.graph = save.graph;
                listOfDimensions.Clear();                  // список всех размеров
                dicUI_Dim.Clear();                         // словарь: визуальный размер -> размер
                dicDim_UI.Clear();                         // словарь: размер -> визуальный размер

                isCreatingDimension     = false;
                chosedDimension         = null;
                creatingDimAtThisMoment = null;

                foreach (UI_Dimension_Save UIDSaved in save.dic_UISave_Dim.Keys)
                {
                    UI_Dimension newUIDim = null;
                    switch (UIDSaved.typ)
                    {
                    case type.tech:
                        newUIDim = new UI_TechDimension(UIDSaved);
                        (newUIDim as UI_TechDimension).TechDimensionApdatedEvent += new UI_TechDimension.TechDimensionApdatedEventHandler(Controller_TechDimensionApdated);
                        break;

                    case type.pripusk:
                        newUIDim = new UI_PripuskDimension(UIDSaved);
                        (newUIDim as UI_PripuskDimension).PripuskApdatedEvent += new UI_PripuskDimension.PripuskApdatedEventHandler(Controller_PripuskApdated);
                        break;

                    case type.konstr:
                        newUIDim = new UI_ConstrDimension(UIDSaved);
                        (newUIDim as UI_ConstrDimension).ConstrApdatedEvent += new UI_ConstrDimension.ConstrApdatedEventHandler(Controller_ConstrApdated);
                        break;
                    }
                    newUIDim.dimensionClicked += new UI_Dimension.dimensionClickedEventHandler(Controller_ClickOnDimension);
                    newUIDim.lblClickedOtherPodpiska();
                    listOfDimensions.Add(newUIDim);
                    dicUI_Dim.Add(newUIDim, save.dic_UISave_Dim[UIDSaved]);
                    dicDim_UI.Add(save.dic_UISave_Dim[UIDSaved], newUIDim);
                }
                ReBuildAll();
                if (graph.isCicle)
                {
                    window.lblStateCicle.Content = "Размерная цепь замкнута!";
                }
                else
                {
                    window.lblStateCicle.Content = "";
                }
            }
            catch (Exception ex)
            { MessageBox.Show(ex.Message); }
        }