
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本项目主要解决STEP和IGES模型需要在Web上展示的场景,市场上的web3d库不支持此类格式,而用户上传的STL文件直接展示会消耗大量带宽或CDN流量,转换为压缩的gltf格式更为合适。
| 模型类型 | 文件路径 | 转换时间 | 原始大小 | 转换后大小 |
|---|---|---|---|---|
| stl | assets/test.stl | 2368.890ms | 7.6 MB | 86 KB |
| iges | assets/test.iges | 1641.226ms | 1 M | 111 KB |
| stp | assets/test.stp | 2969.200ms | 5.1 MB | 217 KB |
| fbx | assets/Samba Dancing.fbx | <1000ms | 3.7 MB | 614 KB |
支持输入格式:STL/IGES/STP/OBJ/FBX
支持输出格式:GLTF/GLB
项目状态:稳定
Lexcent 3D打印:通过微信扫描下方***,可实现3D模型预览与打印支持
!img
Web3D模型展示:将大型3D模型转换为轻量级GLTF/GLB格式,降低带宽消耗
服务器端批量模型转换:通过GRPC或命令行模式实现自动化模型格式转换
可通过https://github.com/wangerzi/modelbox-sdk%E5%9C%A8%E7%BA%BF%E8%BD%AC%E6%8D%A2%E6%A8%A1%E5%9E%8B%EF%BC%88<100MB),预览链接:[***]
基于GRPC实现,便于构建动态扩展的服务集群,支持上传zip/模型源文件,为保证各模型兼容性,响应文件均为zip格式,需解压后使用。
服务端部署
确保8999端口可用且镜像为最新版本,执行以下命令:
shell# 拉取镜像 docker pull wj2015/3d-model-convert-to-gltf:latest # 启动GRPC服务 docker run -d -p 8999:8999 wj2015/3d-model-convert-to-gltf:latest
客户端使用
需复制server/rpc/protos/converter.proto文件,根据调用方语言生成代码模板。GRPC官方支持语言文档:Support Language
示例代码
| 名称 | 代码路径 | 说明 |
|---|---|---|
| Python RPC客户端使用示例 | server/examples/python/rpc_client.py | 转换并保存文件 |
依赖Docker环境,适用于服务器端简单调用,转换过程为同步阻塞,不支持分布式扩展。
使用步骤
convert.sh并赋予执行权限stl|stp|iges|obj|fbxshell# 转换为GLB单文件 convert.sh stl inputpath.stl outputpath.glb # 生成GLTF文件 convert.sh stl inputpath.stl outputpath.gltf
测试文件
assets目录下提供测试文件:test.stl、test.stp、test.igs、E 45 Aircraft_obj.obj、Samba Dancing.fbx,可复制到项目路径测试转换效果。
权限问题处理
若通过php-fpm等语言执行器调用convert.sh时出现权限错误,需将执行用户添加到docker组:
shellusermod -a -G docker nginx
其他语言调用示例(PHP)
php<?php $out = 'out.glb'; $input = 'test.stl'; $type = 'stl'; // 注意防范执行攻击 shell_exec('convert.sh '.$type.' '.$input.' '.$out); if (file_exists($out)) { echo "转换结果: " . $out; } else { echo "转换失败"; } ?>
拉取镜像
在安装Docker的主机上执行以下命令拉取镜像(约4G):
shelldocker pull wj2015/3d-model-convert-to-gltf
容器内转换
进入容器后,执行以下命令进行同步转换:
shellconda run -n pythonocc python convert.py [stl|step|iges|obj|fbx] input.stl out.glb
如需多机负载,可使用nginx代理或Docker容器配合RPC实现简单负载均衡,或通过消息队列实现生产者-消费者模式。HTTP API或队列需自行实现逻辑。
!1583754967257
docker和docker-compose,参考官方文档:Docker Desktopenvironment/目录,执行docker-compose up,成功启动后输出如下:shelluser@MacBook-Pro environment % docker-compose up Recreating 3d-model-convert-to-gltf-app ... done Starting 3d-model-convert-to-gltf-redis ... done Attaching to 3d-model-convert-to-gltf-redis, 3d-model-convert-to-gltf-app 3d-model-convert-to-gltf-redis | 1:C 09 Oct 2020 03:03:29.150 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo ...
shelluser@MacBook-Pro 3d-model-convert-to-gltf % docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 69b684ed7755 wj2015/3d-model-convert-to-gltf "conda run -n python…" 3 seconds ago Up 2 seconds 3d-model-convert-to-gltf-app
shelldocker exec -it 3d-model-convert-to-gltf-app /bin/bash conda activate pythonocc python server/convert.py
适用于无法运行Docker的开发者,需手动配置依赖。
配置Python环境
shell# 创建conda虚拟环境 conda create -n 3d-model-convert-to-gltf-pythonocc -c dlr-sc -c pythonocc pythonocc-core=7.4.0rc1 conda activate 3d-model-convert-to-gltf-pythonocc pip install -r server/requirements.txt
配置Node环境
需Node.js 12.0.0版本,安装依赖包:
shell# 安装nvm (MacOS/Linux) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash # 安装并使用Node 12.0.0 nvm install 12.0.0 nvm use 12.0.0 # 安装gltf-pipeline和obj2gltf npm install -g gltf-pipeline obj2gltf
安装FBX2glTf
从https://github.com/***incubator/FBX2glTF%E4%B8%8B%E8%BD%BDFBX2glTf%EF%BC%8C%E5%B9%B6%E9%87%8D%E5%91%BD%E5%90%8D%E4%B8%BA%60fbx2gltf%60%E6%94%BE%E5%85%A5%E7%8E%AF%E5%A2%83%E7%9B%AE%E5%BD%95%E3%80%82
曾尝试使用https://github.com/assimp/assimp%EF%BC%8C%E4%BD%86%E5%9C%A8%60stl/iges/obj%60%E8%BD%AC%E6%8D%A2%E6%B5%8B%E8%AF%95%E4%B8%AD%E6%95%88%E6%9E%9C%E4%B8%8D%E4%BD%B3%E3%80%82%E5%8F%AF%E4%BD%BF%E7%94%A8https://hub.docker.com/r/dylankenneally/assimp%E9%95%9C%E5%83%8F%E8%BF%9B%E8%A1%8C%E6%B5%8B%E8%AF%95%E3%80%82
模型转换是高资源消耗且速度较慢的服务,模型上传下载会消耗带宽。直接部署在自有服务器会面临高带宽和CPU消耗,需引入OSS、CDN及动态扩展队列和后端服务,部署和实现成本较高。
3DModelConvertToGltf基于Apache License 2.0许可。详见https://github.com/GitbookIO/gitbook/blob/master/LICENSE%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务