NX二次开发-获取图纸尺寸上椭圆边界框的大小

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日
原文地址:https://www.cnblogs.com/nxopen2018/p/14880081.html