给位老师好,我已经通过SolidUtil系列函数成功创建了一个三维Smart Solid,现在想对其的几条边进行倒圆角的操作,找到了SolidUtil::Modify::BlendEdges命令,但是不知道命令中的第二个参数edges如何获取?请各位老师指导,谢谢!
注:在https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/190748/solid/563043#563043这篇帖子中发现可以用mdlSolid_imprintBodies获取EdgeList,但是现在想尽量使用SolidUtil类中的函数来实现,请老师指导,谢谢!
请参考:
ISolidKernelEntityPtr srcSolid; SolidUtil::Convert::ElementToBody(srcSolid, eh); iSubEntityNum = SolidUtil::GetBodyEdges(&outSubEntity, *srcSolid); size_t iSubEntityNum = 0; bvector<ISubEntityPtr> outSubEntity; bvector<double> radii; radii.insert(radii.begin(), 1, GetDistance()); bool bPropagateSmooth = true; BentleyStatus status = SolidUtil::Modify::BlendEdges(srcSolid, &outSubEntity.front(), &radii.front(), 1, bPropagateSmooth); if (SUCCESS == status) { EditElementHandle eehEx; status = SolidUtil::Convert::BodyToElement(eehEx, *srcSolid, nullptr, *ACTIVEMODEL); if (BentleyStatus::SUCCESS == status) { StatusInt nStatus = eehEx.ReplaceInModel(ele); if (0 == nStatus) { return true; } } return true; }
Answer Verified By: yuan kong
已成功获取edges,谢谢老师。请问获取到的edges的序号有什么规律吗?
您可以通过SolidUtil::TopologyID::IdFromFace获得FaceId。