360 Secure SkillHub
360 安全技能中心

gb-cad-figure

按GB/T国标生成正式工程图纸与CAD模板:A0~A4图框、标题栏、线型、尺寸标注、等轴测回转体/箱体,并输出PDF、DXF、DWG三格式(PDF与DWG均由DXF转换)。含DXF中文字体防方块校验、DXF转DWG脚本及图片描摹转CAD流程;依赖Python3与ezdxf、reportlab、PyMuPDF,DWG转换首次需联网获取转换器。

hegenerkondo335-dot
hegenerkondo335-dot
热度 26.95
最近更新 2026-08-12 19:23:26
分类:创作依赖:代码执行 / 读写文件 / 第三方 API / 内部调用大模型应用场景:模板 / 文件转换 / 图像生成 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add gb-cad-figure
Metadata
name
gb-cad-figure
version
1.2.6
description
按中国国家标准(GB/T)生成正式工程图纸与CAD模板的可复用工作流:A3图框、标题栏、线型、国标尺寸标注、字体、比例、技术说明/图例、等轴测回转体(lathe/平滑轮廓)+引线式标注(LDIMS)+中心线+瓶底拱形,三格式交付(PDF+DXF+DWG)。开源品牌名 gb-cad-figure = GB国标 + CAD + 图形(figure)。 When to use: 当用户要求"按国标出工程图纸"、"画图框/标题栏/尺寸标注"、"生成CAD模板(.dwt)"、"正式工程制图"等涉及机械/建筑制图规范(GB/T)任务时使用。
fingerprint
c9dc876862a71ff06f6687947e2b68bab0914e4561fa3b249433ecbba4783913
created_at
2026-08-08T04:19:55.243Z

gb-engineering-drawing

Metadata

  • Created At: 2026-08-08T04:19:55.243Z

Rules

  • A3 图框(GB/T 14689):幅面 420×297mm,装订边左侧20mm、其余三边5mm;外框线(图纸边界)细实线0.25mm,内框线粗实线(建议0.7~1.0mm);四边中点各画一条对中符号(粗实线,长5mm)。
  • 标题栏(GB/T 10609.1):180×56mm,紧贴右下角内框线;分区=更改区|签字区|名称及代号区;区域右上方放第一角投影符号(GB/T 14692)。
  • 标题栏布局(用户强制):每个标签(图名/比例/图号/日期等)后必须接一个独立的空白内容单元格,标签|内容相邻不同格;签字类(制图/审核)内容留空供填写。禁止标签后直接跟值、共用一格(用户 2026-08-03/04 明确要求, 2026-08-08 再次纠正)。
  • 线型(GB/T 17450/4457.4):统一线宽组,粗实线 d 取 1.0、细线 d/2=0.5;粗实线用于可见轮廓/内框/标题栏外框/对中符号,细实线用于尺寸线/界线/剖面线/标题栏内隔线。
  • 国标尺寸标注(GB/T 4458.4):尺寸界线细实线、末端超出尺寸线 23mm;尺寸线两端画实心闭合三角箭头(长约 35 倍线宽);尺寸数字沿尺寸线/轴测方向书写,数字处用白底遮挡避免被线穿过;单位 mm 不标符号。
  • 字体(GB/T 14691):长仿宋;图样名称/单位用 710 号,序号/尺寸数字/技术要求正文/标题栏文字用 3.55 号;一张图最多 3 种字号。
  • 比例(GB/T 14690):优先用原值 1:1、缩小 1:2/1:5/1:10/1:20/1:50/1:100 等,填在标题栏"比例"栏。
  • 技术说明放标题栏上方或右上角空白,标题"技术要求",编号 1、2、3 逐条;图例放标题栏右侧或说明下方,用"符号/线样+文字"解释特殊符号与线型。
  • CAD模板(.dwt):用 ezdxf 生成 DXF 模板,预设图层(粗实线/细实线/虚线/细点划线/双点划线/文字/图框/标题栏并设线宽)、线型(CONTINUOUS/DASHED/CENTER/PHANTOM)、文字样式(GB_HZ长仿宋/GB_NUM直体/GB_ITA斜体15°)、标注样式(GB_DIM);交付 .dxf,用户可在 AutoCAD 中'另存为 .dwt'当作模板。
  • 工具坑点:reportlab 的 landscape(A3) 会抛 ValueError: too many values to unpack,必须改用 pagesize=(420MM, 297MM),其中 MM=2.8346;等轴测投影 iso(x,y,z)=((x-y)*cos30,(x+y)*sin30+z)。
  • 正式图纸一律三格式交付(单源默认 2026-08-12):DXF 为单一源,PDF(由 DXF 渲染,查看/打印) + DXF(CAD编辑) + DWG(由 DXF 转) 同步回传;文件命名带版本+日期分钟。
  • 交付流程(默认):所有绘图任务一律走正式工程图纸流程——按主体外接矩形选择能完整容纳的最小标准图幅(A0/A1/A2/A3/A4及加长),再画图框 + 标题栏(图名/比例/图号) + 轴测主体 + 国标尺寸标注 + (必要时)技术要求/图例,PDF+DXF+DWG 三格式交付(单源: PDF/DWG 均由 DXF 转换)。纯线稿只用于绘制中途的快速预览,不允许作为正式交付。图幅不固定默认(用户 2026-08-08 修改:去A3默认,按主体选幅)。
  • DXF中文字体防"方块/问号"(关键坑):汉字样式必须用 SHX 大字体组合——doc.styles.add(名,font="gbenor.shx"); st.dxf.bigfont="gbcbig.shx"(ezdxf 的 styles.add() 不支持 bigfont 关键字,须先建样式再设 .dxf.bigfont);或改用 TrueType font="仿宋"/"simfang.ttf"(无需大字体)。纯西文/数字用 gbenor.shx(直体)/gbeitc.shx(斜体15°)。所有含中文的实体(TEXT/MTEXT/ATTDEF/ATTRIB)必须统一指向该中文样式,禁止用默认 Standard(无 bigfont,中文必方块)。生成后务必跑字体自检脚本 check_dxf_fonts.py:遍历全部样式+块内实体,确认每个汉字样式已配 bigfont/TrueType、实体引用样式均已定义。

Examples

  • reportlab 错误示范:canvas.Canvas('x.pdf', pagesize=landscape(A3)) → 报 ValueError;正确:canvas.Canvas('x.pdf', pagesize=(420MM, 297MM))
  • 国标尺寸线错误:界线画到尺寸线端点为止 → 报规范问题;正确:界线末端再延伸 2~3mm 超出尺寸线。
  • 线型错误:全部用一种线宽 → 被指"线型层级不明显";正确:粗实线 d=1.0 与尺寸细线 0.5 形成明显粗细对比。
  • 字体错误:ATTDEF"图名内容"误用默认 Standard 样式(无 bigfont) → CAD 中图名变方块;正确:attdef.dxf.style='GB_HZ'(gbenor.shx 西文 + gbcbig.shx 大字体组合);生成后用 check_dxf_fonts.py 验证汉字样式均配大字体、实体样式均已定义。

