c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇

打印 上一主题 下一主题

主题 876|帖子 876|积分 2628

原文作者:aircraft
原文地点:https://www.cnblogs.com/DOMLX/p/18729664
 
 
第一 简介

又是好久没更新了,本日先容个半导体/led行业天生晶圆片map图的小demo程序。
 
在半导体和led中经常必要对下图中的一个个晶圆片上的一个个die(晶圆)天生一个总体的map图,不管是检测中用来表现晶圆片上各个Die的优劣分布,还是用作于点击晶圆移动查看都是有必要的。
 
 

 
 
 像正常在半导体大概LED装备公司中工作过的人基本都有完整的map的表现控件的封装代码,但是如果你是刚跨行过来,大概是自己想研究学习,那么基本就要自己开辟一个MAP控件。比如下图那样的就是
工业公司开辟的MAP控件led软件上表现的效果。
 

 
第二 demo布局

工具环境是在VS2015下   c#6.0以下的语法环境 基于c#和winfrom的对话框程序
 

 
mainFrom.cs就是个表现作用的窗体
waferDie.cs里只定义了Die类内里存放每个Die的行列坐标和颜色信息以及一些其他信息比如检测优劣等
WaferMapControl.cs就是创建个用户控件类,在上面实现绘制MAP功能,外部只要把晶圆的队列数组传入就可以直接利用
非常简单的三个文件,只要自己创建一下名字相同的三个代码文件,然后复制我下面的代码进去就可以运行利用了。注意:WaferMapControl是个用户控件,可以点添加,选择用户控件,然后改一下名字。
第三 代码

 mainFrom界面图:
 

中间添加了一个panel的控件,属性为填充
 
 
 
 mainFrom.cs代码:
 
[code]using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace waferMpingTest1{    public partial class mainFrom : Form    {        public mainFrom()        {            InitializeComponent();            InitializeWaferMap();            //GenerateTestData(1000000); // 天生测试数据            GenerateTestData2(10); // 天生测试数据        }        WaferMapControl waferMap = new WaferMapControl        {            Dock = DockStyle.Fill,            BorderStyle = BorderStyle.FixedSingle        };        private void InitializeWaferMap()        {                        waferMap.DieClicked += (s, e) =>                MessageBox.Show($"Clicked Die: ({e.Die.Row}, {e.Die.Column})");            panel1.Controls.Add(waferMap);            //Controls.Add(waferMap);        }        private void GenerateTestData(int count)        {            var random = new Random();            var dies = new List(count);            for (int i = 0; i < count; i++)            {                dies.Add(new WaferDie                {                    Row = random.Next(-100, 100),                    Column = random.Next(-100, 100),                    DieColor = Color.FromArgb(                        random.Next(256),                        random.Next(256),                        random.Next(256))                });            }            //WaferMapControl map = new WaferMapControl();            waferMap.LoadData(dies);            //if (Controls[0] is WaferMapControl map)            //map.LoadData(dies);        }        private void GenerateTestData2(int count)        {            var random = new Random();            var dies = new List(count);            for (int i = -count; i < count; i++)            {                for(int j = -count;j

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表