设为首页收藏本站

中国膜结构网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

膜结构车棚
膜结构车棚膜结构资质国产膜材 膜结构网中国膜结构协会
查看: 120|回复: 0

拉伸图形形成solid实例

[复制链接]
  • TA的每日心情
    开心
    2021-6-19 14:40
  • 签到天数: 1539 天

    [LV.Master]伴坛终老

    发表于 2021-2-1 07:55 | 显示全部楼层 |阅读模式
    //将实体加入到模型数据库中
    int addEntityToModelSpace(Acad::ErrorStatus& es,AcDbObjectId& entityId,AcDbEntity *pEntity)
    {
            //创建块表
            AcDbBlockTable *pBlockTable;
            acdbHostApplicationServices() -> workingDatabase()
                    ->getSymbolTable(pBlockTable,AcDb::kForRead);
           
            //创建块表记录
            AcDbBlockTableRecord *pBlockTableRecord;
            pBlockTable ->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
            pBlockTable ->close();

            //向模型数据库中追回实体记录
            pBlockTableRecord ->appendAcDbEntity(entityId,pEntity);
            pBlockTableRecord ->close();
            pEntity->close();

            return 0;
    }

    // This is command 'TEST'
    void Test()
    {
            // TODO: Implement the command
            Acad::ErrorStatus es = Acad::eOk;

            /*
            //*************************以选择实体方式创建区域图形******************
            ads_name entName;
            ads_point pickpt;
           
            acedEntSel("/n请选择一个闭合图形:",entName,pickpt);
            AcDbObjectId objId;
            acdbGetObjectId(objId,entName);
            AcDbObject *pObj=NULL;
            acdbOpenObject( pObj, objId, AcDb::kForRead );

            //创建一个面域
            AcDbVoidPtrArray curveSegments;       
            curveSegments.append(pObj);
            //***************************************************************
            */

            /*
            //*************************以选择集方式创建区域图形******************
            ads_name ssName;

            acedSSGet(NULL,NULL,NULL,NULL,ssName);
            //获取选择集中的实体个数
            long NumOfSS;//选择集的个数
            acedSSLength(ssName,&NumOfSS);

            //AcDbObjectIdArray SSIdArray;
            AcDbVoidPtrArray curveSegments;       

            for (long i=0;i<NumOfSS;i++)
            {
                    ads_name temptest;
                    acedSSName(ssName,i,temptest);

                    AcDbObjectId objId;
                    es = acdbGetObjectId(objId,temptest);
                    AcDbObject *pObj = NULL;
                    acdbOpenObject(pObj,objId,AcDb::kForRead);
                    curveSegments.append(pObj);
            }
            */

            /*
            ***********************生成 一个正方体*************************
            AcDbLine *pLine1;
            pLine1 = new AcDbLine(AcGePoint3d(0,0,0),AcGePoint3d(2000,0,0));
            curveSegments.append(pLine1);
            pLine1 = new AcDbLine(AcGePoint3d(2000,0,0),AcGePoint3d(2000,2000,0));
            curveSegments.append(pLine1);
            pLine1 = new AcDbLine(AcGePoint3d(2000,2000,0),AcGePoint3d(0,2000,0));
            curveSegments.append(pLine1);
            pLine1 = new AcDbLine(AcGePoint3d(0,2000,0),AcGePoint3d(0,0,0));
            curveSegments.append(pLine1);
            *****************************************************************
            */

            //生成一个圆
            AcDbCircle *pCircle = new AcDbCircle(AcGePoint3d::kOrigin, AcGeVector3d::kZAxis, 1000);

            //创建一个面域
            AcDbVoidPtrArray curveSegments;       
            curveSegments.append(pCircle);

            AcDbVoidPtrArray regions;
            es = AcDbRegion::createFromCurves(curveSegments,regions);
            if (es != Acad::eOk)
            {
                    delete pCircle;
                    //delete pLine1;
                    return;
            }

            delete pCircle;
            //delete pLine1;

            AcDbRegion *pRegion = (AcDbRegion *)regions[0];

            //生成拉伸路径
            AcDbLine *pLine = new AcDbLine(AcGePoint3d::kOrigin,
                    AcGePoint3d(0,0,1000));

            //加入到模型数据库中
            AcDbObjectId lineId;
            if (addEntityToModelSpace(es,lineId, pLine))
            {
                    delete pRegion;
                    delete pLine;
                    return;
            }
            pLine->close();

            //拉伸路径需要以读方式来打开
            es = acdbOpenObject(pLine, lineId, AcDb::kForRead);
            if (es != Acad::eOk)
            {
                    delete pRegion;
                    return;
            }

            //拉伸成Solid;
            AcDb3dSolid *pSolid = new AcDb3dSolid();
            es = pSolid->extrudeAlongPath(pRegion, pLine);
           
            delete pRegion;
            pLine->close();
            if (es != Acad::eOk)
            {
                    delete pSolid;
                    return;
            }

            //将Solid实体加入到模型数据库中
            AcDbObjectId solidId;
            if (addEntityToModelSpace(es, solidId, pSolid))
            {
                    delete pSolid;
                    return;
            }
           
            pSolid->close();
    }
    回复


    http://www.mjgw.org/ 专业从事膜结构设计、制作加工、施工安装的膜结构工程服务,能够为客户提供专业的膜结构整体解决方案。做中国最好的膜结构综合服务平台。欢迎大家联系电话:198-7840-1958,QQ:463017170.
    相关关键词:膜结构车棚,膜结构车棚覆盖,膜结构车棚公司,膜结构车棚多少钱,膜结构车棚厂家,膜结构车棚价格,社区膜结构车棚,膜结构车棚膜布厂家 ,膜结构车棚哪家好,膜结构车棚多少钱一米,膜结构车棚报价,膜结构车棚哪里有,膜结构车棚定制,膜结构车棚安装,膜结构车棚设计,膜结构车棚电话,膜结构车棚加工,膜结构车棚膜布价格,膜结构车棚批发,膜结构车棚制造商,膜结构车棚生产厂家,膜结构车棚设计,膜结构车棚施工,膜结构车棚多少钱一平米,膜结构车棚订制,张拉膜车棚,张拉膜车棚覆盖,张拉膜车棚公司,张拉膜车棚多少钱,张拉膜车棚厂家,张拉膜车棚价格,社区张拉膜车棚,张拉膜车棚膜布厂家 ,张拉膜车棚哪家好,张拉膜车棚多少钱一米,张拉膜车棚报价,张拉膜车棚哪里有,张拉膜车棚定制,张拉膜车棚安装,张拉膜车棚设计,张拉膜车棚电话,张拉膜车棚加工,张拉膜车棚膜布价格,张拉膜车棚批发,张拉膜车棚制造商,张拉膜车棚生产厂家,张拉膜车棚设计,张拉膜车棚施工,张拉膜车棚多少钱一平米,张拉膜车棚订制,常用膜材品牌:德国杜肯、法国法拉利、德国海德斯、德国米乐、日本平岗、韩国秀博、比利时希运、美国赫虏伯、中国科宝、上海慧遥。

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    推荐膜材品牌上一条 /6 下一条

    进口膜材 国产膜材 pvdf膜材ptfe膜材ETFE膜材
    最好的膜结构公司 一级膜结构资质 膜结构一级资质
    膜结构设计-膜结构十大品牌-etfe设计-充气膜结构
    诺科膜结构
    遨都膜结构设计
    中国膜结构网
    中国空间膜结构

    QQ|申请友链|手机版|中国膜结构论坛