找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 179|回复: 0

ARX清理layout

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-2-28 08:56:50 | 显示全部楼层 |阅读模式
  1. void ClearLayout()
  2. {
  3.     CString msLayoutName;
  4.     CStringArray layoutNames;
  5.     AcDbObjectId msID = acdbSymUtil()->blockModelSpaceId(m采用pDatabase);
  6.     AcDbObjectId dictId = m采用pDatabase->layoutDictionaryId();
  7.     AcDbDictionary* pDict = NULL;
  8.     if (Acad::eOk == acdbOpenObject(pDict, dictId, AcDb::kForWrite))
  9.     {
  10.         AcDbDictionaryIterator *iter = pDict->newIterator();
  11.         for (; !iter->done(); iter->next())
  12.         {
  13.             AcDbObject* pDictObj = NULL;
  14.             iter->getObject(pDictObj, AcDb::kForWrite);
  15.             if (pDictObj->isKindOf(AcDbLayout::desc()))
  16.             {
  17.                 AcDbLayout* pLayout = AcDbLayout::cast(pDictObj);
  18.                 AcDbObjectId blockTableRecordID = pLayout->getBlockTableRecordId();
  19.                 TCHAR *name = NULL;
  20.                 pLayout->getLayoutName(name);
  21.                 if (blockTableRecordID != msID)//属于模型空间的id
  22.                 {
  23.                     layoutNames.Add(name);
  24.                 }
  25.                 else
  26.                 {
  27.                     msLayoutName = name;
  28.                 }
  29.             }
  30.             pDictObj->close();
  31.         }
  32.         delete iter;
  33.         iter = NULL;
  34.         pDict->close();
  35.     }
  36.     //CAD不允许清理所有的布局[除开模型布局以外必须存在一个其他布局],创建一个临时的layout
  37.     if (1)
  38.     {
  39.         AcDbObjectId layoutID, blockRecordID;
  40.         acdbHostApplicationServices()->layoutManager()->createLayout(采用T("布局"), layoutID, blockRecordID, m采用pDatabase);
  41.     }
  42.     acdbHostApplicationServices()->layoutManager()->setCurrentLayout(msLayoutName, m采用pDatabase);
  43.     for (int i = 0; i < layoutNames.GetSize(); i++)
  44.     {
  45.         Acad::ErrorStatus es = acdbHostApplicationServices()->layoutManager()->deleteLayout(layoutNames[i], m采用pDatabase);
  46.     }
  47. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-28 14:46 , Processed in 0.120920 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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