news 2026/10/5 9:26:01

KLayout形状编辑教程:矩形、多边形、路径与文本绘制技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
KLayout形状编辑教程:矩形、多边形、路径与文本绘制技巧

1. 动手画之前,先搞懂KLayout里的“形状”体系

KLayout这个开源版图编辑器,我断断续续用了好几年。从最早只是拿它看看GDS文件,到后来真的用它在流片项目里画版图、做DRC检查、导出OAS,它一直是我工作流里离不开的一个工具。上一篇教程聊了界面布局和文件操作,这一篇我重点讲讲形状编辑——也就是你新建一个版图之后,怎么把矩形、多边形、路径、文本这些基础形状画出来,再改到满意为止。

标题虽然是“教程(二)”,但你要是第一次接触KLayout也完全不用慌。形状编辑这部分属于版图设计的底层功夫,就算你是搞封装、做PCB转版图、或者单纯拿KLayout当矢量图形工具用,里面的思路都是通用的。这篇我会把每个工具背后的“为什么”也讲清楚——比如为什么要设置网格、为什么画出来的多边形看起来有锯齿、为什么路径端头总是连不上。搞懂这些,你后面画复杂单元时能少走很多弯路。

1.1 对象、图层和Shape工具栏的关系

KLayout里的“形状”,说得直白一点,就是画在某个图层上的矢量对象。你在界面左侧竖排那组工具图标里,能看到画矩形(Box)、画多边形(Polygon)、画路径(Path)、插入文本(Text)这些按钮,它们共同构成Shape工具栏。工具栏里的每一个按钮,对应的都是一个独立的形状类型,而不是像某些画图软件那样只有一种“自由曲线”通吃全场。

这里必须强调一个概念:形状永远挂在图层上。你选中哪个图层,画出来的图形就属于哪个层。KLayout的右下角通常有Layer列表窗口,里面一层一层列得像PS里的图层面板。每层有独立的颜色和透明度,打开或关闭某一层的显示,只影响那一层的可见性,并不会删掉里面的图形。我见过不少新手第一次打开KLayout,画了半天发现图形颜色和隔壁层的颜色混在一起,最后才意识到自己选错了层。这个习惯越早养成越好:动手画之前,先看一眼右下角的当前层高亮的是哪个。

形状对象的底层数据结构也值得一提。KLayout底层把几何对象表达成带坐标点的闭合回路或路径序列。矩形不是独立类型,它能被拆解成多边形;路径可以转换成多边形;文本可以“炸开”成多边形。这意味着你在KLayout里做的所有编辑,最后本质都是在操作坐标点和轮廓。这也是为什么后面说到“双击对象”能进编辑模式,因为所有形状都暴露了顶点层面上的编辑能力。

1.2 网格、单位和坐标:为什么画出来的图总是歪的

很多人第一次用KLayout画图,最直观的困惑是:明明鼠标拖得好好的,图形边缘却“咔哒咔哒”地跳动;想画一个100纳米宽的东西,拖出来却是99.8。这个问题几乎都和网格(Grid)设置有关。

KLayout的绘图画布默认是有吸附网格的。鼠标移动时,光标坐标被吸附到网格节点上,所以图形尺寸只能落在网格的整数倍位置。这个设计的初衷非常实际:版图最终要用于制造,制造设备本身有分辨率极限,如果图形落在任意小数的坐标上,后续DRC(设计规则检查)会产生海量琐碎的“违例”报告。因此,画图前把网格尺寸设置为设计规则允许的最小步长,比如0.005微米或者0.001纳米,会让后续工作顺畅很多。

网格设置在KLayout里通常在“视图”菜单下,也可以直接敲快捷键G弹出网格设置对话框。设置内容分两块:一是“网格步长”,二是“是否启用吸附”。我的建议是,做芯片版图时网格步长设置为工艺PDK里规定的最小精度,做PCB或封装图形时设置为0.01mm或0.1mil,总之精度宁可细一点,不要粗。吸附功能建议保持开启——除非你要画一些非常规角度的斜线,那时可以按快捷键临时关掉吸附,画完再开回来。

