/*获取相切边*/
vector<tag_t> GetTangentEdge(tag_t edgeTag , int tol)
{
try
{
std::vector<tag_t> vecEdge;
Session* theSession = Session::GetSession();
Part* workPart(theSession->Parts()->Work());
Part* displayPart(theSession->Parts()->Display());
ScCollector* scCollector;
scCollector = workPart->ScCollectors()->CreateCollector();
std::vector<Edge*> seedEdge(1);
seedEdge[0] = dynamic_cast<Edge*>(NXObjectManager::Get(edgeTag));
EdgeMultipleSeedTangentRule* edgeMultipleSeedTangentRule;
edgeMultipleSeedTangentRule = workPart->ScRuleFactory()->CreateRuleEdgeMultipleSeedTangent(seedEdge, tol, true);
std::vector<SelectionIntentRule*> rules(1);
rules[0] = edgeMultipleSeedTangentRule;
scCollector->ReplaceRules(rules, false);
vector<NXOpen::TaggedObject*> result = scCollector->GetObjects();
scCollector->Destroy();
for (int j = 0; j < result.size(); ++j)
{
Edge* tmpFace = dynamic_cast<Edge*>(result[j]);
vecEdge.push_back(tmpFace->Tag());
}
return vecEdge;
}
catch (exception& ex)
{
Modle_Face_Trim_Edge::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
}
}
【UG\NX二次开发】NXOpen 获取相切边(EdgeMultipleSeedTangentRule)
于 2023-11-09 15:15:20 首次发布
本文详细描述了如何使用C++函数GetTangentEdge获取给定边缘的切线,涉及Session、Part、ScCollector和规则创建等IT技术在几何处理中的应用。
摘要由CSDN通过智能技术生成