/// <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; } } } }
/// <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; } } } }