48 lines
1.1 KiB
Plaintext
Executable File
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())
|