Tags

CAD端字体方块修复手册(端到端) — 用于生成后用户在CAD中自检

  • 检测:STYLE 查看标题栏文字样式的字体名(如gbenor.shx)与大字体(gbcbig.shx);检查 CAD安装目录\Fonts 是否存在该字体;检查系统区域语言是否中文(简体,中国)。
  • 安装:SHX字体(缺失时)从明经通道(mjtd.com)/晓东CAD(xdcad.net)论坛下载,复制到 CAD安装目录\Fonts;TTF(宋体/黑体)从微软下载,复制到 C:\Windows\Fonts;装后必须重启CAD。
  • 替换方案:gbenor.shx 缺失→simplex.shx 或 Arial;gbcbig.shx 缺失→宋体 或 hztxt.shx。
  • CAD内修复:STYLE 选中标题栏样式,字体名选 gbenor.shx + 大字体选 gbcbig.shx,点"应用"并"置为当前";用 RECOVER 打开图纸修复内部数据。
  • 系统修复(管理员CMD):net stop FontCache → del /f /q %windir%\ServiceProfiles\LocalService\AppData\Local\FontCache* → net start FontCache;再 SFC /ScanNow 和 DISM /Online /Cleanup-Image /RestoreHealth。
  • PDF导出:PUBLISH/EXPORT 选打印机 "DWG to PDF.pc3",在"自定义特性→图形"勾"嵌入所有字体";打印样式表选 monochrome.ctb(黑白)或 acad.ctb(彩色)。
  • 输出:修复后的DWG + 修复日志(缺失字体名、下载来源、安装路径、替换字体) + 用Adobe Acrobat/浏览器打印预览验证文字清晰无方框。
  • 适用:AutoCAD/中望/鸿鹄/CAXA,Windows。AI无法直接操作时,请用户提供 STYLE 截图 + Fonts文件夹列表 + CAD版本号。

AI绘图输入规范提示词(整合修正版) — 用于引导完整绘图流程

