在项目实践中,针对nx图纸及对象的解析中一些注意点,做一些总结,为将来的工作备忘,希望给感兴趣的网友一些帮助。如有疏漏之处,还请评论区指正。
获取所有图纸页的方法
nxopen 方法
NXOpen::Drawings::DrawingSheetCollection *allDrafViews
= GetWorkPart()->DrawingSheets();
UFUN方法
int shtNum = 0;
tag_t *shts;
UF_DRAW_ask_drawings(&shtNum, &shts);
UI选项设置
在UI中想要获取图纸中的对象,需要首先设置一下cursor view
UF_UI_set_cursor_view(0);
获取图纸视图以获取其下对象
注意获取可视对象时必须要将对应的图纸页激活
nxopen:
NXOpen::Drawings::DrawingSheetCollection *allDrafViews
= GetWorkPart()->DrawingSheets();
NXOpen::Drawings::DrawingSheet * sheet = (*allDrafViews->begin());
sheet->Open();//必须将图纸页激活
for (auto obj : sheet->View()->AskVisibleObjects())
{
...
}
ufun:
int shtNum = 0;
tag_t *shts;
UF_DRAW_ask_drawings(&shtNum, &shts);
UF_DRAW_open_drawing(shts[0]);//打开图纸页
tag_t sheetView = NULL_TAG;
UF_DRAW_ask_view_of_drawing(shts[0], &sheetView);
int dispNum = 0;
tag_t *dispObjs;
UF_DRAW_ask_displayed_objects(sheetView, &dispNum, &dispObjs);