安装

本指南涵盖了在 TypeScript 中安装 Aspose.3D FOSS 所需的全部内容,并在您编写第一个 3D 处理脚本之前确认其正常工作。.

先决条件

确保以下已安装并位于您的 PATH 在继续之前::

工具最低要求备注
Node.js18 LTS20 or 22 LTS recommended
npm7随 Node.js 捆绑
TypeScript5.0通过以下方式安装 npm install -D typescript

检查版本信息::

node --version   # v18.x.x or later
npm --version    # 7.x or later
npx tsc --version  # Version 5.x.x

步骤 1:创建项目(如有需要)

如果您正在向现有的 TypeScript 项目中添加 Aspose.3D,请跳过此步骤,直接进入步骤 2。.

对于全新项目::

mkdir my-3d-project && cd my-3d-project
npm init -y
npm install -D typescript ts-node @types/node

步骤 2:安装 @aspose/3d

npm install @aspose/3d

这将安装该包及其唯一的传递依赖,, xmldom,,自动完成。无需额外的系统软件包、本机插件或编译器。安装完成的条件是当 @aspose/3d 出现在您的 package.jsondependencies.

验证安装::

ls node_modules/@aspose/3d

您应该看到包含以下内容的包目录 package.json,,类型定义文件(.d.ts),以及编译后的 JavaScript。.

步骤 3:配置 TypeScript

添加或更新 tsconfig.json 在项目根目录中使用以下设置。为实现与库的类型定义和 CommonJS 输出的完全兼容,这些是必需的::

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "moduleResolution": "node",
    "esModuleInterop": true,
    "strict": true,
    "outDir": "dist",
    "rootDir": "src"
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules", "dist"]
}

关键设置及其重要性::

设置原因
targetES2020启用可选链、空值合并以及其他内部使用的 ES2020 特性
modulecommonjs该库提供 CommonJS 输出;必须匹配
moduleResolutionnode为正确解析所需的 @aspose/3d 子路径导入
esModuleInteroptrue在不使用命名空间变通方案的情况下,启用从 CommonJS 模块的默认导入
stricttrue该库使用 noImplicitAnystrictNullChecks; 保持开启

步骤 4:验证安装

创建 src/verify.ts 使用以下最小导入测试::

import { Scene } from '@aspose/3d';

const scene = new Scene();
console.log('Aspose.3D FOSS for TypeScript is installed correctly.');
console.log('rootNode name:', scene.rootNode.name);

编译并运行::

npx tsc
node dist/verify.js

预期输出::

Aspose.3D FOSS for TypeScript is installed correctly.
rootNode name:

根节点名称默认是空字符串 — scene.rootNode 是在没有名称参数的情况下创建的。.

如果您希望在开发期间跳过编译步骤,可直接使用 ts-node:

npx ts-node src/verify.ts

步骤 5:快速入门:加载场景并打印节点信息

以下脚本加载 3D 文件并打印场景中每个节点的名称和实体类型。它支持所有受支持的格式:OBJ、glTF、GLB、STL、3MF、FBX 或 COLLADA。.

import { Scene, Node } from '@aspose/3d';

function printNode(node: Node, depth: number = 0): void {
  const indent = '  '.repeat(depth);
  const entityType = node.entity ? node.entity.constructor.name : '(no entity)';
  console.log(`${indent}${node.name} [${entityType}]`);
  for (const child of node.childNodes) {
    printNode(child, depth + 1);
  }
}

const scene = new Scene();

// Replace 'model.obj' with any supported 3D file path.
// Format is detected automatically from binary magic numbers.
scene.open('model.obj');

console.log('Scene loaded. Node hierarchy:');
printNode(scene.rootNode);

将其保存为 src/quickstart.ts 并运行它::

npx ts-node src/quickstart.ts

对于一个包含名为 Cube,,输出将如下所示::

Scene loaded. Node hierarchy:
 [(no entity)]
  Cube [Mesh]

根节点名称为空(打印时显示为空前缀)。子节点从加载的文件中继承它们的名称。.

依赖说明

Aspose.3D FOSS for TypeScript 只有一个运行时依赖::

软件包目的自动安装
xmldomXML 解析以支持 COLLADA (DAE) 和 3MF 格式是的,通过 npm install @aspose/3d

您无需安装 xmldom 手动。它将出现在您的 node_modules 在主安装命令之后。没有本机插件(.node 文件) 且不需要系统库。.

后续步骤

现在库已经安装并验证完毕::

  • 阅读 开发者指南 以完整的演练了解所有功能区域。.
  • 参见 功能与特性 以获取格式支持细节、场景图模式、材质和动画 API,以及完整的 TypeScript 代码示例。.
 中文