// Нажатие кнопки закрытия чертежа private void BtCloseDwg_Click(object sender, RoutedEventArgs e) { try { if (Drawings.SelectedIndex != -1) { var lbi = (ListBoxItem)Drawings.SelectedItem; foreach (var doc in _docs.Cast <Document>().Where(doc => doc.Name == lbi.ToolTip.ToString())) { if (_docs.MdiActiveDocument == doc) { Application.DocumentManager. MdiActiveDocument.SendStringToExecute("_CLOSE ", true, false, false); if (Drawings.Items.Count == 1) { OnMouseLeaving(); } } break; } } } catch { // ignored } }
/// <summary> /// Чтение именованных настроек печати из указанного файла /// </summary> /// <param name="templatePath">Путь к файлу с именованными настройками печати</param> /// <returns>Коллекция PlotSettingsInfo</returns> public static IEnumerable <PlotSettingsInfo> CreatePlotSettingsInfos(string templatePath) { Database db = null; bool isTemplateOpened = false; DocumentCollection docMan = Application.DocumentManager; Document doc = docMan.Cast <Document>().FirstOrDefault(d => d.Name.Equals(templatePath, StringComparison.InvariantCulture)); if (doc != null) { db = doc.Database; isTemplateOpened = true; } else { db = new Database(false, true); db.ReadDwgFile(templatePath, System.IO.FileShare.Read, true, null); } using (Transaction tr = db.TransactionManager.StartTransaction()) { DBDictionary psDict = tr.GetObject(db.PlotSettingsDictionaryId, OpenMode.ForRead) as DBDictionary; if (psDict != null) { foreach (DBDictionaryEntry entry in psDict) { ObjectId psId = entry.Value; PlotSettings ps = tr.GetObject(psId, OpenMode.ForRead) as PlotSettings; // Настройки печати для модели и настройки листов самих по себе // нам не нужны // только именованные настройки печати для листов if (!ps.ModelType && !ps.PlotSettingsName.Contains("*")) { PlotSettings newPS = new PlotSettings(false); newPS.CopyFrom(ps); yield return(new PlotSettingsInfo(newPS)); } } } tr.Commit(); } if (!isTemplateOpened) { db.Dispose(); } }