private string WriteCuttingDatasFunc(ushort flib, List <CuttingDataToCncDto> cuttings) { Focas1.IODBPSCD2 list = new Focas1.IODBPSCD2(); short i = 0; foreach (var prop in list.GetType().GetProperties()) { if (i >= cuttings.Count()) { break; } var feed = cuttings[i].Feedrate.GetDecimals(); var disp = cuttings[i].StandardDisplacement.GetDecimalsWithReference(cuttings[i].StandardDisplacement2); var disp2 = cuttings[i].StandardDisplacement2.GetDecimalsWithReference(cuttings[i].StandardDisplacement); var supple = cuttings[i].Supple.GetDecimals(); prop.SetValue(list, new Focas1.IODBPSCD2_data() { slct = 32767, feed = feed.Item1, power = cuttings[i].Power, freq = cuttings[i].Frequency, duty = cuttings[i].Duty, g_press = (short)(cuttings[i].GasPressure * 100), g_kind = cuttings[i].GasCode, g_ready_t = (short)(cuttings[i].GasSettingTime * 10), displace = (short)disp.Item1, supple = supple.Item1, edge_slt = cuttings[i].EdgeSlt, appr_slt = cuttings[i].ApprSlt, pwr_ctrl = cuttings[i].PwrCtrl, displace2 = disp2.Item1, gap_axis = cuttings[i].GapAxis, feed_dec = (char)feed.Item2, supple_dec = (char)supple.Item2, dsp2_dec = (char)disp2.Item2, pb_power = cuttings[i].PbPower, }, null); i++; if (i >= LaserLibraryCuttingDataQuantity) { break; } } short num = LaserLibraryCuttingDataQuantity; var ret = Focas1.cnc_wrpscdproc2(flib, 1, ref num, list); if (ret != 0) { var err_msg = GetCuttingDataErrorMessage(flib); return($"写入切割参数错误,{err_msg}"); } return(null); }
public string WriteSingleCuttingData(ushort flib, CuttingDataToCncDto cutting) { Focas1.IODBPSCD2 list = new Focas1.IODBPSCD2(); var feed = cutting.Feedrate.GetDecimals(); var disp = cutting.StandardDisplacement.GetDecimalsWithReference(cutting.StandardDisplacement2); var disp2 = cutting.StandardDisplacement2.GetDecimalsWithReference(cutting.StandardDisplacement); var supple = cutting.Supple.GetDecimals(); list.data1.slct = 32767; list.data1.feed = feed.Item1; list.data1.power = cutting.Power; list.data1.freq = cutting.Frequency; list.data1.duty = cutting.Duty; list.data1.g_press = (short)(cutting.GasPressure * 100); list.data1.g_kind = cutting.GasCode; list.data1.g_ready_t = (short)(cutting.GasSettingTime * 10); list.data1.displace = (short)disp.Item1; list.data1.supple = supple.Item1; list.data1.edge_slt = cutting.EdgeSlt; list.data1.appr_slt = cutting.ApprSlt; list.data1.pwr_ctrl = cutting.PwrCtrl; list.data1.displace2 = disp2.Item1; list.data1.gap_axis = cutting.GapAxis; list.data1.feed_dec = (char)feed.Item2; list.data1.supple_dec = (char)supple.Item2; list.data1.dsp2_dec = (char)disp2.Item2; list.data1.pb_power = cutting.PbPower; short num = 1; short start_num = cutting.ENo; var ret = Focas1.cnc_wrpscdproc2(flib, start_num, ref num, list); if (ret != 0) { var err_msg = GetCuttingDataErrorMessage(flib); return($"写入切割参数错误,{err_msg}"); } return(null); }