【任务】按用户设计需求绘制CAD图纸:先 1:1 画主体(mm),再按主体外接矩形选标准图幅与比例,最后加图框/标题栏/图例/说明。 【绘制规则】 1 主体:严格 1:1,单位统一 mm;"主体"=零/部件/建筑实体本身,排除辅助线、尺寸标注、图框。画完测量外接矩形(长×宽)作为选幅依据。 1b 主体定义细化:按图纸类型界定主体——机械件=零件外形/孔/螺纹/倒角/圆角/键槽等结构特征;装配图=装配件组合体含配合/连接方式;建筑平面=墙/柱/门门窗/楼梯/阳台等;立面=外轮廓/门窗/装饰线条/檐口等;剖面=被剖墙体/楼板/梁柱/基础+可见立面;电路原理=元器件及导线;给排水=管道走向/管件/用水设备;暖通=风管水管/设备/风口。主体绘制规则:1:1且单位mm、坐标原点取主体左下角或中心(0,0)、主体放独立"主体"图层(白7号色/Continuous/线宽机械0.35建筑0.5)、先轮廓后内部细节再倒角圆角、必须封闭、不得遗漏内部细节。外部矩形 Lx×Ly 用 DIST/LIST 测,圆形=直径正方形,不规则取最小外接矩形。排除元素:尺寸/公差/粗糙度/基准/剖切/中心线/剖面线/引线/序号明细/标题栏图框/技术要求/图例/指北针/比例尺/版本。常见错误:辅助元素混图层、主体非1:1、轮廓不封闭、遗漏细节、单位不一致。 1c 单位统一:默认长度 mm、角度 度(°)、精度长2位/角1位。换算:1m=1000mm、1cm=10mm、1in=25.4mm、1ft=304.8mm、1yd=914.4mm、市制里/丈/尺/寸=500000/3333.3/333.3/33.3mm。CAD单位设置 UNITS:长度小数、精度0.00、角度十进制度、角度精度0.0、插入比例毫米、方向东0°逆时针正。DIMSTYLE 主单位=小数/精度0.00/小数分隔符句点,换算单位乘数按需(英转公25.4)。常见错误:米当毫米(12m→12000mm)、混用厘米毫米、导入英制未 SCALE 25.4、标注精度不一、弧度当度。检查:DIST 验证已知尺寸、LIST 看坐标、UNITS 看单位、INSERT 已知尺寸块(A4图框297×210)验证。特殊场景:米制图仍以mm画但标注加m后缀;英制先mm画后 SCALE 1/25.4 并在标题栏注明;草图单位不明先问用户不得自假设;不同精度统一按最高(0.1mm)画。输出:标题栏标"单位:mm",含换算单位需在说明注明换算关系。 1d 图层管理:命名规范(≤20字符,英/拼):主体PART/ZT、图框BORDER/TK、标题栏TITLE/BTL、图例LEGEND/TL、说明NOTE/SM、标注DIM/BZ、中心线CENTER/ZXX、剖面线HATCH/PMX、虚线HIDDEN/XX、文字TEXT/WZ、尺寸线DIMLINE/CCX、填充FILL/TC、参考线REF/CKX、图块BLOCK/TK。颜色:主体白7/图框红1/标题栏黄2/图例青4/说明绿3/标注蓝5/中心线红或洋红6/剖面线灰8/虚线洋红或蓝/填充灰8/参考线灰9/图块随块。线型:主体图框标题栏图例说明标注剖面线文字尺寸线填充=Continuous、中心线=CENTER、虚线=HIDDEN、参考线=DASHED或DASHDOT、图块随层;LTSCALE=图纸比例倒数×10。线宽(按方案A国标):图框外框(纸边)=0.25细、图框内框=0.7±粗、标题栏/图例=0.25、主体=0.35机械/0.50建筑、说明标注中心线剖面线虚线文字尺寸线填充=0.18、参考线=0.13、图块随层。管理:每层只放一种元素、绘制时冻结/关闭不需层、完成锁定防误改、按功能排序、PURGE清空层、优先企业标准。错误:全放0层/命名混乱/属性不一致/未冻结锁定/图层过多过少。输出:图层设置表(名称/颜色/线型/线宽)+确认元素正确分配+图层管理器截图。颜色注意事项:避免鲜艳/刺眼色、避免与背景色相近、黑白打印时应确保不同颜色打印后灰度有区别。 1d2 打印样式与图层状态控制:打印样式分 CTB(颜色相关,基于颜色映射:如1号红→黑、线宽映射、淡显) 和 STB(命名样式,基于图层名,适用大型/协作)。建议:黑白打印全映射黑+按层线宽;彩色保留原色;参考线/填充可淡显5080%。图层状态:开/关(LAYOFF/关=不可见不可编不可打印/临时隐藏)、冻结/解冻(不参与重生成/长期不用/当前层不可冻结)、锁定/解锁(LAYLCK/可见不可编/保护已完)、打印/不打印(参考线辅助线不打印)。图层过滤器:名称/颜色/线型/状态/组过滤器用于快速筛选管理。 1d3 图层工具与标准:常用工具 LAYER(LA)管理器新建/删除/重命名/置当前;LAYERTOOLS 系列:LAYISO隔离/LAYUNISO恢复/LAYOFF关/LAYON开/LAYFRZ冻结/LAYTHW解冻/LAYLCK锁/LAYULK解锁/LAYCUR置当前/LAYMRG合并/LAYDEL删除带对象层;LAYMCUR匹配为当前层;LAYWALK漫游(动态显示选定层)。转换:LAYTRANS图层转换器(映射标准层,接收外部图纸统一标准)、LAYERSTATE图层状态管理器(保存/恢复开冻结锁等)、LAYMRG合并(源层对象移目标层后删源层,不可撤销)。标准:GB/T 50001-2017 命名"专业代码-图层内容-图层属性"(如A-WALL建筑墙、S-COLU结构柱)、颜色按专业统一;企业标准=统一规则+DWT样板+定期清理;ISO 13567 命名"专业-内容-属性-状态"(如A-WALL-PART)。技巧:图层组/过滤器/DWT样板起步/PURGE清理。常见问题:图层删不掉(含对象/当前层/被参照→删对象、切当前层、清参照)、显示异常(关冻结/颜色线型错/范围→查状态、重置、REGEN重生成)、打印不显示(设不打印/样式错/线宽细→查打印、调样式、增线宽)。 1e 图幅选择与比例确定:标准横向图幅 GB/T 14689:A0=1189×841、A1=841×594、A2=594×420、A3=420×297、A4=297×210;加长幅面(A3×3/×4、A4×3/×4)用于细长形。选择原则:能完整容纳主体+全部辅元素并留边距;优先标准图幅,容纳不了再加长;不宜过大过小;考虑打印设备最大幅面。选择步骤:1) 测 Lx×Ly;2) 所需最小宽度=Lx+左右边距(如40)+标题栏占用(180), 高度=Ly+上下边距(30)+标题栏(50);3) 与标准图幅比选能容纳的最小者;4) 不够选加长幅。比例=图幅/主体外接矩形(取较小值后向下归到标准比例 1:1/1:2/1:5/1:10/1:50/1:100/1:200/1:500/1:1000),留白占图幅10%20%。图框(按方案A国标):外框(纸边)=0.25细、内框=0.7粗、内外框间距 装订边左2025 其余5mm(A2A4)或10mm(A0/A1);标题栏右下角180×56(GB)含图名/图号/比例/单位/日期/签名;放独立 BORDER/TK、TITLE/BTL 层。错误:图幅过小图形超框、过大留白多、比例非标准、线宽设错、标题栏信息不全。输出:所选图幅尺寸+名称、比例及计算过程、确认图框标题栏正确放置、图幅布局示意。 1f 图框模板:外框与内框(按方案A国标线宽):外框(纸边)=0.25细、内框(绘图区)=0.7粗,颜色红1号/BORDER/TK层;内外框间距:装订边(左横装/上竖装)留25mm,其余边留5mm(A2A4)/10mm(A0A1);线连续无断开转角直角。标题栏:右下角 180×50mm(本部分指定;GB标准为180×56,需与既有统一时确认),黄色2号/TITLE/BTL层,字高 图名5-7、其余3-5、签字及材料重量2.5-3.5;含 图纸名称/图号/比例/设计单位/设计人/审核/日期/材料/重量/共X张第X张。图例:标题栏上方,宽与标题栏一致(180)高50-100;说明:左上角,宽200-300高50-100;图例/说明距内框线10mm。使用流程:选图幅→调图框模板(.dwg)→插主体居中→填标题栏→加图例说明→检查。错误:外内框线宽相同、装订边方向错、标题栏尺寸不符、信息不全、图例说明与标题栏重叠。输出:图框模板.dwg+标题栏填写示例+确认无重叠+布局示意。 2 图幅与比例:根据主体外接矩形尺寸选择能完整容纳的最小标准图幅(A0=1189×841/A1=841×594/A2=594×420/A3=420×297/A4=297×210,必要时加长幅),不固定默认图幅;主体过大/过小相应选更大/更小幅面。比例用国标推荐 1:1/1:2/1:5/1:10/1:50/1:100/2:1/5:1(用户 2026-08-08 修改:去A3默认,按主体选幅)。 3 图框(GB/T 14689):**外框(纸边)细实线0.25mm、内框粗实线0.71.0mm(注意方向勿写反)**;装订边(左)2025mm 其余5mm;四边对中符号;主体左下角对齐或居中。 4 标题栏(GB/T 10609.1):右下角;每个标签(图名/图号/比例/日期/材料/重量/单位等)后必须接独立空白内容单元格,标签|内容相邻不同格;签字类(制图/审核/设计)留空。图名文字57mm、其余2.53.5mm。 5 图例:图框内右下角(标题栏上方)或左下角,符号+文字说明,大小与比例协调。 6 说明文字:左上角或标题栏上方,填未注公差/表面处理/热处理/装配等;字高3~5mm;DXF中汉字用 gbenor.shx+gbcbig.shx 大字体(防方块)。 7 图纸布局(横/竖可选, 视情况选用;2026-08-08 用户提供竖版规范):竖版与横版布局均可,根据主体形态/场景/用户要求选择使用,非强制。 竖版布局(竖向图幅,最短 A4=210×297):装订边(左)25、其余三边10;自下而上 图框下边→标题栏(底部, 高约30, 宽=图框宽, 标签|内容分格, 文字正向)→间距10→图例(高约50, 宽同)→间距10→说明/技术要求(高约40, 宽同)→间距10→绘图区(顶部);竖版时标题栏放底部横贯、图例与说明不放顶部、文字正向。横版布局(横向图幅):标题栏右下角(180×56 或按横版规范),主体在左绘图区。选图幅:按主体量级(名义尺寸 S=max(Lx,Lz) ≤ 图幅短边)选相称图幅,比例取能容纳的最小标准比(1:1/1:2/2:1...)。实现引擎:cad/gb_figure.py(V3, 横/竖自动选择 + 自动选图幅与比例)。 8 图幅/标题栏标准参数表(用户2026-08-08提供, 依据 GB/T 10609.1-2009):

  • 幅面(宽×高mm):A0=841×1189, A1=594×841, A2=420×594, A3=297×420, A4=210×297。A0~A3 宜横式(必要时立式),A4 通常立式。
  • 图框边距(需装订):装订边(左)25,其余三边 A0A3 横版 5 / A4 竖版 10。(不需装订:A0A3 均 10 / A4 均 5)
  • 标题栏宽:固定 180(标准) 或 120(简化),与图幅大小无关。
  • 标题栏高:45~60mm(机械常用 180×56,建筑 180×45/48)。
  • 位置:横版(A0~A3) 右下角,右边/底边与内框线重合;A4 竖版 图纸下方紧贴下边线,宽=图框内宽(180)。
  • 标题栏内文字高:3.55mm(A4) 或 57mm(A0~A3)。
  • 明细栏(可选):宽=标题栏宽(180),每行高约 7~10mm。
  • 标题栏外框粗实线、内部细实线;文字方向与看图方向一致(竖版文字正向从左到右)。
  • 标准化遵循 GB/T 10609.1;简化标题栏(120)用于高阶段/内部图纸。 9 平滑回转体(lathe) ENT:('lathe',cx,cy,contour),contour=list of (z,r) 折点。引擎用 Catmull-Rom 样条插值 r(z)(C1 连续, 过所有折点),等轴测下自动画左右两条平滑母线(替代阶梯圆柱)+顶口整圆+底前缘半圆。用于流线型/脉动瓶/可乐瓶等平滑弧形轮廓。折点写法:圆柱段用等 r 两点、腰身用减小 r 点、肩/颈用递减 r 收窄(如可乐瓶 [(0,32.5),(30,33),(70,25),(110,32),(140,30),(165,20),(190,12.5),(200,12.5)])。DIMS 按最大/腰身/瓶口半径与总高标注;母线在 DXF 以 48 点平滑折线输出(视觉等价 SPLINE)。选幅保比例(>1:2 自动升图幅)。线连接自检:回转体底面可见前弧(θ135~315, 长轴水平椭圆)两端与左右轮廓母线底端(θ135/315)严格衔接闭合、不悬空不伸出;母线顶端与顶口圆前缘闭合。回转体专用 front 画法见下方「回转体正等轴测·闭环定稿」。 **遮挡(2026-08-09):lathe 参与遮挡判定——occluded 用 lathe_fwd_depth(最大半径圆柱近似, 偏保守删隐藏线),被该 lathe 挡住的后续实体(cyl/box/另一lathe)隐藏线会被正确裁剪;自身段靠 i==skip 排除不自挡。已验证:同轴柱穿过瓶身→柱在瓶内部分隐藏、两端露出可见、无外泄;单一回转体不受影响。**选幅保比例(>1:2 自动升图幅)。已验证:脉动瓶→A3 横 1:2、经典可乐瓶→A3 横 1:2。瓶底拱形与中心线(2026-08-09):lathe 自动画瓶底外凸拱弧(拱高=按瓶高 5%, 范围 4~10mm, 中央下凸);generate 自动画竖直点画中心线(CENTER 层)贯穿回转体轴并上下延伸(伸出量=max12,8%瓶高)。回转体图必备中心线, 与技术要求"以中心线为基准"呼应。 等轴测回转体(lathe)标准绘制规范(2026-08-09进化, 来源用户《花瓶正等轴测图绘制说明》):
  • 等轴测几何:三轴间角均为120°,轴向伸缩系数约0.82(~cos30°/0.866 近似);底端圆、端口圆均画为椭圆——长轴水平、短轴与水平成30°;端口椭圆与底端椭圆平行。
  • 轮廓母线:自底至口为平滑连续曲线(引擎 Catmull-Rom 已实现),依次经过最宽处(最大径)→ 肩/颈收窄 → 口端外翻/收口,无折点无阶梯。
  • 尺寸标注(补全4项):总高 + 最大直径 + 端口直径 + 底端直径;薄壁/空心件在口端处附加壁厚。统一用 LDIMS 引线式标注(不穿实体),锚点取对应轮廓点、方向放射引出。
  • 技术要求(推荐项):未注圆角(如 R2~R3)、表面粗糙度(如 Ra3.2)、材料、表面处理;回转体额外注"绕中心线回转, 对称度按 GB/T 1182 保证"。

