zoukankan      html  css  js  c++  java
  • 创建一个块定义,并添加实体插入到指定位置

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

        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();

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

  • 相关阅读:
    django序列化器Serializers
    django中模型类变更问题
    django图书管理系统-外键字段的增删改查
    django图书管理系统模型创建
    django中使用KindEditor上传图片
    成长
    git提交代码的经验
    react项目打包
    node——moudle
    git
  • 原文地址:https://www.cnblogs.com/pengjun-shanghai/p/4913299.html
Copyright © 2011-2022 走看看