设为首页收藏本站

中国膜结构网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

插入nsertDwf里面文字镜像

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

    [LV.Master]伴坛终老

    发表于 2021-2-8 00:24 | 显示全部楼层 |阅读模式
    AcDbObjectId CBlockUtil::InsertDwf(CString strFileFullPath, CString strFileName, AcGePoint3d insertPoint, double dbScale, double dbRotation)
    {
            AcDbDictionary *pNamedobj = NULL;
            AcDbDictionary *pAPPDict = NULL;
            AcDbDictionary *pDict = NULL;
            AcDbDatabase *pDb = acdbHostApplicationServices()->workingDatabase();
            Acad::ErrorStatus es;
            es = pDb->getNamedObjectsDictionary(pNamedobj, AcDb::kForWrite);
            if (Acad::eOk != es) return false;
            CString strAppName = TEXT("APP"), strFieldName = TEXT("LOT");
            if (pNamedobj->getAt(strAppName, (AcDbObject*&)pAPPDict, AcDb::kForWrite) == Acad::eKeyNotFound)
            {
                    pAPPDict = new AcDbDictionary;
                    AcDbObjectId dictId;
                    pNamedobj->setAt(strAppName, pAPPDict, dictId);
            }
            pNamedobj->close();
            if (pAPPDict->getAt(strFieldName, (AcDbObject*&)pDict, AcDb::kForWrite) == Acad::eKeyNotFound)
            {
                    pDict = new AcDbDictionary;
                    AcDbObjectId dictId;
                    pAPPDict->setAt(strFieldName, pDict, dictId);
            }
            pAPPDict->close();

            AcDbDwfDefinition *pDwfDef = new AcDbDwfDefinition;
            pDwfDef->setSourceFileName(strFileFullPath);


            AcDbObjectId entId;
            es = pDict->setAt(strFileName, (AcDbObject*&)pDwfDef, entId);
            pDict->close();
            pDwfDef->close();


            AcDbDwfReference *pDwfRef = new AcDbDwfReference;
            es = pDwfRef->setDefinitionId(entId);
            es = pDwfRef->setPosition(insertPoint);
            es = pDwfRef->setRotation(dbRotation);
            es = pDwfRef->setScaleFactors(dbScale);
            es = pDwfRef->setIsOn(true);
            es = pDwfRef->setFade(0);

            AcDbObjectId idDwfRef = AcDbObjectId::kNull;
            idDwfRef = CDwgDatabaseUtil:ostToModelSpace((AcDbEntity*)pDwfRef);
            pDwfRef->close();
            return idDwfRef;
    }
    回复


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

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-19 14:40
  • 签到天数: 1539 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-2-8 00:24 | 显示全部楼层
            es = pDwfRef->setDefinitionId(entId);
            es = pDwfRef->setNormal(AcGeVector3d::kZAxis);
            es = pDwfRef->setPosition(insertPoint);
            es = pDwfRef->setRotation(0.0);
            AcGeMatrix3d rot;
            rot.setToRotation(dbRotation, AcGeVector3d::kZAxis, insertPoint);
            pDwfRef->transformBy(rot);
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-19 14:40
  • 签到天数: 1539 天

    [LV.Master]伴坛终老

     楼主| 发表于 2021-2-8 00:24 | 显示全部楼层
    #include <rxvar.h>

    // Traits fo std::map<CString, T> for case-insensive comparison
    class NoCase
    {
    public:
       NoCase() {}
          
       bool operator()(const CString &str1, const CString &str2) const
       {
               return (str1.CompareNoCase(str2) < 0);
       }
    };


    void VarResbufToString(resbuf &rbValue, CString &csVal)
    {
            switch (rbValue.restype)
            {
            case RTREAL:
                    csVal.Format(L"%lf (RTREAL)", rbValue.resval.rreal);
                    break;/* Real number */

            case RTPOINT:
                    csVal.Format(L"(%lf, %lf) (RTPOINT)"
                            , rbValue.resval.rpoint[X]
                            , rbValue.resval.rpoint[Y]
                            );
                    break;/* 2D point X and Y only */

            case RT3DPOINT:
                    csVal.Format(L"(%lf, %lf, %lf) (RT3DPOINT)"
                            , rbValue.resval.rpoint[X]
                            , rbValue.resval.rpoint[Y]
                            , rbValue.resval.rpoint[Z]
                            );
                    break;/* 3D point - X, Y, and Z */

            case RTSHORT:
                    csVal.Format(L"%d (RTSHORT)", rbValue.resval.rint);
                    break;/* Short integer */

            case RTSTR:
                    csVal.Format(L"'%s'  (RTSTR)", rbValue.resval.rstring);
                    acutDelString(rbValue.resval.rstring);
                    break;/* String */

            case RTLONG:
                    csVal.Format(L"%ld", rbValue.resval.rlong);
                    break;/* Long integer */

            case RTENAME:
                    csVal = L"unexpected: (RTENAME)";
                    break;//* Entity name */
            case RTPICKS:
                    csVal = L"unexpected: (RTPICKS)";
                    break;//* Pick set */
            case RTORINT:
                    csVal = L"unexpected: (RTORINT)";
                    break;//* Orientation */
            default:
                    csVal.Format(L"unexpected: restype=%d", rbValue.restype);
                    break;
            }
    }

    void getAllAcadVariablesFromCommandGroup(std::map<CString, CString, NoCase> &varMap)
    {
            AcEdCommandStack *cmdStack = acedRegCmds;
            AcEdCommandIterator *it = cmdStack->iterator();

            if (it)
            {
                    const AcEdCommand *command=0;
                    LPCTSTR group = NULL, globalName = NULL;
                    CString csGroup, csGlobalName;
                    CString        groupPattern(L"ACAD_SETVAR");

                    int istat;

                    for (; !it->done(); it->next())
                    {
                            if (command = it->command())
                            {
                                    globalName = command->globalName();
                                    group = it->commandGroup();
                                    csGlobalName = globalName;
                                    csGroup = group;
                                    if (!csGroup.CompareNoCase(groupPattern))
                                    {
                                            struct resbuf rbValue;
                                            CString csVal;
                                            istat = acedGetVar(csGlobalName, &rbValue);
                                            if (istat == RTNORM)
                                            {
                                                    VarResbufToString(rbValue, csVal);
                                                    CString &csOldVal = varMap[csGlobalName];
                                                    if (!csOldVal.IsEmpty())
                                                    {
                                                            if (csOldVal.CompareNoCase(csVal))
                                                            {
                                                                    acutPrintf(L"\nVariable '%s': Different values!\n"
                                                                            L"\nOld = '%s'"
                                                                            L"\nNew = '%s'"
                                                                            , (LPCWSTR)csOldVal, (LPCWSTR)csVal
                                                                            );
                                                            }
                                                    }
                                                    csOldVal = csVal;
                                            }
                                    }
                            }
                    }
                    delete it;
            }
    }

    void cmdListAcadVars()
    {
            AcRxVariablesDictionary *pVarDic = AcRxVariablesDictionary::get();
            if (!pVarDic)
                    return;

            CWnd *pParent = acedGetAcadDwgView();
            CFileDialog *dia = new CFileDialog(FALSE, _T("txt"), L"AcadVars.txt", OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY, _T("*.txt|"), pParent);
            if (!dia)
                    return;

            if (dia->DoModal() != IDOK)
                    return;

            CString csPath = dia->GetPathName();
            delete dia;

            Acad::ErrorStatus es;
            const AcStringArray &allVars = pVarDic->getAllNames();
            int i, nCount = allVars.length();
            resbuf rbValue;

            std::map<CString, CString, NoCase> varMap;

            for (i = 0; i < nCount; ++i)
            {
                    AcRxVariable *pVar = pVarDic->getVariable(allVars[i]);
                    CString csName = pVar->name();
                    CString csVal;
                    if (pVar)
                    {
                            es = pVar->getValue(rbValue);
                            if (es == Acad::eOk)
                                    VarResbufToString(rbValue, csVal);
                            else
                                    csVal = L"** error **";
                            varMap[csName] = csVal;
                    }
            }

            getAllAcadVariablesFromCommandGroup(varMap);

            CStdioFile file;
            if (file.Open(csPath, CFile::typeText | CFile::modeWrite | CFile::modeCreate))
            {
                    CString csLine;
                    for each (const std::pair<CString, CString> entry in varMap)
                    {
                            file.WriteString(entry.first);
                            file.WriteString(L" = ");
                            file.WriteString(entry.second);
                            file.WriteString(L"\n");
                    }
                    file.Close();
            }
    }
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

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