下面代码,判断块表中是否有指定名称的块表记录,如果没有就增一个块表记录。

// sName 是新增加的块名。
// blkOriginPoint 是图块的插入基点。
public bool AddBlockRrecord(String sName, MxDrawPoint blkOriginPoint)
{
    // 取当前数据库.
    MxDrawDatabase curDatabase = (MxDrawDatabase)(axMxDrawX1.GetDatabase());
    // 得到块表
    MxDrawBlockTable blkTable = curDatabase.GetBlockTable();

    // 判断块表是否已经有该名称的块名。
    if (blkTable.Has(sName))
    {
        MxDrawBlockTableRecord blkRec = blkTable.GetAt(sName, true);
        // 如果块被删除,就反删除。
        blkRec.SetProp("unErase", null);
        return true;
    }
    // 新增一个块表记录.
    MxDrawBlockTableRecord blkNewRec = blkTable.Add(sName);
    if (blkNewRec == null)
        return false;
    // 设置块表记录的插入基点
    blkNewRec.Origin = blkOriginPoint;
    return true;
}

调用代码:

MxDrawPoint pt = new MxDrawPoint();
 pt.x = 100;
 pt.y = 100;
 AddBlockRrecord("MyBlkName", pt);

运行后块表中多了一个我们添加的块表记录

12-14 08:16