Пример #1
0
        /// <summary>
        /// 获取基准面最小半径
        /// </summary>
        /// <param name="face"></param>
        /// <returns></returns>
        private double GetBaseMinDia(Face face)
        {
            double min = 9999;

            foreach (Edge eg in face.GetEdges())
            {
                if (eg.SolidEdgeType == Edge.EdgeType.Circular)
                {
                    foreach (Face fe in eg.GetFaces())
                    {
                        AnalyzeFaceSlopeAndRadius ar = new AnalyzeFaceSlopeAndRadius(fe);
                        ar.AnalyzeFace(new Vector3d(0, 0, 1));
                        if (min >= ar.MinRadius)
                        {
                            min = ar.MinRadius;
                        }
                    }
                }
            }
            if (min == 0)
            {
                min = 9999;
            }
            return(min);
        }
Пример #2
0
        /// <summary>
        /// 分析面
        /// </summary>
        /// <param name="face"></param>
        /// <param name="vec"></param>
        private void AnalyzeFace(Face face, Vector3d vec)
        {
            AnalyzeFaceSlopeAndRadius af = new AnalyzeFaceSlopeAndRadius(face);

            af.AnalyzeFace(vec);
            analyze.Add(af);
            if (this.MinRadius > af.MinRadius)
            {
                this.MinRadius = af.MinRadius;
            }
        }
Пример #3
0
        /// <summary>
        /// 分析面
        /// </summary>
        /// <param name="face"></param>
        /// <param name="vec"></param>
        private void AnalyzeFace(Face face, Vector3d vec)
        {
            AnalyzeFaceSlopeAndRadius af = new AnalyzeFaceSlopeAndRadius(face);

            af.AnalyzeFace(vec);
            analyze.Add(af);
            if (Math.Abs(this.MinRadius) >= Math.Abs(af.MinRadius) && !UMathUtils.IsEqual(af.MinRadius, 0) &&
                UMathUtils.IsEqual(af.FaceData.IntNorm, -1))
            {
                this.MinRadius = af.MinRadius;
            }
        }