private double GetFollowHeight(PierceParameters para) { double height = para.NozzleHeight; double max = GlobalModel.Params.LayerConfig.FollowMaxHeight; if (height > max) { height = max; } return(height); }
private void UpdateMachineInfo(MachineInformation info, PierceParameters piercePara) { info.Delay += piercePara.DelayTime / 1000.0; if (piercePara.IsStepTime) { info.Delay += piercePara.StepTime / 1000.0; } if (piercePara.IsExtraPuffing) { info.Delay += piercePara.ExtraPuffing / 1000.0; } }
private void PierceCore(PierceParameters para, CancellationToken token) { //Control Axis Z this.MoveZ(this.GetFollowHeight(para), token); //Control gas if (SystemContext.Hardware?.IsBlowingOn == false) { SystemContext.Hardware?.SetBlowingPara(para.GasKind, para.GasPressure); SystemContext.Hardware?.BlowingOn(); this.OnBlowingEnabledChanged?.Invoke(true); double delay = GlobalModel.Params.LayerConfig.OpenAirDelay; if (this.isFirst) { delay += GlobalModel.Params.LayerConfig.FirstOpenAirDelay; } token.WaitHandle.WaitOne((int)delay); } //Control focus //Control laser if (this.config.LaserEnabled) { var laserPara = new LaserParameter { FrequencyHz = para.PulseFrequency, DutyCircle = para.PulseDutyFactorPercent, VoltagePercentage = para.PowerPercent }; SystemContext.Hardware?.LaserOn(laserPara); this.OnLaserEnabledChanged?.Invoke(true); this.OnLaserParaChanged?.Invoke(laserPara); //Delay -> (Laser off -> Delay -> Laser on) token.WaitHandle.WaitOne((int)para.DelayTime); if (para.IsExtraPuffing) { SystemContext.Hardware?.LaserOff(); this.OnLaserEnabledChanged?.Invoke(false); token.WaitHandle.WaitOne((int)para.ExtraPuffing); } } }