Beispiel #1
0
        /// <summary>
        /// Нумерация свай
        /// </summary>
        public void Numbering()
        {
            // Форма настроек нумерации свай - порядок нумерации, имя блока сваи, имя атрибута номера сваи.
            PileOptions = PileOptions.Load();
            Options     = new PileNumberingOptions();
            Options.LoadDefault();
            Options = Options.PromptOptions();

            // Выбор свай для нумерации
            var selblocks = Ed.SelectBlRefs("Выбор блоков свай для нумерации");

            // фильтр блоков свай
            var piles = PileFilter.Filter(selblocks, PileOptions, false);

            // Сброс положения атрибута номера сваи если задано в настройках
            ResetPos(ref piles);

            // Определения стороны сваи и проверка ее одинаковости
            Options.PileSide = GetPileSides(ref piles);

            // Проверка дубликатов
            AcadLib.Blocks.Dublicate.CheckDublicateBlocks.Check(piles.Select(p => p.IdBlRef));

            // Проверка сваи и расстояний между ними.
            CheckPiles(piles);

            // Сортировка
            var pilesSort = Sort(piles);

            // Перенумерация
            Num(pilesSort);
        }
Beispiel #2
0
        public PileNumberingOptions PromptOptions()
        {
            PileNumberingOptions resVal = this;
            //Запрос начальных значений
            FormNumbering formNum = new FormNumbering((PileNumberingOptions)resVal.MemberwiseClone());

            if (Application.ShowModalDialog(formNum) != System.Windows.Forms.DialogResult.OK)
            {
                throw new System.Exception(AcadLib.General.CanceledByUser);
            }
            try
            {
                resVal = formNum.Options;
                resVal.Save();// Save(resVal);
            }
            catch (Exception ex)
            {
                Logger.Log.Error(ex, "Не удалось сохранить стартовые параметры.");
            }
            return(resVal);
        }
Beispiel #3
0
 public FormNumbering(PileNumberingOptions options)
 {
     InitializeComponent();
     propertyGrid1.SelectedObject = options;
     Options = options;
 }