上传模型文件(云存储直传)
生产链路使用 Project Access Token 获取固定 key 的云存储上传 Token 和 uploadUrl,再由客户端直传。Project Key 只用于换取短期 Access Token,不直接调用模型接口。接口不按扩展名硬编码限制,具体是否可转换由转换器能力和任务状态决定。
支持的文件格式
可提交并转换的 CAD 源文件
当前模型转换链路支持以下文件扩展名:
| 类型 | 扩展名 |
|---|---|
| Siemens NX / Unigraphics | .prt、.prt.x |
| STEP | .step、.stp |
| IGES | .igs、.iges |
| Parasolid | .x_t |
| SolidWorks | .sldprt |
| CATIA | .catpart |
| JT | .jt |
| Solid Edge | .par、.psm |
| ACIS | .sat、.sab |
文件扩展名不区分大小写。.prt.x 是复合扩展名,创建模型时的 name 应保留完整文件名,例如 assembly.prt.x。
云端直传接口可以先为任意文件名签发上传授权,但只有上表中的格式会进入当前 CAD 转换流程;其他文件即使上传成功,也会在模型处理阶段标记为格式不支持。建议客户端在选择文件时提前限制扩展名。
平台生成的结果文件
转换成功后,平台提供:
| 结果 | 格式 | 说明 |
|---|---|---|
| 三维结果 | .tgvdata | 用于 tuo-visual-viewer 浏览;接口传输时可能表现为打包文件 |
| 预览图 | .png | 可选的模型预览图片 |
Viewer 的直接加载格式
tuo-visual-viewer 除了加载平台生成的 .tgvdata,还可以直接加载以下已有模型文件:
.stl、.obj、.fbx、.gltf、.glb、.3dm
这组格式表示 Viewer 的浏览能力,不代表它们都可以作为平台 CAD 转换接口的输入。比如 .stl 可以直接交给 Viewer 浏览,但当前转换接口不会把 .stl 转换成 .tgvdata。
const tokenResponse = await fetch("https://tiangongtuxue.com/api/v1/models/upload-token", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: `Bearer ${accessToken}` },
body: JSON.stringify({ name: file.name, description: "demo model" }),
});
const { data } = await tokenResponse.json();
const form = new FormData();
form.append("token", data.uploadToken);
form.append("file", file, file.name);
await fetch(data.uploadUrl, { method: "POST", body: form });
// data.modelId 用于后续状态查询;不要保存云存储永久 URL。
const model = await response.json();
上传 Token 绑定文件 key、文件名和大小上限,并且只能使用一次。提交任务时会先预占 1 次额度;只有转换成功才会结算为已消费。