1
ewconfig/scripts/usdnc-to-usd
2023-11-09 11:47:47 -05:00

48 lines
1.1 KiB
Plaintext
Executable File

#! /usr/bin/env -S hython-latest -I
import argparse
import sys
from pxr import Usd
from pathlib import Path
def main() -> int:
# Handle program arguments
ap = argparse.ArgumentParser(
prog="usdnc-to-usd", description="Convert USDNC files to USD"
)
ap.add_argument("input", help="Input file", type=Path)
ap.add_argument(
"--output",
"-o",
help="Output file. Defaults to the input file with a new extension.",
type=Path,
default=None,
)
ap.add_argument(
"--format",
"-f",
help="Output format. Defaults to usda.",
type=str,
default="usda",
choices=["usda", "usdc"],
)
args = ap.parse_args()
# Read the input file
print(f"Opening stage from: {args.input}")
stage = Usd.Stage.Open(args.input.as_posix())
# Determine the output file
if not args.output:
args.output = args.input.with_suffix(f".{args.format}")
# Write the output file
print(f"Writing stage to: {args.output}")
stage.Export(args.output.as_posix())
return 0
if __name__ == "__main__":
sys.exit(main())