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