Exemple #1
0
        /// <summary>
        /// Сохранить развёртку
        /// </summary>
        /// <param name="swModelMan"></param>
        /// <param name="folder">Папка сохранения</param>
        /// <param name="name">Имя файла с расширением</param>
        /// <returns></returns>
        public static bool SaveDXF(SwModelManager swModelMan, string folder = null, string name = null)
        {
            bool      ret     = false;
            int       lineNum = 12;
            const int offset  = 23;

            Console.CursorLeft = 0;
            //Console.CursorTop = lineNum;

            if (string.IsNullOrEmpty(folder))
            {
                folder = swModelMan.FolderPath;
            }

            if (string.IsNullOrEmpty(name))
            {
                name = swModelMan.FileNameWhithoutExt + ".dxf";
            }


            StringManager.ClearLine(lineNum);
            Console.Write($"{"Сохранение DXF: ",offset}");

            if (swModelMan.PrpMan.isSheet)
            {
                ret = swModelMan.Export.SaveDxf(folder + name);
            }

            Console.Write(ret ? " OK\n" : " Не сохранено\n");
            return(ret);
        }
Exemple #2
0
        /// <summary>
        /// Сохранить копию документа
        /// </summary>
        /// <param name="swModelMan"></param>
        /// <param name="folder">Папка сохранения</param>
        /// <param name="name">Имя файла с расширением</param>
        /// <returns></returns>
        public static bool SaveCopy(SwModelManager swModelMan, string folder = null, string name = null)
        {
            bool      ret     = false;
            int       lineNum = 13;
            const int offset  = 23;

            Console.CursorLeft = 0;

            if (string.IsNullOrEmpty(folder))
            {
                folder = swModelMan.FolderPath;
            }

            if (string.IsNullOrEmpty(name))
            {
                name = swModelMan.FileName;
            }


            StringManager.ClearLine(lineNum);
            Console.Write($"{"Сохранение копии: ",offset}");

            ret = swModelMan.SaveAsCopy(folder + name);

            Console.Write(ret ? " OK\n" : " Не сохранено\n");
            return(ret);
        }
Exemple #3
0
        public static bool ReloadModel()
        {
            bool           ret;
            ConsoleKeyInfo userAnswer;
            int            lineNum = 15;

            Console.CursorTop = lineNum;
            StringManager.ClearLine(lineNum);
            Console.CursorLeft = 0;

            Console.WriteLine("Для выхода нажмите Esc, перезагрузка модели - пробел");
            userAnswer = Console.ReadKey(true);

            switch (userAnswer.Key)
            {
            case ConsoleKey.Spacebar:
                ret = true;
                break;

            case ConsoleKey.Escape:
                ret = false;
                break;

            default:
                ret = true;
                break;
            }

            for (int i = lineNum; i >= 1; --i)
            {
                StringManager.ClearLine(i);
            }

            return(ret);
        }
Exemple #4
0
        /// <summary>
        /// Сохранить PDF из чертежа с тем же именем
        /// </summary>
        /// <param name="swModelMan"></param>
        /// <param name="folder">Папка сохранения</param>
        /// <param name="name">Имя файла с расширением</param>
        /// <returns></returns>
        public static bool SavePDF(SwModelManager swModelMan, string folder = null, string name = null)
        {
            bool      ret     = false;
            int       lineNum = 14;
            const int offset  = 23;

            Console.CursorLeft = 0;

            if (string.IsNullOrEmpty(folder))
            {
                folder = swModelMan.FolderPath;
            }

            if (string.IsNullOrEmpty(name))
            {
                name = swModelMan.FileNameWhithoutExt + ".pdf";
            }


            StringManager.ClearLine(lineNum);
            Console.Write($"{"Сохранение PDF: ",offset}");

            DrawingDoc DrawDoc;

            string drawName    = Path.ChangeExtension(swModelMan.FileName, "SLDDRW");
            var    openedDraw  = SwProcess.swApp.GetOpenDocument(drawName);
            bool   docIsOpened = false;

            if (!(openedDraw is null))
            {
                docIsOpened = true;
            }

            if (SwFileManager.OpenDraw(swModelMan.FilePath, out DrawDoc))
            {
                var model = (ModelDoc2)DrawDoc;

                ret = swModelMan.Export.SavePdf(DrawDoc, folder + name, true);

                if (!docIsOpened)
                {
                    SwProcess.swApp.CloseDoc(model.GetTitle());
                }
            }

            Console.Write(ret ? " OK\n" : " Не сохранено\n");
            return(ret);
        }
Exemple #5
0
        /// <summary>
        /// Напечатать имя файла
        /// </summary>
        /// <param name="swModelMan"></param>
        /// <returns></returns>
        public static bool ShowDocName(SwModelManager swModelMan)
        {
            bool ret     = false;
            int  lineNum = 4;

            Console.CursorLeft = 0;
            Console.CursorTop  = lineNum;
            Console.WriteLine("Отсутствует");
            if (!(swModelMan is null))
            {
                StringManager.ClearLine(lineNum);
                Console.WriteLine("{0, 23} {1}", "Имя документа: ", swModelMan.FileName);
                ret = true;
            }
            return(ret);
        }
