DatabaseExts
1 Thêm class DatabaseExts.cs
Lưu mã sau dưới dạng tệp tin DatabaseExts.cs
Code:
using Autodesk.AutoCAD.DatabaseServices; namespace AJS_DimensionSettings { public enum TBType { Block, TextStyle, DimStyle, Layer, LineType, MLineStyle }; internal static class DatabaseExts { public static ObjectId Search(this Database db, string entryname, TBType tp) { ObjectId id = ObjectId.Null; using (Transaction tr = db.TransactionManager.StartTransaction()) { if (tp == TBType.Block) { BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable; if (bt.Has(entryname)) id = bt[entryname]; } else if (tp == TBType.TextStyle) { TextStyleTable tbt = tr.GetObject(db.TextStyleTableId, OpenMode.ForRead) as TextStyleTable; if (tbt.Has(entryname)) id = tbt[entryname]; } else if (tp == TBType.DimStyle) { DimStyleTable dst = tr.GetObject(db.DimStyleTableId, OpenMode.ForRead) as DimStyleTable; if (dst.Has(entryname)) id = dst[entryname]; else id = db.Dimstyle; } else if (tp == TBType.Layer) { LayerTable lt = tr.GetObject(db.LayerTableId, OpenMode.ForRead) as LayerTable; if (lt.Has(entryname)) id = lt[entryname]; } else if (tp == TBType.LineType) { LinetypeTable lt = tr.GetObject(db.LinetypeTableId, OpenMode.ForRead) as LinetypeTable; if (lt.Has(entryname)) id = lt[entryname]; else { try { db.LoadLineTypeFile(entryname, "acad.lin"); if (lt.Has(entryname)) { id = lt[entryname]; } } catch { } } } else if (tp == TBType.MLineStyle) { DBDictionary mlineDic = (DBDictionary)tr.GetObject(db.MLStyleDictionaryId, OpenMode.ForRead); if (mlineDic.Contains(entryname)) { id = mlineDic.GetAt(entryname); } } tr.Commit(); } return id; } } }
Link tải Solution
Nhóm AutoCAD dotNet
Link tham gia nhóm Zalo: http://dnz.lisp.vn
---------------------------------------------------------------------------------------------
Mọi thông tin xin liên hệ Fanpage AutoLISP Thật là đơn giản!
Cảm ơn bạn đã theo dõi!
Không có nhận xét nào:
Đăng nhận xét