Skip to content

Commit 91f525e

Browse files
Renamed project to Morphe
1 parent 88215d3 commit 91f525e

51 files changed

Lines changed: 308 additions & 305 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,3 +205,6 @@ cython_debug/
205205
marimo/_static/
206206
marimo/_lsp/
207207
__marimo__/
208+
209+
210+
.idea

CONTRIBUTING.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Contributing to Canonical Sketch
1+
# Contributing to Morphe
22

3-
Thank you for your interest in contributing to Canonical Sketch! This document provides guidelines and information for contributors.
3+
Thank you for your interest in contributing to Morphe! This document provides guidelines and information for contributors.
44

55
## Ways to Contribute
66

@@ -15,8 +15,8 @@ Thank you for your interest in contributing to Canonical Sketch! This document p
1515

1616
1. Clone the repository:
1717
```bash
18-
git clone https://github.com/codereclaimers/canonical_sketch.git
19-
cd canonical_sketch
18+
git clone https://github.com/codereclaimers/morphe.git
19+
cd morphe
2020
```
2121

2222
2. Install in development mode with dev dependencies:
@@ -42,19 +42,19 @@ Before submitting a pull request, please run:
4242
```bash
4343
black .
4444
ruff check .
45-
mypy sketch_canonical
45+
mypy core
4646
```
4747

4848
## Adding a New CAD Adapter
4949

5050
All adapters are implemented in Python. To add support for a new CAD system:
5151

52-
1. Create a new package: `sketch_adapter_<cadname>/`
53-
2. Implement the `SketchBackendAdapter` abstract base class from `sketch_adapter_common`
52+
1. Create a new package: `adapter_<cadname>/`
53+
2. Implement the `SketchBackendAdapter` abstract base class from `adapter_common`
5454
3. Add tests in `tests/test_<cadname>_adapter.py` or within the adapter package
5555
4. Update the README to mention the new adapter
5656

57-
See `sketch_adapter_freecad/` for a reference implementation. For Windows COM-based CAD systems (like SolidWorks or Inventor), see `sketch_adapter_solidworks/` for patterns using `pywin32`.
57+
See `adapter_freecad/` for a reference implementation. For Windows COM-based CAD systems (like SolidWorks or Inventor), see `adapter_solidworks/` for patterns using `pywin32`.
5858

5959
## Pull Request Guidelines
6060

README.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Canonical Sketch
1+
# Morphe
22

