Ejemplo n.º 1
0
        /// <summary>
        ///     设置插补坐标系
        /// </summary>
        /// <param name="nCardNum"></param>
        /// <param name="crd"></param>
        /// <param name="nDim">坐标系维数</param>
        /// <param name="synVelMax">坐标系的最大合成速度</param>
        /// <param name="synAccMax">坐标系的最大合成加速度</param>
        /// <param name="evenTime">坐标系的最小匀速时间</param>
        /// <param name="profile">规划器对应的轴</param>
        /// <returns></returns>
        public override short SetLineOrdi(short nCardNum, short crd, short nDim, double synVelMax, double synAccMax,
                                          short evenTime, short[] profile)
        {
            short nRtn   = 0;
            var   crdPrm = new CMc.CRD_PRM();

            crdPrm.m_dimension = nDim;      // 建立二/三/四维的坐标系
            crdPrm.m_synVelMax = synVelMax; // 坐标系的最大合成速度是: 500 pulse/ms
            crdPrm.m_synAccMax = synAccMax; // 坐标系的最大合成加速度是: 2 pulse/ms^2
            crdPrm.m_evenTime  = evenTime;  // 坐标系的最小匀速时间为0

            crdPrm.m_profile1 = profile[0];
            crdPrm.m_profile2 = profile[1];
            crdPrm.m_profile3 = profile[2];
            crdPrm.m_profile4 = profile[3];
            crdPrm.m_profile5 = profile[4];
            crdPrm.m_profile6 = profile[5];
            crdPrm.m_profile7 = profile[6];
            crdPrm.m_profile8 = profile[7];

            crdPrm.m_setOriginFlag = 1; // 需要设置加工坐标系原点位置
            crdPrm.m_originPos1    = 0; // 加工坐标系原点位置在(0,0),即与机床坐标系原点重合
            crdPrm.m_originPos2    = 0;
            crdPrm.m_originPos3    = 0;
            crdPrm.m_originPos4    = 0;
            crdPrm.m_originPos5    = 0;
            crdPrm.m_originPos6    = 0;
            crdPrm.m_originPos7    = 0;
            crdPrm.m_originPos8    = 0;

            nRtn |= CMc.GT_SetCrdPrm(nCardNum, 1, ref crdPrm);
            return(nRtn);
        }