Files
2026-05-29 10:07:05 +08:00

111 lines
3.9 KiB
C#

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
/// <summary>
///
/// </summary>
public class CVT_TABLE
{
/// <summary>
/// 将Datatable数据转化需要的格式
/// 2021.3.25
/// </summary>
/// <param name="dt"></param>
/// <param name="baseQ_List"></param>
/// <param name="toolQ_List"></param>
/// <param name="ptQ_List"></param>
/// <param name="useTime_List"></param>
public static void DatatableTo_BaseToolTcp_List(DataTable dt,
out List<String> processCode_List,
out List<double[]> baseQ_List, out List<double[]> toolQ_List, out List<double[]> ptQ_List, out List<double[]> ptP_List,
out List<Int32> useTime_List, out string modelCode_Base, out string modelName_Base, out int reverse)
{
processCode_List = new List<String>();
baseQ_List = new List<double[]>();
toolQ_List = new List<double[]>();
ptQ_List = new List<double[]>();
ptP_List = new List<double[]>();
useTime_List = new List<Int32>();
modelCode_Base = dt.Rows[0]["ModelCode"].ToString ();
modelName_Base = dt.Rows[0]["ModelName"].ToString();
reverse = Convert.ToInt32(dt.Rows[0]["Reverse"]);
for (int i = 0; i < dt.Rows.Count; i++)
{
var processCode = dt.Rows[i]["ProcessCode"].ToString();
var baseQ = new double[7];
baseQ[0] = Convert.ToDouble(dt.Rows[i]["X_Base"]);
baseQ[1] = Convert.ToDouble(dt.Rows[i]["Y_Base"]);
baseQ[2] = Convert.ToDouble(dt.Rows[i]["Z_Base"]);
baseQ[3] = Convert.ToDouble(dt.Rows[i]["QX_Base"]);
baseQ[4] = Convert.ToDouble(dt.Rows[i]["QY_Base"]);
baseQ[5] = Convert.ToDouble(dt.Rows[i]["QZ_Base"]);
baseQ[6] = Convert.ToDouble(dt.Rows[i]["QW_Base"]);
var toolQ = new double[7];
toolQ[0] = Convert.ToDouble(dt.Rows[i]["X_Tool"]);
toolQ[1] = Convert.ToDouble(dt.Rows[i]["Y_Tool"]);
toolQ[2] = Convert.ToDouble(dt.Rows[i]["Z_Tool"]);
toolQ[3] = Convert.ToDouble(dt.Rows[i]["QX_Tool"]);
toolQ[4] = Convert.ToDouble(dt.Rows[i]["QY_Tool"]);
toolQ[5] = Convert.ToDouble(dt.Rows[i]["QZ_Tool"]);
toolQ[6] = Convert.ToDouble(dt.Rows[i]["QW_Tool"]);
var ptQ = new double[7];
ptQ[0] = Convert.ToDouble(dt.Rows[i]["X"]);
ptQ[1] = Convert.ToDouble(dt.Rows[i]["Y"]);
ptQ[2] = Convert.ToDouble(dt.Rows[i]["Z"]);
ptQ[3] = Convert.ToDouble(dt.Rows[i]["QX"]);
ptQ[4] = Convert.ToDouble(dt.Rows[i]["QY"]);
ptQ[5] = Convert.ToDouble(dt.Rows[i]["QZ"]);
ptQ[6] = Convert.ToDouble(dt.Rows[i]["QW"]);
var ptP = new double[6];
ptP[0] = Convert.ToDouble(dt.Rows[i]["X"]);
ptP[1] = Convert.ToDouble(dt.Rows[i]["Y"]);
ptP[2] = Convert.ToDouble(dt.Rows[i]["Z"]);
ptP[3] = Convert.ToDouble(dt.Rows[i]["RX"]);
ptP[4] = Convert.ToDouble(dt.Rows[i]["RY"]);
ptP[5] = Convert.ToDouble(dt.Rows[i]["RZ"]);
var useTime = Convert.ToInt32(dt.Rows[i]["UseTime"]);
processCode_List.Add(processCode);
baseQ_List.Add(baseQ);
toolQ_List.Add(toolQ);
ptQ_List.Add(ptQ);
ptP_List.Add(ptP);
useTime_List.Add(useTime);
}
}
/// <summary>
/// ToDataTable
/// </summary>
/// <param name="rows"></param>
/// <returns></returns>
public static DataTable ToDataTable(DataRow[] rows)
{
if (rows == null || rows.Length == 0) return null;
DataTable tmp = rows[0].Table.Clone(); // 复制DataRow的表结构
foreach (DataRow row in rows)
{
tmp.ImportRow(row); // 将DataRow添加到DataTable中
}
return tmp;
}
}