Конвеєр трансляції CAD
Обробка різних CAD-форматів (Inventor, Fusion, STEP, IGES) для веб-перегляду.
Огляд процесу
Джерела CAD
Inventor IAM/IPT
Fusion 360
STEP/STP
IGES/IGS
SolidWorks
Завантаження RAPS
raps object upload
Сховище APS
OSS Bucket
Model Derivative
Механізм трансляції
Результати
SVF2 Viewable
Мініатюри
Метадані
Вхід→Завантаження→Сховище→Трансляція→Вихід
Підхід через CLI
Крок 1: Створення бакета для CAD
raps bucket create --key cad-library --policy persistent --region US
Крок 2: Завантаження CAD-файлів
# Збірка Inventor
raps object upload cad-library assembly.iam
# Деталь Inventor
raps object upload cad-library part.ipt
# Файл STEP
raps object upload cad-library model.stp
# Файл IGES
raps object upload cad-library legacy.igs
Крок 3: Трансляція у SVF2
# Отримати URN та транслювати
URN=$(raps object urn cad-library assembly.iam --output plain)
raps translate start "$URN" --format svf2 --wait
Крок 4: Перевірка трансляції
# Перевірити маніфест
raps translate manifest "$URN"
# Отримати доступні види
raps derivative views "$URN" --output json
Підтримувані формати
| Формат | Розширення | Примітки |
|---|---|---|
| Inventor Assembly | .iam | Повна ієрархія збірки |
| Inventor Part | .ipt | Окремі файли деталей |
| STEP | .stp, .step | AP203/AP214 |
| IGES | .igs, .iges | Застарілий формат |
| SolidWorks | .sldprt, .sldasm | Деталі та збірки |
| Fusion 360 | .f3d | Безпосередньо з Fusion |
CI/CD-конвеєр
# .github/workflows/cad-translation.yml
name: CAD Translation Pipeline
on:
push:
paths:
- 'cad/**/*.iam'
- 'cad/**/*.ipt'
- 'cad/**/*.stp'
- 'cad/**/*.igs'
env:
BUCKET: cad-library-${{ github.repository_id }}
jobs:
translate-cad:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install RAPS
run: cargo install raps
- name: Setup bucket
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
raps bucket create --key "$BUCKET" --policy persistent --region US 2>/dev/null || true
- name: Upload and translate
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
for file in $(git diff --name-only HEAD~1 HEAD -- 'cad/**'); do
[ -f "$file" ] || continue
echo "Processing: $file"
raps object upload "$BUCKET" "$file"
key=$(basename "$file")
URN=$(raps object urn "$BUCKET" "$key" --output plain)
raps translate start "$URN" --format svf2 --wait
echo "Translated: $key"
done
- name: Generate translation report
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
run: |
echo "# CAD Translation Report" > report.md
echo "Date: $(date)" >> report.md
echo "" >> report.md
raps object list "$BUCKET" --output json | jq -r '.[].key' | while read key; do
URN=$(raps object urn "$BUCKET" "$key" --output plain)
STATUS=$(raps translate manifest "$URN" 2>/dev/null | jq -r '.status // "pending"')
echo "- $key: $STATUS" >> report.md
done
- name: Upload report
uses: actions/upload-artifact@v4
with:
name: translation-report
path: report.md
Потік конвеєра
Git Push
CAD-файли змінено
→
Обробка
Завантаження в OSS
Запуск трансляції
Очікування завершення
→
Результат
translation-report.md
Інтеграція з MCP
Трансляція одного файлу
User: "Upload and translate the new assembly.iam file for web viewing"
Користувач
AI-асистент
RAPS MCP
APS Cloud
Користувач
Транслювати assembly.iam
AI
aps_object_upload(bucket, file)
MCP
Завантаження файлу
APS
Завантаження завершено
AI
aps_object_urn(bucket, key)
MCP
URN
AI
aps_translate_start(urn, format=“svf2”)
MCP
Запуск трансляції
цикл: Очікування завершення
AI
aps_translate_manifest(urn)
MCP
Перевірка статусу
AI
Трансляція завершена
Відповідь AI:
assembly.iam було завантажено та успішно транслійовано.
- Розмір файлу: 45 МБ
- Компоненти: 234 деталі
- Час трансляції: 2 хв 34 с
- URL переглядача: https://viewer.autodesk.com/…
Трансляція кількох форматів
User: "I have STEP and IGES files from a supplier. Translate them all for review."
Відповідь AI:
Трансляція 5 файлів з теки постачальника:
Файл Формат Статус Час bracket.stp STEP Завершено 45 с housing.stp STEP Завершено 1 хв 12 с shaft.igs IGES Завершено 32 с gear.igs IGES Завершено 28 с mount.stp STEP Завершено 55 с Усі файли готові для перегляду.
Параметри для конкретних форматів
Трансляція STEP
# Стандартна трансляція STEP
raps translate start "$URN" --format svf2 --wait
# З конкретними видами на виході
raps translate start "$URN" --format svf2 --views "3d"
Збірка Inventor з посиланнями
# Завантажити збірку з усіма пов'язаними деталями
raps object upload cad-library assembly.iam
raps object upload cad-library part1.ipt
raps object upload cad-library part2.ipt
# Транслювати збірку (посилання розв'язуються автоматично)
URN=$(raps object urn cad-library assembly.iam --output plain)
raps translate start "$URN" --format svf2 --wait
ZIP-пакет з кореневим файлом
# Створити zip зі збіркою та деталями
zip -r model-package.zip assembly.iam *.ipt
# Завантажити пакет
raps object upload cad-library model-package.zip
# Транслювати з вказаним кореневим файлом
URN=$(raps object urn cad-library model-package.zip --output plain)
raps translate start "$URN" --format svf2 --root "assembly.iam" --wait