帮我查询下ug二次开发c++函数获取选择facetage面的所有边的代码
时间: 2024-02-09 14:11:56 浏览: 39
可以使用以下代码来获取选择的面的所有边:
```
AcDbObjectIdArray objIds;
acedSSGet(NULL, NULL, NULL, NULL, objIds);
AcDbObjectIdArray edgeIds;
for (int i = 0; i < objIds.length(); i++) {
AcDbEntity *pEnt;
acdbOpenAcDbEntity(pEnt, objIds[i], AcDb::kForRead);
AcDb3dSolid *pSolid = AcDb3dSolid::cast(pEnt);
if (pSolid) {
AcGeIntArray indexArray;
pSolid->getShellFaceIndices(0, indexArray);
for (int j = 0; j < indexArray.length(); j++) {
AcDbIntArray edgeArray;
pSolid->getFaceEdgeIndices(indexArray[j], edgeArray);
for (int k = 0; k < edgeArray.length(); k++) {
AcDbObjectId edgeId;
pSolid->getEdgeAt(edgeArray[k], edgeId);
edgeIds.append(edgeId);
}
}
}
pEnt->close();
}
```
其中,`objIds`是选择集中的对象ID数组,`edgeIds`是获取到的边的ID数组。这段代码会先遍历选择集中的对象,如果是3D实体,则获取其所有面的索引,再逐个获取每个面的所有边的索引,最后通过索引获取到每个边的ID并添加到`edgeIds`中。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)