@forgent3d/cad-runtime 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgent3d/cad-runtime",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Shared CAD runtime protocol, types, and pure utilities for Forgent3D cloud services.",
5
5
  "license": "MIT",
6
6
  "author": "Forgent3D",
@@ -94,6 +94,18 @@ def _write_stl(shape, path_out):
94
94
  raise RuntimeError(f"Unable to export STL: {exc}")
95
95
 
96
96
 
97
+ def _write_glb(shape, path_out):
98
+ try:
99
+ from build123d import export_gltf, Unit # type: ignore
100
+ except Exception as exc:
101
+ raise RuntimeError(f"build123d.export_gltf unavailable: {exc}")
102
+ try:
103
+ export_gltf(shape, path_out, unit=Unit.MM, binary=True)
104
+ return "build123d.export_gltf"
105
+ except Exception as exc:
106
+ raise RuntimeError(f"Unable to export GLB: {exc}")
107
+
108
+
97
109
  def _resolve_model_source(model_name: str, part_name: str, source_override: str = None):
98
110
  if source_override:
99
111
  candidate = source_override
@@ -259,7 +271,7 @@ def build_one(model_name: str, part_name: str = None, export_format: str = "brep
259
271
  return 8
260
272
 
261
273
  fmt = (export_format or "brep").strip().lower()
262
- if fmt not in ("brep", "step", "stl"):
274
+ if fmt not in ("brep", "step", "stl", "glb"):
263
275
  print(f"[export_runner] Unsupported export format: {fmt}", file=sys.stderr)
264
276
  return 7
265
277
 
@@ -276,6 +288,8 @@ def build_one(model_name: str, part_name: str = None, export_format: str = "brep
276
288
  method = _write_brep(result, out)
277
289
  elif fmt == "step":
278
290
  method = _write_step(result, out)
291
+ elif fmt == "glb":
292
+ method = _write_glb(result, out)
279
293
  else:
280
294
  method = _write_stl(result, out)
281
295
  export_elapsed = time.perf_counter() - export_started
@@ -299,7 +313,7 @@ def main() -> int:
299
313
  parser.add_argument("--part", default=None, help="Legacy alias for --model")
300
314
  parser.add_argument("--part-name", default=None, help="Part directory name inside models/<model>/parts/")
301
315
  parser.add_argument("--source", default=None, help="Optional project-relative or absolute source file path (overrides default lookup)")
302
- parser.add_argument("--export-format", default="brep", choices=["brep", "step", "stl"])
316
+ parser.add_argument("--export-format", default="brep", choices=["brep", "step", "stl", "glb"])
303
317
  parser.add_argument("--output", default=None, help="Optional absolute path for exported file")
304
318
  args = parser.parse_args()
305
319
  global PROJECT_ROOT, MODELS_DIR, CACHE_DIR