回转体正等轴测·圆锥/矿泉水瓶闭环定稿(2026-08-09 晚, 覆盖旧"θ0/180封边"说法):

  • 底面可见前弧=θ135°~315°(长轴水平标准椭圆前弧), 两端投影在同一水平线(θ135/θ315 投影 x=±0.707rmax·√3·…… ≈±1.225rmax, y=0), "比半圆大"。背面(θ315→360→135, 被锥/瓶身遮挡)不画——先完整投影椭圆再按视角去掉背面。
  • 轮廓母线底端定位在底面椭圆弧端头(用户选方案D): 母线用 θ135°/θ315°(非旧θ180°/θ0°), 从顶点连到底圆 θ135/θ315, 底端投影落在 (±1.225rmax, 0) 恰为底面椭圆长轴端点, 与底面弧两端完全衔接、不悬空不伸出。实现: gb_figure.py lathe_profile 当 LATHE_BOT=='front' 时 left=cx-0.707r@θ135/right=cx+0.707r@θ315。
  • 底面弧绘制通道=VISSEG: 新增 'VISSEG' skip——进 seg2d(粗实线)且跳过 occluded 裁剪(θ135~315 全是可见前弧不该被裁)。旧 bug: 走 (bot,idx) 会被 occluded 裁掉超出轮廓的部分; 走 (bot,'VIS') 又进细线 ribs2d。二者兼修的通道就是 VISSEG。
  • 素线分布(实测8条, 屏幕等距·左右对称·中间留中心线): θ=[170,187,200,213,237,250,263,280], 对称于225°(中心线), 屏幕 x 等距(≈±0.29/0.52/0.75/1.0? r 量级), 右侧铺满至距轮廓留小空隙, 素线下端落在底面弧上。圆锥R20与水瓶R28.5均用此组。
  • 粗细线分层(DXF lineweight 1/100mm): 轮廓母线+底面可见弧=粗实线 b=0.7(DXF 图层0 lineweight70, PDF 0.7MM); 素线=细实线 b/2=0.35(DXF 新增 RIB 图层 lineweight35, PDF 0.35MM); 中心线=细点画线(CENTER层, PDF点画线); 尺寸线/界线=细实线(DIM)
  • DXF端必须画素线: 旧引擎 DXF 只画 seg2d 轮廓漏画素线(ribs2d)! 现补: for s in ribs2d: dL(...,'RIB',35) 新增RIB层。seg2d 用图层0 + lineweight70。
  • 素线判定: rib_side='front' 只画 cosθ+sinθ<0(正确正等轴测前表面); 素线 zr 从 zmin 到 zmax 贯穿。
  • 已定型验证: 圆锥(A4竖1:2 底面Ø40/高60)→V15; 矿泉水瓶(A4竖1:2 底R28.5)→V2, 均 image 确认底面长轴水平椭圆+轮廓定位端头+素线对称铺满+粗细分层正确, 三格式交付。 10 渲染质量自检规范(每次出图后自动核对, 2026-08-09 汇总用户三份提示词):
  • 线连接:母线端点与顶圆前缘严格闭合(front 模式母线顶端为 θ135/315; 默认模式 θ0/180); 回转体底面可见前弧=θ135~315且左右轮廓母线底端接底面弧两端(θ135/315), 严格衔接不悬空不伸出; 圆自闭合(_circ 首尾重合); 无悬空断点/错位。检查法:ezdxf 读 DXF 按图层统计孤立端点数(主体层≈0)。
  • 重叠:全图无重叠线段、无多余/孤立线(OVERKILL 语义)。
  • 遮挡/隐藏线:lathe/cyl/box 互相参与遮挡;回转体只画可见轮廓(母线+顶口圆+底前弧);被前方实体挡住的线正确裁剪(不穿透显示)。
  • 文字:标题栏/图例/技术说明文字无跑框、无重叠、方向正向(竖版从左到右);字高按幅面(A4 3.55、A0A3 5~7)。
  • 中心线:回转体须画竖直点画中心线贯穿旋转轴并伸出两端(与技术说明"以中心线为基准"呼应);点画线样式正确(CENTER 层/linetype).
  • 标注不穿实体:等轴测回转体优先用引线式标注(generate 的 LDIMS 参数: (文本,锚点3D,方向3D),从轮廓点引细实线到图外、文字标引线端),不画横穿实体的尺寸线;标注分散放射状不交叉;字高按幅面.
  • 图框要素:标题栏外框四边完整;说明/图例框顶边与内框线留 GAP 不贴合;右侧栏三板块垂直分层留距;对中符号/装订边规范. 标题栏格网(2026-08-09):按内容紧凑设计无冗余空格——签字区(制图/审核/日期,左)+信息区(比例/图号/张次,中)+图名大格(右侧跨全高, 字最大最醒目);仅制图/审核签字格留空(待手填),其余每格均有标签或值,不做无意义空行/空列.。
  • DWG导出 / 默认三格式交付(2026-08-09):正式工程图纸默认交付 PDF+DXF+DWG 三格式(不再仅双格式)——引擎(gb_figure.py)直接产 PDF+DXF,DWG 用 cad/dxf2dwg.sh:ODA File Converter(AppImage, Autodesk 官方免费, 无 root 用 --appimage-extract 解压 /tmp)+系统 Xvfb(xvfb-run) 命令行 DXF→DWG,无损保留图层/文字/图名(已回读验证)。版本默认 ACAD2018,可指定 ACAD2000~2021。
  • 比例与图幅:主体+尺寸标注完整在绘图区内、不被图框切割;比例=实际标准比(STD)且与标注一致;方向符合幅面(A0~A3 横/A4 竖)。
  • 字体:GB_HZ(gbenor+gbcbig)无方框/乱码(用 check_dxf_fonts.py 核验)。
  • 文件:默认三格式交付(PDF由DXF渲染 + DXF + DWG由DXF转),命名含版本+日期(精确到分钟)。 验证流程:引擎出图→fitz 渲染 PDF 为 png→image_reading 核对(线连接/遮挡/文字/比例)+ezdxf 孤立端点统计+字体自检。 【输出】1) DXF(或DWG)+PDF 双交付;2) 图层命名规范(主体/图框/标题栏/图例/说明/标注)并赋颜色线型;3) 国标尺寸标注(界线超23mm/实心三角箭头/数字沿轴向/单位mm);4) 提供图幅尺寸、比例、主体实际尺寸说明。 【图层颜色线型参考】主体=白/连续粗实线;图框=红色粗实线;标题栏=青色0.25;标注=绿色细实线;说明=白;虚线层=DASHED。 【标注样式】箭头=实心闭合三角(长35倍线宽);文字偏移距线23mm;线性/角度精度按需(如线性0位)。 【多视图布局】三视图标准:主视图居中左上、俯视图在主视图正下方(长对正X对齐)、侧视图在主视图正右方(高平齐Y对齐)、俯侧宽相等(Z一致);视图间距30-50mm(留标注/文字)。视图选择:优先最能表达形状特征者为主视图,够清晰即可不多不少,优先基本视图必要加剖视/局部放大,对称物可画半/四分之一加对称符号,细长体可断开加断裂符号。剖视标注:剖切位置线=粗实线(0.50.7mm)两端箭头指投影方向;名称标"A-A"/"B-B"于剖视上方字高5-7;剖切符号两端注相同字母且方向与箭头一致;剖面线金属45°斜线、非金属网格。局部放大:细实线圆/椭圆圈出区域、旁标放大比例(罗马数字I或字母)、放大图上方标"I 2:1"/"A 5:1"、放主视图附近对齐。步骤:定主视图→下方俯视图(长对正)→右方侧视图(高平齐)→检查对应→加辅助视图→标名称和比例。错误:三视位置错乱未对齐、间距小拥挤、剖视标注不全、放大图比例未标、视图过多少。输出:视图布局示意+三视对齐关系+剖视/放大标注说明+所有视图名称比例已标。 1h 输出格式:源文件 DWG(AutoCAD原生,保留层/线型/字体/标注+另存较低版本2010/2013兼容)+DXF(通用交换,跨软件)。命名:图纸名-图号-版本.dwg(如 底座001V1.0)。PDF输出(打印分发主格式):打印机选 DWG to PDF.pc3(或对应CAD PDF打印机);页面尺寸=与图幅一致(A0~A4);打印比例 1:1 或图纸空间缩放;区域窗口框选图框外框;居中打印;打印样式表 monochrome.ctb(黑白全黑)/acad.ctb(彩色按色输出);勾选"打印对象线宽";着色按显示/传统线框。字体嵌入(防方框关键):PDF打印机自定义特性→图形→勾"嵌入所有字体"或"仅嵌入使用的字体",避免缺字体设备显示方框/乱码。打印样式表:monochrome全黑/acad按色/自定义CTB按企业标准(如红→0.35、蓝→0.18)。图层打印控制:确认需打印层开"打印"、参考线/辅助线层冻结或关闭、层线宽与样式表不冲突、颜色与样式表匹配。错误:PDF文字方框→勾嵌字体重导出;颜色异常→查样式表;线过粗/细→查线宽映射;页面尺寸不匹配→选对纸张;位置偏移→居中打印/调偏移。输出:DWG+PDF、PDF嵌入字体无方框、样式表线宽颜色正确、输出设置参数。 1i 比例标注:标准比例系列(GB/T 14690-1993):原值1:1;放大 2:1/5:1/10:1/20:1/50:1/100:1;缩小 1:2/1:5/1:10/1:50/1:100/1:200/1:500/1:1000/1:2000/1:5000。优先原值1:1,过大过小选标准放大/缩小。位置:标题栏"比例"字段标整图主比例;多视图同比例仅注一次;不同比例视图每个下方单独注"比例 1:50"(字高3-5);局部放大图上方标放大比例"I 2:1"/"A 5:1"。格式:半角冒号无空格(1:100,禁全角1:100)、字体与图纸一致、字高3-5、放 TEXT/WZ 或 NOTE/SM 层(绿3或白7)、标题栏居中/视图下方左或居中。多视图处理:冲突时(如主1:100+放大5:1)放大图下方标"5:1"、标题栏注"除注明外,比例均为1:100";同比例视图用相同格式和字高。比例与尺寸标注:标注值显示实际尺寸而非图形尺寸(1:100中实际5000mm图形50mm但标注显示5000);标注样式设"测量单位比例"因子(1:100图纸因子=100)使标注自动显示实际值;不同比例视图需独立标注样式/独立因子。错误:标题栏未标比例、不同比例视图未单独标、全角冒号、比例因子错致标注值不符、放大图未标比例。输出:标题栏主比例+不同比例视图独立标注+放大图比例编号+因子正确尺寸一致+比例标注示意。

