cad.net 獲取塊編輯器的塊名


這個代碼只能用於ACAD2010以上

    public static class BEdit
    {
        [CommandMethod("TestBEDIT")]
        public static void TestBEdit()
        { 
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            if (Autodesk.AutoCAD.Internal.AcAeUtilities.IsInBlockEditor())
            {
                ed.WriteMessage("\n塊編輯器的塊名是" + Autodesk.AutoCAD.Internal.AcAeUtilities.GetBlockName());
            }
            else
            {
                ed.WriteMessage("\n沒有名字");
            }
        }
    }

 

c++  e大:

cad是調用AcAuthEnviron.arx中的方法.在高版本中有getblockname,在2008只有一個btr.

extern AcString acedGetBlockEditBlockName(void);

 

沒有試驗過的想法,用於cad08及以下:

我突然想到了,重寫be命令,以及雙擊塊激活be命令重定義到你的命令.
然后be或雙擊的時候獲取塊名,再調出be命令,這樣就可以預先獲取塊編輯器的塊名了.

如果發送be不能成功調用到塊編輯器,那么也可以用win32 API拿這個框框的數據.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM