// **************边倒斜角(C角)***************************
static tag_t chamferCangle(vector<tag_t> edgeVec, char angle[])
{
try
{
Session* theSession = Session::GetSession();
Part* workPart(theSession->Parts()->Work());
Part* displayPart(theSession->Parts()->Display());
Features::Feature* nullFeatures_Feature(NULL);
Features::ChamferBuilder* chamferBuilder1;
chamferBuilder1 = workPart->Features()->CreateChamferBuilder(nullFeatures_Feature);
chamferBuilder1->FirstOffsetExp()->SetRightHandSide("5");
chamferBuilder1->SecondOffsetExp()->SetRightHandSide("5");
chamferBuilder1->AngleExp()->SetRightHandSide("45");
chamferBuilder1->SetOption(Features::ChamferBuilder::ChamferOptionSymmetricOffsets);
chamferBuilder1->SetMethod(Features::ChamferBuilder::OffsetMethodEdgesAlongFaces);
chamferBuilder1->SetFirstOffset(angle);
chamferBuilder1->SetSecondOffset(angle);
chamferBuilder1->SetAngle("45");
chamferBuilder1->SetTolerance(0.001);
ScCollector* scCollector1;
scCollector1 = workPart->ScCollectors()->CreateCollector();
std::vector<SelectionIntentRule*> rules;
for (int i = 0; i < edgeVec.size(); ++i)
{
Edge* edge1(dynamic_cast<Edge*>(NXObjectManager::Get(edgeVec[i])));
Edge* nullEdge(NULL);
EdgeTangentRule* edgeTangentRule;
edgeTangentRule = workPart->ScRuleFactory()->CreateRuleEdgeTangent(edge1, nullEdge, false, 0.05, false, false);
rules.push_back(edgeTangentRule);
}
scCollector1->ReplaceRules(rules, false);
chamferBuilder1->SetSmartCollector(scCollector1);
Features::Feature* feature1;
feature1 = chamferBuilder1->CommitFeature();
Expression* expression1(chamferBuilder1->FirstOffsetExp());
Expression* expression2(chamferBuilder1->AngleExp());
chamferBuilder1->Destroy();
return feature1->Tag();// 特征
}
catch (exception& ex)
{
return NULL_TAG;// 特征
}
}