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没有名字");
}
}
}
e大:
cad是调用AcAuthEnviron.arx中的方法.在高版本中有getblockname,在2008只有一个btr.
extern AcString acedGetBlockEditBlockName(void);
没有试验过的想法,用于cad08及以下:
我突然想到了,重写be命令,以及双击块激活be命令重定义到你的命令.
然后be或双击的时候获取块名,再调出be命令,这样就可以预先获取块编辑器的块名了.
如果发送be不能成功调用到块编辑器,那么也可以用win32 API拿这个框框的数据.
(完)