private string WritePiercingDatasFunc(ushort flib, List <PiercingDataToCncDto> piercings)
        {
            Focas1.IODBPIRC list = new Focas1.IODBPIRC();
            short           i    = 0;

            foreach (var prop in list.GetType().GetProperties())
            {
                if (i >= piercings.Count())
                {
                    break;
                }

                var def_pos  = piercings[i].StandardDisplacement.GetDecimalsWithReference(piercings[i].StandardDisplacement2);
                var def_pos2 = piercings[i].StandardDisplacement2.GetDecimalsWithReference(piercings[i].StandardDisplacement);

                prop.SetValue(list, new Focas1.IODBPIRC_data()
                {
                    slct         = 32767,
                    power        = piercings[i].Power,
                    freq         = piercings[i].Frequency,
                    duty         = piercings[i].Duty,
                    i_freq       = piercings[i].StepFrequency,
                    i_duty       = piercings[i].StepDuty,
                    step_t       = piercings[i].StepTime,
                    step_sum     = piercings[i].StepQuantity,
                    pier_t       = piercings[i].PiercingTime,
                    g_press      = (short)(piercings[i].GasPressure * 100),
                    g_kind       = piercings[i].GasCode,
                    g_time       = (short)(piercings[i].GasSettingTime * 10),
                    def_pos      = (short)def_pos.Item1,
                    def_pos2     = (short)def_pos2.Item1,
                    gap_axis     = piercings[i].GapAxis,
                    def_pos2_dec = (char)def_pos2.Item2,
                    pb_power     = piercings[i].PbPower,
                }, null);

                i++;
                if (i >= LaserLibraryPiercingDataQuantity)
                {
                    break;
                }
            }

            short num = LaserLibraryPiercingDataQuantity;
            var   ret = Focas1.cnc_wrpscdpirc(flib, 101, ref num, list);

            if (ret != 0)
            {
                var err_msg = GetPiercingDataErrorMessage(flib);

                return($"写入穿孔参数错误,{err_msg}");
            }

            return(null);
        }