C# NX二次开发-求体、面的最小包容圆柱
NX自带ufun函数里有求体、面的最小包容方块。(UF_MODL_ask_bounding_box、UF_MODL_ask_bounding_box_aligned、UF_MODL_ask_bounding_box_aligned),但没有求最小包容圆柱。但有很多时候需要求最小包容圆柱。比如零件开圆棒料。这时需要通过一些方法来计算出最小包容圆柱。
上图是以各个面的法向生成的最小包容圆柱体。
1.先把体或面离散成点云。
theUf.Facet.AskDefaultParameters(out UFFacet.Parameters parameters);parameters.specify_max_facet_size = true;parameters.max_facet_size = 10;theUf.Facet.FacetSolid(body.Tag, ref parameters, out Tag facet_model);theUf.Facet.AskMaxFacetVerts(facet_model, out int maxVerticesInFacet);double[,] safeVertices = new double[maxVerticesInFacet, 3];