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); }