Tags

  • gb
  • engineering-drawing
  • cad-template
  • dwt
  • title-block
  • dimension
  • reportlab
  • ezdxf
  • isometric

AI 调用指南(模型调用,2026-08-09 新增)

给 AI/模型直接调用产出 PDF + DXF + DWG 三格式 的端到端说明。核心入口是 scripts/gb_figure.py 的 generate() 函数(编程式)。

generate() 函数签名

from gb_figure import generate  # 引擎在 scripts/ 目录
generate(名称, 图号, ENT, DIMS, 日期, out, tech, leg,
         direction='auto', LDIMS=None, bottom_arch=None,
         lathe_ribs=None, bot_visible=None, rib_side=None)
  • 名称/图号:图纸名与图号(写进标题栏)
  • ENT:主体图元列表(见下),决定图形
  • DIMS:贯穿式尺寸标注,每项 (文本, A点3D, B点3D, 偏移off3D, 旋转):(txt, A3, B3, off, rot)
  • 日期:如 "2026.08.09";out:输出路径前缀(自动生成 out.pdf / out.dxf;DWG 需另转)
  • tech:技术说明字符串列表;leg:图例列表 (文本, 是否粗线)
  • direction:'auto'/'vs'竖版/'hb'横版(默认自动按幅面定方向)
  • 回转体参数:LDIMS(引线标注)、bottom_arch(瓶底拱高)、lathe_ribs(素线角度列表)、bot_visible('front'正常等轴测前表面)、rib_side('front')

ENT 图元类型

类型 格式 说明
lathe ('lathe', cx, cy, [(z,r),...]) 回转体,contour=list of (z,r) 折点(Catmull-Rom 平滑),用于瓶/罐/圆锥/轴等
cyl ('cyl', cx, cy, r, z0, z1) 圆柱
box ('box', cx, cy, a, b, z0, z1) 长方体(半宽a、半深b、z0~z1)

LDIMS 引线标注格式(推荐用于回转体,不穿实体)

LDIMS=[("Ø40", ax,ay,az, dx,dy,dz), ...]:从锚点 (ax,ay,az)(轮廓点) 沿方向 (dx,dy,dz) 引出细实线到图外,文字标在引线端。避免横穿实体的尺寸线。

端到端三格式调用示例(模型照抄即用)

import sys
sys.path.insert(0, "/path/to/gb-cad-figure/scripts")
from gb_figure import generate

ENT = [('lathe', 0, 0, [(0,28.5),(55,28.5),(78,26.2),(134,28.5),(166,23),(189,11),(200,13)])]
LDIMS = [("Ø57", 28.5,0,90, 46,0,12), ("200", -28.5,0,0, -46,-22,0)]
tech = ["1  材料: PET。"]; leg = [("粗实线 — 可见轮廓线", True), ("点画线 — 中心线", False)]
generate("矿泉水瓶","WB-01", ENT, [], "2026.08.09", "/tmp/out", tech, leg,
         LDIMS=LDIMS, lathe_ribs=[170,187,200,213,237,250,263,280], bot_visible='front', rib_side='front')

产出 out.pdf + out.dxf。

产出 DWG(需 ODA, 自动下载)

bash /path/to/gb-cad-figure/scripts/dxf2dwg.sh /tmp/out.dxf /tmp/dwg_out/   # 输出 /tmp/dwg_out/*.dwg

首次自动下载 ODA File Converter(82MB, Autodesk 官方)到 scripts/tools/ 并经 xvfb-run 转换;无需人工干预,仅出 PDF/DXF 可跳过。

依赖与字体校验

  • 依赖:Python3 + ezdxf、reportlab、PyMuPDF(fitz);汉字需系统装有 Harmony 字体
  • 出图后必跑 python3 scripts/check_dxf_fonts.py 出图.dxf 防止中文方框
  • 常见坑:lathe_ribs 取屏幕等距、左右对称、中间留给中心线(推荐 8 条 θ=[170,187,200,213,237,250,263,280]);LDIMS 锚点要避开轮廓/素线防止压线;回转体用 bot_visible='front' 才能画标准长轴水平椭圆底面。

单源渲染(默认交付):用 ezdxf 将 DXF 渲染为 PDF(2026-08-12 进化)

默认规则(2026-08-12 用户确认):正式图纸默认单源——PDF 与 DWG 均由 DXF 转换(PDF 用 ezdxf 渲染、DWG 用 ODA 转换),不再另用 reportlab 画 PDF;DXF 为唯一源,三格式完全一致。仅当用户明确要 reportlab 直出时才另画 PDF。流程:

import os; os.environ.setdefault('XDG_CACHE_HOME','/tmp/xdgcache')
import ezdxf
from ezdxf.fonts import fonts as ezf
# ① 系统缺 DXF 指定中文字体(如 SimSun)会致渲染方框:手动把系统中文目录灌进 FontManager
fm=ezf.font_manager; fm.clear()
fm.build(['/usr/share/fonts/HarmonyFont','/usr/share/fonts/SubSetSourceHanSans'], support_dirs=False)
doc=ezdxf.readfile('in.dxf')
# ② 仅渲染副本把文字样式 font 改为系统可解析名(不改交付 DXF 的 SimSun 设置)
for st in doc.styles:
    if st.dxf.get('font','').lower() in ('simsun','harmonyheiti'): st.dxf.font='HarmonyHeiTi'
# ③ 渲染导出(PyMuPdfBackend 无 save,用 get_pdf_bytes+layout.Page; width/height 单位默认 mm)
from ezdxf.addons.drawing import RenderContext, Frontend
from ezdxf.addons.drawing import pymupdf, layout
backend=pymupdf.PyMuPdfBackend()
Frontend(RenderContext(doc),backend).draw_layout(doc.modelspace(),finalize=True)
data=backend.get_pdf_bytes(layout.Page(width=420,height=297))
open('out.pdf','wb').write(data)