Exemple #6
0
        /// <summary>
        /// Сообщение о загрузке SW
        /// </summary>
        /// <returns></returns>
        public static bool LoadSwApp()
        {
            Console.CursorLeft = 0;
            Console.CursorTop  = 3;
            Console.WriteLine("Ожидание загрузки SolidWorks");

            Thread Animation = new Thread(() => StringManager.SleepAnimation(2, 5000));

            Animation.Start(); // Запуск потока с анимацией

            while (SwProcess.swApp is null)
            {
                Thread.Sleep(500);
                //StringManager.SleepAnimation(2);
            }
            StringManager.ClearLine(3);
            Animation.Interrupt(); //Прервать поток анимации загрузки
            return(true);
        }
Exemple #7
0
        /// <summary>
        /// Приглашение запустить SW
        /// </summary>
        /// <param name="sleepTime">Время ожидания</param>
        /// <returns></returns>
        public static bool RunSW(int sleepTime = 1000)
        {
            Console.CursorLeft = 0;
            Console.CursorTop  = 3;
            Console.WriteLine("Ожидание запуска SolidWorks");

            Thread Animation = new Thread(() => StringManager.SleepAnimation(2, 5000));

            Animation.Start(); // Запуск потока с анимацией
            while (SwProcess.IsRunning == false)
            {
                Thread.Sleep(500);
                //StringManager.SleepAnimation(stringNum: 2, processTime: sleepTime);
            }

            StringManager.ClearLine(3);
            Animation.Interrupt(); //Прервать поток анимации загрузки
            return(true);
        }
Exemple #8
0
        /// <summary>
        /// Напечатать тип детали
        /// </summary>
        /// <param name="swModel"></param>
        /// <returns></returns>
        public static bool ShowDocType(SwModelManager swModelMan)
        {
            swDocumentTypes_e docType;
            bool ret     = false;
            int  lineNum = 3;

            Console.CursorLeft = 0;
            Console.CursorTop  = lineNum;
            Console.WriteLine("Открытый документ отсутствует");
            if (!(swModelMan is null))
            {
                docType = swModelMan.DocType;

                StringManager.ClearLine(lineNum);
                Console.WriteLine("{0, 23} {1}", "Тип открытой детали: ", StringManager.DocTypeName(docType));
                ret = true;
            }

            return(ret);
        }
Exemple #9
0
        /// <summary>
        /// Написать список параметров сборки или детали
        /// </summary>
        /// <param name="swModelMan"></param>
        public static void ShowProp(SwModelManager swModelMan)
        {
            bool      ret     = false;
            const int offset  = 23;
            int       lineNum = 6;

            Console.CursorTop = lineNum;
            swDocumentTypes_e doctype = swModelMan.DocType;

            if (doctype == swDocumentTypes_e.swDocPART || doctype == swDocumentTypes_e.swDocASSEMBLY)
            {
                string NameProp    = swModelMan.PrpMan.Title;
                string parnNum     = swModelMan.PrpMan.GetParam("Обозначение");
                string configName  = swModelMan.PrpMan.GetActiveConf;
                bool   isDrawExist = SwFileManager.isDrawExcist(swModelMan.FilePath);
                bool   isSheet     = swModelMan.PrpMan.isSheet;

                string DrawIsFound  = isDrawExist ? "Найден" : "Не найден";
                string isSheetMetal = isSheet ? $"Листовая - {swModelMan.PrpMan.GetSheetThickness}мм" : "Не листовая";

                //Clear console below
                for (int i = lineNum; i < lineNum + 5; ++i)
                {
                    StringManager.ClearLine(i);
                }

                Console.CursorLeft = 0;
                Console.CursorTop  = lineNum;

                Console.WriteLine($"{"Обозначение: ",offset} {parnNum}");
                Console.WriteLine($"{"Наименование: ",offset} {NameProp}");
                Console.WriteLine($"{"Активная конфигурация: ",offset} {configName}");
                Console.WriteLine($"{"Одноимённый чертёж: ",offset} {DrawIsFound}");
                Console.WriteLine($"{"Тип детали: ",offset} {isSheetMetal}");
            }
            else
            {
                Console.WriteLine($"{"Имя чертежа: ",offset} {swModelMan.swModel.GetTitle()}");
            }
        }
Exemple #10
0
        /// <summary>
        /// Ожидание активного документа
        /// </summary>
        /// <returns></returns>
        public static ModelDoc2 LoadActiveDoc()
        {
            Console.CursorLeft = 0;
            Console.CursorTop  = 3;
            Console.WriteLine("Откройте деталь");

            Thread Animation = new Thread(() => StringManager.SleepAnimation(2, 5000));

            Animation.Start(); // Запуск потока с анимацией

            ModelDoc2 swModel;

            do
            {
                swModel = SwProcess.swApp.ActiveDoc;
                Thread.Sleep(500);
                //StringManager.SleepAnimation(2);
            }while (swModel is null);

            StringManager.ClearLine(3);
            Animation.Interrupt(); //Прервать поток анимации загрузки
            StringManager.ClearLine(2);
            return(swModel);
        }