/// <summary> /// 初始化控制参数 /// </summary> /// <param name="cardNo">控制卡号</param> /// <param name="nodeID">运动轴站号</param> /// <param name="cordinateType">坐标系类型</param> public ControlParamBase(ushort[] nodeID, CordinateType cordinateType = CordinateType.Absolute) { if (nodeID == null) throw new ArgumentNullException("运动轴站号数组为空"); this.NodeID = (ushort[])nodeID.Clone(); this.CordinateType = cordinateType; }
private static CordinateType JsonToCordinate(JToken token) { var retval = new CordinateType(); retval.X = (int)token["x"]; retval.Y = (int)token["y"]; return(retval); }
/// <summary> /// 初始化线性运动控制参数 /// </summary> /// <param name="nodeID">运动轴站号</param> /// <param name="disArray">运动距离</param> /// <param name="cordinateType">坐标系类型,默认为绝对坐标系</param> public MoveLineParam(ushort[] nodeID, int[] disArray, CordinateType cordinateType = CordinateType.Absolute) : base(nodeID, cordinateType) { if (disArray == null) throw new ArgumentNullException("运动距离数组为空"); if (nodeID.Length != disArray.Length) throw new ArgumentException("运动站号数与提供的运动距离数据量不同"); if (nodeID.Length > 5) throw new ArgumentException("超过了最大可同动轴数量"); this.DisArray = disArray; }
/// <summary> /// 初始化圆弧运动控制参数 /// </summary> /// <param name="nodeID">运动轴站号</param> /// <param name="angle">圆弧角度</param> /// <param name="centerArray">中心坐标</param> /// <param name="cordinateType">指示是否在绝对坐标系下运动,默认为绝对坐标系</param> public InterCirParam( ushort[] nodeID, int[] centerArray, double angle, CordinateType cordinateType = CordinateType.Absolute) : base(nodeID, cordinateType) { if (centerArray == null) throw new ArgumentNullException("运动距离数组为空"); if (nodeID.Length != 2) throw new ArgumentException("插补轴的数量应为2"); if (nodeID.Length != centerArray.Length) throw new ArgumentException("运动站号数与提供的运动距离数据量不同"); this.Angle = angle; this.CenterArray = centerArray; }