原理图与 PCB 布局
在查看器中编辑
在 agentee view 中手动移动元件、布线和放置过孔,并保存回同一个 TOML 文件。
agentee view 的 2D PCB 布局页面用于手动编辑布局。编辑保留在窗口中,直到 save(ctrl+S)通过 CLI 使用的相同保留注释和顺序的写入器将其写入 .pcb.toml;revert 会丢弃它们。每个编辑都会在后台以 check 的方式进行检查,因此诊断面板和网络表会随之更新,标题栏会统计未保存的布局。当磁盘上的文件在未保存编辑的情况下发生变化时,页面会询问是保留您的编辑还是加载文件。在未保存编辑的情况下关闭窗口时会先询问。
| 按键 | 功能 |
|---|---|
| 单击 | 选择元件、走线、过孔或飞线;再次点击选中的项目会选择指针下的下一个项目 |
| 拖动 | 移动它:带有标签的元件、过孔、走线拐角或整个走线段;选中的项目优先于其下方的项目 |
| 右键或中键拖动,滚轮 | 平移,缩放 |
| R, shift+R | 将选中的元件旋转 90 度 |
| Del | 删除选定的走线或过孔 |
| X | 布线工具:点击焊盘、过孔或走线开始,点击添加 45 度拐角,/ 翻转弯曲方向,V 放置过孔并移动到该网络类过孔可达的下一层,Backspace 回退一步,Enter、双击或点击该网络的铜层结束 |
| V | 过孔工具:点击带有网络的铜层以放置该网络的网络类过孔 |
| PgUp, PgDn | 活动层 |
| ctrl+Z, ctrl+shift+Z | 撤销,重做 |
| Esc | 取消走线,返回选择模式,清除选择 |
移动会吸附到工具栏中选择的网格。新建走线使用网络类的线宽(没有 width 键);属性面板用于设置走线的网络、层和独立线宽,过孔的位置、网络和类型,以及元件的位置、旋转、侧和 locked。选中的飞线可以交给自动布线器,作为单个连接或作为其整个网络,规则与 agentee route 相同。由 [[fanouts]] 或 [[stitching]] 规则放置的过孔,或 count 行中的一个元素,在你移动、更改或删除它时,会从该规则中移除:规则会在该位置获得一个 skip_at 条目,该过孔则作为独立的 [[vias]] 写入。
工具栏中的 reset 会清除你勾选的内容:布线(走线、过孔和引擎的计划部分)、[[fanouts]] 和 [[stitching]] 规则、带有已存储填充的铺铜区域,以及丝印标签位置,并可以使用放置器重新放置所有未锁定的元件(agentee place,带种子)。与所有编辑一样,在保存之前它保持未保存状态。new layout 在 PCB 布局选项卡上会要求输入名称、电路板和原理图,在项目旁边写入 NAME.pcb.toml,并且除非你取消勾选,否则首先使用放置器放置所有元件。新文件会为原理图中的每个地网络在每个铜层上创建一个铺铜区域,并且当原理图有射频网络时,创建一个间距为 2.5 mm 的地过孔 [[stitching]] 网格,并在其网络类具有 coplanar_gap 时沿射频走线创建围栏。引擎卡片上的 tie plane pads 会在当前窗口的 PCB 布局上运行 agentee tie,而地网络的选中飞线会在布线前提供 tie pads to the plane。
layout engine 卡片会在当前窗口中的 PCB 布局上运行 agentee layout 的各个阶段(参见 docs/layout-engine-2.md),包括未保存的编辑:run 执行从..到..的阶段,run X only 重新运行单个阶段,stop 在当前运行的阶段结束后停止。编辑在运行期间暂停。结果像其他编辑一样出现在窗口中,未保存且只需一次撤销即可恢复,并显示每个阶段的时间和分数,以及权重最大的分数项。phases to run 和 settings 会将 [engine] 写入 PCB 布局(phases、rounds、place_rounds、[engine.place] seed、[engine.access] via_in_pad、[engine.global]、[engine.detail]),而 default 会再次移除某个设置。具有 16 个或更多焊盘的选中元件会有 pinswap,它像 agentee pinswap 一样搜索其输入输出的交换,并在 write to the schematic 时将其写入原理图文件。
常见元件直接从封装绘制,无需加载模型:片式电阻、电容、电感、发光二极管和二极管(名称带有 Metric 尺寸)、垂直针脚排针和插座、SOIC、SOT、QFP、QFN、DFN、SON、TSLP 和 BGA 封装、晶体和振荡器、边缘安装 SMA 连接器,以及屏蔽框架(名称或描述中包含 Shield),绘制时不带顶盖。主体是 F.Fab 轮廓,高度来自 height、名称中的 _h1.25mm 部分或封装系列,引脚位于主体外的焊盘上。安装孔、基准点、焊盘测试点、焊接跳线和 Tag-Connect 封装没有主体。项目中的模型文件(3dmodels/ 或相对于它的路径)仍然优先于生成的元件;agentee models 会跳过生成的元件。
模型是 STEP 或 VRML,按照 KiCad 放置它们的方式放置(model_offset、model_rotate、model_scale)。模型路径按给定值查找,然后在 KICAD9_3DMODEL_DIR 及其类似变量、项目中的 3dmodels/、~/.cache/agentee/3dmodels 和 /usr/share/kicad/3dmodels 下查找,尝试 .step、.stp 和 .wrl,无论是否压缩。模型也可以是 https:// URL,指向 STEP 或 VRML 文件,因此供应商模型无需检入:它会被下载一次到 ~/.cache/agentee/3dmodels/url/,并计为项目自己的模型,因此优先于生成的元件。将 URL 固定到提交或发布,以便文件不会在你脚下改变。不在磁盘上的 KiCad 库模型会从 kicad-packages3D 仓库下载到缓存中:agentee models(MCP models)会获取所有模型并报告找到的内容,查看器会在后台获取。没有模型的元件是覆盖其 fab 轮廓的盒子,高度为 height,否则是从封装名称猜测的高度。STEP 文件使用 truck 进行网格化,应用其样式项的颜色和装配放置。边缘使用每个曲面曲线的 3D 曲线,而不是其 pcurves。未夹紧的 B 样条曲线和曲面会被裁剪到其有效节点范围。仍然无法评估为有限点的边缘曲线会作为直线进行网格化,而无法评估的曲面则被排除。
agentee export pcb:NAME -o NAME.step(MCP export)将 PCB 布局写为单个 STEP 装配体(AP214),用于外壳 CAD。电路板是叠层厚度的实体,带有其焊盘孔、槽和电路板切口;过孔被排除。每个元件是以其参考设计命名的实例:STEP 模型按供应商编写的方式放入,实体、颜色和子装配体保持完整,并且无论多少个元件使用它,都只写入一次。VRML 模型和生成的主体作为分面表面放入,而完全没有模型的元件作为覆盖其 fab 轮廓的盒子。坐标系是 PCB 布局的,Y 轴向上,电路板底面在 z = 0,因此顶面的元件从电路板厚度开始。报告列出了使用的 STEP 文件、分面的元件数量、绘制为盒子的元件以及未找到的模型。
焊盘的网络来自原理图(焊盘编号等于引脚编号)。铺铜区域按与所有其他网络及电路板边缘的间距填充,未连接到任何网络的孤岛会被移除。检查报告未布线的连接(附带飞线)、短路、间距违规、宽度小于其网络类或偏离其阻抗宽度的走线、靠近边缘的铜、占位区重叠、未放置的元件、未连接到任何对象的走线端点,以及与其他文本重叠、跨越丝印轮廓、位于焊盘上或超出电路板范围的丝印文本。占位区是绘制在 F.CrtYd / B.CrtYd 上的闭合轮廓,随元件放置(底部元件的占位区位于另一面);同一面上两个元件的占位区重叠是错误,任一面上的占位区覆盖其他元件的非金属化孔或覆盖 MountingHole* 封装的占位区(若无占位区则为其焊盘轮廓)也是错误。名称冲突时,用类型指定项目:agentee render pcb:lna、sch:lna、board:lna。