所有分类
  • 所有分类
  • Unreal Engine
  • Blender
  • KitBash3D模型
  • 3D模型
  • 材质贴图
  • 图片参考

blender硬表面布尔建模工具包 – Hardflow v1.21.0

资源下载
资源类型Blender 插件
支持软件 Blender 4.2 - 5.1
文件格式插件
包含内容压缩包

Hardflow

Blender 的免费开源硬表面布尔建模工具包。

一个 GPLv3 插件,涵盖整个硬表面建模流程 —— 画线布尔切割、世界级捕捉、完整的贴花管线、套件拼装/资产系统,以及直接建模(推/拉、偏移、边缘工具、轮廓扫掠)—— 全都免费。

tests
Blender 4.2+
Extension
License: GPL v3
Version
Python
Patreon
Built with Claude

人类主导,与 Claude 协作构建。 Hardflow 由人类维护者设计和引导,Claude(Anthropic 的 AI)作为结对编程助手。每个功能都由人类指定、审查和测试 —— AI 按指示编写代码,它不决定项目是什么或走向何方。我们公开说明这一点,是因为我们宁愿透明地介绍工具的构建方式,也不愿让任何人猜测。

状态 —— 积极开发中。 到 v1.21 为止的路线图功能已全部实现 —— 布尔切割循环(切割/切片/添加/合并/相交/刀痕),支持方框/圆形/多边形/N边形/槽形/星形/弧形形状,世界级 + 顶点/边捕捉,非破坏性流程,完整贴花子系统,资产/套件拼装系统,网格辅助工具(边权重、显示切换、重新计算法线),直接建模工具,用于绘制/推拉/偏移/捕捉的 编辑模式(v1.3),绘制中操作(刀痕、内嵌、阵列、镜像、切割倒角、倒角切割器、平面内旋转、印章、实时网格深度、实时布尔预览 —— v1.4/v1.6/v1.13),管道/线缆/跟随路径轮廓扫掠 + 放样,v1.10 视口 Gizmo,v1.11 直接建模深度(Blender 折线修剪 对等、推拉复制/重复/推断、偏移凹陷/面板链、对象模式 边倒角 + 环切,以及通过生成修改器的 拾取),v1.13 构建/布尔扩展(圆柱/圆锥/球体/管道基本体,槽形/星形/弧形切割形状,跟随路径扫掠,实时布尔预览 + 切割器选项),v1.14 超级建模模式(HardFlow 模式影子外壳 —— 刀痕 + 挤出动词,带 SURFACE 平面 + Tab 动词循环,每个模态的命令模式撤销现在驱动直接建模工具的实时预览 + 全或无布尔切割链,以及智能倒角 + 布尔 N 边形清理),v1.15 打磨与性能 优化(对不规则的布尔后网格进行拓扑安全的智能倒角,带边框的”高级”HUD 带半透明视口引导线,以及通过新的纯 core/preview_cache 剔除不相关目标 + 门控空闲重新评估的高多边形实时布尔预览),v1.16 贴花片 UV 编辑器(将贴花片刻成自由、不等的命名 UV 矩形 —— 绘制/手柄调整大小/移动/断头台分割 —— 存储在图像数据块上;贴花可借用任何区域),v1.17 画线布尔切割 + 背景移除(HardFlow 模式获得 切割/添加/切片/相交 动词 —— 轮廓被挤出为切割器并在共享外壳上对活动网格进行布尔运算 —— 贴花片获得 色度键 工具,使所选颜色透明,用于从绿幕/纯色背景中提取图形),v1.18 高度图贴花(图像贴花可携带 专用灰度高度图,独立于颜色驱动深度 —— 同时馈送视差遮挡 UV 偏移和新的法线浮雕 凹凸,带反转极性切换),v1.19 智能倒角验证(最后一个实验性项目已关闭 —— 支撑/保持环放置根据实时 Catmull-Clark 细分进行测量,拖动时带有”预期圆角半径”(~r=…)HUD 读数;环固定平面,细分圆角在半径 ≈ 倒角宽度处保持清晰),v1.20 竞争优势(付费竞品的主要功能 —— 围绕网格原点旋转的 径向/螺栓圆阵列 绘制中阵列,将绘制矩形扩展为 N 个百叶窗槽的 通风口/格栅绘制形状,以及 面板线 将选定边扫掠成凹槽接缝或凸起焊缝),v1.21 曲线升级(管道/线缆/扫掠获得 自由手绘点击或笔触绘制 + C 平滑路径 Catmull-Rom 样条,可提交为可编辑贝塞尔曲线;线缆获得 G 重力沉降,带真实场景碰撞,使绳索垂落在障碍物上;轮廓循环获得来自网格轮廓或曲线放样对象的 自定义截面沿路径的细节 沿活动曲线重复细节网格)。纯逻辑核心已进行单元测试(144/144,无需 Blender),bpy 路径增加了无头覆盖(142/142,针对独立 bpy 构建实时运行并在 Blender 5.1.2 中验证);模态工具的交互感受通过 tests/manual_checklist.md 进行检查。完整路线图请参见 ROADMAP.md,逐版本历史请参见 CHANGELOG.md

视频演示

Hardflow: 逐个添加布尔细节,然后转盘展示


Hardflow: 逐个添加布尔细节,然后转盘展示





