- 积分
- 32056
- 明经币
- 个
- 注册时间
- 2007-4-24
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2025-8-21 01:13:09
|
显示全部楼层
筛选 3DSOLID+XData 的
 - ads_name ss;
- struct resbuf* rb;
- rb = acutBuildList(RTDXF0, _T("3DSOLID"), RTNONE);
- int res = acedSSGet(_T("X"), NULL, NULL, rb, ss);
- acutRelRb(rb);
- if (res != RTNORM)
- return;
- Acad::ErrorStatus es;
- Adesk::Int32 length = 0;
- acedSSLength(ss, &length);
- ads_name ssSet;
- acedSSAdd(NULL, NULL, ssSet);
- for (int i = 0; i < length; i++)
- {
- ads_name ent;
- acedSSName(ss, i, ent);
- AcDbObjectId objId = AcDbObjectId::kNull;
- es = acdbGetObjectId(objId, ent);
- AcDbEntity *pEnt = NULL;
- es = acdbOpenObject(pEnt, objId, AcDb::kForRead);
- if (pEnt->isKindOf(AcDb3dSolid::desc()))
- {
- AcDb3dSolid *p3dSolid = AcDb3dSolid::cast(pEnt);
- struct resbuf* xdata;
- xdata = pEnt->xData((ACHAR*)0);
- if (xdata != NULL)
- {
- acedSSAdd(ent, ssSet, ssSet);
- acedSSSetFirst(ssSet, NULL);
- }
- p3dSolid->close();
- }
- pEnt->close();
- }
- acedSSFree(ss);
- //acedSSSetFirst(NULL, NULL);
|
|