JJBox

这个代码只能用于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拿这个框框的数据.

(完)

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-03-04
  • 2021-11-29
  • 2021-11-25
  • 2021-05-31
  • 2021-06-23
  • 2022-12-23
  • 2021-11-28
猜你喜欢
  • 2021-12-18
  • 2021-12-17
  • 2022-02-01
  • 2022-12-23
  • 2021-11-07
  • 2022-12-23
相关资源
相似解决方案