逐个分组添加和切割布尔细节,然后转盘展示 —— 每一帧都是真实的 Hardflow 输出。

图库

以下每张图片都是真实的 Hardflow 输出 —— 由插件自身的布尔、形状和曲线函数构建的几何体,在 Blender 的 Workbench 中渲染。

画线布尔切割
画线布尔切割 — 一个槽、一个圆角和一个切口直接切割进面板。
内置形状
形状库 — 方框 / 圆形 / N边形 / 槽形 / 星形 / 弧形轮廓。
快速硬表面细节
快速细节 — 凸起舱室、通风槽、端口和螺栓孔。
表面贴合管道
管道与扫掠 — 沿表面贴合的轮廓。

功能

Hardflow N 面板

  • 通过模态绘制的布尔运算 — 方框 / 圆形 / 多边形 / N边形 / 槽形 / 星形 / 弧形 / 通风口(格栅)形状;切割、切片(一分为二)、添加、合并(作为独立实体添加)、相交(保留重叠部分)、面(创建表面)和刀痕(刻线)模式(Tab 循环模式)。切换 J 可在绘制时 实时布尔预览 真实结果。绘制中阵列(A / D)包括一个 径向(螺栓圆) 轴,将副本围绕网格原点旋转。
  • 数值精度 — 绘制时输入精确尺寸以锁定形状大小(半径/范围/分段),实现精确绘制。
  • 世界级网格捕捉 — 与摄像机无关的网格,以米为单位保持一致(”绝对尺寸”世界网格);←/→ 在 VIEW / SURFACE / EDGES / X / Y / Z 之间切换平面,Shift+←/→ 旋转网格。
  • 多对象 — 使用单个切割器对所选所有网格应用 CUT/MAKE。
  • 管道、线缆与扫掠 — 从绘制线条生成圆形管道,在其点之间垂挂的线缆/绳索,或 扫掠/跟随路径 将 L / U / T / I / 方框结构截面沿绘制路径推送。三者都支持 自由手绘笔触(点击 绘制 —— 笔触贴合表面并精简为干净锚点),C 将路径平滑为 Catmull-Rom 样条(提交后成为可编辑贝塞尔曲线)。线缆的 G 重力沉降 以真实场景碰撞松弛绳索,使其垂落在障碍物上;Shift+滚轮提供松弛量。P 轮廓循环包括来自平面网格轮廓或曲线放样对象的 自定义截面沿路径的细节 沿活动曲线重复选定的细节网格(链节、线缆夹、波纹管)。
  • 顶点/边捕捉 — 将绘制点锁定到现有几何体的角点/边/边中点;彩色光标反馈。
  • 角度锁定 — 按住 Shift 将绘制方向锁定到 15°(可调)步长。
  • 非破坏模式 — 不应用布尔运算,而是保留实时修改器;将切割器保存在单独集合中(非破坏性)。
  • 从选区布尔 — 使用活动对象作为切割器对选中的网格进行布尔运算(差集/并集/交集/切片),无需绘制;尊重非破坏性流程。
  • 构建基本体 — 在 3D 光标处放置立方体/平面/圆柱/圆锥/球体/管道,用于直接建模工具。
  • 推/拉 — 投射面,然后沿法线拖动以向内或向外挤出,带世界网格捕捉、数值输入和 顶点/边推断C 保留起始面(复制/堆叠),R 重复上次距离;点击或回车应用。
  • 偏移 — 投射面并拖动以按测量距离向内插入其边界(网格捕捉、数值输入);E 继续 挤出内部面 以实现即时凹陷或凸起面板;R 重复。
  • 面板线 — 在编辑模式中选择边,一键将其扫掠成 凹槽 接缝或凸起 焊缝;开放条带、闭合环和 T/X 交叉点都能干净处理,可破坏性或作为实时切割器存储。
  • 边工具(对象模式)边倒角(选择边或其整个环,拖动宽度,[ ] 分段;S 切换 智能倒角 —— 支撑/保持环 + N边形清理,使倒角在细分下保持完好,-/= 紧密度)和 环切(选择边,插入边环) —— 无需进入编辑模式即可进行边操作。所有直接建模工具还可通过 生成修改器(细分等)进行 拾取
  • HardFlow 模式Ctrl+Shift+X)— 一种流线型”影子”绘制模式,拥有自己的模态循环(从不调用 Blender 原生工具):在幽灵网格上绘制带捕捉的折线,然后 刀痕 到网格上或 挤出 为新实体,Tab 在会话中切换动词。←/→ 循环构建平面(VIEW / SURFACE / X / Y / Z),退格键回退一个点,整个会话作为一个 原子撤销步骤(每个模态的命令模式日志)提交;Esc 回滚整个会话。
  • 构建网格 — 在 3D 光标处放下 XY / XZ / YZ 平面上的线框参考网格以进行建模(构建平面);间距与捕捉工具的世界网格相同。
  • 资产/套件拼装 — 从 .blend 库中将现成部件(”INSERT”)放置到表面上:滚轮缩放,[ ] 滚动,点击放置。部件可以是纯装饰、布尔切割器、贴合表面(收缩包裹),和/或赋予表面的材质/着色。以网格形式浏览套件文件夹,并将对象标记为 Blender 资产供资产浏览器使用。
  • 实时放置预览 — 贴花和资产工具在点击前显示光标下的 真实 对象(不仅仅是线框轮廓),因此您能精确看到将获得什么;Esc 放弃。
  • 贴花 — 将信息/面板/子集贴花粘贴到任何表面上;它们通过收缩包裹贴合并跟随目标(表面贴合细节)。滚轮缩放,[ ] 滚动,点击放置;从 N 面板”贴花”部分管理。每种类型驱动共享的 PBR 着色器(基础/金属/粗糙度/AO/法线/自发光/Alpha + 视差深度),细节可 烘焙 到目标的纹理中。
  • 高度图贴花 — 图像贴花可携带 专用灰度高度图(或使用彩色图像自身的亮度),独立于反照率驱动深度:同时馈送 视差遮挡 UV 偏移(凹陷面板线在掠射角滑到唇后)和用于真实着色深度的 浮雕(凹凸) 法线扰动,带 反转高度 极性切换。可从 N 面板”深度(图像贴花)”部分访问。
  • 贴花图像库 — 指向包含 PNG/JPG/TGA 图像的文件夹,从图标网格中放置其中任何一张作为贴花;图像按宽高比调整大小。
  • 贴花片 — 将一张贴花片刻成网格并放置单个单元格(放置时用上下键循环单元格)。
  • 贴花转移 — 将已放置的贴花移到不同的表面对象上;在保持世界姿态的同时重新定位其收缩包裹和父级。
  • 图集化 — 将每个图像贴花的纹理打包到单个图集图像中,并合并到一个共享材质上(更少的材质/绘制调用)。
  • 饼菜单、偏好面板、可自定义的捕捉设置。

