
半导体制造中,晶圆图(Wafer Map)是良率分析、缺陷追溯的核心载体。C# + WPF 凭借矢量渲染、数据绑定和丰富的设备通讯生态,成为桌面端晶圆可视化系统的常见选择。少量代码,就能画出第一张可交互的晶圆图。
半导体工厂的桌面软件通常需要:
相比 WinForms,WPF 在复杂图形和动画上更从容;相比 Web 方案,桌面端更容易拿到本地硬件和产线网络权限。
核心思路:生成落在圆形区域内的 Die 坐标,用 ItemsControl + Canvas 绑定渲染。
Die 模型:
public class Die
{
public double X { get; set; }
public double Y { get; set; }
public bool IsDefect { get; set; }
}生成晶圆数据:
var dies = new List<Die>();
int radius = 50, size = 12;
for (int x = -radius; x <= radius; x++)
for (int y = -radius; y <= radius; y++)
if (x * x + y * y <= radius * radius)
dies.Add(new Die {
X = x * size + 300,
Y = y * size + 300,
IsDefect = rnd.Next(100) < 5
});
DataContext = new { Dies = dies };XAML 绑定:
<ItemsControl ItemsSource="{Binding Dies}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate><Canvas/></ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding X}"/>
<Setter Property="Canvas.Top" Value="{Binding Y}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Rectangle Width="10" Height="10"
Fill="{Binding IsDefect, Converter={StaticResource DefectToBrush}}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>不到 20 行核心代码,就能得到一张带缺陷标记的晶圆图。红色代表缺陷 Die,绿色代表良品。
静态图只是起点。实际系统需要:
ScaleTransform + TranslateTransform,或 MatrixTransform 实现鼠标滚轮缩放。INotifyPropertyChanged 或 ObservableCollection 接收机台数据,动态刷新。Canvas 直接放几万个 Rectangle 会卡。改用 DrawingVisual 或 WriteableBitmap 批量绘制,或对 Die 做虚拟化。C# + WPF 让晶圆图从数据变成可交互的可视化界面。少量代码就能画出第一张图,但企业级系统的难点在于性能、设备集成和数据一致性。
先用十几行代码跑通“数据 → 渲染”,再逐步加上缩放、点击、实时更新和 MES 对接。 工具是画布,真正的价值在于把晶圆数据变成可决策的信息。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。