另外,KLayout的状态栏会实时显示鼠标坐标。你若想画一个从(5, 8)到(12, 15)的矩形,不需要靠肉眼拖,直接在绘图状态下敲一次回车或S键,会弹出精确坐标输入框,输入起点和终点坐标,矩形就准确生成了。这个习惯我强烈建议养成,比用鼠标拖拽后再微调省太多时间。

2. 五种基础形状的绘制套路与坑位

2.1 矩形(Box):版图里最常用的形状

矩形在版图里就是“地基”。有源区、阱区、金属块、焊盘,90%的场景都能用矩形起步。

画矩形的操作非常简单:点工具栏的矩形图标,或者直接按键盘R键,然后在画布上拖一个方框出来。拖的时候注意状态栏的坐标变化,它能实时显示起终点坐标和当前的宽高。如果你只想画一个固定大小的矩形,更稳的做法是点击矩形工具后,按一下回车键(或者S键),在弹出的Editor Mode面板里直接输入“左下角坐标”和“右上角坐标”,或者输入“中心点坐标+宽高”,回车确认。

这里有个KLayout的细节:矩形实际上是特殊的多边形,但KLayout为了性能和易用性保留了它独立的类型。双击一个矩形,编辑面板里能看到它的底左坐标、右上坐标、宽度、高度这些属性。你想改成其他尺寸,直接改数值就行,比拖动灵活得多。要注意的是,矩形工具画出来的四个角永远是直角,没有倒角选项。想要圆角矩形或斜角矩形,要么转成多边形手动改顶点,要么后面通过布尔运算和切割来实现。

2.2 多边形(Polygon):顶点自由度最高的形状

多边形是版图里另一个无法绕开的形状类型。栅极图形、隔离结构、异形焊盘,这些都是多边形。

绘制多边形的操作流程是:按P键激活多边形工具,然后依次在画布上点击顶点,每点一下生成一个顶点,最后在终点位置点一下并按空格键(或者直接双击最后一个点)闭合多边形。如果中途点错了,按退格键可以撤销上一个顶点。整个过程中按住Ctrl键可以临时关闭网格吸附,方便你画非整数网格坐标的斜线。

多边形画完后,你随时可以双击它进入顶点编辑状态。进入编辑状态后,每个顶点都会显示成一个小方框,拖动它们可以改变形状。想插入新顶点,把鼠标放到某条边上双击,该边上就会多出一个新顶点。想删除顶点,右键点击顶点选择删除。这个编辑能力非常重要,因为实际版图很少有绝对整齐的矩形,很多结构需要在矩形基础上微调。

有一个坑必须提醒:多边形的顶点数量不是越多越好。每个顶点在工序上对应一次曝光图形修正,顶点过多轻则增大数据量,重则导致DRC跑出奇怪的圆角错误。能用5个顶点画出来的图形,不要用50个。我见过有人照着参考图一点一点描,整出一个几百个顶点的多边形,后面DRC报错跑了一天,一检查全是顶点导致的离散误差。

2.3 路径(Path):布线主力

路径适合用来画连线、引脚走线和导线条。按A键激活路径工具,然后连续点击几个点,KLayout会沿着这些点生成一条有宽度的带状图形。路径和普通多边形的核心区别在于:路径天然带有宽度属性和端点样式,后续调整时你只需要改宽度,整条带子的形状会跟着变,而不需要手动去调整上下两条轮廓线。

具体的控制参数在哪里调?绘制完成后双击路径,编辑面板里可以看到每个节点的坐标、路径总宽度(Width)、端点类型(Flush、Round、Square等)以及转角类型。宽度参数是绝对宽度,不是半宽,这个容易混淆,我看到不少人把宽度50填成25,导致走线窄了一半。端点类型一般用Flush,也就是端面垂直截断,这种样式在大多数工艺里都合法;Round和Square会向外延伸出去一小截,在严格的设计规则下可能出现额外的工艺几何,需要留意。转角类型通常用斜切或圆弧,你可以根据制造工艺要求来选。

路径的编辑自由度也很高。双击路径后,你可以点击路径节点拖动,也可以在某段线上双击插入新的拐弯点。想调整某一段的方向,直接拽节点就行。路径上所有节点的坐标都可以在右侧属性面板里精确输入,做等长走线时非常有用。

