手書き図面 → CADデータ 自動変換システム
Discord に手書き図面の画像を送るだけで、業務利用可能なCADデータ(DXF/JWW/PDF/SVG)を取得できるAI搭載変換システムです。
- 🤖 AI画像解析 - OpenCV + コンピュータビジョンによる線分・形状の自動認識
- 📐 4形式出力 - DXF (AutoCAD) / JWW (Jw_cad) / PDF / SVG
- 💬 Discord Bot - Discord チャンネルから直接変換
- ⚡ 高速変換 - 30秒以内の非同期処理
- 🔌 REST API -FastAPI による高性能API
- 🐳 Docker対応 - ワンコマンドデプロイ
cp .env.example .env
# .env を編集(DISCORD_TOKENを設定)
docker-compose up -d --buildpython -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
python -m app.main!cad convert # DXFに変換
!cad convert dxf,jww # DXFとJWWに変換
!cad convert all # 全形式に変換
!cad help # ヘルプ
# 同期変換
curl -X POST http://localhost:8000/api/v1/convert-sync \
-F "file=@drawing.png" -F "formats=dxf" -o output.dxf
# 非同期変換
curl -X POST http://localhost:8000/api/v1/convert \
-F "file=@drawing.png" -F "formats=dxf,jww,pdf,svg"API Docs: http://localhost:8000/docs
Hand2CAD/
├── app/
│ ├── main.py # FastAPI エントリポイント
│ ├── config.py # 設定管理
│ ├── api/ # API層
│ │ ├── routes.py # ルーティング
│ │ └── models.py # データモデル
│ ├── core/ # コア処理
│ │ ├── image_analyzer.py # AI画像解析
│ │ ├── preprocessor.py # 前処理
│ │ ├── line_detector.py # 線分検出
│ │ └── shape_detector.py # 形状検出
│ ├── exporters/ # CAD出力
│ │ ├── dxf_exporter.py # DXF
│ │ ├── jww_exporter.py # JWW (Jw_cad)
│ │ ├── pdf_exporter.py # PDF
│ │ └── svg_exporter.py # SVG
│ └── discord_bot/ # Discord連携
│ └── bot.py
├── tests/ # テスト
├── docs/ # ドキュメント
├── Dockerfile
├── docker-compose.yml
└── requirements.txt
.env ファイルで設定を管理:
| 変数 | 説明 | デフォルト |
|---|---|---|
DISCORD_TOKEN |
Discord Bot Token | 必須 |
PORT |
サーバーポート | 8000 |
MAX_IMAGE_SIZE_MB |
最大画像サイズ | 10 |
CONVERSION_TIMEOUT_SEC |
タイムアウト秒数 | 30 |
MIN_LINE_LENGTH |
最小線分長(px) | 30 |
pip install pytest
pytest tests/ -vMIT License