怎样在插入图块前修改图块文字?
MxDraw网页开发|黄洪辉|2018-05-07 10:35
-
回答:
// 插入块的块名。 var sBlkName = "MyBlkName"; // 把要插入的块文件引入到控件数据库中。 var sBlkFile = mxOcx.GetOcxAppPath() + "\\Blk\\attribblock.dwg"; mxOcx.InsertBlock(sBlkFile, sBlkName); // 取到控件数据库 var database = mxOcx.GetDatabase(); // 得到块表对象 var blkTable = database.GetBlockTable(); // 当前块表中是否已经有名为sBlkName的块表记录 var blkRec = blkTable.GetAt(sBlkName, true); if (blkRec == null) { // 证明InsertBlock函数失败,没有成功把文件插入数据库中。 return; } // 创建一个用于遍历块表遍历器 var iter = blkRec.NewIterator(); if (iter == null) return; for (; !iter.Done(); iter.Step(true, false)) { // 得到遍历器当前的实体 var ent = iter.GetEntity(); if (ent == null) continue; if (ent.ObjectName == "McDbText") { // 当前实体是一个文字 var text =ent; // 修改文字内容为 "MyContent" text.TextString = "MyContent"; } } // 创建块引用,把图块插入到当前空间,并显示。 mxOcx.DrawBlockReference(0, 0, sBlkName, 1.0, 0.0);