Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

精准排布 / Precise Align

Precise Align 是一个用于 Blender 的参数化对象排布插件。它可以在固定的首尾外边界内,按照指定轴向和对象间距重新计算对象尺寸与位置,并将对象规整地排列到同一条布局线上。

插件不依赖第三方库,所有排布参数都保存在当前 Blender 场景中,可随时调整并重复执行。

维护者:Doran

功能

  • 支持任意数量的对象
  • 支持世界 X/Y/Z 轴排布
  • 固定首尾外边界
  • 固定对象之间的净间距
  • 自动重新计算对象尺寸
  • 支持等宽分配或按原始尺寸比例分配
  • 支持保持原宽度并自动计算对象净间距
  • 支持沿其他轴对齐对象中心
  • 提供顶/中/底、左/等距分布/右快捷操作
  • 支持预览计算结果
  • 可选在执行前应用缩放
  • 可选清除关键帧,避免动画数据覆盖排布结果

安装

  1. 将 precise_align 文件夹压缩为 ZIP,确保 ZIP 内第一层直接包含该文件夹。
  2. 在 Blender 中打开“编辑 > 偏好设置 > 插件 > 安装…”。
  3. 选择 ZIP 文件并启用 Precise Align。
  4. 在 3D 视图按 N,打开“精准排布”标签。

也可以直接将整个文件夹放入 Blender 的 scripts/addons 目录。

使用

  1. 切换到物体模式,选中至少两个对象。
  2. 在“排布参数”中设置排布轴、对象间净间距、边界来源和尺寸分配方式。选择“保持原宽度”时不会缩放对象,净间距会根据边界内的剩余空间自动平均计算。
  3. “取首尾边界”会读取排序后第一个对象的最小外边界和最后一个对象的最大外边界;“手动边界”允许输入固定的世界坐标。
  4. 默认启用“锁定首尾外边界”。首个对象和最后一个对象可以改变尺寸,但它们的外侧边界不会改变。
  5. 先点击“预览计算”检查结果,再点击“执行精准排布”。
  6. “快捷对齐”以活动物体为参考,只移动其他选中对象。“均匀分布”例外:它保持首尾对象不动,沿当前“排布轴”移动中间对象,使相邻对象的净间距一致。面板按钮也可通过以下组合键调用:Ctrl+Alt+T/V/B 对应顶/垂直居中/底边,Ctrl+Alt+L/H/R 对应左/均匀分布/右边。

计算规则

等宽模式使用以下公式:

单个对象尺寸 = (首尾边界距离 - (对象数量 - 1) × 对象间距) / 对象数量

“保持原宽度”模式保持每个对象当前的排布轴尺寸,并使用以下公式自动计算净间距:

对象间距 = (首尾边界距离 - 所有对象原宽度之和) / (对象数量 - 1)

当原宽度总和超过首尾边界距离时,排布会被拒绝并提示扩大边界。

执行时会直接校正第一个对象的最小世界边界和最后一个对象的最大世界边界,避免对象原点偏移造成边界漂移。对象之间的净间距按照配置值计算,默认值为 0.004 Blender 单位;在米制场景中通常表示 4 mm。

参数说明

  • 排布轴:选择世界 X、Y 或 Z 轴。
  • 对象间净间距:相邻对象外边界之间的固定距离,允许设置为 0。
  • 边界来源:读取当前选中集合的首尾外边界,或使用手动输入的世界坐标。
  • 宽度分配:等宽分配、按照原始尺寸比例填充可用区间,或保持原宽度并自动计算净间距。
  • 锁定首尾外边界:允许首尾对象改变尺寸,但保持第一个对象的起始边界和最后一个对象的结束边界不变。
  • 对齐其他轴:沿未参与排布的两个轴对齐对象中心。
  • 快捷对齐:左/右边和“均匀分布”沿当前“排布轴”执行;顶/垂直居中/底边沿世界竖直轴执行(排布轴为 Z 时使用 Y 轴)。边缘对齐到活动物体,因此可能让对象重合;“均匀分布”固定首尾并只移动中间对象。
  • 执行前应用缩放:先执行一次“应用缩放”,降低未应用缩放带来的尺寸误差。
  • 清除关键帧:完成精准排布或快捷对齐后清除选中对象的动画数据,避免当前帧的动画覆盖对齐结果。

支持网格、曲线、曲面和文字对象。对于旋转对象,建议先应用缩放,并确认排布轴与对象几何方向符合预期。

验证

core.py 是不依赖 Blender 的计算模块,可使用普通 Python 运行测试:

python -m unittest discover -s precise_align/tests -v

About

Precise Align 是一个用于 Blender 的参数化对象排布插件。它可以在固定的首尾外边界内,按照指定轴向和对象间距重新计算对象尺寸与位置,并将对象规整地排列到同一条布局线上。 插件不依赖第三方库,所有排布参数都保存在当前 Blender 场景中,可随时调整并重复执行。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages