ARX 创建组实例(新建组,选择实体添加到组,输入层,修改组所在的层)

本文介绍了一个用于在CAD软件中创建组实例的方法,包括如何将选定的实体加入到组中,并更改组所属的图层。通过具体的代码实现步骤,读者可以了解到整个创建过程的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建组实例


//创建组,把选择的实体放入组内,并改变组的层为新层
static void TESTgrpcmd()
{


CString strGrp;
if(acedGetString(0,_T("\n输入组名"),strGrp.GetBuffer(10)) != RTNORM)
{
return;
}
strGrp.ReleaseBuffer();


ads_name ss;
if(acedSSGet(NULL,NULL,NULL,NULL,ss) != RTNORM)
{
return;
}
CString strLayer;
if(acedGetString(0,_T("\n输入层名称"),strLayer.GetBuffer(10)) != RTNORM)
{
acedSSFree(ss);
return;
}


////创建组,改变层
AcDbGroup* pGrp = new AcDbGroup(strGrp);
long len ;
acedSSLength(ss,&len);
AcDbObjectId idObj;
ads_name enName;
AcDbEntity* pEnt;
ErrorStatus es;


for(int i = 0;i < len;i ++)
{
if(acedSSName(ss,i,enName) != RTNORM)
{
continue;
}
acdbGetObjectId(idObj,enName);
pGrp->append(idObj);
}
pGrp->setLayer(strLayer);




////把组添加到词典中
AcDbDictionary* pGrpDic;
acdbHostApplicationServices()->workingDatabase()->getGroupDictionary(pGrpDic,AcDb::kForWrite);
AcDbObjectId idGrp;
pGrpDic->setAt(strGrp,pGrp,idGrp);

////释放内存
pGrp->close();
pGrpDic->close();
acedSSFree(ss);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值