lihao2014 发表于 2019-6-12 15:02:57

CAD插入图块前修改图块文字(com接口)

// 插入块的块名。
            String sBlkName = "MyBlkName";

            // 把要插入的块文件引入到控件数据库中。
            String sBlkFile = axMxDrawX1.GetOcxAppPath() + "\\Blk\\attribblock.dwg";
            axMxDrawX1.InsertBlock(sBlkFile, sBlkName);
            // 得到当前应用对象
            MxDrawApplication app = new MxDrawApplication();

            // 取到控件数据库
            MxDrawDatabase database = app.WorkingDatabase();

            // 得到块表对象
            MxDrawBlockTable blkTable = database.GetBlockTable();

            // 当前块表中是否已经有名为sBlkName的块表记录
            MxDrawBlockTableRecord blkRec = blkTable.GetAt(sBlkName, true);
            if (blkRec == null)
            {
                // 证明InsertBlock函数失败,没有成功把文件插入数据库中。
                return;
            }

            // 创建一个用于遍历块表遍历器
            MxDrawBlockTableRecordIterator iter = blkRec.NewIterator();
            if (iter == null)
                return;

            for (; !iter.Done(); iter.Step(true, false))
            {
                // 得到遍历器当前的实体
                MxDrawEntity ent = iter.GetEntity();
                if (ent == null)
                  continue;
                if (ent.ObjectName == "McDbText")
                {
                  // 当前实体是一个文字
                  MxDrawText text = (MxDrawText)ent;
                  // 修改文字内容为 "MyContent"
                  text.TextString = "MyContent";
                }
            }

            // 创建块引用,把图块插入到当前空间,并显示。
            axMxDrawX1.DrawBlockReference(0, 0, sBlkName, 1.0, 0.0);

noscar302 发表于 2019-6-12 15:02:57

很复杂,怎么用呢

bkqcycyqm 发表于 2019-6-12 15:02:57

怎么看着还要编程呢?

whng 发表于 2019-6-12 15:02:57


谢谢楼主分享。
页: [1]
查看完整版本: CAD插入图块前修改图块文字(com接口)