
void AskDimBoundary(tag_t dim_tag)
{
//获得尺寸字体大小
int dim_subtype = 0;
double dim_origin[3];
UF_DRF_dim_info_p_t dim_info;
UF_DRF_ask_dim_info(dim_tag, &dim_subtype, dim_origin, &dim_info);
double DimSize = dim_info->text_info->size;
NXOpen::Session *theSession = NXOpen::Session::GetSession();
NXOpen::Part *workPart(theSession->Parts()->Work());
NXOpen::Part *displayPart(theSession->Parts()->Display());
//获得尺寸的高度因子
NXOpen::Annotations::HorizontalDimension *horizontalDimension1(dynamic_cast<NXOpen::Annotations::HorizontalDimension *>(NXOpen::NXObjectManager::Get(dim_tag)));
NXOpen::Annotations::LinearDimensionBuilder *linearDimensionBuilder1;
linearDimensionBuilder1 = workPart->Dimensions()->CreateLinearDimensionBuilder(horizontalDimension1);
double height_size = linearDimensionBuilder1->Style()->LetteringStyle()->GdtFrameHeightFactor();
//计算椭圆框的高度(字体大小*高度因子)
double block_height = DimSize * height_size;
//计算椭圆框的宽度(字体大小*高度因子*2)
double block_length = DimSize * height_size * 2;
//打印
char msg[256];
sprintf_s(msg, "高度%f
宽度%f", block_height, block_length);
UF_UI_open_listing_window();
UF_UI_write_listing_window(msg);
}
宽度乘以2我记得好像是之前请教的唐工
阿飞
2021年8月2日