标签:nat wing == 获取 ddr alt inf soc mes
需求:获得图纸上的尺寸属于哪个视图和图纸页
今天看到有个兄弟问了这个问题,这个需求,我以前给公司开发的工具中用到过。
但以前好像是忘记写到博客上了,今天专门记录一下。
NX9+VS2012 #include <uf.h> #include <uf_draw.h> #include <uf_drf.h> #include <uf_assem.h> #include <uf_obj.h> UF_initialize(); //假设已知当前只有两张图纸页 //获得所有图纸页tag int num_drawings = 0; tag_p_t drawing_tags = NULL_TAG; UF_DRAW_ask_drawings(&num_drawings, &drawing_tags); tag_t workPartTag = UF_ASSEM_ask_work_part(); //遍历所有尺寸 NXString ExpName; string FeatureExpNameStr; string StrRight; tag_t dimTag = NULL_TAG; while (!(UF_OBJ_cycle_objs_in_part(workPartTag, UF_dimension_type, &dimTag)) && dimTag) { //获取尺寸值 int dim_subtype = 0; double dim_origin[3]; UF_DRF_dim_info_p_t dim_info; UF_DRF_ask_dim_info(dimTag, &dim_subtype, dim_origin, &dim_info); string DimValue = dim_info->text_info->text->full_string; //找尺寸属于哪个视图 tag_t FindViewTag = dim_info->dim_line_info->assoc_objs->assoc_object_view_tag; //找视图属于哪个图纸页 tag_t FindDrawTag = NULL_TAG; UF_DRAW_ask_drawing_of_view(FindViewTag, &FindDrawTag); if (FindDrawTag == drawing_tags[0])//第一张图纸页里面的所有尺寸 { //获取尺寸原点位置 double DimOrigin[3]; DimOrigin[0] = dim_info->text_info->origin[0]; DimOrigin[1] = dim_info->text_info->origin[1]; DimOrigin[2] = dim_info->text_info->origin[2]; //重置原点位置 double NewDimOrigin[3] = {10, 10, 10}; UF_DRF_set_origin(dimTag, NewDimOrigin); } else if(FindDrawTag == drawing_tags[1])//第二张图纸页里面的所有尺寸 { //获取尺寸原点位置 double DimOrigin[3]; DimOrigin[0] = dim_info->text_info->origin[0]; DimOrigin[1] = dim_info->text_info->origin[1]; DimOrigin[2] = dim_info->text_info->origin[2]; //重置原点位置 double NewDimOrigin[3] = {50, 50, 50}; UF_DRF_set_origin(dimTag, NewDimOrigin); } } UF_terminate(); 阿飞 2021年6月16日
阿飞
2021年6月16日
NX二次开发-UF_DRF_ask_dim_info获得图纸尺寸属于哪个视图和图纸页
标签:nat wing == 获取 ddr alt inf soc mes
原文地址:https://www.cnblogs.com/nxopen2018/p/14891532.html