Ejemplo n.º 1
0
        /// <summary>
        /// 仿射变化后的图像上的点 转换成机械点
        /// </summary>
        /// <param name="ItemName">轨迹中点元素名称</param>
        /// <param name="SnapPoint">拍照位置的机械点</param>
        /// <param name="visionPoint">仿射变化后的图像上的点</param>
        /// <param name="OffsetX">最后的统一补偿X</param>
        /// <param name="OffsetY">最后的统一补偿Y</param>
        /// <param name="OffsetZ">最后的统一补偿Z</param>
        /// <param name="DispTraceName">轨迹名称</param>
        public void TransPoint(string ItemName, XYUPoint SnapPoint, XYUPoint visionPoint, double OffsetX, double OffsetY, double OffsetZ, string DispTraceName = "FiristTrace")
        {
            if (dispTraces.ContainsKey(DispTraceName))
            {
                int index = dispTraces[DispTraceName].FindIndex((t) => t.ItemName == ItemName);
                if (index == -1)
                {
                    return;
                }
                DispTraceBaseElement tem = null;
                tem = dispTraces[DispTraceName][index];

                if (tem.GetType() == typeof(DispTraceBaseElementDelay) || tem.GetType() == typeof(DispTraceBaseElementIo) || tem.GetType() == typeof(DispTraceBaseElementEnd))
                {
                    return;
                }
                if (!tem.bIsAllPointMachine)
                {
                    if (tem.GetType() == typeof(DispTraceBaseElementPoint))
                    {
                        ((DispTraceBaseElementPoint)tem).PointCoordinate.dMx = XYUR_Pin.GetDstPonit(visionPoint, SnapPoint).x + OffsetX;
                        ((DispTraceBaseElementPoint)tem).PointCoordinate.dMy = XYUR_Pin.GetDstPonit(visionPoint, SnapPoint).y + OffsetY;
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 仿射变化后的图像上的圆弧上各点 转换成机械点
        /// </summary>
        /// <param name="ItemName">轨迹中圆弧元素名称</param>
        /// <param name="SnapPoint">拍照位置的机械点</param>
        /// <param name="StatrtVPonit">仿射变化后的图像上的圆弧的起始点</param>
        /// <param name="CenterVPonit">仿射变化后的图像上的圆弧的圆心点</param>
        /// <param name="StatrtEPonit">仿射变化后的图像上的圆弧的终止点</param>
        /// <param name="OffsetX">最后的统一补偿X</param>
        /// <param name="OffsetY">最后的统一补偿Y</param>
        /// <param name="OffsetZ">最后的统一补偿Z</param>
        /// <param name="DispTraceName">轨迹名称</param>
        /// <summary>

        public void TransArc(string ItemName, XYUPoint SnapPoint, XYUPoint StatrtVPonit, XYUPoint CenterVPonit, XYUPoint StatrtEPonit, double OffsetX, double OffsetY, double OffsetZ, string DispTraceName = "FiristTrace")
        {
            if (dispTraces.ContainsKey(DispTraceName))
            {
                int index = dispTraces[DispTraceName].FindIndex((t) => t.ItemName == ItemName);
                if (index == -1)
                {
                    return;
                }
                DispTraceBaseElement tem = null;
                tem = dispTraces[DispTraceName][index];

                if (tem.GetType() == typeof(DispTraceBaseElementDelay) || tem.GetType() == typeof(DispTraceBaseElementIo) || tem.GetType() == typeof(DispTraceBaseElementEnd))
                {
                    return;
                }
                ((DispTraceBaseElementArc)tem).cStartPoint.dMz  = ((DispTraceBaseElementArc)tem).cStartPoint.dMz + OffsetZ;
                ((DispTraceBaseElementArc)tem).cCenterPoint.dMz = ((DispTraceBaseElementArc)tem).cCenterPoint.dMz + OffsetZ;
                ((DispTraceBaseElementArc)tem).cEndPoint.dMz    = ((DispTraceBaseElementArc)tem).cEndPoint.dMz + OffsetZ;
                if (!tem.bIsAllPointMachine)
                {
                    if (tem.GetType() == typeof(DispTraceBaseElementArc))
                    {
                        ((DispTraceBaseElementArc)tem).cStartPoint.dMx  = XYUR_Pin.GetDstPonit(StatrtVPonit, SnapPoint).x + OffsetX;
                        ((DispTraceBaseElementArc)tem).cStartPoint.dMy  = XYUR_Pin.GetDstPonit(StatrtVPonit, SnapPoint).y + OffsetY;
                        ((DispTraceBaseElementArc)tem).cCenterPoint.dMx = XYUR_Pin.GetDstPonit(CenterVPonit, SnapPoint).x + OffsetX;
                        ((DispTraceBaseElementArc)tem).cCenterPoint.dMy = XYUR_Pin.GetDstPonit(CenterVPonit, SnapPoint).y + OffsetY;
                        ((DispTraceBaseElementArc)tem).cEndPoint.dMx    = XYUR_Pin.GetDstPonit(StatrtEPonit, SnapPoint).x + OffsetX;
                        ((DispTraceBaseElementArc)tem).cEndPoint.dMy    = XYUR_Pin.GetDstPonit(StatrtEPonit, SnapPoint).y + OffsetY;
                    }
                }
            }
        }