Встановлення

У цьому посібнику розглянуто все, що потрібно для встановлення Aspose.3D FOSS для TypeScript та підтвердження його коректної роботи перед тим, як ви напишете свій перший скрипт обробки 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: Створіть проект (за потреби)

Якщо ви додаєте Aspose.3D до існуючого TypeScript‑проекту, пропустіть цей крок і переходьте безпосередньо до Кроку 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.json під dependencies.

Перевірте встановлення:

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Дозволяє optional chaining, nullish coalescing та інші функції ES2020, що використовуються всередині
modulecommonjsБібліотека постачається з CommonJS‑виводом; має відповідати
moduleResolutionnodeПотрібно для правильного розв’язання @aspose/3d імпортів підшляхів
esModuleInteroptrueДозволяє імпорт за замовчуванням з CommonJS‑модулів без обхідних рішень простору імен
stricttrueБібліотека створена за допомогою noImplicitAny і strictNullChecks; залиште це увімкненим

Крок 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 створюється без аргументу name.

Якщо ви бажаєте пропустити крок компіляції під час розробки, запустіть безпосередньо за допомогою 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

Для OBJ‑файлу з однією сіткою, названою Cube, результат виглядатиме так:

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

Кореневий вузол має порожню назву (виводиться як порожній префікс). Дочірні вузли успадковують свої назви з завантаженого файлу.

Примітки щодо залежностей

Aspose.3D FOSS for TypeScript має саме одну runtime‑залежність:

ПакетПризначенняВстановлюється автоматично
xmldomПарсинг XML для підтримки форматів COLLADA (DAE) та 3MFТак, через npm install @aspose/3d

Вам не потрібно встановлювати xmldom вручну. Він з’явиться у вашому node_modules після основної команди встановлення. Немає нативних аддонів (.node файли) і не потрібні системні бібліотеки.

Наступні кроки

Тепер, коли бібліотеку встановлено та перевірено:

  • Прочитайте Посібник розробника для повного огляду всіх функціональних областей.
  • Дивіться Функції та можливості для деталей підтримки форматів, шаблонів графа сцени, API матеріалів та анімації, а також повних прикладів коду TypeScript.
 Українська