用 SMLib + Claude Code 做一个 CAD 资产生成 Agent

本文基于SMLib开源CAD内核与Claude Code编程智能体,实现文本到3D CAD资产的CLI生成工具。重点涵盖环境配置(Python 3.12)、Agent工具箱理解、提示词驱动的CLI代码生成、SMLib原生Brep/网格处理流程、USD输出规范,以及技能分诊、结果验证(破面检查、USDA可读性)和常见坑规避。核心是将SMLib文档能力转化为AI可执行的几何构建流水线。

“让 AI 帮我建模”这件事,SMLib 仓库已经做了一半:根目录有 AGENTS.md、.agents/ 下有 22 篇操作指南、19 个 Agent 技能,还有完整的 text-to-3D 参考实现。

这篇做完整实战:用 Claude Code(或其他 coding agent)基于 SMLib 做一个“文本→3D 资产”的 CLI。

一、准备环境

# ① 装 SMLib Python 包(官方 PyPI 有 manylinux wheel)
pip install usd-brep

# ② 准备一个 coding agent(Claude Code 为例)
#    也可以换成 Cursor / Codex / 其他任意 agent

# ③ 拿到仓库(agent 需要读 AGENTS.md 与 .agents/)
git clone https://github.com/NVIDIA-Omniverse/usd-brep.git
cd usd-brep

注意:pip install usd-brep 需要 Python 3.12(官方 wheel 为 cp312)。

二、先理解 Agent 的“工具箱”

资源作用
AGENTS.md给 Agent 的作业指南(构建、架构、代码风格)
.agents/docs/generate_asset.mdtext-to-3D 标准流水线(本实战的指导文档)
.agents/skills/text-to-3d-asset-generation/SKILL.md文本生成资产的技能说明
tools/scripts/example_generate_asset.py完整可运行的参考实现
tools/scripts/view_usd.py渲染 USD 截图(结果验证)

三、实战:让 Agent 写一个 CLI

1. 把提示词交给 Agent

在仓库目录里对 Claude Code 说:

用 SMLib 的 text-to-3D 流水线,帮我写一个 CLI 工具:
输入一个物体名称(比如 "gearbox"),输出一个 mesh-only 的 USDA 文件。

要求:
- 用 _omni_solid(import usd_brep as sm)构建几何
- 几何用参数化方式构建,尺寸用变量
- 镶嵌后用 PolyBrep.to_mesh_arrays() 生成 UsdGeom.Mesh
- 输出 z-up、厘米单位(SetStageUpAxis(z)、SetStageMetersPerUnit(0.01))
- 参考 tools/scripts/example_generate_asset.py 的结构
- 完成后用 tools/scripts/view_usd.py 截图验证

2. Agent 会照着官方流水线实现

① 用 SMLib 构建几何
   ├─ 解析图元:create_box / create_sphere / create_cylinder / create_torus…
   ├─ NURBS 曲线曲面:create_curve_interp_points / create_surface_from_points…
   └─ 组合成形:linear_sweep / boolean_union / fillet_edges…
② 镶嵌:sm.tessellate(brep) → PolyBrep
③ 取数组:PolyBrep.to_mesh_arrays() → {points, normals, faces, face_normals}
④ 写 USD:UsdGeom.Mesh(每部件一个 prim)+ SetStageUpAxis(z) + SetStageMetersPerUnit(0.01)
⑤ 验证:view_usd.py --screenshot <png> <usda>

3. 参考实现长什么样

官方 example_generate_asset.py 的核心结构:

import _omni_solid as sm                  # 几何:SMLib Python 绑定
from pxr import Usd, UsdGeom, Sdf, Vt, Gf # 发布:USD

def build_parts():
    parts = []
    base = sm.create_box((-5, -5, 0), 10, 10, 3)
    sm.fillet_edges(base, base.edges(), radius=0.5)   # 圆角
    parts.append(("base", base, (0.30, 0.60, 0.95)))
    parts.append(("post", sm.create_cylinder((0, 0, 3), 0.8, 6.0)))
    parts.append(("ball", sm.create_sphere((0, 0, 9), 1.5)))
    return parts

关键点:USD 只在最后一步接触——中间全程在 SMLib 栈内完成,输出里不写 BrepArray,纯网格资产。