33
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
44
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5-
[![Tests](https://github.com/codereclaimers/canonical_sketch/actions/workflows/test.yml/badge.svg)](https://github.com/codereclaimers/canonical_sketch/actions/workflows/test.yml)
5+
[![Tests](https://github.com/codereclaimers/morphe/actions/workflows/test.yml/badge.svg)](https://github.com/codereclaimers/morphe/actions/workflows/test.yml)
66
[![Status: Alpha](https://img.shields.io/badge/status-alpha-orange.svg)]()
77

88
A CAD-agnostic 2D sketch geometry and constraint representation with adapter support for FreeCAD, Fusion 360, SolidWorks, and Autodesk Inventor.
@@ -11,11 +11,11 @@ A CAD-agnostic 2D sketch geometry and constraint representation with adapter sup
1111

1212
This project provides:
1313

14-
- **`sketch_canonical`**: Platform-independent schema for 2D sketch geometry and constraints
15-
- **`sketch_adapter_freecad`**: Adapter for FreeCAD's Sketcher workbench
16-
- **`sketch_adapter_fusion`**: Adapter for Autodesk Fusion 360
17-
- **`sketch_adapter_solidworks`**: Adapter for SolidWorks (Windows only, via COM)
18-
- **`sketch_adapter_inventor`**: Adapter for Autodesk Inventor (Windows only, via COM)
14+
- **`core`**: Platform-independent schema for 2D sketch geometry and constraints
15+
- **`adapter_freecad`**: Adapter for FreeCAD's Sketcher workbench
16+
- **`adapter_fusion`**: Adapter for Autodesk Fusion 360
17+
- **`adapter_solidworks`**: Adapter for SolidWorks (Windows only, via COM)
18+
- **`adapter_inventor`**: Adapter for Autodesk Inventor (Windows only, via COM)
1919

2020
The canonical format enables constrained sketches to be stored, transferred, and manipulated independently of any specific CAD system.
2121

@@ -44,7 +44,7 @@ pip install pywin32
4444
## Quick Start
4545

4646
```python
47-
from sketch_canonical import (
47+
from core import (
4848
SketchDocument, Point2D, Line, Circle, Horizontal, Radius,
4949
save_sketch, load_sketch
5050
)
@@ -66,8 +66,8 @@ sketch = load_sketch("my_sketch.json")
6666
## FreeCAD Integration
6767

6868
```python
69-
from sketch_canonical import load_sketch
70-
from sketch_adapter_freecad import FreeCADAdapter
69+
from core import load_sketch
70+
from adapter_freecad import FreeCADAdapter
7171

7272
sketch = load_sketch("my_sketch.json")
7373
adapter = FreeCADAdapter()
@@ -87,10 +87,10 @@ The Fusion 360 adapter runs as a script or add-in within Fusion 360:
8787
```python
8888
# Run this inside Fusion 360's Scripts environment
8989
import sys
90-
sys.path.insert(0, r"path/to/canonical_sketch")
90+
sys.path.insert(0, r"path/to/morphe")
9191

92-
from sketch_canonical import load_sketch
93-
from sketch_adapter_fusion import FusionAdapter
92+
from core import load_sketch
93+
from adapter_fusion import FusionAdapter
9494

9595
def run(context):
9696
sketch = load_sketch("my_sketch.json")
@@ -111,8 +111,8 @@ def run(context):
111111
The SolidWorks adapter uses COM automation via `pywin32` (Windows only):
112112

113113
```python
114-
from sketch_canonical import load_sketch
115-
from sketch_adapter_solidworks import SolidWorksAdapter, SOLIDWORKS_AVAILABLE
114+
from core import load_sketch
115+
from adapter_solidworks import SolidWorksAdapter, SOLIDWORKS_AVAILABLE
116116

117117
if SOLIDWORKS_AVAILABLE:
118118
sketch = load_sketch("my_sketch.json")
@@ -146,8 +146,8 @@ if SOLIDWORKS_AVAILABLE:
146146
The Inventor adapter uses COM automation via `pywin32` (Windows only):
147147

148148
```python
149-
from sketch_canonical import load_sketch
150-
from sketch_adapter_inventor import InventorAdapter, INVENTOR_AVAILABLE
149+
from core import load_sketch
150+
from adapter_inventor import InventorAdapter, INVENTOR_AVAILABLE
151151

152152
if INVENTOR_AVAILABLE:
153153
sketch = load_sketch("my_sketch.json")

SPECIFICATION.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Canonical Sketch Geometry and Constraint Schema
1+
# Morphe: Canonical Sketch Geometry and Constraint Schema
22

33
This document defines a CAD-agnostic representation for 2D sketch geometry and constraints, along with platform-specific adaptation requirements for FreeCAD, SolidWorks, Inventor, and Fusion360.
44

@@ -12,11 +12,11 @@ This document defines a CAD-agnostic representation for 2D sketch geometry and c
1212

1313
### 1.1 Project structure
1414
```
15-
sketch_canonical/ # Core schema, validation, serialization (Python)
16-
sketch_adapter_freecad/ # FreeCAD adapter (Python, open source)
17-
sketch_adapter_solidworks/ # SolidWorks adapter (Python, Windows only via COM)
18-
sketch_adapter_inventor/ # Inventor adapter (Python, Windows only via COM)
19-
sketch_adapter_fusion/ # Fusion 360 adapter (Python, runs inside Fusion)
15+
core/ # Core schema, validation, serialization (Python)
16+
adapter_freecad/ # FreeCAD adapter (Python, open source)
17+
adapter_solidworks/ # SolidWorks adapter (Python, Windows only via COM)
18+
adapter_inventor/ # Inventor adapter (Python, Windows only via COM)
19+
adapter_fusion/ # Fusion 360 adapter (Python, runs inside Fusion)
2020
```
2121

2222
Each adapter project has:
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import xmlrpc.client
1313
from typing import Any, ClassVar
1414

15-
from sketch_canonical import SketchDocument, sketch_from_json, sketch_to_json
15+
from core import SketchDocument, sketch_from_json, sketch_to_json
1616

1717
DEFAULT_HOST = "localhost"
1818
DEFAULT_TIMEOUT = 30.0 # Longer timeout for sketch operations
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55
canonical sketch schema.
66
77
Usage:
8-
from sketch_adapter_freecad import FreeCADAdapter
8+
from adapter_freecad import FreeCADAdapter
99
1010
# With FreeCAD available
1111
adapter = FreeCADAdapter()
1212
adapter.create_sketch("MySketch")
1313
adapter.load_sketch(canonical_sketch)
1414
1515
RPC Server (run inside FreeCAD):
16-
from sketch_adapter_freecad import start_server
16+
from adapter_freecad import start_server
1717
start_server() # Starts on localhost:9876
1818
1919
RPC Client (run outside FreeCAD):
20-
from sketch_adapter_freecad import FreeCADClient
20+
from adapter_freecad import FreeCADClient
2121
client = FreeCADClient()
2222
if client.connect():
2323
sketches = client.list_sketches()
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import math
1515
from typing import Any
1616

17-
from sketch_canonical import (
17+
from core import (
1818
Arc,
1919
Circle,
2020
ConstraintError,
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
running the sketch RPC server.
66
77
Usage:
8-
from sketch_adapter_freecad.client import FreeCADClient
8+
from adapter_freecad.client import FreeCADClient
99
1010
client = FreeCADClient()
1111
if client.connect():
@@ -23,8 +23,8 @@
2323

2424
from __future__ import annotations
2525

26-
from sketch_adapter_common import BaseCADClient
27-
from sketch_canonical import SketchDocument
26+
from adapter_common import BaseCADClient
27+
from core import SketchDocument
2828

2929
DEFAULT_HOST = "localhost"
3030
DEFAULT_PORT = 9876

0 commit comments

Comments
 (0)