111 lines
3.9 KiB
C#
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;
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|