/// <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); }
/// <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); }
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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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()}"); } }
/// <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); }