这里补充一个实用技巧:路径画好后如果发现宽度不对,可以选中路径后按Ctrl+I(或者通过右键菜单)打开属性面板改宽度,但如果这条路径被转成了多边形(有些导出流程会自动炸开),那就只能手动拖动两条边了。所以,能保持路径类型就尽量保持,转多边形的操作等布局定稿后再做。

2.4 文本(Text)与圆形

文本在版图里主要用来做标记、注释和层识别。按T键激活文本工具,在画布上点击一下,输入字符内容,回车确定。文本对象有字高、字体、位置、旋转等参数,双击它可以随时修改。需要注意KLayout默认字体是“default”,它生成的字符形状主要由直线和圆弧构成,适合做光刻标识。如果工艺允许,可以直接把文本转成多边形(右键选择“转换成多边形”),这样文本就变成了实实在在的图形,能参与布尔运算和后续加工。

圆形在KLayout里不是独立类型,画圆是通过“创建多边形(近似圆)”来完成的。工具栏上那个圆圈图标,实际生成的是一个由大量小线段逼近的圆。小线段数量越多,圆越平滑,但数据量也越大。版本较新的KLayout会在创建时弹窗问你分成多少段,一般用64段或128段足够;如果只是示意图,32段也凑合。

椭圆、圆环这些形状,KLayout原生工具里没有现成的。我的办法是先画一个圆,再用布尔运算生成圆环,或者在圆的基础上编辑顶点拉成椭圆。麻烦是麻烦了点,但胜在可控。

3. 一次完整实操:生成带Pad的电阻单元

理论聊了一堆,下面我们走一遍完整的实操。假设我要画一个简单的带Pad电阻单元,结构不复杂:一个长方形的电阻体,两端各接一个方形Pad,Pad再引出两条引脚。整个过程会用到矩形、多边形、路径、文本和最终的测量检查。

3.1 建立层和网格,准备画布

先新建一个布局文件。在KLayout里,新建版的默认单位是微米(µm),坐标数值直接对应微米,这对我来说最顺手。如果你习惯纳米,也可以在设置里改,但整个项目里一定要保持一致,混用单位是版图事故的高发原因。

然后设置网格。按G键打开网格设置,把网格步长设为0.005(也就是5纳米)。这个精度对大多数工艺规则来说够用了,画图形时既能保证平滑,又不至于因为精度过细让鼠标吸附得难受。

接着在右下角Layer窗口新建三个图层,名字随便起,但颜色一定要区分明显。我通常建:

  • active(有源区,用绿色)
  • poly(多晶硅,用红色)
  • pad(金属焊盘,用蓝色)

图层的新建方式是在Layer窗口右键选择“新建层”,然后在属性里改名、改颜色、改透明度。每建好一层,记得查看一下当前层是否自动切换到了你刚建的那层。

3.2 用矩形和多边形搭建主体

先在active层画电阻体。选中active层,按R键激活矩形工具,在画布上拖动一个宽20、长80的矩形。如果拖动的不准确,直接双击打开属性面板,把宽度改成20,高度改成80,位置放到坐标(10, 20)到(30, 100)这个范围。

电阻体一般不想做得太方正,我们给它做一点导入导出端的斜坡。双击这个矩形进入顶点编辑状态,选中右下角的顶点,把它往里拖5个单位。这样一个简单的梯形电阻体就出现了。如果你希望两个端面是垂直的,就把左上角和右上角的顶点位置对齐,形成两边垂直、上下有斜坡的形状。

接着画栅极。选中poly层,按P激活多边形工具。我想在电阻体中间加一条横向栅极,就在电阻体上方点击起点,水平拉过去,再点击下方两个点,形成一个闭合的矩形长条。栅极宽度设为3,长度比电阻体略宽,这样后续检查时看得清楚边界。

3.3 用路径连接引脚并调整细节

接下来画Pad。切到pad层,按R画两个边长为20的方形Pad,分别放在电阻体两端外侧。位置对齐是重点,我一般不用肉眼对齐,而是选中Pad后,在属性面板里输入精确坐标,让Pad的左边距等于电阻体右端的x坐标加上预留间距。

然后画引脚。按A激活路径工具,从Pad的边沿开始,往电阻体方向点几个点,生成一条宽度为5、长度方向连接Pad和电阻体的路径。画完路径后双击它,把端点类型设置为Flush,把转角类型设置为斜切,避免导出后DRC检查出圆角违规。

