Metadata-Version: 2.4
Name: usd-convert-cad
Version: 0.2.0
Summary: Convert supported CAD assets to OpenUSD (.usd, .usda, .usdc).
Project-URL: Homepage, https://github.com/NVIDIA-Omniverse/usd-convert-cad
Project-URL: Documentation, https://github.com/NVIDIA-Omniverse/usd-convert-cad#readme
Project-URL: Repository, https://github.com/NVIDIA-Omniverse/usd-convert-cad
Project-URL: Issues, https://github.com/NVIDIA-Omniverse/usd-convert-cad/issues
Author: NVIDIA
License: # NVIDIA Omniverse Licensing Terms
        
        The **Omniverse CAD Converter**, distributed on GitHub and PyPI using the
        `usd-convert-cad` repository, package, and command-line identifier, is governed
        by the following NVIDIA agreements:
        
        - [NVIDIA Software License Agreement](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-software-license-agreement/)
        - [Product Specific Terms for NVIDIA AI Products](https://www.nvidia.com/en-us/agreements/enterprise-software/product-specific-terms-for-ai-products/)
        
        These terms govern the use of NVIDIA Omniverse by individuals and commercial
        customers. Customers may redistribute the Omniverse CAD Converter as permitted
        by those terms.
        
        By downloading or using NVIDIA Omniverse, you agree to the terms. See the
        [Omniverse License Agreement](https://docs.omniverse.nvidia.com/dev-guide/latest/common/NVIDIA_Omniverse_License_Agreement.html).
        
        The Omniverse CAD Converter uses the Tech Soft 3D HOOPS Exchange SDK, licensed
        by NVIDIA, to read supported CAD data for conversion to OpenUSD. See
        [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md) for third-party
        acknowledgements and license notices that must accompany the software.
License-File: LICENSE.md
Requires-Python: <3.13,>=3.12
Description-Content-Type: text/markdown

# Omniverse CAD Converter (`usd-convert-cad`)

Pip-installable Omniverse CAD Converter package for converting supported CAD
assets to OpenUSD.

`usd-convert-cad` converts supported CAD, AEC, and interchange files to OpenUSD. The wheel includes the converter command line, Python package, required native runtime components, and the canonical agent skill.

## Installing

Create an isolated Python environment and install the package:

```shell
python -m venv .venv
python -m pip install usd-convert-cad
```

## Converting Files

Run the console command with an input CAD asset and output USD path:

```shell
usd-convert-cad --input model.stp --output model.usdc
```

Short flags are also supported:

```shell
usd-convert-cad -i model.stp -o model.usda
```

The package supports module execution as well:

```shell
python -m usd_convert_cad --input model.stp --output model.usdc
```

## Output Formats

The output path determines the USD file format. Supported output extensions are
`.usd`, `.usda`, and `.usdc`. USDZ (`.usdz`) export is not supported.

Examples:

```bash
usd-convert-cad -i assembly.stp -o assembly.usdc
usd-convert-cad -i part.igs -o part.usda
usd-convert-cad -i model.prt -o model.usd
```

## Conversion Options

Run `usd-convert-cad --help` to view all options.

Options include:

- `--global-xforms`: Author global transforms instead of local transforms.
- `--convert-curves`: Convert wire and curve geometry.
- `--convert-metadata`: Convert CAD metadata to USD custom attributes.
- `--no-dedup`: Disable mesh and material deduplication.
- `--tess-lod <0-4>`: Set tessellation level of detail.
- `--revit-lod <0-3>`: Set Revit detail level. Values are `0` for file
  default, `1` coarse, `2` medium, and `3` fine.
- `--accurate-tessellation`: Enable accurate tessellation.
- `--fast-surface-curvatures`: Disable accurate surface curvature computation.
- `--no-normals`: Do not author normals.
- `--no-materials`: Do not author materials.
- `--material-type <type>`: Choose material output type. Valid values:
  `none`, `preview-surface`, `preview-surface-omnipbr`.
- `--up-axis <axis>`: Override output stage up-axis. Valid values:
  `file`, `y`, `z`.
- `--instancing-style <style>`: Choose how repeated components are authored.
  Valid values: `none`, `reference`, `instanceable-reference`.
- `--composition-style <style>`: Choose how external sub-assemblies and parts
  are authored. Valid values: `none`, `reference`, `payload`.
- `--filter-style <style>`: Choose how hidden CAD elements are converted.
  Valid values: `none`, `omit`, `hide`, `deactivate`.
- `--load-hidden`: Load hidden CAD elements before filtering.
- `--progress`: Print converter progress.
- `--progress-frequency <hz>`: Set progress report frequency in Hz.
- `--creator <value>`: Set creator metadata on output USD layers.
- `--convert-physics-data`: Author physical properties on USD prims.
- `--physics-accuracy-level <0.0-1.0>`: Set physical property accuracy.
- `--physics-use-geometry-on-ribrep`: Use geometry instead of topology for
  RiBRep physical properties.
- `--view-layer-name <name>`: Convert a CAD view layer or simplified
  representation by name.

Pass the selected value after the option name:

```bash
usd-convert-cad \
  --input model.stp \
  --output model.usdc \
  --convert-metadata \
  --tess-lod 3 \
  --material-type preview-surface \
  --up-axis z \
  --instancing-style instanceable-reference \
  --composition-style payload \
  --filter-style hide \
  --progress-frequency 4 \
  --progress
```

## Python Package

The installed Python package exposes version helpers:

```python
import usd_convert_cad

print(usd_convert_cad.__version__)
print(usd_convert_cad.get_version())
```

The wheel also installs the canonical agent skill at
`usd_convert_cad/skills/omniverse-cad-to-usd/SKILL.md`.

## Uninstalling

```bash
python -m pip uninstall usd-convert-cad
```

## License and Third-Party Notices

The Omniverse CAD Converter is governed by the applicable
[NVIDIA Omniverse licensing terms](https://docs.omniverse.nvidia.com/dev-guide/latest/common/NVIDIA_Omniverse_License_Agreement.html).
NVIDIA licenses the Tech Soft 3D HOOPS Exchange SDK to read supported CAD data
for conversion to OpenUSD. See the repository [license](https://github.com/NVIDIA-Omniverse/usd-convert-cad/blob/main/LICENSE.md)
and [third-party notices](https://github.com/NVIDIA-Omniverse/usd-convert-cad/blob/main/THIRD_PARTY_NOTICES.md).
