chore: update .gitignore and remove pycache from tracking

This commit is contained in:
bklronin
2026-03-14 08:59:25 +01:00
parent e13769840b
commit daed79dac6
20 changed files with 36 additions and 187 deletions
+36 -1
View File
@@ -1,3 +1,38 @@
*.xml
*.iml
.idea
.idea
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# Virtual environments
.venv/
venv/
ENV/
# Lock files
uv.lock
# IDE
.vscode/
*.swp
*.swo
Binary file not shown.
Binary file not shown.
-146
View File
@@ -1,146 +0,0 @@
Metadata-Version: 2.4
Name: fluency-cad
Version: 2.0.0
Summary: Parametric CAD application with OpenCASCADE geometry kernel
Author: Fluency CAD Team
License: MIT
Project-URL: Homepage, https://github.com/fluency-cad/fluency
Project-URL: Documentation, https://github.com/fluency-cad/fluency#readme
Project-URL: Repository, https://github.com/fluency-cad/fluency
Keywords: cad,parametric,opencascade,3d-modeling
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: CAD
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: cadquery>=2.4
Requires-Dist: pygfx>=0.1.0
Requires-Dist: wgpu>=0.1.0
Requires-Dist: PySide6>=6.4.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: scipy>=1.10.0
Requires-Dist: pillow>=10.0.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: black>=24.0; extra == "dev"
Requires-Dist: mypy>=1.8; extra == "dev"
Requires-Dist: ruff>=0.4.0; extra == "dev"
# Fluency CAD 2.0
A parametric CAD application built on OpenCASCADE Technology (OCCT) with a modern pygfx-based 3D renderer.
## Features
- **OpenCASCADE Geometry Kernel**: Industry-standard BRep geometry with exact precision
- **STEP/IGES Import/Export**: Full support for industry-standard CAD file formats
- **Parametric Sketching**: 2D sketching with constraint solving using CadQuery
- **Boolean Operations**: Union, difference, and intersection
- **Fillet & Chamfer**: Apply edge treatments to solid bodies
- **Modern Renderer**: WebGPU-based rendering with pygfx (smaller footprint than VTK)
## Architecture
```
fluency/
├── src/fluency/
│ ├── geometry/ # Geometry abstraction layer
│ │ └── base.py # Abstract interfaces
│ ├── geometry_occ/ # OpenCASCADE implementation
│ │ ├── kernel.py # OCGeometryKernel
│ │ └── sketch.py # OCCSketch with constraints
│ ├── rendering/ # Rendering abstraction
│ │ ├── base.py # Abstract renderer
│ │ └── pygfx_renderer.py
│ ├── models/ # Data models
│ │ └── data_model.py # Project, Component, Sketch, Body
│ └── main.py # Application entry point
├── tests/
│ └── test_geometry.py
└── pyproject.toml
```
## Installation
```bash
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -e ".[dev]"
```
## Dependencies
| Package | Purpose |
|---------|---------|
| cadquery | High-level OpenCASCADE Python bindings |
| ocp | Low-level OpenCASCADE Python bindings |
| pygfx | WebGPU-based 3D renderer |
| wgpu | WebGPU Python bindings |
| PySide6 | Qt GUI framework |
| numpy | Numerical computing |
| scipy | Scientific computing |
## Usage
```bash
# Run the application
fluency-cad
# Or directly
python -m fluency.main
```
## API Example
```python
from fluency.geometry_occ.kernel import OCGeometryKernel
from fluency.geometry.base import Point2D
# Create kernel
kernel = OCGeometryKernel()
# Create a sketch
points = [
Point2D(0, 0),
Point2D(10, 0),
Point2D(10, 10),
Point2D(0, 10),
]
polygon = kernel.create_polygon(points)
# Extrude to 3D
body = kernel.extrude(polygon, height=20.0)
# Apply fillet
body = kernel.fillet(body, radius=2.0)
# Export to STEP
kernel.export_step(body, "part.step")
# Export to STL
kernel.export_stl(body, "part.stl")
```
## Comparison: Before vs After
| Aspect | Before (SDF + VTK) | After (OCC + pygfx) |
|--------|-------------------|---------------------|
| Geometry Precision | Approximate (mesh) | Exact (BRep) |
| Export Formats | STL only | STEP, IGES, STL, BREP |
| File Size | Large (mesh) | Small (BRep) |
| Fillet/Chamfer | Approximate | Exact |
| Dependency Size | ~200MB (VTK) | ~30MB (pygfx) |
| Constraint Solver | SolveSpace (separate) | CadQuery (integrated) |
## License
MIT License
-23
View File
@@ -1,23 +0,0 @@
README.md
pyproject.toml
src/fluency/__init__.py
src/fluency/main.py
src/fluency/geometry/__init__.py
src/fluency/geometry/base.py
src/fluency/geometry_occ/__init__.py
src/fluency/geometry_occ/kernel.py
src/fluency/geometry_occ/sketch.py
src/fluency/models/__init__.py
src/fluency/models/data_model.py
src/fluency/rendering/__init__.py
src/fluency/rendering/base.py
src/fluency/rendering/pygfx_renderer.py
src/fluency/utils/__init__.py
src/fluency/widgets/__init__.py
src/fluency_cad.egg-info/PKG-INFO
src/fluency_cad.egg-info/SOURCES.txt
src/fluency_cad.egg-info/dependency_links.txt
src/fluency_cad.egg-info/entry_points.txt
src/fluency_cad.egg-info/requires.txt
src/fluency_cad.egg-info/top_level.txt
tests/test_geometry.py
@@ -1 +0,0 @@
@@ -1,2 +0,0 @@
[console_scripts]
fluency-cad = fluency.main:main
-13
View File
@@ -1,13 +0,0 @@
cadquery>=2.4
pygfx>=0.1.0
wgpu>=0.1.0
PySide6>=6.4.0
numpy>=1.24.0
scipy>=1.10.0
pillow>=10.0.0
[dev]
pytest>=8.0
black>=24.0
mypy>=1.8
ruff>=0.4.0
-1
View File
@@ -1 +0,0 @@
fluency