这里还要做一个常见的微调:复制右边那一整组Pad和引脚到左边。选中右边的Pad、引脚和部分电阻体图形,按Ctrl+D原位复制,然后按M激活移动工具,输入向左移动的距离,比如-100,就得到了对称的一侧。做对称结构时,这个“Ctrl+D再移动”的组合我几乎天天用。

最后在顶层加一个文本标注。按T键,在空白处点一下,输入字符“R_POLY_10K”,字高设为5,颜色选个和背景反差大的。文本建议放在不影响图形的角落,若后续要合并单元,记得把文本归到注释层。

3.4 最后的检查:尺寸测量与层确认

画完之后,千万别急着保存。先用尺子工具量一遍关键尺寸。KLayout的工具栏里有一个尺子图标,点它之后可以在画布上拉一条测量线,状态栏会实时显示距离。我通常量这几个地方:电阻体长度和宽度、Pad间距、引脚宽度、文本位置是否叠到了其他图形上。

测量时如果发现某个尺寸差了0.005这种细微偏差,多半是网格吸附导致顶点落在了非目标网格上。选中对象并按Ctrl+I打开属性面板,手动修正坐标即可。如果发现Pad跑到了别的层上,最简单的做法是选中它,Ctrl+X剪切,切到正确图层,再Ctrl+V粘贴,位置会保持在原地。

完整检查一遍后,按Ctrl+S保存文件。KLayout默认保存格式是.oas(OASIS)或.gds(GDSII)。如果工艺厂要求GDS格式,在导出时选好版本(通常是GDSII Stream格式),再确认单位和精度,导出即可。

4. 编辑形状时最常踩的坑(问题排查)

4.1 图形画到别的层上去了

这是出现频率最高的问题,几乎每个新手都会遇到。表现是:画了半天,发现图形全都在另一个层上,或者某个结构颜色不对。

原因一般有两个:一是创建新层后,当前层没有自动切换过去,大家手快直接开画,图形自然记到了旧层;二是图层窗口里某层被隐藏了,但你不知道,于是画出来的图形看起来“消失了”。

排查思路:先看右下角当前层高亮的是哪一层,再看菜单栏左侧工具栏上方有没有显示当前层名。如果当前层不是目标层,点一下目标层名,再画即可。如果画好了才发现层选错,选中有问题的图形,按Ctrl+X剪下,切到正确层,再Ctrl+V粘贴,图形位置不会变,只是归属层变化了。

隐藏层的检查在Layer窗口看层名前面的眼睛图标,灰掉的就表示不可见。我习惯把不用的层隐藏但保留,避免误画。

4.2 多边形顶点点错了、闭合后想改

画多边形时点错顶点,有经验的用户会直接按退格键回退。但如果你已经闭合了多边形,再想改就有点晕了——因为双击多边形虽然能进入编辑状态,但顶点的选中操作和普通“选中对象”的交互不太一样。

具体操作:在非编辑状态下双击多边形,进入顶点编辑。此时每个顶点显示为方框。拖动顶点本身就能改变位置。如果想把某个顶点精确移动到特定坐标,可以先选中该顶点,然后在属性面板输入目标坐标。垂直或水平移动整条边,可以按住Shift再拖动边线,KLayout会约束移动方向。

如果只是想给多边形增加一个倒角或缺口,更快捷的方式是用切割工具。KLayout内置了一个“切割”或者称为“划分”的功能,可以沿一条直线把多边形切成两半,再对其中一半做删除或移动。这种操作在画完一个复杂多边形后非常高效,不用反复增删顶点。

4.3 鼠标拖不动、选中和移动失灵

明明对象就在眼前,但用鼠标怎么都拖不动,或者点击没反应。这个问题的根源通常不是KLayout坏了,而是你当前处于某种特殊的编辑状态。

最常见的是你正在用某个绘图工具,此时画布处于“等待绘制”状态,鼠标点击不会选中已有对象,而是会生成新图形。解决办法是按Esc退出当前绘图工具,恢复正常的选择模式。

另外,如果你开启了“锁定图层”功能(在Layer窗口里某层被上了锁),该层上的图形是选中不了的。检查一下图层属性,把不需要保护层的锁解开。