功能矩阵

v1.21 为止的每个路线图功能,按其为 Blender 免费带来的付费工具工作流分组。右列指向实现模块。

超级建模模式(v1.14+) — 三个新层面的 SketchUp 流畅度/专业管线演进:影子引擎(HardFlow 模式动词,现在带有 SURFACE 平面 + Tab 动词循环 + 键位映射/饼图入口),每个模态的原子宏(命令模式撤销,现在驱动直接建模工具和布尔切割链),以及 智能拓扑(智能倒角 + 布尔 N 边形清理)。参见矩阵末尾的 超级建模模式 小节。

布尔与绘制

功能 说明 位置
模态画线切割 方框/圆形/多边形/N边形/槽形/星形/弧形/通风口形状(槽/星/弧 v1.13,通风口 v1.20),直接在视口中绘制;键 Q/W/E/R/T/Y/U/I operators/draw_cut.pycore/grid.py slot_points/star_points/arc_points/vent_slats
切割/切片/添加/合并/相交/面 差集 · 一分为二 · 并集 · 作为独立实体添加(v1.11)· 保留重叠 · 创建 N 边形表面;Tab 循环模式 operators/draw_cut.py
通风口/格栅形状(v1.20) 绘制的矩形扩展为 N 个平行百叶窗槽(边框肋 = 内部肋;[ ] 板条数)—— 适用于所有模式、阵列、镜像和实时预览 core/grid.py vent_slatsoperators/draw_cut.py
折线修剪对等(v1.11) 点对点多边形 → 布尔:双击 闭合;每次切割的 求解器(精确/快速/流形);投影/固定 挤出方向(O,透视锥度) operators/draw_cut.pycore/geometry.py build_prism
数值尺寸输入(v1.10) 绘制时输入精确尺寸以锁定形状大小(半径/范围/分段) core/grid.py lock_distance
刀痕/零深度切割(v1.4) 在不挤出的情况下刻划表面;限制在绘制轮廓内,而非整个网格(v1.9) core/geometry.py knife_polygon
世界级网格捕捉 以米为单位的摄像机无关网格;平面循环 VIEW / SURFACE / EDGES / X / Y / Z;Shift+←/→ 旋转网格(v1.9) core/grid.pycore/raycast.py
所选边上的网格(v1.9) 编辑模式绘制将网格置于 1-2 条所选边上 core/decal_math.py basis_from_edge
实时网格密度(v1.6) 绘制中 Ctrl+滚轮 + 屏幕网格小部件调整网格间距 operators/draw_cut.pyui/draw.py
实时厚度/深度(v1.6) 绘制中拖动切割器/挤出深度,带读数(PgUp/Dn) operators/draw_cut.py
顶点/边捕捉 锁定到现有几何体的角点/边/中点;彩色光标 core/snap.pycore/snapping.py
角度锁定 按住 Shift 将绘制方向锁定到角度步长 core/grid.py snap_angle
自相交防护 破损的多边形在切割前被拒绝 core/grid.py is_self_intersecting
多对象切割 使用一个切割器对所有选中的网格应用 CUT/MAKE operators/draw_cut.py
实时布尔预览(v1.13) 切换 J 在绘制时查看目标上的实际切割/添加/相交 结果(临时修改器,提交/取消时移除;顶点上限) operators/draw_cut.py
切割器选项(v1.13) N 面板”切割器选项”预设下次绘制的内嵌/切割倒角/倒角切割器/阵列 ui/panel.pypreferences.py

绘制中操作(v1.4)

