天气与日历 切换到窄版

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

‎使用 ObjectARX 基于另一个布局创建新布局‎

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
[code]void createLyt()
{
    Acad::ErrorStatus es;   
  AcDbObjectId LObjId, BTRId;   
  AcDbDatabase *curDocDB =acdbHostApplicationServices()->workingDatabase();   
  AcApLayoutManager *layoutMngr =
(AcApLayoutManager*)(acdbHostApplicationServices()->layoutManager());      
  curDocDB->setTilemode(Adesk::kFalse);   
  const ACHAR *actLayoutName = layoutMngr->findActiveTab();   
  AcDbLayout* pSrc = layoutMngr->findLayoutNamed(actLayoutName, TRUE);   
  if (pSrc == NULL)      
   return;      
  //pSrc must be demoted to kForRead   
  pSrc->downgradeOpen();      
  //create new layout with next available name   
  ACHAR *newLName = layoutMngr->getNextNewLayoutName();  
  if (Acad::eOk != layoutMngr->createLayout(newLName, LObjId, BTRId))
  {        acutDelString(newLName);      
  return;
  //failure   
  }   
  AcDbLayout* pTarget = layoutMngr->findLayoutNamed(newLName, TRUE);   
  acutDelString(newLName);   
  if (pTarget != NULL)
  {        
   es = pTarget->copyFrom(pSrc);      
   pSrc->close();      
   if (es != Acad::eOk)
   {      
    //unsuccessful property copy - erase new layout           
    pTarget->erase();           
    pTarget->close();      
   }

   else
   {           
    pTarget->close();           
    layoutMngr->updateLayoutTabs();      
   }   
  }
}

To clone a complete layout with properties and entities…

void createClone()
{
  Acad::ErrorStatus es;   
  AcDbDatabase *curDocDB =acdbHostApplicationServices()->workingDatabase();   
  AcApLayoutManager *layoutMngr =
(AcApLayoutManager*)(acdbHostApplicationServices()->layoutManager());      
  curDocDB->setTilemode(Adesk::kFalse);   
  const ACHAR *actLayoutName = layoutMngr->findActiveTab();      
  //no layout objects may be open kForWrite during getNextNewLayoutName()   
  ACHAR *cloneName = layoutMngr->getNextNewLayoutName();   
  AcDbLayout *pSrc = layoutMngr->findLayoutNamed(actLayoutName, TRUE);   
  if (pSrc == NULL)
  {      
   acutDelString(cloneName);      
   return;   
  }   
  es = layoutMngr->cloneLayout(pSrc, cloneName);   
  acutDelString(cloneName);   
  pSrc->close();   
  if (es == Acad::eOk)      
   layoutMngr->updateLayoutTabs();
}[/code]

 

 

 

 

‎使用 ObjectARX 基于另一个布局创建新布局‎
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-1 13:35 , Processed in 0.160044 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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