⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 erasegroup.cpp

📁 看看吧,很好的东西,
💻 CPP
字号:


// 选择一个组实体,获得组名,删除组
static void EraseGroup(void)
{
	ads_name ent;
	AcDbObjectId objId;
	int rc;
	ads_point pt;

	rc = acedEntSel("\nPlease select an Group Entity: ", ent, pt);
	if (rc != RTNORM) {
		return;
	}
	acdbGetObjectId(objId, ent);
	AcDbObjectPointer<AcDbEntity>pEnt(objId, AcDb::kForRead);
	CString sGrpName;

	AcDbVoidPtrArray	*pReactors;
	void				*pSomething;
	AcDbObjectId		 persObjId;
	pReactors = pEnt->reactors();

	if (pReactors != NULL)
	{
		for (int i = 0; i < pReactors->length(); i++)
		{
			pSomething = pReactors->at(i);
			// Is it a persistent reactor?
			//
			if (acdbIsPersistentReactor(pSomething)) {
				persObjId = acdbPersistentReactorObjectId( pSomething );
				acutPrintf("\n\nPersistent reactor found.");
				if(pEnt.openStatus() == Acad::eOk)
					pEnt->close();
				AcDbObjectPointer<AcDbGroup>pGroup(persObjId, AcDb::kForWrite);
				sGrpName = pGroup->name();
				acedAlert(sGrpName);
				pGroup->erase();
			}
		}// for
	}

	return;
}

// 通过组名删除组实体
static void EraseGroup(const char * pGroupName)
{
	AcDbDictionary *pGroupDict;
	AcDbObjectId pGroupId;

	acdbHostApplicationServices()->workingDatabase()->getGroupDictionary(pGroupDict, AcDb::kForWrite);

	if (pGroupDict->getAt(pGroupName,pGroupId)  == Acad::eOk)
	{
		AcDbObjectPointer <AcDbGroup> pGroup(pGroupId, AcDb::kForWrite);

		pGroup->erase();
		pGroupDict->remove(pGroupId);
		pGroupDict->close();
		pGroup->close();
	}
	pGroupDict->close();

	return;
}










⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -