BoardInfo.cs 7.5 KB
using URSoldering.Common;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;

using System.Windows.Forms;

namespace URSoldering.DeviceLibrary
{
    public class BoardInfo
    {
        /// <summary>
        /// 平均焊接时间
        /// </summary>
        public TimeSpan WeldTime = new TimeSpan(0);
        /// <summary>
        /// 电路板ID
        /// </summary>
        public int boardId { get; set; }

        /// <summary>
        /// 条码
        /// </summary>
        public string WareCode { get; set; }
        /// <summary>
        /// 机器人焊接时Z轴的高点
        /// </summary>
        public double ZHighValue { get; set; }

        /// <summary>
        /// 工位编号,夹具编号(每一个程序需要配置四个夹具的位置,防止位置偏差)
        /// </summary>
        public int StationNum { get; set; }

        /// <summary>
        /// 料号 
        /// </summary>
        public string PartNumber { get; set; }
        /// <summary>
        /// 电路板名称
        /// </summary>
        public string boardName { get; set; }

        /// <summary>
        /// 宽度
        /// </summary>
        public int boardWidth { get; set; }
        /// <summary>
        /// 长度
        /// </summary>
        public int boardLength { get; set; }
        /// <summary>
        /// 焊点列表
        /// </summary>
        public List<WeldPointInfo> pointList { get; set; }
        /// <summary>
        /// 原点坐标X
        /// </summary>
        public double originX { get; set; }
        /// <summary>
        /// 原点坐标Y
        /// </summary>
        public double originY { get; set; }
        /// <summary>
        /// 图片名称
        /// </summary>
        public string imgName { get; set; }
        /// <summary>
        /// 焊接预估时间
        /// </summary>
        public double planNeedTime { get; set; }
        /// <summary>
        /// 固定原点的位置,1=左上角,2=左下角,3=右上角,4=右下角
        /// </summary>
        public int orgType { get; set; }
        /// <summary>
        /// 已经焊接次数,每次修改板子都会重置
        /// </summary>
        public int solderingCount { get; set; }
        /// <summary>
        /// 焊接的时间,每次修改板子都会重置
        /// </summary>
        public double solderingTime { get; set; }
        /// <summary>
        /// 已经焊接次数,不重置
        /// </summary>
        public int solderCount { get; set; }
        /// <summary>
        /// 焊接的时间,不重置
        /// </summary>
        public double solderTime { get; set; }
        public Image myImage = null;
        public string GetDes()
        {
            return " 长度:" + boardLength + ",宽度:" + boardWidth + ",焊点数量:" + this.pointList.Count;

        }
        public Image GetImage()
        {
            if (myImage == null)
            {
                string path = ConfigAppSettings.GetValue(Setting_Init.BOARD_IMAGE_PATH);
                string imagePath = Application.StartupPath + "/" + path + "/" + imgName;
                string defaultImg = ConfigAppSettings.GetValue(Setting_Init.BOARD_IMAGE_DEFAULT);
                if (imgName != null && File.Exists(imagePath))
                {
                    System.Drawing.Image img = System.Drawing.Image.FromFile(imagePath);
                    System.Drawing.Image bmp = new System.Drawing.Bitmap(img);
                    img.Dispose();
                    myImage = bmp;
                }
                else
                {
                    return BoardManager.defaultImage;
                }
            }
            if (myImage == null)
            {
                return BoardManager.defaultImage;
            }
            else
            {
                return myImage;
            }

        }

        public double getImageOrgX()
        {
            double orgX = originX;
            if (orgType == 2)
            {
                orgX = originX + boardLength;
            }

            else if (orgType == 4)
            {
                orgX = originX + boardLength;
            }
            return orgX;
        }

        public double getImageOrgY()
        {
            double orgY = originY;

            if (orgType == 3)
            {
                orgY = originY - boardWidth;
            }
            else if (orgType == 4)
            {
                orgY = originY - boardWidth;
            }
            return orgY;
        }
    }

    /// <summary>
    /// 焊点信息
    /// </summary>
    public class WeldPointInfo
    {
        public WeldPointInfo()
        {
            isNeedClear = false;
            pointType = 0;
        }
        public WeldPointInfo(int hand)
        {
            //this.HandDirection = hand;
        }

        /// <summary>
        /// 焊点编号
        /// </summary>
        public int pointNum { get; set; }

        /// <summary>
        /// 焊点名字
        /// </summary>
        public string pointName { get; set; }

        public double RobotX { get; set; }
        public double RoobtY { get; set; }
        public double RobotZ { get; set; }
        public double RobotRX { get; set; }
        public double RobotRY { get; set; }
        public double RobotRZ { get; set; }

        /// <summary>
        /// 预热温度
        /// </summary>
        public int preheatTemperature { get; set; }
        /// <summary>
        /// 预热温度上限
        /// </summary>
        public int preheatTemperatureMax { get; set; }
        /// <summary>
        /// 预热温度下限
        /// </summary>
        public int preheatTemperatureMin { get; set; }
        /// <summary>
        /// 预热时间(秒)
        /// </summary>
        public double preheatTime { get; set; }
        /// <summary>
        /// 焊接温度
        /// </summary>
        public int weldTemperature { get; set; }
        /// <summary>
        /// 焊接温度上限
        /// </summary>
        public int weldTemperatureMax { get; set; }
        /// <summary>
        /// 焊接温度下限
        /// </summary>
        public int weldTemperatureMin { get; set; }
        /// <summary>
        /// 焊接时间(秒)
        /// </summary>
        public double weldTime { get; set; }
        /// <summary>
        /// 起始送丝速度
        /// </summary>
        public double startSendWireSpeed { get; set; }

        /// <summary>
        /// 起始送丝时间(秒)
        /// </summary>
        public double startSendWireTime { get; set; }
        /// <summary>
        /// 送丝速度
        /// </summary>
        public double sendWireSpeed { get; set; }

        /// <summary>
        /// 送丝时间(秒)
        /// </summary>
        public double sendWireTime { get; set; }

        /// <summary>
        /// 焊点类型,0=普通焊点,必须要焊接,1=左侧焊点,起始运行模式不焊接。2=右侧焊点,排料模式不焊接
        /// </summary>
        public int pointType { get; set; }
        /// <summary>
        /// 是否需要清洗烙铁头
        /// </summary>
        public bool isNeedClear { get; set; }
        /// <summary>
        /// 清洗时间,毫秒数
        /// </summary>
        public int ClearTime { get; set; }

        public URPointValue GetURPoint()
        {
            URPointValue p = new URPointValue(RobotX, RoobtY, RobotZ, RobotRX, RobotRY, RobotRZ);
            return p;

        }
    }
}