C++ 2010
#include <NXOpen/Annotations.hxx>
#include <NXOpen/Annotations_AnnotationManager.hxx>
#include <NXOpen/Annotations_CenterlineCollection.hxx>
#include <NXOpen/SelectNXObjectList.hxx>
#include <NXOpen/NXObject.hxx>
#include <NXOpen/NXObjectManager.hxx>
//选择过滤
Selection::SelectionAction action = Selection::SelectionActionClearAndEnableSpecific;
std::vector<Selection::MaskTriple> maskArray(1);
maskArray[0] = Selection::MaskTriple( UF_solid_type, UF_all_subtype, UF_UI_SEL_FEATURE_CYLINDRICAL_FACE);//圆柱面
selection0->GetProperties()->SetSelectionFilter("SelectionFilter", action, maskArray);
//获取UI选取的圆柱面
std::vector<TaggedObject *> faces = selection0->GetSelectedObjects(); //得到圆柱面
//创建圆柱面中心线
Face *face2 (dynamic_cast<Face *>(NXObjectManager::Get(faces[0]->Tag())));
NXOpen::Annotations::Centerline3d *line1(NULL);
NXOpen::Annotations::Centerline3dBuilder*line1Builder;
line1Builder=workPart->Annotations()->Centerlines()->CreateCenterline3dBuilder(line1);
line1Builder->Face()->Add(face2);
line1Builder->Settings()->SetExtension(0.0);
NXOpen::NXObject*nXObject1;
nXObject1=line1Builder->Commit();
Features::Feature *centerline ;
line1Builder->Destroy();
原文:https://www.cnblogs.com/hqsalanhuang/p/14446448.html