// Выбрать dwg-файл для добавления private void BtSelectDwgFile_OnClick(object sender, RoutedEventArgs e) { try { var ofd = new Autodesk.AutoCAD.Windows.OpenFileDialog(ModPlusAPI.Language.GetItem(LangItem, "msg59"), _dwgBaseFolder, "dwg", "name", Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoFtpSites | Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoShellExtensions | Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoUrls | Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DefaultIsFolder | Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.ForceDefaultFolder | Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DoNotTransferRemoteFiles); var needLoop = true; while (needLoop) { var ofdresult = ofd.ShowDialog(); if (ofdresult == System.Windows.Forms.DialogResult.OK) { var selectedFile = ofd.Filename; if (selectedFile.Contains(_dwgBaseFolder)) { if (!DwgBaseHelpers.HasProxyEntities(selectedFile)) { TbSourceFile.Text = DwgBaseHelpers.TrimStart(selectedFile, _dwgBaseFolder).TrimStart('\\'); BtAccept.IsEnabled = true; needLoop = false; } else { ModPlusAPI.Windows.MessageBox.Show(ModPlusAPI.Language.GetItem(LangItem, "msg60")); } } else { ModPlusAPI.Windows.MessageBox.Show( $"{ModPlusAPI.Language.GetItem(LangItem, "msg49")} {_dwgBaseFolder}"); } } else if (ofdresult == System.Windows.Forms.DialogResult.Cancel) { return; } else { needLoop = false; } } } catch (Exception exception) { ExceptionBox.Show(exception); } finally { Focus(); } }
// Создать dwg-файл для добавления в него нового блока private void BtCreateDwgFile_OnClick(object sender, RoutedEventArgs e) { try { var sfd = new Autodesk.AutoCAD.Windows.SaveFileDialog(ModPlusAPI.Language.GetItem("msg50"), _dwgBaseFolder, "dwg", "name", Autodesk.AutoCAD.Windows.SaveFileDialog.SaveFileDialogFlags.DefaultIsFolder | Autodesk.AutoCAD.Windows.SaveFileDialog.SaveFileDialogFlags.DoNotTransferRemoteFiles | Autodesk.AutoCAD.Windows.SaveFileDialog.SaveFileDialogFlags.ForceDefaultFolder | Autodesk.AutoCAD.Windows.SaveFileDialog.SaveFileDialogFlags.NoFtpSites | Autodesk.AutoCAD.Windows.SaveFileDialog.SaveFileDialogFlags.NoShellExtensions | Autodesk.AutoCAD.Windows.SaveFileDialog.SaveFileDialogFlags.NoUrls); var needLoop = true; while (needLoop) { var sfdresult = sfd.ShowDialog(); if (sfdresult == System.Windows.Forms.DialogResult.OK) { var selectedFile = sfd.Filename; if (selectedFile.Contains(_dwgBaseFolder)) { var fi = new FileInfo(selectedFile); if (fi.DirectoryName != null && !fi.DirectoryName.Equals(_dwgBaseFolder)) { try { using (var db = new Database()) { db.SaveAs(selectedFile, DwgVersion.AC1027); TbSourceFile.Text = DwgBaseHelpers.TrimStart(selectedFile, _dwgBaseFolder).TrimStart('\\'); needLoop = false; } } catch (Exception exception) { ExceptionBox.Show(exception); needLoop = false; } } else { ModPlusAPI.Windows.MessageBox.Show( $"{ModPlusAPI.Language.GetItem("msg51")} {_dwgBaseFolder}{Environment.NewLine}{ModPlusAPI.Language.GetItem("msg52")}"); } } else { ModPlusAPI.Windows.MessageBox.Show( $"{ModPlusAPI.Language.GetItem("msg49")} {_dwgBaseFolder}"); } } else if (sfdresult == System.Windows.Forms.DialogResult.Cancel) { return; } else { needLoop = false; } } } catch (Exception exception) { ExceptionBox.Show(exception); } finally { Focus(); } }
private void BtCopyDwgFile_OnClick(object sender, RoutedEventArgs e) { try { var selectedFile = string.Empty; var selectedPath = string.Empty; var copiedFile = string.Empty; // Сначала нужно выбрать файл, проверив версию его var ofd = new Autodesk.AutoCAD.Windows.OpenFileDialog(ModPlusAPI.Language.GetItem(LangItem, "msg59"), _dwgBaseFolder, "dwg", "name", Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoFtpSites | Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoShellExtensions | Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.NoUrls | Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DefaultIsFolder | Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.ForceDefaultFolder | Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DoNotTransferRemoteFiles); var needLoop = true; while (needLoop) { var ofdresult = ofd.ShowDialog(); if (ofdresult == System.Windows.Forms.DialogResult.OK) { selectedFile = ofd.Filename; if (!DwgBaseHelpers.HasProxyEntities(selectedFile)) { needLoop = false; } else { ModPlusAPI.Windows.MessageBox.Show(ModPlusAPI.Language.GetItem(LangItem, "msg60")); } } else if (ofdresult == System.Windows.Forms.DialogResult.Cancel) { return; } else { needLoop = false; } } // Теперь нужно указать папку для расположения файла var fbd = new System.Windows.Forms.FolderBrowserDialog { Description = ModPlusAPI.Language.GetItem(LangItem, "msg61"), SelectedPath = _dwgBaseFolder, ShowNewFolderButton = true }; needLoop = true; while (needLoop) { var fbdResult = fbd.ShowDialog(); if (fbdResult == System.Windows.Forms.DialogResult.OK) { selectedPath = fbd.SelectedPath; if (selectedPath.Contains(_dwgBaseFolder)) { if (!selectedPath.Equals(_dwgBaseFolder)) { var fi = new FileInfo(selectedFile); copiedFile = Path.Combine(selectedPath, fi.Name); if (File.Exists(copiedFile)) { needLoop = !ModPlusAPI.Windows.MessageBox.ShowYesNo( $"{ModPlusAPI.Language.GetItem(LangItem, "msg62")} {fi.Name}{Environment.NewLine}{ModPlusAPI.Language.GetItem(LangItem, "msg63")}", MessageBoxIcon.Question); } else { needLoop = false; } } else { ModPlusAPI.Windows.MessageBox.Show( $"{ModPlusAPI.Language.GetItem(LangItem, "msg64")} {_dwgBaseFolder}{Environment.NewLine}{ModPlusAPI.Language.GetItem(LangItem, "msg52")}"); } } else { ModPlusAPI.Windows.MessageBox.Show( $"{ModPlusAPI.Language.GetItem(LangItem, "msg65")} {_dwgBaseFolder}"); } } else if (fbdResult == System.Windows.Forms.DialogResult.Cancel) { return; } else { needLoop = true; } } // then copy file if (!string.IsNullOrEmpty(selectedFile) & !string.IsNullOrEmpty(selectedPath)) { if (File.Exists(selectedFile)) { File.Copy(selectedFile, copiedFile, true); if (File.Exists(copiedFile)) { TbSourceFile.Text = DwgBaseHelpers.TrimStart(copiedFile, _dwgBaseFolder).TrimStart('\\'); BtAccept.IsEnabled = true; } } } } catch (Exception exception) { ExceptionBox.Show(exception); } finally { Focus(); } }