四、Agent 的最佳实践(官方 Ground Rules)

规则说明
从参考脚本开始复制 example_generate_asset.py 改造,不要从零写
选最简单的构建方式图元合适就用(精确、镶嵌干净);扫掠/旋转/NURBS 往往比"堆图元+布尔"更干净
参数化建模尺寸用 Python 变量,不要散落魔法数字
一个资产一个脚本便于维护与复用
USD 只在最后接触中途别在 BRep 与 USD 之间来回转(有精度归一化损失)
失败不要手改 USD 掩盖去查 errors.md 或对应操作指南

五、进阶:用技能分诊

Agent 遇到复杂问题时,用仓库里的技能(每个是一份 SKILL.md):

问题类型用哪个技能
几何构建/布尔/圆角失败smlib-kernel-booleans / smlib-kernel-fillets
镶嵌参数不对/网格异常smlib-kernel-tessellation
Python API 用法smlib-python-api-use
从文本生成资产text-to-3d-asset-generation
USD 数据/结构问题usd-brep-data-author / usd-brep-schema

六、验证结果

# 运行生成的脚本
python your_cli.py --object gearbox --output gearbox.usda

# 截图验证
python tools/scripts/view_usd.py --screenshot gearbox.png gearbox.usda

检查点:

  • 截图里模型形状合理、无破面;
  • PolyBrep.to_mesh_arrays() 返回的数组非空;
  • USDA 能被 Omniverse viewer / usdview 打开。

七、常见坑

坑解决
环境缺 _omni_solid确认 Python 3.12 + pip install usd-brep(或按仓库构建)
Agent 没用技能明确告诉它"读 .agents/skills/text-to-3d-asset-generation/SKILL.md 再动手"
输出带 BrepArray说明 Agent 走错了发布路径——应输出纯 mesh
布尔后输入被消耗布尔是消耗型操作,别复用输入
镶嵌太粗糙/太精细见 《镶嵌参数调优》

八、一句话总结

SMLib 的 Agent 化门槛很低:AGENTS.md + 技能 + 参考脚本就是"AI 建模工具箱"。你只需给 Agent 一个明确的文本→资产流水线提示词,剩下的几何构建、镶嵌、USD 发布它都能照官方文档写出来。


系列文章

SMLib 系列共 8 篇,本篇为第 8 篇,可互相跳转:

  • 第 1 篇:《NVIDIA 开源 CAD 内核 SMLib:USD BRep 里有什么、能怎么用》
  • 第 2 篇:《Agent 如何用 SMLib 做 CAD 创作:从 AGENTS.md 到 text-to-3D 流水线》
  • 第 3 篇:《SMLib 五层架构深度解析》
  • 第 4 篇:《SMLib Python API 实战:用 _omni_solid 建模的 10 个常用操作》
  • 第 5 篇:《SMLib vs OpenCASCADE:2026 开源 CAD 内核怎么选?》
  • 第 6 篇:《SMLib 的 usd.heal_file:STEP/IGES 导入模型修复实战》
  • 第 7 篇:《SMLib 镶嵌(Tessellation)参数调优:chord-height 与角度容差怎么选》
  • 第 8 篇(本文):《用 SMLib + Claude Code 做一个 CAD 资产生成 Agent(实战)》

仓库:https://github.com/NVIDIA-Omniverse/usd-brep(Apache 2.0,C++ / Python)

