天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 6|回复: 0

将指定图层的内容输出到DXF文件

[复制链接]
  • TA的每日心情
    开心
    昨天 15:23
  • 签到天数: 69 天

    [LV.6]常住居民II

    410

    主题

    167

    回帖

    2704

    积分

    管理员

    积分
    2704
    发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
    int FilterObjects(ads_name ss)
    {
            int resVal;
            char *chLayerName[] = {"0", "Layer1"};
            struct resbuf * resBufLayerFilter = NULL;
            struct resbuf **resBufTemp;

            resBufTemp = &resBufLayerFilter;
            *resBufTemp = acutBuildList(-4, "<OR", 0);
            resBufTemp = &(*resBufTemp)->rbnext;

            for (int nIndex = 0 ; nIndex<2;nIndex++)
            {
                    *resBufTemp = acutBuildList (8, chLayerName[nIndex], 0);
                    resBufTemp = &(*resBufTemp)->rbnext;
            }      

            *resBufTemp = acutBuildList(-4, "OR>", 0);
            resBufTemp = &(*resBufTemp)->rbnext;

            while(true)
            {
                    //select all objects only on layer '0, Layer1'
                    resVal = acedSSGet(L"_X", NULL, NULL, resBufLayerFilter, ss);

                    if (resVal == RTCAN || resVal == RTERROR)
                    {
                            //user selected zero objects
                            if (resVal == RTERROR)
                                acutPrintf (L"\nZero objects are selected.\n");
                            acutRelRb(resBufLayerFilter);
                            return resVal;
                    }
                    else
                            break;
            }

            acutRelRb(resBufLayerFilter);
            return resVal;
    }

    void ADSKDEX()
    {
            Acad::ErrorStatus es;
            AcGePoint3d  pt (0.,0.,0.) ;
            AcGeVector3d    ex(1., 0., 0.), ey(0., 1., 0.), ez(0., 0., 1.) ;

            ads_name SourceSS;
            long  sslen = -1;
            AcDbObjectIdArray ObjIDArray;
            ads_name ename;
            long  sscur;
            CString ClasseObj, Result;
            AcDbObjectId       eId;

            FilterObjects(SourceSS); //filter the objects based on the layers

            int nRet = acedSSLength(SourceSS, &sslen);

            if (nRet == RTNORM)
            {
                    acutPrintf(L"%d objects selected for export\n",sslen);
            }

            if( acedSSLength( SourceSS, &sslen) != RTNORM)
            {
                    acutPrintf(L"No Objects are selected for export");
                    return;
            }

            for (sscur = 0; sscur < sslen; sscur++)
            {
                    acedSSName(SourceSS, sscur, ename);  
                    acdbGetObjectId(eId, ename);
                    ObjIDArray.append(eId);
            }

            AcDbDatabase *pDB = NULL;

            if( ( es = acdbHostApplicationServices()->workingDatabase()->wblock(
                    pDB, ObjIDArray, pt ))!=Acad::eOk)
            {
                    AfxMessageBox(L"wblock failed", MB_ICONEXCLAMATION | MB_OK);
                    return;
            }

            es = pDB->dxfOut(L"c:\\test.dxf");

            if(pDB)
            {
                    delete pDB; // delete the database.
                    pDB = NULL;
            }

            acedSSFree(SourceSS);
            acedSSFree(ename);
    }

     

     

     

     

    将指定图层的内容输出到DXF文件
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|

    GMT+8, 2024-7-1 05:42 , Processed in 0.056694 second(s), 22 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表