您的位置:首页 > 其它

Arx 新建布局(Creating new Paperspace)

2012-06-28 14:26 489 查看
bool AddPaperLayout( AcDbObjectId& idLay,LPCTSTR lpszLayName ,LPCTSTR lpszMediaName/* = _T("A3")*/)
{
AfxIsValidString(lpszLayName);
AfxIsValidString(lpszMediaName);

const ACHAR* LayoutName = lpszLayName;

Acad::ErrorStatus es;

AcApLayoutManager* pLayoutMng = (AcApLayoutManager*)acdbHostApplicationServices()->layoutManager();

AcDbLayout* pNewLayout = pLayoutMng->findLayoutNamed(LayoutName);

if(pNewLayout)
{
return true;
}

AcDbObjectId blockTableRecId;
pLayoutMng->setCreateViewports(Adesk::kTrue);
es = pLayoutMng->createLayout(LayoutName, idLay, blockTableRecId);
if (eOk != es)
{
return false;
}

pNewLayout = pLayoutMng->findLayoutNamed(LayoutName, true);

AcDbPlotSettingsValidator *pPltValid = NULL;
pPltValid = acdbHostApplicationServices()->plotSettingsValidator();
pPltValid->refreshLists(pNewLayout);

const ACHAR* mediaName = lpszMediaName;
pPltValid->setCanonicalMediaName(pNewLayout,mediaName);//设置图纸尺寸
pPltValid->setPlotRotation(pNewLayout,AcDbPlotSettings::k90degrees);

pNewLayout->close();

es = pLayoutMng->setCurrentLayoutId(idLay);

pLayoutMng->updateCurrentPaper(Adesk::kTrue);

pLayoutMng->updateLayoutTabs();

return true;
}


更多操作可查看http://forums.autodesk.com/t5/Autodesk-ObjectARX/Creating-new-Paperspace-with-Rotated-Viewport/td-p/3285119
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: