Text-to-CAD实战:从自然语言到参数化实体模型的工程落地
上个月帮朋友赶一套夹具方案他在建模软件里对着图片一点点拉草图花了两个多小时才画出一块带安装孔的底板。我问他为什么不试试text-to-cad这类工具把需求直接打进去让模型生成初始数模再进软件微调。他一脸懵文本还能生成CAD——那一瞬间我意识到这个方向的进展虽然热闹但真正用过、能说清楚原理和边界的人还不多。Text-to-CAD简单说就是通过自然语言描述直接生成CAD模型。学术上常称为text-to-CAD、text-driven CAD generation目前社区里也有不少项目叫Text2CAD。它解决的不是画图这一步而是把设计意图从语言直接映射成几何实体的全过程。这篇文章不打算堆论文只讲我实际把这套流程用起来之后的体会有哪些技术路线、怎么搭一条能用的流水线、生成质量如何评估、踩过哪些坑、哪些场景真的值得用。1. Text-to-CAD到底解决了什么问题从口头需求到实体建模的鸿沟1.1 传统流程里的转述损耗做过结构件或非标设备的人应该都有同感需求方在电话里说给我一块板上面打几个孔装到设备上到了工程师手里要变成120x80x8的6061铝合金板四角M5沉头孔中间两个定位销孔单边留1.5mm翻边。这一步翻译靠的是工程师对加工工艺的理解和对标准件库的熟悉。这中间的损耗非常大。我听过的真实需求经常缺尺寸、缺公差、缺表面处理要求更别提孔位、避让、拔模斜度这些细节。传统CAD软件的交互方式——鼠标点选、约束定义、特征树操作——本质上是在跟几何体对话而不是跟人对话。设计师脑子里想的是一句话手上做的却是几十次点击。Text-to-CAD堵住的正是这道沟让语言成为建模入口让设计意图直接变成特征步骤。1.2 为什么这几年突然能走通了其实从文字到模型的尝试很早就有早先的专家系统、参数化模板库都做过类似的事但效果一直很别扭。核心卡在两个地方一是自然语言理解不到位一个带导角的矩形板这种话机器根本不知道导角该落在哪条边二是几何生成没有泛化能力只能套固定模板。近几年LLM把第一关打通了模型能理解空间关系、常见零件语义和隐含的工程习惯。第二关则被两条路线分别解决一条走三维生成用多模态模型直接产出点云、体素或隐式曲面另一条走代码生成让模型输出参数化建模脚本再交给内核重建出可编辑实体。后一条路线在CAD圈子里尤其被看重因为工业界要的不是一张好看的渲染图而是一个带特征树、能改参数、能出工程图的真实数模。在这部分我想强调一个我的判断做实际项目优先走代码生成路线而不是端到端生成路线。原因后面详细展开。2. 文本转CAD的两条主流技术路线端到端生成与参数化代码生成2.1 多模态大模型点云/隐式场像雕刻一样从无到有这条路的基本思路是把CAD模型当成一种三维数据模态来处理。输入文本描述经过类似扩散模型的生成器输出体素占用、点云或者SDF有向距离场再通过表面提取、网格化、参数化重构转成B-rep实体。听起来很顺实际用起来问题不少。首先生成结果大多是网格或点云不是原生实体。网格数据进不了主流CAM和CAE流程拿去做仿真还要重新逆向成实体而逆向本身就是一个大坑。其次这种路线生成的物体从拓扑上看往往很自由像雕塑自由度管不住。你说一个带六个螺纹孔的法兰盘它可能给出一个整体形状大致对、但螺纹孔位置歪了2mm的结果。因为扩散模型的本质是概率生成它不太理解孔位必须落在螺栓分度圆上这种硬约束。当然这条路也不是没有用。在概念设计、前期造型发散、玩具手办这类对精度不敏感的场景里它的速度和人机交互体验确实香。我也见过团队把它跟3D打印结合用来做快速原型和展览模型效果不错。但放在结构设计、模具设计这些正经制造业场景里我目前不会选它作为主路线。2.2 LLM参数化脚本生成让模型写出可编辑的实体特征另一条路是我更看好的文本先进LLMLLM生成一段CAD建模脚本——比如CadQuery、OpenSCAD、PythonOCC代码——然后在本地内核里执行得到真正的B-rep实体文件STEP或IGES。这么做的好处非常明显输出天然是参数化模型。脚本里写着box(120, 80, 8)、hole(diameter5.2)改一个参数全模型跟着变工程上可维护性极强。特征树是完整的。在FreeCAD或SolidWorks里打开能看到每一步是拉伸、切除、倒角而不是一坨三角面片。硬约束可以埋进去。LLM生成的代码可以追加后处理脚本自动检查孔间距、壁厚、公差符号违反就报错。说白了这条路是把LLM当成一个会写代码、懂点机械常识的建模师而不是一个试图直接捏泥巴的雕刻机。它输出的不是最终几何而是生成几何的操作序列。CAD软件最擅长的恰恰是重放操作序列所以这条路跟现有工业软件体系天然兼容。2.3 两条路线的对比选型我自己做过一次小规模的对比用一个提示词带四个安装孔的钣金支架长100宽60高25材料Q235折弯半径3mm分别跑两条路线对比维度端到端生成参数化代码生成输出格式网格/点云/SDFSTEP/IGES/原生实体可编辑性弱需逆向重构强特征树完整尺寸精度厘米级都费劲理论可达毫米以内工程约束支持极弱可通过脚本注入适合阶段概念造型、视觉预览结构设计、加工前验证工具举例各类3D扩散模型CadQueryLLM、OpenSCADLLM结论很清晰如果你只是想快速看看效果、做个渲染演示端到端生成够了如果你要做能进工艺链的数模别犹豫选参数化代码生成。下面我重点讲的就是这条路线。3. 数据与语义对齐决定天花板的关键环节3.1 训练数据从哪来算法再强也绕不开的数据准备所有text-to-cad模型的源动力都是数据。公开可用的CAD模型数据集主要有ABC、Fusion 360 Gallery、ShapeNet等。ABC数据集大概有一百万个CAD模型的BREP表示Fusion 360 Gallery里有大量带设计历史的参数化模型这对代码生成路线特别有用——因为模型不只给了几何还给了完整的设计步骤和约束关系。但有一个很现实的问题这些数据集都是只有图没有话。它们没有配套的自然语言描述或者说描述都是后来生成的。想要训练一个text-to-cad模型必须先做图文对。业界常见的做法是先让多模态模型看渲染图写描述再由人审核形成一批干净数据。我有段时间也在做类似的事给一批机械零件写结构化描述后来发现直接用GPT-4V生成的文本加上人工随机抽检效率远高于从头纯手工标注。3.2 CAD领域的提示词工程和常规GPT完全不同在通用场景里提示词写一只戴帽子的狗就能出图自由度很高。但CAD场景里提示词必须结构化。我常用的写法是这样主语零件名称支架、法兰、壳体、导轨座几何参数长、宽、高、直径、厚度特征列表孔、沉头、倒角、槽、凸台每个特征带参数位置关系居中、均布、对称、对齐、偏置工艺信息材料、表面处理、公差能写就写举个例子generate a mounting bracket, overall 120x80x8 mm, four M5 counterbored holes at corners R5mm from edges, two 6mm dowel pin holes on the centerline, chamfer 1x45° on top edges, aluminum 6061对比一下随手写的make me a mounting plate with holes同一个模型前面这种描述生成出来的东西基本能直接用后面那种大概率生成一个形状对但细节乱飞的数模。这不是模型傻而是CAD本来就讲究精确提示词就是设计需求文档的压缩版。另外方位词的使用要谨慎。CAD模型是三维的左边、上面这类词取决于查看角度很容易歧义。我建议把提示词写成绝对坐标系视角的语句比如沿X轴方向单边偏移10mm、位于长边中心F.S.并且在生成后立刻用视图检查。这不是给模型纠错是给自己减少沟通成本。4. 实战复现基于HuggingFace的Text-to-CAD流水线搭建4.1 环境准备最容易被忽略的细节说干就干。我当前用的是一条基本全开源的流水线用HuggingFace上的text-to-cad模型现在社区里已经有几个可用的权重把自然语言转成CadQuery代码再在本机用CadQuery执行生成STEP文件最后扔进FreeCAD检查特征。整套流程跑在Windows WSL2上显卡用一块消费级N卡够了显存8G就能跑不需要多卡。环境搭建命令大概是这样conda create -n text2cad python3.10 conda activate text2cad pip install transformers torch cadquery jupyter git clone https://github.com/your/text2cad-repo # 这里换成实际项目仓库 cd text2cad pip install -r requirements.txt有一个坑必须提醒CadQuery最新版本依赖OCPOpen Cascade Python绑定这个包很容易装失败。如果你用conda优先加conda-forge源再装别直接用pip硬装。我第一台机器上就因为版本冲突耗了一下午最后是conda install -c conda-forge cadquery解决的。4.2 一个完整的生成例子从提示词到STEP文件我用上面那段安装板的提示词跑了一次。加载模型之后调用方式类似这样from transformers import pipeline import cadquery as cq generator pipeline(text-generation, modelyour-model-path) prompt (Generate CadQuery code: mounting bracket, overall 120x80x8 mm, four M5 counterbored holes at corners R5mm from edges, two 6mm dowel pin holes on centerline, chamfer 1x45 on top edges, aluminum 6061) result generator(prompt, max_new_tokens800) code extract_code(result[0][generated_text]) exec(code) cq.exporters.export(result_assembly, bracket.step)第一次跑出来的代码成功执行了但孔位明显不对——四个角的沉头孔全跑到同一侧去了。原因不在模型而是我的提示词里没写分布均匀和距离角点10mm这样的几何约束。把提示词改成holes equally spaced, centers at R10 from adjacent edges之后第二次输出就正常了导出STEP文件放进FreeCAD里看特征树拉伸、到角、打孔、阵列清清楚楚。整个过程从输入一句话到拿到STEP大概花了不到两分钟其中模型生成代码占了大头。我后来直接把这个调用包成了一个小服务用Flask接口暴露出来内部其他同事通过网页表单提交需求后台自动出数模省掉了手动建模环节起码缩短了一半前期时间。4.3 生成质量的检验不能只看渲染图很多人拿到生成的模型习惯性渲染一下看着像就认为成了。这是大忌。我的检验流程是四步几何尺寸检查用Python脚本自动遍历STEP里所有实体测量关键尺寸是否在容差内。特征完整性核对人工看特征树确认沉头孔、倒角、凸台这些该有的特征都在。可制造性扫雷壁厚是否小于最小加工厚度、有没有无法出模的负角、孔间距是否小于标准值。干涉检查如果零件有装配关系先把相邻零件也生成出来做一次布尔运算和干涉检测。第四步尤其重要。text-to-cad目前对单个零件的掌控远远好于装配体。多个生成零件装在一起孔对不上、轴线歪掉的情况我遇过很多次。所以我现在养成一个习惯单件可以直接用涉及装配的一定要在FreeCAD或CAD软件里做配合验证。这不是模型质量差是目前这类工具的通用能力边界提前心里有数比较好。5. 工程落地中的那些坑从DEMO到产线的经验5.1 AI不知道公差两个字意味着什么这是目前最伤脑筋的问题。你让LLM生成一个直径8mm的轴它给你一个8.0的实体但不会告诉你这个轴配合孔的时候该选h7还是g6也不会标注尺寸后面的0.015/-0.010。对设计阶段来说问题不大但对制造来说没有公差配合的数模只能算半成品。我自己试过在提示词里明确写公差shaft diameter 8mm with tolerance h7, surface roughness Ra1.6模型确实会在注释里写# tolerance: h7但生成的几何体依然是8.0整因为CadQuery里做几何实体本来就不需要携带公差符号。真正能落地的办法是生成完STEP之后再用程序往里面追加尺寸公差标注或者直接对接PLM系统的时候人工补公差。指望AI一步到位暂时不现实。5.2 单位制混乱毫米和英寸的战争这个坑是我踩得最狠的一次。有一次生成一个外壳所有数字看起来都很正常尺寸显示为100x60x5我以为是毫米结果导进车间数控系统机床读出来是3.94x2.36x0.2英寸工人差点按英寸装刀。原因是模型在生成代码时写的是inch而我认为默认是mm。解决的办法很笨但有效每次生成代码后强制在代码片段前面注入一条units cq.Units.MILLIMETER类似的全局常量并且在导出STEP后用脚本解析文件头部确认单位和实际尺寸量级。如果生成的是一个长度值小于10的物体先警惕是不是英寸。我也把这个写进了团队内部的生成服务里作为强制校验步骤从此再没出过这类事故。5.3 给AI加护栏后处理与规则校验单纯让LLM自由发挥结果是不稳定的。我在流水线里加了两个护栏第一个是规则校验层。生成脚本执行前先静态识别代码里的关键参数比如所有hole()调用的直径所有box()的长宽高然后跑一遍预定义的制造规则。规则包括最小壁厚不小于0.8mm按加工工艺孔中心距不小于板厚的2倍所有外部锐边默认倒角0.5mm。不满足直接拦截把错误信息反馈给用户让用户去改提示词。第二个是特征锁定。在CadQuery里固定用一套自己封装的标准件库M3/M5/M6螺纹孔、标准沉头孔、腰型槽全部预生成好。LLM遇到装M5螺丝这种需求不直接生成几何而是调用标准库里的现成特征。这样一来孔口倒角、压铆螺母的底孔直径这些细节就不会让AI自由发挥模型只需负责位置和尺寸质量立刻稳定一大截。这两个护栏加完之后我从50%情况下要手工修变成了80%情况下直接可用生产效率的提升是肉眼可见的。6. 把Text-to-CAD用起来适合的场景与不适合的场景6.1 真正值得用的四个场景先说判断结论Text-to-CAD最成熟的应用场景不是我原本以为的从零设计一台机器而是下面这四类前期方案快速推敲客户提需求先用文字生成5个不同形态的方案数模渲染出来一起看。不需要精细结构但能快速对齐方向。标准件库和零件检索你有一大堆历史数模让员工用一句话描述来搜自动匹配到最接近的模型哪怕不是100%符合也能快速改参数。这比翻文件夹高效一个量级。图纸注释与逆向描述已有实体模型但缺文档用text-to-cad反向生成结构化的文字描述填充物料清单和BOM备注里的特征栏。教学和新人培训新人想理解一个带法兰的旋转体长什么样直接生成一个给他看比看十条说明书都直观。我近期给团队搭的内网工具核心就是做零件检索。库里几百个结构件以前靠命名规范找人脑记忆现在输入带四个腰型槽的L型固定架就能直接定位。这也是我目前用下来ROI最高的一个场景。6.2 别急着在精密和装配场景里用它反过来有几类情况我强烈建议不要现在上线至少我自己踩过之后收敛了很多精密配合件轴孔配合、轴承座、齿轮箱这类对公差、形位公差要求极高的东西AI生成的几何能看但离加工可用还有距离。装配体和运动机构生成单件都问题不大但它不管配合关系。铰链、滑轨、凸轮这些让AI一次生成整组十次里有九次干涉。大曲面A级曲面车身覆盖件、家电外观这类需要高光顺的曲面AI生成的自由曲面基本没法用跟专业曲面设计工具差距太大老老实实用老路。任何图纸直接下发产线之前目前我不管提示词写得多完整生成后都会强制经过一次人工审查。这是流程红线不是模型能力问题是一种工程责任。6.3 我预判的下一步形态这个方向还很年轻眼下每两三个月就有新东西出来。我比较看好的下一步是LLM不再是直接生成命令脚本而是去驱动一个带约束求解器的原生CAD内核。也就是说模型输出的是意图图——包含特征之间的位置约束、尺寸约束、配合关系由CAD内核去求解出满足约束的几何。这样一来AI生成的就不是一个碰巧长这样的东西而是真正符合约束条件的数模。到那时候Text-to-CAD才真正有资格叫设计助手而不只是建模加速器。眼下这个阶段我的建议很务实把它当成一个效率工具来用用它来生成起始模型、检索历史零件、快速对齐设计方向然后老老实实把专业判断留在自己手里。只要提示词写得够规整后处理护栏做得够扎实它省下来的时间是真金白银而不是Demo视频里的表演。

相关新闻

别错过!OpenAI新Agent+MCP协议实战,TaoToken统一Key接入大模型开发

别错过!OpenAI新Agent+MCP协议实战,TaoToken统一Key接入大模型开发

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

2026/10/13 12:22:02 阅读更多 →
Claude Code 会自己修 Bug 了,程序员还写什么代码?TaoToken 统一 Key 接入实测

Claude Code 会自己修 Bug 了,程序员还写什么代码?TaoToken 统一 Key 接入实测

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

2026/10/12 0:55:27 阅读更多 →
Claude Code 团队协作效率下降?从单人神器到多人共用,TaoToken 统一 Key 通道的实战复盘

Claude Code 团队协作效率下降?从单人神器到多人共用,TaoToken 统一 Key 通道的实战复盘

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

2026/10/12 15:20:57 阅读更多 →

最新新闻

关系模型实战指南:从二维表到业务稳定性的底层逻辑

关系模型实战指南:从二维表到业务稳定性的底层逻辑

1. 这不是教科书里的“关系”,而是你每天都在用的数据组织逻辑“关系模型的基本概念”——看到这八个字,很多人第一反应是大学数据库课上那个被粉笔灰笼罩的下午,黑板上写着“实体、属性、域、键”,讲台下有人偷偷刷手机&#xff…

2026/10/13 12:22:17 阅读更多 →
Qt国际化翻译完整实践:从tr()到动态语言切换

Qt国际化翻译完整实践:从tr()到动态语言切换

做Qt开发这么多年,遇到最多的问题不是功能写不出来,而是功能做完以后客户说看不懂。于是QT国际化翻译就成了绕不开的环节。表面上看,这事只是把界面文字换成英文、日文,真正做起来却涉及源码扫描、翻译文件管理、运行时加载、动态…

2026/10/13 12:22:17 阅读更多 →
华为+红帽双赛道:2026网工转型的破局之道

华为+红帽双赛道:2026网工转型的破局之道

1. 为什么2026年网工转型,我建议你押注"华为红帽"双赛道最近不少朋友私信问我关于2026年转行网络工程师(网工)的事,大家的焦虑点很一致:AI工具越来越强,初中级网工的活是不是要被替代&#xff1f…

2026/10/13 12:22:17 阅读更多 →
Modern.js 服务端编译核心 @modern-js/server-utils:TypeScript 编译、别名解析与原生 ESM 支持的源码级解析

Modern.js 服务端编译核心 @modern-js/server-utils:TypeScript 编译、别名解析与原生 ESM 支持的源码级解析

前端后端Web框架 【免费下载链接】modern.js A progressive web framework based on React and Rsbuild. 项目地址: https://gitcode.com/gh_mirrors/mo/modern.js 点击查看 免费下载 本文围绕 packages/server/utils/CHANGELOG.md 记录的能力演进,结合…

2026/10/13 12:22:17 阅读更多 →
基于SpringBoot+Vue的派出所健康档案管理系统设计与实现

基于SpringBoot+Vue的派出所健康档案管理系统设计与实现

选题背景 社会对公共安全的重视,派出所民警的工作压力日益增大,其健康状况备受关注。早期的健康档案管理方式效率低下,难以实现信息的实时共享和动态更新。本系统采用 Spring Boot 框架,结合前端技术和数据库技术,构建…

2026/10/13 12:22:17 阅读更多 →
EmbeddingGemma 2本地多模态嵌入模型部署与向量检索实战

EmbeddingGemma 2本地多模态嵌入模型部署与向量检索实战

1. 这个模型到底是什么:先把它的定位弄清楚拿到"EmbeddingGemma 2"这个名字,第一反应就是:这是个嵌入模型,740M参数规模,多模态,而且主打本地推理。这几个关键词放在一起,意味着它并不…

2026/10/13 12:21:16 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/12 18:11:17 阅读更多 →