news 2026/6/9 12:11:07

2026年3D自动拆件与部件拆分ai算法盘点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026年3D自动拆件与部件拆分ai算法盘点

目录

P3-SAM

PartPacker 效果怎么样

测试结果:

环境安装;

Materialize magics

HoloPart

依赖项安装

P3_SAM

nomad调整

PartCrafter

SnapSplit 自动连接件

SnapSplitAuto


P3-SAM

tencent/Hunyuan3D-Omnitencent/Hunyuan3D-Part

PartPacker 效果怎么样

图片生成3d部件

https://github.com/NVlabs/PartPacker

测试结果:

环境安装;

Materialize magics

HoloPart

达不到工业量产效果

https://www.bilibili.com/video/BV1dFdoYvESz/?spm_id_from=333.337.search-card.all.click&vd_source=d4dc8f82f62c00f6ff1db7a1047e538f

依赖项安装

pip install diso --no-build-isolation

P3_SAM

Hunyuan3D-Part/P3-SAM at main · Tencent-Hunyuan/Hunyuan3D-Part

nomad调整


tripostudio.com

PartCrafter

可以拆分,但是不能生成自动连接件

PartCrafter是一个开创性的 AI 算法,能够将一张普通的 2D 图片,在几十秒内自动“拆解”成一个由多个独立、可编辑的 3D 部件组成的完整模型

https://github.com/wgsxm/PartCrafter

PartCrafter 的显存比较亲民,推荐配置为 8GB 显存

wgsxm/PartCrafter briaai/RMBG-1.4
pip install torch-cluster -f https://data.pyg.org/whl/torch-2.5.0+cu124.html
python scripts/inference_partcrafter.py \ --image_path assets/images/np3_2f6ab901c5a84ed6bbdf85a67b22a2ee.png \ --num_parts 3 --tag robot --render

SnapSplit 自动连接件

import bpy def add_connectors_to_pairs(pairs, connector_type='CYLINDRICAL_PIN'): """ 批量为多对部件添加连接件 pairs: 部件名称对列表,如 [('part1', 'part2'), ('part2', 'part3')] connector_type: 'CYLINDRICAL_PIN', 'SNAP_PIN', 'SNAP_PEG', 'PIN' """ bpy.ops.object.select_all(action='DESELECT') for part_a, part_b in pairs: obj_a = bpy.data.objects.get(part_a) obj_b = bpy.data.objects.get(part_b) if obj_a and obj_b: # 选中两个部件 obj_a.select_set(True) obj_b.select_set(True) bpy.context.view_layer.objects.active = obj_b # 设置连接件参数(需根据实际情况调整) bpy.context.scene.snapsplit_connector_type = connector_type bpy.context.scene.snapsplit_material_tolerance = 'PLA' # 材料预设 # 执行生成(具体算子名可能略有差异) bpy.ops.object.snapsplit_add_connectors() print(f"✅ 已添加连接件: {part_a} <-> {part_b}") else: print(f"❌ 找不到部件: {part_a} 或 {part_b}") # 使用示例 - 为你的5个部件配对 pairs_to_connect = [ ('torso', 'left_arm'), ('torso', 'right_arm'), ('torso', 'head'), ('torso', 'left_leg'), ('torso', 'right_leg') ] add_connectors_to_pairs(pairs_to_connect, 'SNAP_PIN')

SnapSplitAuto

import bpy import os class SnapSplitAuto: """SnapSplit自动化操作类""" @staticmethod def split_model(obj_name, axis='X', position=0.0): """沿指定轴分割模型""" obj = bpy.data.objects.get(obj_name) if not obj: return False bpy.ops.object.select_all(action='DESELECT') obj.select_set(True) bpy.context.view_layer.objects.active = obj # 设置分割参数(具体属性名请参考插件源码) bpy.context.scene.snapsplit_split_axis = axis bpy.context.scene.snapsplit_split_position = position bpy.ops.object.snapsplit_planar_split() return True @staticmethod def add_connectors(obj_a_name, obj_b_name, conn_type='SNAP_PIN', material='PLA', grid_size=(2, 1)): """为两个部件添加连接件""" obj_a = bpy.data.objects.get(obj_a_name) obj_b = bpy.data.objects.get(obj_b_name) if not obj_a or not obj_b: return False bpy.ops.object.select_all(action='DESELECT') obj_a.select_set(True) obj_b.select_set(True) bpy.context.view_layer.objects.active = obj_b # 设置参数 scene = bpy.context.scene scene.snapsplit_connector_type = conn_type scene.snapsplit_material_tolerance = material scene.snapsplit_connector_grid = True scene.snapsplit_connector_grid_rows = grid_size[0] scene.snapsplit_connector_grid_cols = grid_size[1] bpy.ops.object.snapsplit_add_connectors() return True @staticmethod def batch_process(parts_config, output_dir): """批量处理:分割多个部件并添加连接件""" # parts_config: [{'name': 'torso', 'split_axis': 'X'}, ...] for config in parts_config: SnapSplitAuto.split_model(config['name'], config.get('axis', 'X'), config.get('pos', 0.0)) # 添加连接件配对 for pair in parts_config.get('pairs', []): SnapSplitAuto.add_connectors(pair[0], pair[1]) # 执行自动化流程 if __name__ == "__main__": # 假设场景中已有5个独立部件 pairs = [ ('base', 'arm_left'), ('base', 'arm_right'), ('base', 'leg_left'), ('base', 'leg_right'), ('base', 'head') ] for a, b in pairs: SnapSplitAuto.add_connectors(a, b, 'SNAP_PIN', 'PLA', (2, 1)) print("✅ 所有连接件生成完成!")
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 12:10:22

QEMU理解与分析系列(18):QEMU BLOCK设备基本实现流程

QEMU BLOCK设备基本实现流程 一、Qemu block设备驱动 1、block driver注册 1、block file driver注册 //qemu5, file-posix.c中 首先,通过 block_init 进行注册: block_init(bdrv_file_init); // 通过block_init进行注册#define block_init<

作者头像 李华
网站建设 2026/6/9 12:09:19

C/C++ 裸机编程与硬件驱动调试:从寄存器配置到中断响应的底层实践

C/C 裸机编程与硬件驱动调试&#xff1a;从寄存器配置到中断响应的底层实践一、裸机编程的"无依无靠"&#xff1a;没有操作系统的世界如何运转 在 Linux 系统上写驱动&#xff0c;有内核的设备模型、中断框架、DMA 引擎和调试工具链支撑。但在裸机环境下&#xff0c;…

作者头像 李华
网站建设 2026/6/9 12:08:53

3分钟搞定网易云音乐NCM格式转换:ncmdumpGUI图形化工具完整指南

3分钟搞定网易云音乐NCM格式转换&#xff1a;ncmdumpGUI图形化工具完整指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经在网易云音乐下载了付费…

作者头像 李华
网站建设 2026/6/9 12:03:11

如何5分钟解锁网盘直链下载助手:新手必看的高速下载秘籍

如何5分钟解锁网盘直链下载助手&#xff1a;新手必看的高速下载秘籍 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…

作者头像 李华
网站建设 2026/6/9 12:01:34

Linux命令11

1.更新版本 yum list,centos 2.外部服务&#xff0c;httpd 安装web服务器&#xff0c;yum -y install httpd,安装了apache服务器 3.查看服务状态&#xff0c;systemctl status httpd 4.启动服务&#xff0c;systemctl start httpd 5.开机启动&#xff0c;systemctl enable h…

作者头像 李华