内容概要:本文提出了一种基于灵敏度分析的有源配电网智能软开关(SOP)优化配置方法,旨在应对高比例分布式电源接入带来的电压波动与网络损耗加剧等问题。研究以IEEE33节点系统为算例,通过改进的灵敏度分析模型量化各节点对电压和功率流动的影响程度,进而构建SOP选址与定容的优化模型,实现降低网损、改善电压分布及提升系统运行灵活性的目标。全文详细阐述了灵敏度指标的数学推导、目标函数与约束条件的建模过程,并基于Matlab实现了完整的仿真求解流程,具备良好的工程实用性与学术参考价值。; 适合人群:电力系统及其自动化、电气工程等相关专业的硕士博士研究生、科研机构研究人员,以及从事智能配电网规划、运行与优化的工程技术人员。; 使用场景及目标:①研究分布式电源大规模接入背景下配电网的主动调控与优化策略;②指导智能软开关在实际配电网中的科学选址与容量配置;③为相关科研课题提供可复现的仿真案例,支撑学术论文撰写与算法验证。; 阅读建议:建议读者结合提供的Matlab代码与IEEE33节点标准模型进行动手实践,重点理解灵敏度指标的物理意义及其在优化模型中的应用逻辑,关注求解过程中的约束设置与算法收敛性,并可进一步拓展至SOP与储能联合配置、多时间尺度优化等复杂场景进行二次开发与研究。
内容概要:本文聚焦于基于模型预测控制(MPC)的光伏供电DC-AC变换器系统设计与仿真研究,依托MATLAB/Simulink平台构建完整的系统模型,深入探讨MPC控制策略在光伏发电系统中的应用价值。研究首先建立DC-AC变换器的精确数学模型,结合光伏发电的间歇性与负载波动特性,设计适用于非线性、多约束系统的MPC控制器。通过滚动优化与反馈校正机制,实现对输出电压、频率及电能质量的高精度调控,有效提升系统的动态响应能力与运行稳定性。文中详细阐述了控制算法的设计流程、仿真模型搭建方法、关键参数整定策略,并通过仿真实验验证了MPC在抑制功率波动、降低谐波畸变、改善并网波形质量等方面的显著优势,展示了其在现代智能电网与分布式能源系统中的广阔应用前景。; 适合人群:具备电力电子、自动控制理论基础,熟悉MATLAB/Simulink仿真环境,从事新能源发电、微电网控制、电力系统自动化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于光伏发电系统中DC-AC变换器先进控制策略的教学演示与科研探索;②为提升光伏并网系统的电能质量、动态性能与抗干扰能力提供技术支撑与解决方案;③支持科研人员开展控制算法对比、仿真验证、论文复现及实际工程项目开发。; 阅读建议:建议结合文中所述Simulink仿真模型与配套代码进行动手实践,重点关注MPC控制器的成本函数构建、预测时域选择与约束条件设置等核心环节,同时可参考团队提供的其他电力系统优化案例进行横向对比分析,以深化对先进控制理论的理解与工程应用能力。
摘 要 在“互联网+医疗”深度融合的政策导向与行业需求下,我国医疗资源分布不均、传统就医模式时空受限等问题日益凸显。优质医疗资源过度集中于大城市三甲医院,基层医疗机构服务能力不足,导致群众跨区域就医成本高、就医流程繁琐,难以满足碎片化、即时性的健康咨询需求。《“健康中国 2030” 规划纲要》明确支持在线健康服务发展,而现有平台存在功能单一、健康档案管理不规范、医患交互效率低等短板,为此,开发一款功能完善的在线医疗咨询系统成为破解行业痛点的关键。 系统采用前后端分离架构,以 Spring Boot 为后端核心框架,整合 Spring Security 与 JWT 令牌认证实现分级权限控制,通过 MyBatis-Plus 优化数据交互;前端基于 Vue3+ElementPlus 开发,适配不同用户群体操作需求。功能上覆盖患者、医生、管理员三类角色:患者可通过手机号或邮箱注册登录,享受在线问诊、预约挂号、健康档案管理、AI 智能客服咨询等服务;医生依托医院认证账号接入,完成接诊回复、病例管理、健康档案查阅等操作;管理员实现用户与医生信息管控、预约管理、公告发布及系统维护,同时引入第三方 AI 智能客服提供 24 小时基础咨询。 该系统的应用有效打破了传统就医的时空限制,让患者足不出户即可获取专业医疗建议,大幅降低就医成本;简化了医生接诊流程,通过数字化健康档案提升诊断准确性与效率;帮助医疗机构优化资源配置,分流门诊压力,推动优质医疗资源下沉。经实践验证,系统操作便捷、运行稳定,数据安全有充分保障,切实解决了健康数据分散管理、医疗服务响应不及时等问题,为医患双方提供了高效便捷的沟通渠道,为推动医疗服务均等化、落实健康中国战略提供了切实可行的技术支撑。 关键词:Spring Boot;Vue3;在线医疗咨询系统;在线问诊;预约挂号;健康档案管理;AI 智能客服;病例管
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值