【免费下载链接】usd-brepUSD BRep is a standalone C and Python library for NURBS-based boundary representation (BRep) solid modeling项目地址https://gitcode.com/gh_mirrors/us/usd-brep点击查看免费下载usd-brep 是一款基于 NURBS 的边界表示BRep实体建模库其 Python APIusd_brep包将 SMLib 内核的建模能力完整开放给脚本用户。本文是 USD BRep Python API 的完整参考指南先带你看懂Brep、PolyBrep、Curve、Surface四大核心类各自负责什么再重点讲解 Pure、Consumes、Mutates 等四大变更契约——这是判断一个函数会不会改动你的几何体的关键也是新手最容易踩坑的地方。 快速安装 usd_brep 包与导入方式一行命令完成安装无需单独安装 OpenUSDpip install usd-brep支持 CPython 3.12平台为 Windows 与 Linuxx86_64 / aarch64Windows 还需安装 Visual C Redistributable。导入名称是usd_brep它内部加载编译模块_omni_solid并自动注册 omniSolid 的 USD schema 插件。建议在任何pxr打开 Stage之前先import usd_brep否则 schema 插件可能不被识别。import usd_brep as sm box sm.primitives.create_box((0.0, 0.0, 0.0), 10, 10, 10) sm.usd.export_brep(box, box.usda)全局约定角度单位是度Z 轴向上出错时抛出RuntimeError。API 文档入口见 docs/python.rst包初始化逻辑在 source/SmPyLib/python/usd_brep/init.py。 核心类 Brep实体边界表示与拓扑查询Brep是整个 API 的中心一个实体由 Shell → Face → Edge → Vertex 的拓扑层级描述每个拓扑元素绑定精确的 NURBS 或解析几何数学上无损、与分辨率无关。常用查询方法方法说明faces()/edges()/vertices()遍历拓扑元素volume()/area()体积、表面积带相对精度参数bounding_box(tight)/center()包围盒与几何中心is_manifold_solid()检查是否为流形实体info()一次性返回面数、边数、体积、包围盒等摘要read_from_file()/write_to_file()读写 SMLib 原生.smb文件tessellate(...)直接三角化成PolyBrep网格Face提供uv_domain()、point_at_uv()、outward_normal_at_uv()等参数化查询Edge提供length()、tangent_at()Vertex提供point()。注意Face.surface()和Edge.curve()返回的是借用视图borrowed view——它们属于 Brep 所有做turn_to_nurbs()或缩放等改变表示的操作前必须先释放详见下方四大变更契约一节的注意事项。完整类型签名可查阅类型存根 source/SmPyLib/stubs/usd_brep/init.pyi。 核心类 PolyBrep三角化网格与快速布尔PolyBrep是Brep三角化tessellate后的多边形网格形态适合渲染与高性能网格布尔。由tessellate(brep, chord_height_tolerance..., surface_angle_tolerance_deg...)等容差参数控制精度。方法说明get_faces()/get_vertices()/get_edges()/get_points()网格数据访问to_mesh_arrays()/to_numpy_arrays()导出为顶点/法线/面片数组直接对接渲染管线mass_properties()体积、质心等质量属性section_plane()/ray_intersection()平面截切、射线求交is_manifold_solid()流形性检查网格层面的布尔运算在poly子模块中poly_boolean()搭配PolyBooleanOpUNION / INTERSECTION / DIFFERENCE / MERGE使用比 BRep 布尔快得多适合预览和碰撞检测。 核心类 Curve 与 Surface参数化几何引擎Curve与Surface既是独立对象也是Edge.curve()/Face.surface()返回的底层几何支持完整的参数化求值Curveparameter_range()、evaluate(t)、length()、is_closed()子类BSplineCurve、Line、CircleCircle额外提供center()/radius()/normal()。Surfaceuv_domain()、evaluate(u, v)、normal(u, v)、derivatives(u, v)、is_planar()、is_periodic_u()。创建函数按类别归入子模块curves线段、圆弧、椭圆、螺旋线、B 样条插值/逼近、曲线偏移、投影到面drop_curve_to_surface等surfaces放样ruled、旋转revolution、扫掠sweep、偏置offset、皮肤skin曲面。 四大变更契约判断函数副作用的关键这是理解 USD BRep Python API 最重要的规则同一个函数有的不碰输入有的原地修改有的直接吃掉输入。每个操作的文档字符串都会标注契约共四类约定见 AGENTS.md 的 Mutation conventions以及模块总说明 source/SmPyLib/src/SmPyMain.cpp契约含义典型函数Pure返回新对象输入不变只读生产者可安全重复调用create_box、offset_brep、shell_brep、tessellateConsumes输入被消费返回新 Brep参数所有权转移给操作调用后只允许使用返回值boolean_union、boolean_difference、merge_brepsMutates原地修改并返回同一句柄可链式调用box sm.fillet_edges(sm.translate(box, v), edges, radius0.5)cut、translate、rotate、heal_brep、各类fillet_*Mutates 诊断原地修改返回(句柄, ...报告)句柄放最前便于解包、向前兼容stitch_into_solid、unify_normals、stitch_advanced⚠️两条常见陷阱名字不代表行为non-manifold 扫掠会修改源 BRepcreate_blend_primitive会插入到传入的 Brep 中。以各函数文档标注的契约为准。想保留原对象就先拷贝需要保留原件时先brep.copy()再传给修改型操作。️ 子模块清单按功能类别快速定位函数每个函数都有两种等价写法——顶层扁平名sm.create_box和分类子模块名sm.primitives.create_box。子模块纯粹为了可发现性dir(sm.primitives)、help(sm.sweeps)可聚焦浏览。子模块功能primitives盒体、球、锥、柱、环、棱锥、平面及 partial-* 扇区、skin/blend 基元curves/surfaces曲线与曲面的创建、求值、偏置、投影booleans并、差、交、合并2D 布尔与非流形变体sweeps线性/旋转/管道/拔模/锥度/沿曲线扫掠fillets圆角、倒角、变半径圆角、面-面圆角、预览与去除offset壳体shell、实体偏置、轮廓偏置stitching面/壳/实体缝合、法向统一intersect/cutting求交、平面切割、投影裁剪transforms/queries平移/旋转/缩放、最近点与流形性查询io/brep_ops/heal/poly文件读写、NURBS 转换、修复、网格布尔usdUSD 导入导出见下节 USD 互操作Brep 与 Mesh 的 .usda 读写usd子模块负责 OpenUSD 文件级别的导入导出数据存放在自定义的BrepArrayschema 中import_breps(filename)/import_brep(filename, prim_path)从.usda读回Brep列表export_brep(brep, filename)/export_breps(...)/append_breps(...)导出 BRepimport_meshes(...)/export_mesh(...)多边形网格互转tessellate_file(input, output, ...)/heal_file(input, output)文件级批量三角化与修复返回带ok、status_name、message的结果对象。⚠️export_brep会把生成的 UV 裁剪曲线与 USD 路径属性直接写回传入的 Brep输入副作用想隔离副作用时导出brep.copy()。类型签名见 source/SmPyLib/stubs/usd_brep/usd.pyi。 进一步学习路径可运行示例圆角弯管组合建模见 Examples/PyAPI/round_corner_pipe.py 及其说明 Examples/PyAPI/README.mdPython 轮转测试tests/python/roundtrip_usd_test.py、tests/python/roundtrip_smlib_test.py绑定层测试source/SmPyLib/tests/USD 测试文件BrepArray 校验用例TestFiles/brep_validator/BrepArray 数据结构proposals/UsdSolid/README.mdIDE 类型提示包内置py.typed与.pyi存根导入即享受自动补全与静态检查。掌握四大核心类 四大变更契约你就能安全、高效地在 USD BRep 中完成从基元创建、布尔扫掠到 USD 资产输出的完整建模工作流。赞分享【免费下载链接】usd-brepUSD BRep is a standalone C and Python library for NURBS-based boundary representation (BRep) solid modeling项目地址https://gitcode.com/gh_mirrors/us/usd-brep点击查看免费下载相关推荐CadQuery 核心概念指南BREP 拓扑、四层 API 体系与装配约束系统CadQuery 核心概念指南BREP 拓扑、四层 API 体系与装配约束系统 CadQuery 是构建在 OpenCascadeOCCT几何内核之上的3D建模图形学USD BRep BrepValidator校验器实战400多条BA规则如何诊断你的USD BRep资产USD BRep BrepValidator校验器实战400多条BA规则如何诊断你的USD BRep资产 USD BRep 的 BrepValidator 校USD BRep Python包发布完整指南pyproject模板、usd_brep wheel打包与验证插件安装USD BRep Python包发布完整指南pyproject模板、usd_brep wheel打包与验证插件安装 usd brep 是一个独立的 C 与创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考