05/06/2016
Удаление пропущенных внешних ссылок из базы не в редакторе AutoCAD
Ниже вы видите код функции для удаления потерянных внешних ссылок из базы незагруженной в редактор AutoCAD:
Код - C#: [Выделить]
- [CommandMethod("DetachXref")]
- public void detach_xref()
- {
- Document Doc = Application.DocumentManager.MdiActiveDocument;
- Editor ed = Doc.Editor;
- string mainDrawingFile = @"C:\xref\RectHost.dwg";
- using(Database db = new Database(false, false))
- {
- try
- {
- db.ReadDwgFile(mainDrawingFile, System.IO.FileShare.ReadWrite, false, "");
- }
- catch (System.Exception)
- {
- ed.WriteMessage("\nНе могу открыть чертеж.");
- return;
- }
- bool saveRequired = false;
- db.ResolveXrefs(true, false);
- using (Transaction tr = db.TransactionManager.StartTransaction())
- {
- XrefGraph xg = db.GetHostDwgXrefGraph(true);
- int xrefcount = xg.NumNodes;
- for (int j = 0; j < xrefcount; j++)
- {
- XrefGraphNode xrNode = xg.GetXrefNode(j);
- String nodeName = xrNode.Name;
- if (xrNode.XrefStatus == XrefStatus.FileNotFound)
- {
- ObjectId detachid = xrNode.BlockTableRecordId;
- db.DetachXref(detachid);
- saveRequired = true;
- ed.WriteMessage("\n" + nodeName + " успешно удалено");
- }
- }
- tr.Commit();
- }
- if (saveRequired)
- db.SaveAs(mainDrawingFile, DwgVersion.Current);
- }
- }
Автор перевода: Александр Ривилис
Отредактировано 07.06.2016 в 14:21:47
Обсуждение: http://adn-cis.org/forum/index.php?topic=7142
Опубликовано 05.06.2016Отредактировано 07.06.2016 в 14:21:47