跳到主要内容

上传模型文件(云存储直传)

生产链路使用 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 次额度;只有转换成功才会结算为已消费。