• 创建一个块定义,并添加实体插入到指定位置


    这里实现的是在当前图纸中创建一个新的块定义,并且向该块定义中添加实体,将实体插入到当前图纸中,例子如下:

        CString blockName = _T("adf");//这里为要创建的块定义名称
        AcDbBlockTable *pBlkTab;
        acdbHostApplicationServices()->workingDatabase()
            ->getBlockTable(pBlkTab, ZcDb::kForWrite);
        if (pBlkTab->has(blockName))//判断该块定义是否已经存在
        {
            AfxMessageBox(_T("该块定义已经存在!已创建一个新的块定义,名称为:") + blockName + m_sAntennaSys);
            blockName += m_sAntennaSys;
        }
        AcDbBlockTableRecord *pBlkTabRcd;
        pBlkTabRcd = new AcDbBlockTableRecord();
        pBlkTabRcd->setName(blockName);
        AcDbObjectId blockId;
        pBlkTab->add(blockId, pBlkTabRcd);
        pBlkTab->close(); 
        //插入点的选取
        AcGePoint3d ptInsert;
        GetPoint(ptInsert, _T("输入adf插入点。"));
           //向该块定义中添加实体
           AcDbBlockReference *pBlkRef = new AcDbBlockReference(pInsert, idJiantou);//前一个参数为插入点,后一个为实体id
        pBlkRef->setRotation(dAngle);//设置偏转角
        CBlockUtil::SetScaleFactor(pBlkRef, dScale);
        pBlkTabRcd->appendZcDbEntity(pBlkRef);
        pBlkRef->close();
        //将该块插入带当前图纸中
        AcDbBlockReference *pBlkTabRef = new AcDbBlockReference(ptInsert, blockId);//blockId为该块定义的id
        CDwgDatabaseUtil::PostToModelSpace(pBlkTabRef);//该函数为插入实体到当前模型空间中的一般函数,这里不给出
        pBlkTabRcd->close();
        pBlkTabRef->close();

    上面的列子完成的就是新建块定义,并添加实体,插入块定义的基本操作,具体操作还需要依据具体的需求。

  • 相关阅读:
    activiti eclipse 插件安装
    mysql 改编码
    ubuntu vim 中文乱码
    mac 打开 原生 ntfs 读写
    ubuntu 防止 ssh 超时
    java http
    UITabBarController的一些基础设置
    [转]mac 10.9.4下配置apache
    数组的排序及筛选
    一个UICollectionView自定义layout的实现
  • 原文地址:https://www.cnblogs.com/pengjun-shanghai/p/4913299.html
Copyright © 2020-2023  润新知