技术图纸
图纸是生成的,而非手工绘制:参数化 build123d 模型(或 STEP 文件)是唯一数据源,scripts/drawlib.py 从中派生出视图(隐藏线消除、剖面、剖面线),并添加工厂所需的标注。每次保存时自动运行图纸检查。输出结果是一个矢量 PDF 文件(每个图纸页面一个文件,可选 DXF/SVG),以及一个 PNG 预览文件——在您确认完成之前,请先查看此预览。
为何采用此方法:视图永远不会与模型不一致,修改参数即可重新生成所有图纸,并且同一模型可免费获得 STEP 文件和干涉检查。
优秀图纸应满足的条件
图纸是与零件制造和检验人员之间的契约。一个从未见过该项目的人必须能仅凭图纸制造出该零件。这决定了以下所有事项:只标注功能所需的尺寸,只对重要的要素标注公差,并说明每个功能表面应具有的外观。一张标注了所有边缘尺寸,但没有配合、粗糙度或几何公差的图纸,在审查人员和工厂看来是不可制造的。
选择路径
- 用户有 STEP 文件并希望快速生成图纸:运行
python scripts/step2drawing.py part.step [--section] [--lang en --projection third] [--units in] [--material ...] [--density ...] [--dxf]。它会生成视图、隐藏线、中心线、总体尺寸、标题栏和检查结果。然后明确说明功能尺寸、配合、公差和表面粗糙度仍需添加——并主动提供添加功能:同一模块中的auto_drawing()返回(sheet, views, issues)且out=None,因此您可以继续在 Python 中注释图纸(Y-up 导出使用--up y)。 - 任何必须制造的零件:在 Python 中对零件进行建模并编写图纸(工作流程如下)。STEP 输入仍然可以作为模型:
D.load_step(path)。
工作流程
- 首先明确功能。 针对每个零件,询问:哪些表面会与什么匹配?哪些必须是同轴/垂直/共面才能让机器正常工作?哪些尺寸来自外购件(轴承、销、螺钉)?这些将成为基准、配合和公差。如果用户有报告、BOM 或旧图纸,请阅读它们并保留其数值;将您自行设定的每个数值标记为假设并告知用户。询问图纸应使用的语言和投影方法(默认:德语,第一角;北美:英语,第三角),以及是否有公司的标题栏。
- 在一个模块中对零件进行建模,每个零件处于其制造位置,所有尺寸设为命名参数。回转体零件:旋转半轮廓
(x, r);棱柱形零件:使用箱体减去孔实体,或拉伸一个轮廓(无熔合接缝)。螺纹仅建模为底孔。将外购/标准零件以简单实体的形式放入,以确保装配和干涉检查完整。 - 绘制前检查装配:
(a & b).volume对所有零件进行成对检查;每个重叠必须是零或有意为之(螺纹旋合、压配合)。修正模型,而非图纸。 - 为每个图纸页面编写一个函数,复制
examples/中最接近的示例:flanged_bush.py(回转体零件,基本模板)、bearing_bracket.py(装配、零件清单)、stepped_shaft.py(断裂视图、局部放大、移除剖面、螺纹)、flange.py(半剖、节圆、位置公差)、spur_gear.py(齿轮数据表)、weldment.py(焊缝符号)、milled_block.py(英语、第三角、公司标题栏)。从几何体开始,渲染,查看,然后按图层添加注释:中心线 -> 尺寸 -> 基准和公差 -> 表面粗糙度 -> 注释、表格 -> 标题栏。 - 渲染,阅读检查结果,查看每个页面。
Sheet.save(pdf, png=...)打印检查报告并写入<png>_check.png,其中每个发现都已框出。修正每个错误和警告(移动注释、更改偏移量、tshift、tpos、引线的转折点)。然后亲自阅读 PNG——检查能发现碰撞和不一致,但无法判断尺寸标注概念是否正确或箭头是否指向错误的边缘。裁剪密集区域以放大查看。切勿将您未曾查看的页面报告为已完成。 - 交付:每个图纸编号一个 PDF 文件、一个合并集(pypdf
PdfWriter.append)、如果用户希望在 CAD 中编辑则提供 DXF、每个零件和装配体的 STEP 文件(export_step)。清晰说明哪些尚未绘制,以及哪些值是假设值。
每台机器设置一次:pip install -r requirements.txt。ISO 3098 字体 osifont 未包含;它位于 $DRAWLIB_FONT、scripts/fonts/、~/.drawlib/fonts/ 或系统字体中(请参阅 scripts/fonts/README.md)。没有它,库将使用 DejaVu Sans——几何结构相同,但字体不符合 ISO 3098;检查取决于当前激活的字体。
使用 drawlib
在编写第一个图纸之前,请阅读 references/drawlib_api.md——每一个调用都带有其坐标约定、使用技巧和注意事项。基本要点:
S = D.Sheet("A4"|"A3"|"A2"|"A1"|"A0", lang="de"|"en", projection="first"|"third")。A4 为纵向,其他为横向(landscape=可覆盖)。图纸坐标以左下角为原点,单位为毫米。库写入的数字遵循语言的小数点分隔符,并且尺寸文本中的小数会被转换(在德语图纸上,"0.02"->0,02)。V = D.View(S, origin, scale, *D.VIEWS["front"])——VIEWS包含 front(主视图)、top(俯视图)、bottom(仰视图)、left(左视图)、right(右视图)、rear(后视图)、iso(等轴测图)。V.p(u, v)将视图坐标(模型 mm)转换为图纸 mm——用于每个注释。错误的向量会引发清晰的错误;非 ISO 比例和倒置的视图会发出警告。- 视图:
V.draw(solids, hidden=)、V.section([(V.cut(solid), angle, spacing), ...], background=[uncut parts])、V.half_section(...)、V.removed_section(...)、V.detail(centre, r, at, scale, "Z")、D.BrokenView(...)、V.thread(...)、D.views_layout(...)(按投影方法放置)。 - 尺寸:
S.hdim、S.vdim、S.dim、S.dim_angle、S.rdim、S.ddim;选项包括tol=、box=True、outside=True、half=True、tshift=。 - 配合:在文本中写入(
"Ø20 H7"、"Ø20 H7/s6");S.fit_table、S.fit_pair_table打印 ISO 286 值;iso_tolerances提供偏差、极限、配合、ISO 2768。 - GD&T:
S.datum、S.fcf(x, y, kind, "0.02", ["A", "B"])、S.fcf_leader。 - 表面:
S.rough、S.rough_leader、S.general_surface。 S.notes、S.leader_text、S.posnum、S.cutting_plane、S.bom、S.table、S.weld、S.pitch_circle、S.title_block(values, layout=json_or_dict, logo=png)。
至关重要的规则
这些是审查人员和工厂检查的要点;references/normen.md 包含表格(线型、ISO 2768 值、常用配合、典型 Ra 值、哪种几何公差用于哪种功能),在选择数值时应阅读。
- 投影和视图:标明方法(标题栏中的符号)。定义零件所需的最少视图;回转体零件需要一条沿其轴线的剖面。优先使用剖面而非隐藏线。仅使用 ISO 5455 中的比例;小零件应放大绘制,以便尺寸有足够空间;长零件应断裂;小细节应给出局部放大视图。
- 从功能基准标注尺寸,不构成封闭尺寸链,且绝不重复标注。辅助尺寸用括号括起来。尺寸应尽可能标注在轮廓外部;孔图案应在显示其圆形的视图中标注;较小的尺寸应更靠近零件。
- 配合和公差:每个配合直径都应获得 ISO 286 配合(轴承座圈按轴承制造商建议)。所有未标注公差的尺寸均落入标题栏中的一般公差(默认 ISO 2768-mK;焊接件为 ISO 13920)。
- 仅在功能需要时标注几何公差,并且始终附带一个本身是功能性、可测量特征的基准。轴线上的基准:与该直径的尺寸线对齐。引线垂直于表面相交。孔图案:理论正确尺寸加位置公差。
- 每个功能表面都需要表面粗糙度,在标题栏旁边注明一般值一次。符号必须从下方或右方阅读——对朝下的面使用引线。
- 剖面:在纵向剖切中,轴、销、螺钉、键、滚动体和筋不被剖切。相邻零件使用不同的剖面线;薄的剖切面涂黑(
angle="solid");剖面线在文本周围自动中断。 - 螺纹(ISO 6410)、焊缝(ISO 2553)、齿轮(ISO 2203):简化绘制,标注或数据表携带信息。
- 装配图:项目编号排成一行,引线末端带圆点;零件清单位于标题栏上方,项目 1 在底部;标准件标注其标准代号;仅标注功能和安装尺寸;注释说明如何装配和调整。
- 标题栏:标题、图纸编号、材料及标准代号、质量(
solid.volume× 密度)、比例、一般公差、日期、页数 m/n、文档类型、修订。切勿将材料或比例留空——检查会标记。
关于局限性的诚实说明
- 输出为 PDF/SVG/PNG/DXF 及 STEP,而非原生 SolidWorks/Inventor 图纸。如需在 CAD 中进一步编辑,请提供 DXF 和 STEP 并说明。
- 图纸检查可发现碰撞和不一致,但无法判断尺寸标注、公差或视图选择是否正确。这是您根据
references/normen.md中的核对清单对 PNG 进行审核的工作。 - 您选择的公差值是工程建议。请说明哪些来自用户的文档,哪些是您自己的,以便他们能够为之辩护。