天气与日历 切换到窄版

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

[每日一码] ARX命名一个UCS并设置为当前

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

    [LV.4]偶尔看看III

    105

    主题

    11

    回帖

    1308

    积分

    管理员

    积分
    1308
    QQ
    发表于 2024-3-14 20:02:32 | 显示全部楼层 |阅读模式
    1. static void asdkucsarx采用test(void)
    2. {
    3.         Acad::ErrorStatus es;
    4.         AcDbUCSTableRecord *myUCS = new AcDbUCSTableRecord;
    5.         //define your own ucs
    6.         AcGePoint3d  origin采用point(0,0,0);
    7.         AcGeVector3d UCSXaxis(0,1,0);
    8.         AcGeVector3d UCSYaxis(1,0,0);
    9.         myUCS->setOrigin(origin采用point);
    10.         myUCS->setXAxis(UCSXaxis);
    11.         myUCS->setYAxis(UCSYaxis);
    12.         es=myUCS->setName( 采用T("MyUCS"));
    13.         if (es != Acad::eOk)
    14.         {
    15.                 acutPrintf(采用T("\nFailed to set name"));
    16.                 return;
    17.         }
    18.         AcDbObjectId UCSId;
    19.         AcDbSymbolTable *pUCSTable;
    20.         if (acdbHostApplicationServices()->workingDatabase()->
    21.                 getUCSTable(pUCSTable,AcDb::kForWrite)==Acad::eOk)
    22.         {
    23.                 es=pUCSTable->add(UCSId,myUCS);
    24.                 es=pUCSTable->close();
    25.                 es= myUCS->close();
    26.         }
    27.         else
    28.         {
    29.                 acutPrintf(采用T("\nFailed to get UCS table"));
    30.                 return;
    31.         }
    32.         //To set the current UCS, I accessed
    33.         // the active AcDbViewportTableRecord
    34.         // and used setUCS to set the UCS I created as current.
    35.         AcDbViewportTable *pVT;
    36.         es = acedVports2VportTableRecords();
    37.         if (es != Acad::eOk)
    38.         {
    39.                 acutPrintf(
    40.                         采用T("\nFailed to load vport info into vport table records"));
    41.                 return;
    42.         }
    43.         es=acdbHostApplicationServices()->
    44.                 workingDatabase()->getViewportTable(pVT,AcDb::kForRead);
    45.         if (es != Acad::eOk)
    46.         {
    47.                 acutPrintf(采用T("\nFailed to get vport table"));
    48.                 pVT->close();
    49.                 return;
    50.         }
    51.         AcDbViewportTableIterator* pIter = NULL;
    52.         es=pVT->newIterator(pIter);
    53.         if (es != Acad::eOk)
    54.         {
    55.                 acutPrintf(采用T("\nFailed to get vport table"));
    56.                 pVT->close();
    57.                 delete pIter;
    58.                 return;
    59.         }
    60.         for (pIter->start();!pIter->done();pIter->step())
    61.         {
    62.                 AcDbViewportTableRecord* pRec;
    63.                 //it should be open for write mode
    64.                 es=pIter->getRecord(pRec,AcDb::kForWrite);
    65.                 if (es != Acad::eOk)
    66.                 {
    67.                         acutPrintf(
    68.                                 采用T("\nFailed to get vport table record"));
    69.                         pVT->close();
    70.                         pRec->close();
    71.                         delete pIter;
    72.                         return;
    73.                 }
    74.                 TCHAR* name=NULL;
    75.                 es=pRec->getName(name);
    76.                 if (es != Acad::eOk)
    77.                 {
    78.                         acutPrintf(
    79.                                 采用T("\nFailed to get name from vport table"));
    80.                         pVT->close();
    81.                         pRec->close();
    82.                         delete pIter;
    83.                         return;
    84.                 }
    85.                 if (采用tcsicmp(name,采用T("*ACTIVE"))==0)
    86.                 {
    87.                         es=pRec->setUcs(UCSId);
    88.                 }
    89.                 es=pRec->close();   
    90.         }
    91.         es=acedVportTableRecords2Vports(); //force update
    92.         es=pVT->close();
    93.         delete pIter;
    94.         return ;
    95. }
    复制代码

     

     

     

     

    [每日一码] ARX命名一个UCS并设置为当前
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-11-1 13:32 , Processed in 0.135605 second(s), 27 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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