private static void MoveCurrCurveAndExtend(ref Curve currCurve, Curve preCurve, double distance)
        {
            //先把第二条直线移动到和前一条直线共线
            XYZ dir = currCurve.GetNormalInXoy(preCurve.GetEndPoint(0));

            currCurve = currCurve.CreateTransformed(Transform.CreateTranslation(dir * distance));

            var pts = CurveUtils.ComputeClosestEndPoints(preCurve, currCurve);

            if (!pts[0].IsAlmostEqualTo(pts[1]))
            {
                var   starPoint = pts[0];
                var   endPoint  = currCurve.GetEndPoint(1);
                Curve currTemp  = currCurve.Clone();
                currTemp.MakeUnbound();

                IntersectionResult intersectionResult;
                intersectionResult = currTemp.Project(starPoint);
                double start = intersectionResult.Parameter;
                intersectionResult = currTemp.Project(endPoint);
                double end = intersectionResult.Parameter;
                currTemp.MakeBound(start, end);
                currCurve = currTemp.Clone();
            }
        }
        private static bool DealWithCurrTwoCurvres(ref Curve currCurve, ref Curve preCurve, out Line tempLine, double tolerance)
        {
            bool isMovedCurrCurve = false;

            tempLine = null;

            if (preCurve.GetEndPoint(1).IsAlmostEqualTo(currCurve.GetEndPoint(0)))
            {//首尾相连,不需要处理
            }
            else
            {//需要处理
                bool isParallel = CurveUtils.IsAlmostParallelToByAngle(preCurve, currCurve);
                if (isParallel)
                {//平行,求距离,距离小于300mm,将第二条直线移动到第一条直线的延长线上;否则直接相连
                    double distance = preCurve.DistanceTo(currCurve);
                    if (distance <= tolerance /*&& distance > 1e-6*/)
                    {
                        isMovedCurrCurve = true;
                        MoveCurrCurveAndExtend(ref currCurve, preCurve, distance);
                    }
                    else
                    {
                        //直接相连
                        var pts = CurveUtils.ComputeClosestEndPoints(preCurve, currCurve);
                        if (!pts[0].IsAlmostEqualTo(pts[1]))
                        {
                            tempLine = Line.CreateBound(pts[0], pts[1]);
                        }
                    }
                }
                else
                {//不平行,延长两条线,求交点
                    ExtendTwoCurves(ref currCurve, ref preCurve);
                }
            }

            return(isMovedCurrCurve);
        }