Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        private static CordinateType JsonToCordinate(JToken token)
        {
            var retval = new CordinateType();

            retval.X = (int)token["x"];
            retval.Y = (int)token["y"];
            return(retval);
        }
Ejemplo n.º 3
0
        /// <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;
        }
Ejemplo n.º 4
0
        /// <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;
        }