坑点:

  1. DXF 居中/右对齐文字必须写对齐点:只设 dxf.halign 不写 align_point(11组) 时,ezdxf _get_wcs_insert 取到 None→渲染崩溃 TypeError: object of type 'NoneType' has no len(),部分看图软件也会坐标错位。生成 DXF 后统一 e.dxf.align_point = e.dxf.insert(对齐点=insert)。
  2. PyMuPdfBackend 无 save 方法:导出用 backend.get_pdf_bytes(page);layout.Page(width,height) 关键字是 units(默认 mm),Margins 必须传 4 个位置参数(top,right,bottom,left)。
  3. 中文字体方框:ezdxf 渲染字体交给 make_font(font_name,cap,width),系统缺该字体会 fallback 到无中文的字体→方框;先用 font_manager.clear(); build(['<字体目录>']) 灌入鸿蒙/思源,再把文字样式 font 改为 HarmonyHeiTi(实测 make_font('HarmonyHeiTi') 可命中鸿蒙)。
  4. 渲染出的 PDF 文字是矢量轮廓:ezdxf/pymupdf 后端把文字转成轮廓,fitz.get_text() 返回 0 字符(无可搜索文本层),这是 CAD 转 PDF 的正常形态;要对齐核对用 image_reading 看图,不要依赖文字提取。

附:附带脚本(scripts/)

本技能核心代码位于技能包 scripts/ 目录:

文件 作用 依赖
gb_figure.py 引擎:参数化生成 PDF + DXF(自动选幅/图框/标题栏/尺寸标注/中心线/瓶底拱形/等轴测回转体 lathe/引线标注 LDIMS) Python3, ezdxf, reportlab, PyMuPDF(fitz);汉字需系统字体 Harmony
isometric_occlusion.py 等轴测全局遮挡去隐藏线通用工具(纯圆柱场景) Python3
check_dxf_fonts.py 校验 DXF 中文字体配置(防方块) ezdxf
dxf2dwg.sh DXF→DWG 转换(需 ODA + Xvfb) tools/ODAFileConverter.AppImage + 系统 xvfb
examples/stool_iso.py 混合 cyl+box 方凳等轴测示例 Python3
examples/gen_storage_A3_fill.py 开口库房(墙厚)等轴测 + 三灰面填充(地板顶/右墙内面/后墙内面)完整示例 Python3, ezdxf, reportlab
  • 生成图纸:python3 scripts/gb_figure.py(输出到脚本所在目录;也可调用 generate() 编程式生成)
  • 校验字体:python3 scripts/check_dxf_fonts.py 输出.dxf
  • 转 DWG:bash scripts/dxf2dwg.sh 输入.dxf 输出目录/(默认 ACAD2018)
  • DWG 转换依赖 ODA File Converter(Autodesk 官方免费):运行 dxf2dwg.sh 时自动调用 scripts/tools/fetch_oda.sh 下载 AppImage(~82MB) 到 scripts/tools/;因 ClawHub 单文件限 10MB 故不打包二进制,首次转 DWG 自动拉取。仅出 PDF/DXF 无需 ODA

标题栏规范(2026-08-09 三行布局)

横版标题栏(右下角 180×56)按三行布局, 每个字段后均有预留填写单元格:

  • 行1(顶): 「设计单位」标签 + 空白填写格
  • 行2(中): 「图名」「图号」「页数」标签 + 各填单元格(图名/图号填实际值, 页数留空待填"第X页/共Y页")
  • 行3(底): 「设计」「制图」「审核」「日期」标签 + 各格(前三为签字栏留空待签, 日期填日期值)
  • 外框中粗线、内分格细线; 实现见 gb_figure.py generate 的 hb 分支(cell 独立布局); 竖版沿用 tbc/tbz/TFILL

标题栏四行布局(2026-08-10 用户确认, 覆盖三行, 适用于非回转体的通用工程图)

标题栏 180×56mm, 每个字段="标签格 + 填写格"分离, 填写格宽度按预计填写内容长度分配:

行 高 字段(标签格宽 → 填写格宽)
行1 10 单位名称: 标签18 → 填152(最宽)
行2 16 图名: 标签18 → 填152(图名字号放大)
行3 10 比例/图号/材料/重量/张次 5字段并排
行4 20 设计/制图/审核/批准/日期 (签字行,高20便手写)
  • 行3细分: 比例(标签12→填12填1:100)、图号(标签12→填26填STG-001)、材料(标签12→填28)、重量(标签12→填14)、张次(标签12→填14填1/1)
  • 行4细分: 设计/制图/审核/批准(标签14→填24,留空待签名)、日期(标签14→填20)
  • 原则: 标签格固定在左、填写格在右且宽度按内容长短(图名/单位名最宽, 数字类最短); 签字区填写格留空待手写; 更改区默认不设除非用户要求
  • 技术说明/技术要求框内部不要无意义的分隔横线, 内容在整体连续区域从上到下排列

box 建筑体等轴测规则(2026-08-10 整合自 storage-room + global-occlusion)

绘制带墙厚的开口房间/库房/箱体(box 实体)正等轴测图时:

全局遮挡(去隐藏线)

  • 遮挡是全局现象: 一条线是否可见由"整幅图中它前面有没有被任意实体挡住"决定, 与它属于哪个零件无关; 禁止把多个实体各自裁剪再拼接(连接处必冲突)
  • 实现: 建3D几何(box=长方体 cx,cy,a,b,z0,z1; a半宽b半深) → 生成候选线 → 对线上每点做全局遮挡判定, 被挡点删除
  • 投影 iso(x,y,z)=((x-y)·cos30,(x+y)·sin30+z); 深度 d=z-x-y(越大越靠观察者)
  • box 正确取轮廓: 按"可见面"取棱——判断哪些面朝向观察者(面法向·观察方向(-1,-1,1)>0 即可见), 再取所有可见面边界棱(去重); 可见侧壁底边(板厚下沿)自然包含, 背面/朝下的不可见边不漏出
  • 通用工具: scripts/isometric_occlusion.py(纯圆柱); 混合 cyl+box 示例 scripts/examples/stool_iso.py

墙体与墙角(库房专用)

  • 墙体必须有厚度(如墙厚150); 地板需延伸到墙体外表面之下防墙脚悬空
  • 外墙轮廓底边(z=地板处、位于墙体背面)做遮挡裁剪, 仅保留真实可见段, 避免从墙外伸出的多余底边斜线
  • 内墙角竖线(两墙内表面交线)干净收于顶点, 其顶端不得有向两侧延伸的横线
  • 内墙角顶点处"从该点向两侧墙厚方向延伸的顶面内端边"(与墙内线/内墙角竖线垂直的分叉线)默认删除, 除非用户明确保留墙顶厚度
  • 外墙角顶部保留两条外顶边(连接右墙外顶→外墙角顶→后墙外顶), 构成外侧轮廓, 墙与墙上方外线须完整闭合
  • 内墙角交点处禁止重复线或线头出头
  • 用户说"去掉与墙内线垂直的那两条"= 去掉内墙角顶部矩形中从内墙角点向两侧延伸的两条顶面内端边, 保留外侧外墙顶边; 修改前先向用户复述理解确认
  • 完整库房示例: scripts/examples/gen_storage_A3_fill.py(三灰面填充: 地板顶/右墙内面/后墙内面)

