ExpressTool là gì
ExpressTools là một tập hợp các công cụ bổ sung, được thiết kế để tăng cường năng suất làm việc trong AutoCAD. Chúng cung cấp các chức năng vượt ra ngoài các lệnh cơ bản, giúp bạn tự động hóa một số tác vụ, tiết kiệm thời gian và giảm thiểu lỗi.
Cách kiểm tra
Do ExpressTools (ETs) là 1 tập hợp nhiều plug-in được viết bằng nhiều ngôn ngữ khác nhau (arx, lsp, dcl, cuix, dcl, vlx...). Nên tùy vào từng lệnh được bố trí trong module nào, mình sẽ kiểm tra các loại tệp tin tương ứng.
Một số giải pháp có thể check xem load chưa:
Cách 1:
List tất cả Module đã được load, sau đó kiểm tra trong list các arx của ETs
Code:
var modls = Autodesk.AutoCAD.Runtime.SystemObjects.DynamicLinker.GetLoadedModules(); foreach (var module in modls) { }
Cách này khả thi và đơn giản nhất. Có thể kiểm tra chính xác module (arx) nào cần thiết cho lệnh của mình.
Code:
[CommandMethod("ListModules")] public static void cmd_LListModules() { Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; var modls = Autodesk.AutoCAD.Runtime.SystemObjects.DynamicLinker.GetLoadedModules(); foreach (var module in modls) { ed.WriteMessage("\n" + module); } ed.WriteMessage("\nwww.lisp.vn"); }
Code:
[CommandMethod("ListDlls")] public static void cmd_ListDlls() { Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; Assembly[] assems = AppDomain.CurrentDomain.GetAssemblies(); const string start = "Version="; foreach (Assembly assem in assems) { // We want the name and version of each assembly string dllname = assem.ManifestModule.Name; string version = assem.FullName; // If our assembly name includes version info... if (version.Contains(start)) { // Get the string starting with the version number version = version.Substring(version.IndexOf(start) + start.Length); // Strip off anything after (and including) the comma version = version.Remove(version.IndexOf(',')); } else version = ""; ed.WriteMessage("\n" + dllname + " " + version); } ed.WriteMessage("\nwww.lisp.vn");
//Source https://www.keanw.com/2010/02/getting-the-list-of-net-assemblies-loaded-into-autocad-from-lisp.html
}
Tham khảo: https://www.keanw.com/2010/02/getting-the-list-of-net-assemblies-loaded-into-autocad-from-lisp.html
Cách 2:
Kiểm tra Ribbon hoặc Menu đã có thành phần (Tab) của ETs chưa.
Cách này sẽ sử dụng kiến thức và các hàm trong thư viện AdWindows.
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