移动对象时如果发现只能水平或垂直移动,那是移动工具默认开启了方向约束。按Shift键切换约束方向,或者松开Shift再拖拽,就能自由移动。另一个常见问题是移动后图形落到了非网格位置,此时打开吸附或直接用坐标输入,把位置修正回来。

4.4 路径端头连不上、转角处有缺口

路径连不上的问题通常不是路径本身坏了,而是端头样式导致的视觉误差。默认的Flush端头是平齐的,但如果两条路径的端头没有完全重叠,放大之后会看到一条细缝。要解决它,最简单的办法是让路径的端点略微“侵入”到另一条路径内部,覆盖至少半个网格,再用布尔运算的合并功能把两条路径合并成一个对象。

转角处有缺口多半是路径宽度不统一导致的。检查每条路径属性里的宽度值是否一致,KLayout的路径宽度在每段上是独立的,如果你复制了另一条路径再改宽度,可能出现前半段是5、后半段是8的情况。修复方法是选中路径,双击进入编辑状态,把所有段的宽度统一设为同一数值。

4.5 常用快捷键速查表

最后整理一份我在KLayout里用得最多的快捷键,表格汇总放在这里,方便你贴在屏幕边上:

操作快捷键备注
绘制矩形R点按两角成框
绘制多边形P逐个点顶点,空格闭合
绘制路径A连续点转折点,回车结束
插入文本T设置字高和字体
撤销Ctrl+Z撤销一步
复制对象Ctrl+C复制到剪贴板
原位复制Ctrl+D在原位置复制,随后移动
移动对象M然后可直接输入位移向量
旋转对象右键菜单或属性面板填角度
删除对象Delete删除选中对象
放大/缩小滚轮鼠标所在点为缩放中心

这些快捷键在不同版本KLayout里基本稳定,个别版本可能会微调,但大方向不会变。如果你按了没反应,先看一眼菜单栏对应的菜单后面写的快捷键是不是改成了别的,再对着改也行。

我个人的习惯是:能键盘操作的尽量不用鼠标点菜单。画图速度上来了,改图时的从容感完全是两个档次。形状编辑这个功能看起来基础,但基础功扎实了,后面接触PCell(参数化单元)、脚本批处理和布尔运算时,你会发现自己理解得特别快。先把手头的矩形、多边形、路径玩熟,就是一个非常好的开始。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/5 9:25:43

扫地机器人SLAM导航工程实践:从点云滤波到Nav2调优

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/5 9:25:08

代码问答总找错文件:Graphify 不用向量库,AST 建图反而更准

本文摘要:向量检索按相似度召回片段,代码问答常落到词面相近的错误文件。Graphify 用 AST 把代码与配置建成可查询图谱,每条边带行号与理由,可逐条核验。 一、问题与结论 在 Claude Code 里问「订单金额在哪算的」,检…

作者头像 李华
网站建设 2026/10/5 9:24:58

AD5940阻抗测量实战:从源码获取到工程调试的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/5 9:21:21

无线网络安全实验全流程:从抓包到防御的完整复现指南

简介:这份《无线网络安全实验》PDF 面向信息安全、网络工程等专业的学生与实验指导教师,对应《信息系统安全技术及应用》课程中的「无线网络安全性研究与实践」实验项目,可用于课程实验报告撰写、实验流程复盘与安全技术入门练习。资源包内共…

作者头像 李华
网站建设 2026/10/5 9:21:21

智能编程助手实践:从上下文工程到代码审查的人机协作指南

作为常年跟代码打交道的开发者,我最近两年最直观的感受是:编程这件事的底层逻辑正在被重构。以前我们说的"编程",是从零敲键盘写每一行逻辑;现在越来越多的人聊的是"ai编程""智能编程助手平台"&…

作者头像 李华
网站建设 2026/10/5 9:21:19

无线网络安全实验全路径:从抓包分析到WPA3防御与Kismet监测

简介:这份《无线网络安全实验》PDF 面向信息安全、网络工程等专业的学生与实验指导教师,对应《信息系统安全技术及应用》课程中的「无线网络安全性研究与实践」实验项目,可用于课程实验报告撰写、实验流程参考与安全技术入门学习。资源包内共…

作者头像 李华