交付规范(用户固定偏好, box/回转体一致): 正式工程图纸一律交付 PDF + DXF + DWG 三格式(PDF查看/打印, DXF/DWG CAD编辑); 文件名带版本+日期(精确到分钟)

图片描摹 → CAD 转换规范(2026-08-10 新增强模块)

当用户提供一张参考图片/照片要求据此绘制 CAD 图纸(实物、场景、柜体、产品、建筑等)时,按以下流程执行。此模块是"从一张图到一张正式国标工程图"的端到端标准,能力要求高,需同时满足:形状准确、尺寸可靠、细节取舍得当、交付三格式。

Step 1 · 看图与信息提取(用 image_reading 客观描述,禁止臆测)

  • 用 image_reading 对图片做客观详实描述,逐维度提取:整体外形轮廓、结构分区、门/抽屉/层板/把手/脚撑/开口等结构特征、材质(金属/木/塑料)、颜色、顶部底部额外结构、摆放/靠墙朝向。
  • 判断图片是实物照片还是已有工程图/效果图——照片有透视、效果图可能是轴测/三视图,后续尺寸与形状推演不同。
  • 图片中不存在的细节不得凭空添加;用户只给了图片时,缺失的内部结构(层板数量、门扇数等)默认按图中可见的最大信息绘制,或向用户确认。
  • 文字/品牌标识:等轴测图纸一般不画品牌名、警示文字(除非用户明确要求),但可保留结构分区位置(如某区域是一块门板)。

Step 2 · 尺寸获取(可靠性排序,最高优先用户给值)

尺寸来源按以下优先级:

  1. 用户直接给出尺寸(如"高1800、长900、宽470")→ 以用户给定为准,绝不因图片比例而改动。用户给定的是真实工程尺寸,图片只用来定"样式/结构/比例关系"。
  2. 图中带尺寸标注/比例尺/已知参照物 → 按标注或参照物换算。
  3. 仅一张无标注图片 → 不得自行假设工程尺寸;要么问用户要尺寸,要么按标准件/常见规格给出并明确标注"尺寸为估计值待确认"。
  • 长/宽/高的轴向定义(哪个方向是"长"哪个是"宽")由放置方式决定,须先判断:靠墙柜体→"长"沿墙延伸方向、"宽"为柜深垂直墙;独立体→"长"为最长水平边。
  • 尺寸单位默认 mm;无说明先按 mm,若用户给 m/cm 需换算后标注。

Step 3 · 实体建模(把物体转成可投影的 3D 实体)

  • 将物体抽象为 gb_figure.generate() 支持的图元:主体用 box(长方体:cx,cy 中心、a 半宽、b 半深、z0 底、z1 顶);回转体用 lathe/cyl。
  • 长方体:('box',cx,cy,a,b,z0,z1),尺寸=半宽/半深×2。如柜子长900→a=450,宽470→b=235,高1800→z0=100,z1=1900(若放在地表 z=100 的地板上)。
  • 摆放定位:物体放进场景(库房/房间)时,确定贴哪面墙:贴右墙内面 x=墙内面x,柜深沿 -x 向库房内部;贴后墙内面 y=墙内面y,柜深沿 -y。靠墙放时柜/物后端与墙内面重合。
  • 实体加入 ENT 列表后被全局遮挡自动处理(隐藏被挡线)。

Step 4 · 细节线条(面内分隔、门缝、把手、脚撑等)

  • 门缝/分隔线:在主体可见面前画分隔线。如 3 扇门沿长边均分 → 2 条竖向门缝,位置=长边 1/3、2/3 处,用 _clipvis(...,skip=主体idx) 做遮挡裁剪。
  • 把手/脚撑:参考图有则画,用短线段表示;无则省略。脚撑=4 根短竖线在底角。
  • 所有细节线都要遮挡裁剪(skip= 跳过主体本身,避免主体把自己细节误挡)。
  • 细节线不得超出主体轮廓、不得与主体棱线重叠出头。

Step 5 · 尺寸标注(轴向对应 + 引线避开主体)

  • 每个实体尺寸标注方向必须与实体轴向一致:沿墙的长在轴测图中沿墙投影方向、柜深垂直墙、高度垂直。长/宽/高各标注一处。
  • 用 LDIMS 引线式标注(锚点从主体轮廓引出,方向放射)避免横穿实体。
  • 标注文字:900/470/1800 等,位置在引出线端部,不与主体线/其他尺寸线/填充重叠。
  • 已有整体尺寸线(房间 5000/3000/2800)与实体局部尺寸线要层次分明、互不重叠。

Step 6 · 交付(统一三格式)

  • 正式工程图纸一律交付 PDF + DXF + DWG 三格式;文件名 工程名-工程图纸A3-填充-日期HHMM(版本+日期精确到分钟)。
  • PDF 渲染后必须截图验证:实体位置/朝向正确、尺寸标注方向对、无重叠、门缝可见、轮廓闭合。
  • 验证用像素占比或坐标几何(不轻信图像工具描述,image_reading 对细线/方向常误报);渲染裁剪到绘图区高 dpi 细看。

示例 · 图片柜体插入库房(已验证 2026-08-10)

  • 用户给柜子照片 + "高1800、长900、宽470"。→ 图片只取样式(立式金属柜、3 扇门、2 门缝、4 脚撑),尺寸全部用用户给定。
  • 摆位:先放后墙(y 沿 1500),后用户改"换到右墙一侧"→ 改贴右墙内面 x=2500,长改沿 y、宽改沿 x、高不变;门缝同步沿新长边均分;尺寸标注方向同步翻转。
  • 关键坑:换墙后长/宽轴向量要互换(沿墙的才是长),门缝沿沿墙方向均分,尺寸 900/470 方向随轴向翻。

常见错误

  • 把图片透视比例当真实尺寸(照片近大远小)→ 必须用用户给的真实尺寸或问用户
  • 长/宽轴向定义错(靠墙柜把柜深当成长)→ 先定放置方式再定轴向
  • 细节凭空增加或少画(图片没有的抽屉/把手强行画)→ 只画图片可见或用户确认的
  • 门缝/分隔线沿错方向均分(本应沿沿墙的长边)→ 换墙后记得翻转
  • 细节线未 skip 主体 → 被主体 self-occlude 吃掉或重复出头
  • 只画样式不看尺寸 → 图片描摹必须"样式认图、尺寸认值"