/// <summary> /// 得到数据来源的开挖坐标系 /// </summary> /// <param name="id">数据来源ID</param> /// <param name="pts"></param> /// <returns></returns> public static bool get_KWZBPt3(string id, out sg_Vector3[] pts) { // 坐标系ID pts = new sg_Vector3[3]; string zbxtid = ColumnType.ConvertStringNotDBNull(BaseBll.GetSingleValue( $"SELECT ZBXTID FROM SJLYK WHERE ID='{id}'")); if (string.IsNullOrEmpty(zbxtid)) { //没有坐标系不计算 return(false); } //获取坐标系的控制控制点坐标 //cl 2016/09/21 这里应是获取开挖坐标系 DataSet ds = GCKWZBXTKBLL.GetKZDZBByZTXTID(zbxtid); if (ds.Tables[GCKWZBXTKModel.TableName].Rows.Count == 0) { //没有坐标系不计算 return(false); } string ydid = ds.Tables[GCKWZBXTKModel.TableName].Rows[0][GCKWZBXTKModel.YDID].ToString(); //if (!string.IsNullOrEmpty(ydid)) //{ if (string.IsNullOrEmpty(ydid))//修改 xyb,为什么是有值还不计算? { //没有原点坐标,不计算 return(false); } string hzbid = ds.Tables[GCKWZBXTKModel.TableName].Rows[0][GCKWZBXTKModel.HZBID].ToString(); if (string.IsNullOrEmpty(hzbid)) { //没有x方向坐标,不计算 return(false); } string zzbid = ds.Tables[GCKWZBXTKModel.TableName].Rows[0][GCKWZBXTKModel.ZZBID].ToString(); if (string.IsNullOrEmpty(zzbid)) { //没有y方向坐标,不计算 return(false); } //开挖坐标系原点坐标 DataRow drYD = ds.Tables[GCKZDZBKModel.TableName].Rows.Find(ydid); double x = double.Parse(drYD["X"].ToString()); double y = double.Parse(drYD["Y"].ToString()); double z = double.Parse(drYD["Z"].ToString()); pts[0] = new sg_Vector3(x, y, z); //开挖坐标系X坐标 DataRow hdr = ds.Tables[GCKZDZBKModel.TableName].Rows.Find(hzbid); x = double.Parse(hdr["X"].ToString()); y = double.Parse(hdr["Y"].ToString()); z = double.Parse(hdr["Z"].ToString()); pts[1] = new sg_Vector3(x, y, z); //开挖坐标系Y坐标 DataRow zdr = ds.Tables[GCKZDZBKModel.TableName].Rows.Find(zzbid); x = double.Parse(zdr["X"].ToString()); y = double.Parse(zdr["Y"].ToString()); z = double.Parse(zdr["Z"].ToString()); pts[2] = new sg_Vector3(x, y, z); return(true); }