@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
package/python/export_runner.py
CHANGED
|
@@ -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
|
|
Binary file
|
|
Binary file
|