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

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

  • 相关阅读:
    μC/OS-III---I笔记10---内存管理
    μC/OS-III---I笔记9---任务等待多个内核对象和任务内建信号量与消息队列
    μC/OS-III---I笔记8---事件标志
    二.java下使用RabbitMQ实现hello world
    (转)rabbitMQ基础知识及命令语句
    一.windows环境下rabbitMQ的的安装和配置
    spring mvc对静态资源的访问
    2017年12月计划
    java两种动态代理方式的理解
    log4j配置文件详解(转)
  • 原文地址:https://www.cnblogs.com/pengjun-shanghai/p/4913299.html
Copyright © 2011-2022 走看看