/// <summary> /// 将CurveLoop压平在xoy平面 /// </summary> /// <param name="loop"></param> /// <returns>如果loop不能确定一个平面,则返回空</returns> public static CurveLoop ProjectXoy(this CurveLoop loop) { Plane plane = null; try { plane = loop.GetPlane(); } catch { /*loop没有在平面内*/ } if (plane != null && !plane.Normal.IsVertical()) { return(null); } XYZ vector = XYZ.Zero - new XYZ(0, 0, loop.FirstOrDefault().GetEndPoint(0).Z); Transform transform = Transform.CreateTranslation(vector); return(CurveLoop.CreateViaTransform(loop, transform)); }