|
- static void asdkucsarx采用test(void)
- {
- Acad::ErrorStatus es;
- AcDbUCSTableRecord *myUCS = new AcDbUCSTableRecord;
- //define your own ucs
- AcGePoint3d origin采用point(0,0,0);
- AcGeVector3d UCSXaxis(0,1,0);
- AcGeVector3d UCSYaxis(1,0,0);
- myUCS->setOrigin(origin采用point);
- myUCS->setXAxis(UCSXaxis);
- myUCS->setYAxis(UCSYaxis);
- es=myUCS->setName( 采用T("MyUCS"));
- if (es != Acad::eOk)
- {
- acutPrintf(采用T("\nFailed to set name"));
- return;
- }
- AcDbObjectId UCSId;
- AcDbSymbolTable *pUCSTable;
- if (acdbHostApplicationServices()->workingDatabase()->
- getUCSTable(pUCSTable,AcDb::kForWrite)==Acad::eOk)
- {
- es=pUCSTable->add(UCSId,myUCS);
- es=pUCSTable->close();
- es= myUCS->close();
- }
- else
- {
- acutPrintf(采用T("\nFailed to get UCS table"));
- return;
- }
- //To set the current UCS, I accessed
- // the active AcDbViewportTableRecord
- // and used setUCS to set the UCS I created as current.
- AcDbViewportTable *pVT;
- es = acedVports2VportTableRecords();
- if (es != Acad::eOk)
- {
- acutPrintf(
- 采用T("\nFailed to load vport info into vport table records"));
- return;
- }
- es=acdbHostApplicationServices()->
- workingDatabase()->getViewportTable(pVT,AcDb::kForRead);
- if (es != Acad::eOk)
- {
- acutPrintf(采用T("\nFailed to get vport table"));
- pVT->close();
- return;
- }
- AcDbViewportTableIterator* pIter = NULL;
- es=pVT->newIterator(pIter);
- if (es != Acad::eOk)
- {
- acutPrintf(采用T("\nFailed to get vport table"));
- pVT->close();
- delete pIter;
- return;
- }
- for (pIter->start();!pIter->done();pIter->step())
- {
- AcDbViewportTableRecord* pRec;
- //it should be open for write mode
- es=pIter->getRecord(pRec,AcDb::kForWrite);
- if (es != Acad::eOk)
- {
- acutPrintf(
- 采用T("\nFailed to get vport table record"));
- pVT->close();
- pRec->close();
- delete pIter;
- return;
- }
- TCHAR* name=NULL;
- es=pRec->getName(name);
- if (es != Acad::eOk)
- {
- acutPrintf(
- 采用T("\nFailed to get name from vport table"));
- pVT->close();
- pRec->close();
- delete pIter;
- return;
- }
- if (采用tcsicmp(name,采用T("*ACTIVE"))==0)
- {
- es=pRec->setUcs(UCSId);
- }
- es=pRec->close();
- }
- es=acedVportTableRecords2Vports(); //force update
- es=pVT->close();
- delete pIter;
- return ;
- }
复制代码 |
|