Пример #1
0
        private static void SaveTabs()
        {
            Debug.WriteLine("SaveTabs");
            var drawings = _docs.Where(w => w?.Database != null && w.IsNamedDrawing).Select(s => s.Name).ToList();

            if (drawings.Count == 0)
            {
                return;
            }
            var tabsData = LoadData();
            var session  = tabsData.Data.Sessions.FirstOrDefault(s => s.Id == AcadHelper.GetCurrentAcadProcessId());

            if (session == null)
            {
                session = new Session {
                    Drawings = drawings, Id = AcadHelper.GetCurrentAcadProcessId(), Date = DateTime.Now
                };
                tabsData.Data.Sessions.Add(session);
            }
            else
            {
                session.Drawings = drawings;
                session.Date     = DateTime.Now;
            }

            tabsData.Data.Sessions = tabsData.Data.Sessions
                                     .Where(s => s.Drawings?.Any() == true)
                                     .Distinct(new SessionComparer())
                                     .OrderByDescending(o => o.Date).Take(tabsData.Data.SessionCount).ToList();
            tabsData.TrySave();
        }
Пример #2
0
        public static List <ObjectId> Select([NotNull] this Editor ed, string msg)
        {
            var selOpt = new PromptSelectionOptions();

            selOpt.Keywords.Add(AcadHelper.IsRussianAcad() ? "Все" : "ALL");
            selOpt.MessageForAdding = msg + selOpt.Keywords.GetDisplayString(true);
            var selRes = ed.GetSelection(selOpt);

            if (selRes.Status == PromptStatus.OK)
            {
                return(selRes.Value.GetObjectIds().ToList());
            }
            throw new OperationCanceledException();
        }
Пример #3
0
        private void BatchExec()
        {
            if (!Nodes.Any())
            {
                return;
            }

            if (!IsBatchFiles && !IsBatchLayouts)
            {
                AcadHelper.ShowMessage("Отключена обработка файлов и листов.");
                return;
            }

            Execute(AcadHelper.Doc, nameof(Commands._InternalUse_SSBatchSession) + " ");
        }
Пример #4
0
        public SSOptionsVM()
        {
            var localFile = AcadHelper.GetUserPluginFile("SheetSetOptions");

            data = new LocalFileData <SSOptions>(localFile, false);
            data.TryLoad();
            if (data.Data == null)
            {
                data.Data = new SSOptions
                {
                    PropCrossNumberName = "СквознойНомер"
                };
            }

            Options = data.Data;
        }
Пример #5
0
        public static void InternalBatchSession(Document document)
        {
            if (internalFile == null)
            {
                internalFile = batchVm?.Nodes?.First();
                if (internalFile == null)
                {
                    return;
                }
            }
            else
            {
                if (internalFile.NeedCloseFile)
                {
                    var adoc = AcadHelper.Doc;
                    try
                    {
                        adoc.CloseAndDiscard();
                    }
                    catch
                    {
                        // ignore
                    }
                }

                internalFile = internalFile.NextFile;
                if (internalFile == null)
                {
                    return;
                }

                internalFile.NeedCloseFile = false;
            }

            internalFile.BatchResult = null;
            internalFile.Color       = null;
            var doc = AcadHelper.GetOpenedDocument(internalFile.Name);

            if (doc == null)
            {
                internalFile.NeedCloseFile = true;
                doc = Application.DocumentManager.Open(internalFile.Name);
                Application.DocumentManager.MdiActiveDocument = doc;
            }

            Execute(doc, nameof(Commands._InternalUse_SSBatchModal) + " ");
        }
Пример #6
0
        public static List <ObjectId> Select([NotNull] this Editor ed, string msg,
                                             Action <object, SelectionTextInputEventArgs> keywordInput, params string[] keywords)
        {
            var selOpt = new PromptSelectionOptions();

            selOpt.Keywords.Add(AcadHelper.IsRussianAcad() ? "Все" : "ALL");
            foreach (var keyword in keywords)
            {
                selOpt.Keywords.Add(keyword);
            }
            selOpt.MessageForAdding  = msg + selOpt.Keywords.GetDisplayString(true);
            selOpt.MessageForRemoval = "Исключить";
            selOpt.KeywordInput     += (o, e) => keywordInput(o, e);
            var selRes = ed.GetSelection(selOpt);

            if (selRes.Status == PromptStatus.OK)
            {
                return(selRes.Value.GetObjectIds().ToList());
            }
            throw new OperationCanceledException();
        }