功能 说明 位置
内嵌/提取切割 提交前将绘制的环向内/向外偏移(-/= core/offset.py offset_polygon
绘制中阵列 将进行中的切割器沿轴复制 N 次,或围绕网格原点旋转 径向(螺栓圆) 组 — v1.20(A / D operators/draw_cut.py _processed_corner_setscore/grid.py radial_sets
绘制中镜像 跨世界轴实时镜像切割器(M operators/draw_cut.py _processed_corner_sets
切割倒角 提交时为切割边添加角度限制倒角(B operators/draw_cut.py
倒角切割器(v1.10) 为切割器倒角,使切割留下倒角凹陷壁(C core/geometry.py bevel_cutter
平面内旋转 在其平面内旋转绘制的形状,HUD 显示实时角度(, / . core/grid.py rotate_2d
印章/重复 一键重新放置之前的形状 + 尺寸(G operators/draw_cut.py

非破坏性工作流

功能 说明 位置
实时修改器切割 保留布尔修改器而非应用(N core/boolean.py
切割器集合 切割器保存在”Hardflow Cutters”中(线框、父级、渲染关闭) core/boolean.py stash_cutter
切割器管理器 选择/显示隐藏/移除切割器;”应用切割器(烘焙)” operators/cutters.pyui/panel.py
稳健布尔(v1.9) 每次切割自动选择求解器,重试(EXACT→FAST→法线修复),并报告 失败原因 core/boolean.py robust_boolean/choose_solver/mesh_health

网格工具(v1.0 / v1.5)

v1.13 移除了倒角/镜像/阵列/径向/对称/锐化/分割/清理修改器操作以及步进/锥度/滚花细节。对象模式 边倒角环切(直接建模部分)覆盖了无需编辑模式的边操作;Blender 自身的倒角/镜像/阵列/对称修改器覆盖其余部分。剩余的网格管理辅助工具:

功能 说明 位置
从选区布尔 使用活动对象作为切割器对选中的网格进行布尔运算 operators/boolean_ops.py
边权重/折痕 在所选边上设置/清除倒角权重 + 折痕(编辑模式) operators/hardops.py
显示切换 线框/锐边/切割器可见性视口切换 operators/hardops.py
材质辅助 随机视口颜色,将活动材质复制到选区 operators/hardops.py
重新计算法线 一键向外法线修复,用于无法切割的布尔 operators/hardops.py recalc_normals
面板线(v1.20) 所选边 → 有序链扫掠成 凹槽 接缝或凸起 焊缝(编辑模式);开放条带/闭合环/T-X 交叉点干净处理;破坏性或作为实时切割器存储 operators/hardops.py HARDFLOW_OT_panel_linecore/transform.py order_edge_paths
修改器堆栈管理器 N 面板列表,带移动/切换/应用/移除 ui/panel.py

贴花(v0.7–v0.9 / v1.7)

功能 说明 位置
放置到表面 收缩包裹贴合的贴花,对齐到命中法线;滚轮/滚动/点击 operators/decals.pycore/decal.py
贴花类型 信息/面板/子集,每种驱动共享 PBR 着色器 core/decal.py DECAL_TYPES
PBR 着色器 基础/金属/粗糙度/AO/法线/高度+深度/自发光/Alpha core/decal.py HF_DecalShader
烘焙到网格 将法线/合成细节烘焙到目标的纹理中 core/decal.py bake_image
图像库 从图标网格放置 PNG/JPG/TGA 文件夹 core/decal_image.pyui/decal_library.py
贴花片 将贴花片刻成网格;放置/循环单个单元格 core/atlas.py slice_grid
贴花片 UV 编辑器(v1.16) 将贴花片刻成自由的、不等的命名 UV 矩形(绘制/手柄调整大小/移动/分割)存储在图像上;将任何区域作为贴花放置 operators/trim_editor.pycore/atlas.pyui/trim_panel.py
背景移除/色度键(v1.17) 使贴花片上所选颜色透明 —— 去除绿幕/纯色背景以分离图形;吸管或角采样,容差 + 边缘柔化羽化,复制或原地处理 operators/trim_editor.py HARDFLOW_OT_trim_chroma_keycore/atlas.py chroma_key
高度图贴花(v1.18) 专用灰度高度图(或彩色自身的亮度)独立于反照率驱动深度 —— 同时馈送视差遮挡 UV 偏移和法线浮雕凹凸,带反转极性切换 core/decal.py image_decal_material/_wire_height_bumpcore/parallax.py surface_depth
图集化 将每个图像贴花打包到一个图集 + 一个共享材质中 core/atlas.py pack_shelves
创建贴花(v1.7) 将高多边形源的法线/高度/Alpha 烘焙到库中 operators/decals.pycore/decal.py
材质匹配(v1.7) 将贴花的混合与目标的激活材质匹配 core/decal.py match_decal_to_material
重新修剪/贴合(v1.7) 放置后重新驱动贴花片单元格;跨切割/边缘修剪 core/decal.py conform_trim_decal
转移到表面(v1.10) 将已放置的贴花移到另一个对象上;收缩包裹 + 父级重新定位,保持世界姿态 core/decal.py retarget_decal
可编辑库(v1.7) 从 N 面板重命名/删除/重新导出库条目 operators/decals.py

资产/套件拼装(v1.0 / v1.8)

功能 说明 位置
INSERT 放置 追加 .blend 部件,对齐到表面;滚轮/滚动/点击 operators/assets.pycore/asset.py
布尔 INSERT 每个网格成为非破坏性 CUT/MAKE 切割器 core/asset.py make_asset_cutter
资产库 .blend 套件文件夹显示为 N 面板网格 core/asset_lib.pyui/asset_panel.py
贴合/着色 收缩包裹到表面;传递材质 + 平滑状态 core/asset.py conform_asset/transfer_shading
资产浏览器标记 将选区标记为带预览的 Blender 资产 operators/assets.py
自动/智能缩放(v1.8) 放置时将 INSERT 适配到目标的局部特征尺寸 core/asset.pycore/transform.py fit_scale
插入网格捕捉(v1.8) 将重复的 INSERT 捕捉到规则网格/现有锚点 core/snapping.py snap_insert_point
材质 INSERT(v1.8) .blend 应用仅材质的 INSERT core/asset.py load_blend_materials
资产包导出(v1.8) 将选区写入库中的 .blend 并带预览 operators/assets.pycore/asset.py write_objects_blend

直接建模与曲线(v1.2 / v1.3 / v1.6 / v1.11 / v1.21)

功能 说明 位置
推/拉 投射面,沿法线拖动挤出;网格捕捉 + 数值 + 顶点/边推断C 复制/堆叠,R 重复(v1.11) operators/push_pull.py
偏移 投射面,拖动以插入其边界;E 链接到挤出内部面 —— 即时凹陷/凸起面板;R 重复(v1.11) operators/offset.pycore/offset.py
边倒角(v1.11) 对象模式:选择边(或其整个环,L),拖动宽度,[ ] 分段 —— 无需编辑模式即可倒角;S 智能倒角 添加支撑环 + N边形清理(-/= 紧密度) operators/edge_tool.pycore/geometry.py bevel_object_edges/smart_bevel_edges
环切(v1.11) 对象模式:选择边,通过细分其环插入边环;[ ] 设置数量 operators/edge_tool.pycore/geometry.py edge_ring/loop_cut
通过修改器拾取(v1.11) 面/边工具将评估网格命中(细分/阵列/镜像)映射回基础面 core/geometry.py nearest_face_to_point
共享模态基类(v1.11) 一个 mixin 拥有每个面拖动工具的悬停/锁定/拖动/预览/数值/推断/HUD 外壳 operators/face_tool.py _FaceDragModal
启动基本体(v1.9 / v1.13) 在 3D 光标处添加立方体/平面/圆柱/圆锥/球体/管道以进行建模 operators/construction.pycore/geometry.py build_box/build_plane/build_cylinder/build_cone/build_uv_sphere/build_tube
构建网格 在 3D 光标处放下 XY / XZ / YZ 平面上的线框参考网格 operators/construction.py
引导线(v1.9) 在光标处放下可捕捉的线框引导线(构建引导) operators/construction.pycore/geometry.py build_line
放样/桥接(v1.6) 将两个绘制的轮廓桥接成实体 core/geometry.py build_loft
管道 + 轮廓(v1.6) 表面贴合管道;圆形/方形/矩形截面(P operators/pipe.pycore/geometry.py build_pipe
扫掠/跟随路径(v1.13) 绘制路径并将 L / U / T / I / 方框结构截面沿其扫掠(P 循环) operators/pipe.py HARDFLOW_OT_sweepcore/geometry.py profile_points
自由手绘 + 平滑路径(v1.21) 点击 笔触绘制路径(笔触贴合表面,释放时精简为干净锚点);C 通过锚点插值 Catmull-Rom 样条 —— 圆形管道提交为可编辑自动手柄贝塞尔曲线 operators/pipe.pycore/path.py rdp_simplify/catmull_rom
自定义截面(v1.21) P 循环扫掠平面网格的边界轮廓,或将曲线对象作为原生非破坏性放样轮廓 core/geometry.py object_profile_pointsoperators/pipe.py
垂挂线缆/绳索 在其点之间垂挂的线缆(悬链线下垂) core/transform.py cable_points
线缆重力沉降(v1.21) G 将绳索作为锚定粒子链松弛,带真实场景碰撞 —— 垂落在障碍物上并停在几何体上;Shift+滚轮提供松弛量 core/physics.py settle_chainoperators/pipe.py
沿路径的细节(v1.21) 沿活动曲线重复选定的细节网格(阵列适配曲线 + 曲线变形)—— 链节、线缆夹、波纹管 operators/pipe.py HARDFLOW_OT_path_detail

编辑模式(v1.3)

功能 说明 位置
bmesh 编辑桥接 通过 from_edit_mesh/update_edit_mesh 读写实时编辑网格 core/geometry.pyedit_* 辅助函数)
绘制切割到编辑网格 绘制的形状被刀痕/内嵌到活动网格中,无切割器对象 operators/draw_cut.py
编辑中的推/拉与偏移 直接操作编辑网格的选中面 operators/push_pull.pyoperators/offset.py
编辑感知捕捉 顶点/边捕捉读取实时未应用的编辑网格 core/snapping.py collect_geo

工具智能(v1.9)

功能 说明 位置
自诊断布尔 自动求解器 + 重试;失败时指出哪个几何体有问题 core/boolean.py robust_boolean/mesh_health
切割前健康警告 N 面板在绘制前标记破损几何体 + 一键法线修复 ui/panel.pyoperators/hardops.py recalc_normals
自适应尺寸 切割倒角、贴花偏移、倒角拖动速度按对象缩放 core/transform.py adaptive_dimensioncore/decal.py adaptive_decal_offset
智能捕捉 最近胜出的顶点/边消歧;射线投射跳过实时预览 core/snap.py resolve_snapcore/raycast.py
边对齐方向 SURFACE 绘制对齐到点击处最近的面边(v1.13 — 在非矩形面上正确);INSERT/贴花对齐到主导(最长)边 core/raycast.py face_edge_tangentcore/decal_math.py dominant_tangent
连接面 绘制的面焊接到重合的现有顶点上 core/geometry.py edit_add_face

UX 与共享

功能 说明 位置
实时放置预览 贴花/资产工具在点击前显示光标下的真实对象 operators/decals.pyoperators/assets.py
饼菜单 分类主饼图 + 布尔/构建/编辑/曲线子饼图(Alt+Q) ui/pie.py
标题下拉 3D 视图标题菜单,涵盖包括贴花/资产在内的每个工具 ui/menu.py
N 面板 工具、捕捉设置、切割器选项、修改器堆栈、切割器列表、显示行 ui/panel.py
HUD 测量 绘制的形状尺寸(米)(方框 W×H,圆形 r/d,多边形分段) ui/draw.py
可自定义键位映射 从标准 Blender 键位映射编辑器重新绑定快捷键 keymaps.py

超级建模模式

SketchUp 流畅度 / 专业硬表面管线的三个基础层面演进,全部落地(语法 + 纯逻辑 + 无头验证 —— 无头套件针对独立 bpy 构建实时运行;模态 GUI 在手动检查清单中)。智能倒角的支撑环放置已通过实时 Catmull-Clark 细分 验证(Blender 5.1.2,无头)—— 保持环将倒角附近的平面锁定,细分圆角在半径 ≈ 倒角宽度处保持清晰 —— 参见 docs/hardflow_mode_plan.md

功能 说明 位置
影子引擎 HardFlow 模式拥有自己的模态循环,将原始鼠标通过核心捕捉链路由到 bmesh —— 从不调用 Blender 的原生模态工具 operators/hardflow_mode.py _HardflowModeModal
HardFlow 模式:刀痕 在幽灵网格上绘制带捕捉的折线,将其刻到活动网格上 operators/hardflow_mode.py HARDFLOW_OT_mode_knife
HardFlow 模式:挤出 绘制轮廓,PgUp/PgDn 深度,沿平面法线构建新的棱柱实体 operators/hardflow_mode.py HARDFLOW_OT_mode_extrudecore/geometry.py build_prism
HardFlow 模式:切割/添加/切片/相交(v1.17) 绘制轮廓,挤出为切割器并对活动网格进行布尔运算 —— 差集/并集/一分为二/保留重叠 —— 作为原子求解器回退链(切割/切片/相交自动穿透;添加在表面凸出凸台) operators/hardflow_mode.py HARDFLOW_OT_mode_cut/_build_booleanoperators/base.py BooleanCutCommandcore/boolean.py robust_boolean
模式平面 + 动词循环 外壳循环 VIEW / SURFACE(对齐到第一次点击下的面)/ X / Y / Z,Tab 在会话中循环活动动词(刀痕 → 挤出 → 切割 → 添加 → 切片 → 相交);从 Ctrl+Shift+X编辑饼图/菜单 进入 operators/hardflow_mode.py _surface_basis_at/_cycle_verbkeymaps.pyui/pie.py
每个模态的原子宏 工具会话的编辑存在于命令日志中,并作为 一个 Blender 撤销步骤提交;退格键 回退,Esc 回滚会话。现在驱动直接建模工具的实时预览(推/拉、偏移、边倒角、环切) core/command.pyoperators/base.py MeshSnapshotCommandoperators/face_tool.py
原子布尔链 N 个切割器作为全或无 MacroCommand 应用 —— 链中部失败会回滚整个链(无半成品切割器,无孤立切片件)。接入绘制切割的破坏性应用 operators/base.py BooleanCutCommand/boolean_chainoperators/draw_cut.py _apply_destructive
智能倒角与支撑环 倒角 + 支撑/保持环,使边在细分下保持完好(边倒角上的 S-/= 紧密度);~r=… HUD 读数显示倒角收敛到的圆角半径。放置已通过实时细分验证 core/bevel.py support_loop_positions/beveled_fillet_radiuscore/geometry.py smart_bevel_edges
布尔 N 边形清理 可选:将布尔切割/应用切割器留下的 N 边形重新四边化(N 面板 ▸ 切割器选项 ▸ 拓扑) core/geometry.py dissolve_boolean_ngonspreferences.py cut_dissolve_ngons

安装

Blender 4.2+:编辑 > 偏好设置 > 获取扩展 > (右上角 ⌄) > 从磁盘安装 → 选择 hardflow zip 文件。

使用方法

在对象模式下选择网格:

  • Alt+Q → 饼菜单(所有工具)
  • Ctrl+Shift+D → 直接绘制工具
  • Ctrl+Shift+X → HardFlow 模式(刀痕动词;Tab 循环挤出 → 切割 → 添加 → 切片 → 相交)

绘制模式中:

功能
左键点击 放置点 / 开始-结束形状
回车 / 双击 闭合多边形形状并应用
退格键 删除最后一个多边形点
Q / W / E / R / T / Y / U / I 形状:方框 / 圆形 / 多边形 / N边形 / 槽形 / 星形 / 弧形 / 通风口
[ / ] N边形 / 星形 / 槽形分段数(弧形:扫掠角度;通风口:板条数)
Tab / Shift+Tab 循环模式(切割 / 切片 / 添加 / 合并 / 相交 / 面 / 刀痕)
0–9 / . / – 输入精确尺寸(半径 / 范围 / 分段)
← / → 绘制平面:VIEW / SURFACE / EDGES / X / Y / Z
O 投影 / 固定挤出方向(透视锥度)
X 切换世界级网格捕捉
V 切换顶点/边捕捉
Shift(按住) 将绘制方向锁定到角度步长
N 切换非破坏性(实时修改器)
– / = 绘制中内嵌/提取(偏移环)
, / . 绘制中平面内旋转
A / D 绘制中阵列数量 / 阵列轴(X / Y / Z / 径向 螺栓圆)
H 设置 / 移动网格原点(捕捉锚点 + 径向枢轴)
M 绘制中跨世界轴镜像
B / C 切换切割倒角 / 倒角切割器
J 切换实时布尔预览(目标上的真实结果)
G 印章 / 重复之前的形状
Ctrl+滚轮 实时网格密度
PgUp / PgDn 实时切割器 / 挤出深度
右键 / Esc 取消

模式: 切割 = 布尔差集 · 切片 = 将对象一分为二 · 添加 = 添加几何体(并集)· 合并 = 将绘制的形状作为独立实体添加(非布尔)· 相交 = 仅保留重叠部分 · 面 = 从绘制的形状创建表面(非布尔)· 刀痕 = 在不挤出的情况下刻划表面(零深度切割)。

其他工具: 构建基本体(立方体/平面/圆柱/圆锥/球体/管道)· 布尔(选区) · 边权重 · 显示切换 · 随机颜色/复制材质 · 重新计算法线 · 推/拉 · 偏移 · 边倒角 · 环切 · 面板线(从所选边生成凹槽/焊缝)· 构建网格 · 放样 · 管道(圆形/方形/矩形/自定义)/ 线缆G 重力沉降)/ 扫掠(L/U/T/I/方框/自定义截面)—— 三者都支持自由手绘笔触,C 平滑路径 · 沿路径的细节 · 应用切割器 · 修改器堆栈管理器 —— 全部在 N 面板中。推/拉、偏移、绘制工具和捕捉也适用于 编辑模式(v1.3)。

v1.13 移除了倒角/镜像/阵列/径向/对称/锐化/分割/清理修改器工具以及步进/锥度/滚花细节;改用对象模式边倒角/环切和 Blender 自身的修改器。

HardFlow 模式: Ctrl+Shift+X、饼图 ▸ 编辑 ▸ HardFlow 模式,或标题菜单 ▸ 编辑 ▸ “HardFlow 模式:刀痕” / “…:挤出” / “…:切割”(或 F3)。点击放置带捕捉的点;←/→ 循环构建平面(VIEW / SURFACE — 锁定到第一次点击下的面 / X / Y / Z),Tab 在会话中循环活动动词(刀痕 → 挤出 → 切割 → 添加 → 切片 → 相交)而不退出会话,退格键回退,Z / 回车 / 双击提交,Esc 取消。在挤出中,PgUp / PgDn 设置深度。整个会话是一个撤销步骤。

智能倒角与拓扑(超级建模模式):边倒角 中按 S 添加支撑/保持环,使倒角在细分下保持完好(- / = 调整环对倒角的紧密度;HUD 的 ~r=… 显示倒角收敛到的圆角半径)。放置已通过实时 Catmull-Clark 细分验证 —— 环将倒角附近的平面锁定,细分圆角在半径 ≈ 倒角宽度处保持清晰。启用 N 面板 ▸ 切割器选项 ▸ 拓扑 ▸ 重新四边化切割 N 边形 以自动清理布尔切割/应用切割器留下的 N 边形,智能边倒角 以智能模式启动边倒角。(两者默认关闭。)

资产: N 面板”资产”→”来自 .blend 的资产”(或”资产库”网格)启动放置工具:滚轮 = 缩放,[ ] = 滚动,左键点击 = 放置,Esc = 取消。在此切换”资产作为切割器”、”贴合”和”传递着色”。

贴花: N 面板”贴花”→ 信息 / 面板 / 子集。在放置工具中:滚轮 = 缩放,[ ] = 滚动,左键点击 = 放置,Esc = 取消。

捕捉光标颜色: 🟡 角点 · 🟢 边中点 · 🔵 边上。

架构

hardflow/
├── blender_manifest.toml   # 扩展标识(4.2+)
├── __init__.py             # 注册编排 + 键位映射
├── preferences.py          # 设置 + get_prefs() 访问器
├── core/                   # 纯逻辑(独立于 UI,可测试)
│   ├── raycast.py          # 屏幕 <-> 3D 投影,平面 (u,v),表面射线
│   ├── grid.py             # 世界级 + 角度捕捉,形状 + 网格点,rotate_2d
│   ├── snap.py             # 顶点/边几何捕捉(纯 2D)
│   ├── snapping.py         # 每个绘制工具的统一 3D 捕捉(bpy 数据)
│   ├── offset.py           # 多边形内嵌/偏移数学,偏移工具(纯 2D)
│   ├── bevel.py            # 智能倒角支撑环放置数学(纯)
│   ├── geometry.py         # bmesh 构建(基本体/棱柱/管道/放样)+ 智能倒角 + N边形清理 + 编辑模式桥接
│   ├── boolean.py          # 破坏性 + 非破坏性布尔 + 回退
│   ├── command.py          # 纯命令模式日志(每个模态原子撤销)
│   ├── transform.py        # 线缆下垂 / 适配 / 自适应尺寸数学(纯)
│   ├── path.py             # 自由手绘笔触 / 样条数学 — RDP,Catmull-Rom(纯)
│   ├── physics.py          # 线缆重力沉降松弛 + 碰撞(纯)
│   ├── decal*.py / atlas.py# 贴花方向,图像库,贴花片/图集数学
│   ├── asset_lib.py        # .blend 套件库扫描(纯)
│   └── asset.py            # 追加 / 定向 / 绑定 INSERT + 资产扩展
├── operators/              # 用户操作
│   ├── draw_cut.py         # 主模态绘制(方框/圆形/多边形/N边形/槽形/星形/弧形;实时布尔)
│   ├── hardflow_mode.py    # HardFlow 模式外壳(影子引擎)— 刀痕 + 挤出动词
│   ├── base.py             # 操作层命令模式(MeshSnapshotCommand / BooleanCutCommand)
│   ├── hardops.py          # 边权重 / 显示 / 材质 / 重新计算法线辅助
│   ├── boolean_ops.py      # 从选定对象布尔
│   ├── cutters.py          # 非破坏性切割器管理(应用/选择/移除)
│   ├── pipe.py             # 管道/线缆/扫掠 — 自由手绘笔触,平滑路径,重力沉降,自定义轮廓,沿路径的细节
│   ├── face_tool.py        # 面拖动工具的共享模态基类(_FaceDragModal,命令支持的预览)
│   ├── push_pull.py        # 推/拉 — 复制/重复/推断(对象 + 编辑)
│   ├── offset.py           # 偏移 — 重复 + 凹陷/面板链(对象 + 编辑)
│   ├── edge_tool.py        # 对象模式边倒角 + 环切(共享 _EdgePickModal)
│   ├── construction.py     # 线框构建网格 + 放样/桥接
│   ├── decals.py           # 贴花放置 + 库 + 贴花片 + 图集 + 烘焙 + v1.7
│   └── assets.py           # INSERT 放置 + 库 + 标记 + 材质 + 导出
├── ui/                     # GPU 绘制,HUD,菜单
│   ├── draw.py             # gpu + blf 辅助
│   ├── pie.py              # 分类饼图(主 + 布尔/构建/编辑/曲线)
│   ├── menu.py             # 涵盖每个工具的 3D 视图标题下拉
│   ├── panel.py            # N 面板:工具,设置,切割器选项,修改器堆栈,切割器
│   ├── decal_panel.py / decal_library.py   # 贴花部分
│   └── asset_panel.py      # 资产 + 资产库部分
└── tests/                  # 测试
    ├── test_core.py        # 纯核心,无需 Blender(python tests/test_core.py)
    ├── test_blender.py     # 无头(blender --background --python ...)
    └── manual_checklist.md # 模态工具的点击检查清单



core/grid.pycore/snap.py 刻意保持不含 bpy,因此数学层可用纯 CPython 测试(python tests/test_core.py)。

分层规则:uioperators → 可依赖 corecore 绝不 依赖 ui。新功能通常意味着向 core 添加纯函数,加上调用它的薄操作层。

支持项目

Hardflow 是免费的,并将永远保持免费 —— GPLv3,无许可费,无付费层级。如果它为您替代了付费插件,并且您希望开发继续推进(新工具、Blender 版本维护、bug 修复),您可以通过 Patreon 支持:

成为赞助者

给仓库点星和分享您的构建也有帮助。

贡献

非常欢迎贡献 —— 架构的设计使功能保持隔离且易于添加。从 CONTRIBUTING.md 开始了解设置、测试和分层规则,并请在报告 bug 时附上 系统控制台 输出(窗口 → 切换系统控制台)。

  • 🐛 提交 Issue(bug 或功能请求)
  • 💬 讨论 用于提问和分享构建
  • 🔒 安全问题:参见 SECURITY.md(请私下报告)
  • 🤝 参与即表示您同意 行为准则
  • 🗺️ 想接手某项工作?ROADMAP.md 追踪已完成和下一步计划。

许可证

GPLv3。每个随 bpy 分发的 Blender 插件实际上都是 GPL,本项目也不例外。完整许可文本请参见 LICENSE 文件。

       ©版权声明:本站除原创作品外的资源均收集于网络,只做学习和交流使用,版权归原作者所有,若作商业用途,请购买正版。

评论0

请先
🔥限时特惠29元/年|永久会员原298现198!】全站资源任意下,每日更新。有疑问,资产找不到,需要帮助?微信咨询:CGTrove_com

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录
通知图标

欢迎访问CG Trove