Metadata-Version: 2.5
Name: scad2step
Version: 0.1.1
Summary: Convert an OpenSCAD file to a STEP file from the command line
Project-URL: Homepage, https://github.com/etjones/scad2step
Project-URL: Repository, https://github.com/etjones/scad2step
Project-URL: Issues, https://github.com/etjones/scad2step/issues
Author-email: Evan Jones <evan_t_jones@mac.com>
License-Expression: MIT
License-File: LICENSE
Keywords: 3d,cad,cli,converter,openscad,scad123d,step
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Manufacturing
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Graphics :: 3D Modeling
Requires-Python: >=3.10
Requires-Dist: scad123d>=0.1.0
Description-Content-Type: text/markdown

# scad2step

Convert an OpenSCAD file to a [STEP](https://en.wikipedia.org/wiki/ISO_10303)
file, from the command line. No Python knowledge required.

```bash
uvx scad2step yourfile.scad -o out.step
```

STEP is the standard interchange format nearly every CAD program (Fusion
360, SolidWorks, FreeCAD) reads as a real solid body with exact curves —
unlike OpenSCAD's own STL export, which is always a mesh of flat triangles.
scad2step gets this by handing your file to the real OpenSCAD program (so
every language feature and library works exactly as it always has) and
rebuilding the result on [build123d](https://build123d.readthedocs.io/)'s
OpenCASCADE kernel instead of a mesh — see
[scad123d](https://github.com/etjones/scad123d), which does the actual
conversion work, for the details and the Python API.

## Requirements

- [uv](https://docs.astral.sh/uv/getting-started/installation/) — a package
  manager for Python programs. It's what runs the `uvx scad2step ...`
  command below, and installing it gets you everything else scad2step needs
  to run (including Python itself) automatically — no separate Python setup
  required.
- The [OpenSCAD](https://openscad.org/downloads.html) program installed.
  scad2step looks for it on your `$PATH` and in the usual install locations
  automatically; if it's somewhere else, set `$SCAD123D_OPENSCAD` to point
  at it directly.

## Usage

```bash
uvx scad2step yourfile.scad -o out.step
```

Leave out `-o` and the output defaults to the input filename with a `.step`
extension:

```bash
uvx scad2step yourfile.scad   # writes yourfile.step
```

Pass variable overrides the same way OpenSCAD's own `-D` flag does, if your
file has top-level variables you want to set from the command line (a `-D
name=value` for each one):

```bash
uvx scad2step yourfile.scad -o out.step -D width=40 -D holes=6
```

Run `uvx scad2step --help` for the rest of the options (mesh fallback
behavior, timeout, etc.) — the defaults are right for almost everyone.

## Installing it permanently

`uvx` runs scad2step without installing anything persistent. If you'd rather
have the command always available:

```bash
uv tool install scad2step
```

## License

MIT
