Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7.9 KiB
H7CAD — Roadmap
acadrust 0.3.1 referans alınarak hazırlanmıştır.
Mevcut Durum (Özet)
Entity Desteği
| Durum | Entity'ler |
|---|---|
| Tam (render + grips + props + transform) | Point, Line, Circle, Arc, Ellipse, Spline, LwPolyline, Polyline, Polyline2D, Polyline3D, Ray, XLine, Text, MText, Leader, MultiLeader, RasterImage, Wipeout, AttributeDefinition, AttributeEntity, MLine, Table, Tolerance, Face3D, PolygonMesh, PolyfaceMesh |
| Özel render, kısmi | Dimension (tessellate_dimension — grips yok), Hatch (GPU HatchModel — grips yok), Insert (explode_from_document), Viewport (border render) |
| Hiç yok | Solid (2D dolu katı), Solid3D/Region/Body (ACIS), Underlay (PDF/DWF/DGN), Shape (font glyph) |
I/O
- DWG okuma/yazma: R14 → R2018 (AC1032)
- DXF okuma/yazma
- PDF export (PlotSettings entegreli, rotation, offset, scale, window)
Komutlar
203 benzersiz komut string — çizim, düzenleme, katman, görünüm, annotasyon, yardımcı.
acadrust Tablo/Object Kullanımı
Kullanılan: layers, linetypes, text_styles, dim_styles, views, ucss, vports, block_records, Layout, Group, PlotSettings, SortEntitiesTable
Kullanılmayan: MLineStyle, TableStyle, ImageDefinition
Kalan İşler
1 — Entity Tamamlama
1.1 Dimension Grips ✅
Öncelik: Yüksek — TAMAMLANDI
- DimLinear: definition point, dim line, text grips
- DimAligned: aynı
- DimAngular: vertex + extension grips
- DimRadius / DimDiameter: center + radius point grip
- Grip ile dimension text konumu düzenleme
Dosyalar: src/entities/dimension.rs
1.2 Hatch Boundary Grips ✅
Öncelik: Orta — TAMAMLANDI
- Her boundary loop köşesi için grip (Polyline, Line, Arc, EllipticArc, Spline)
- Grip sürükleme → boundary vertex güncelleme → hatch yeniden tessellate
Dosyalar: src/entities/hatch.rs, src/scene/mod.rs
1.3 Solid Entity (2D) ✅
Öncelik: Düşük — TAMAMLANDI
TruckConvertible: wireframe çevre + GPU solid-fill (hatch pipeline)- Grips: 4 köşe
- Properties: 4 köşe koordinatı, thickness
Transformable
Dosyalar: src/entities/solid.rs
1.4 Underlay (PDF/DWF/DGN Referans)
Öncelik: Düşük
- Wireframe sınır kutusu render (RasterImage gibi)
- Fade/contrast/clip properties
UNDERLAYkomutu (dosya seçimi olmadan — sadece mevcut entity düzenleme)
Dosyalar: yeni src/entities/underlay.rs
2 — Viewport & Kağıt Uzayı
2.1 VPCLIP
Öncelik: Düşük | Bloker: acadrust Viewport struct'ında clip_boundary alanı yok
- Özel overlay ile polygon clip sınırı çizimi
- VPCLIP komutu
- Clip boundary grip düzenlemesi
2.2 Yeni Viewport Default Freeze Listesi
Öncelik: Düşük | Bloker: acadrust VPLAYER NEWFRZ desteği yok
- MVIEW ile oluşturulan yeni viewport'lara dondurulmuş layer listesi uygulanması
2.3 Per-Viewport Arka Plan Rengi
Öncelik: Düşük
- Viewport entity'sine arka plan rengi alanı (custom veya overlay)
- wgpu pipeline'da per-viewport clear color
2.4 Layer UI — Per-Viewport Görünürlük
Öncelik: Düşük
- Layer panelinde her viewport için ayrı freeze/thaw göstergesi
2.5 Plot Style Table (CTB/STB)
Öncelik: Orta
- CTB (color-based) dosya okuma/yazma
- STB (named) dosya okuma/yazma
- PDF export sırasında plot style renk/kalınlık dönüşümü
- PlotSettings'e CTB/STB referansı
2.6 PDF Shade Plot (Hidden Line Removal)
Öncelik: Düşük
- PDF export sırasında shade_plot_mode = Hidden → arka taraftaki kenarları gizle
- Depth sorting + backface culling (wireframe model için)
3 — Koordinat Sistemi
3.1 WCS ↔ UCS Dönüşüm
Öncelik: Orta
Şu an tüm komutlar WCS (world) koordinatında çalışıyor.
- Aktif UCS matrisini komutlara entegre (giriş noktaları UCS → WCS dönüşümü)
- Snap grid'i UCS düzlemine hizala
UCSkomutu ile gerçek koordinat sistemi geçişi
Dosyalar: src/scene/mod.rs, src/app/commands.rs
3.2 UCS Icon Render ✅
Öncelik: Düşük — TAMAMLANDI
- Model space sol alt köşesinde XYZ eksen oku çizimi (iced canvas overlay)
- Kamera rotasyonuna göre eksen yönleri dinamik olarak hesaplanıyor
UCSICONkomutu ile toggle (ON/OFF)
4 — Style Yöneticileri (UI Dialogları)
4.1 DimStyle Dialog
Öncelik: Orta
DIMSTYLE LIST/NEW/SET komutları mevcut; tam UI yok.
- Tüm DimStyle özelliklerini gösteren panel/dialog
- Ok tipi seçici (DIMBLK/DIMBLK1/DIMBLK2) — acadrust
dimblkalanı var - Tolerans format ayarları (DIMTOL, DIMLIM)
- Preview ile gerçek zamanlı önizleme
Dosyalar: yeni src/ui/dimstyle_dialog.rs
4.2 TextStyle Font Browser
Öncelik: Düşük
STYLE LIST/NEW/FONT/WIDTH/OBLIQUE komutları mevcut; dosya browser yok.
- Sistem font listesi
- SHX font listesi (assets/fonts/)
- Önizleme metni
Dosyalar: yeni src/ui/textstyle_dialog.rs
4.3 MLineStyle Yöneticisi
Öncelik: Düşük
MLineStyle acadrust'ta mevcut (objects/mline_style.rs) ama H7CAD hiç kullanmıyor.
- MLineStyle oluştur/düzenle (çizgi sayısı, offset, renk, linetype)
- Caps (başlangıç/bitiş çizgi, yay)
- MLINE komutuna stil seçimi entegre
Dosyalar: yeni src/ui/mlinestyle_dialog.rs
4.4 TableStyle Yöneticisi
Öncelik: Düşük
TableStyle acadrust'ta mevcut (objects/table_style.rs) ama kullanılmıyor.
- Başlık satırı, veri satırı, sütun başlığı stilleri
- Font, renk, kenarlık, hizalama
- TABLE komutuna stil seçimi entegre
5 — Render İyileştirmeleri
5.1 Wipeout Gerçek Maskeleme
Öncelik: Düşük
Şu an sadece wireframe sınır çiziliyor.
- SortEntitiesTable draw order entegrasyonu ile beyaz/arka plan renkli dolgu
- Polygon şeklini doldur (hatch solid benzeri)
5.2 Tolerance GD&T Box Render
Öncelik: Düşük
Şu an sadece ham metin gösteriliyor.
- Gerçek feature control frame kutuları (bölmeli dikdörtgen)
- GD&T sembol seçici (Φ, ⊕, ○, □ vb.)
5.3 IMAGE Komutu / Raster Pipeline
Öncelik: Düşük
RasterImage entity render yok (sadece sınır kutusu + X).
- PNG/JPEG/BMP decode (image crate)
- GPU texture upload + quad render
IMAGEkomutu: dosya seçimi dialogImageDefinitionobject yönetimi
6 — 3D / ACIS
6.1 Solid3D / Region / Body (ACIS)
Öncelik: Çok Düşük | Bloker: SAT/SAB parser gerektirir
acadrust Solid3D, Region, Body entity'lerini parse ediyor ama ACIS kernel yok.
- SAT text parse → B-rep half-edge yapısı
- Basit tessellation (flat shading, display-only)
- ACIS primitives: Box, Cylinder, Cone, Sphere, Torus
Hızlı Referans — Kalan İşler Öncelik Sırası
| # | Özellik | Öncelik | Zorluk |
|---|---|---|---|
| 1 | Dimension grips | Yüksek | Orta |
| 2 | WCS↔UCS dönüşüm | Orta | Yüksek |
| 3 | DimStyle dialog | Orta | Orta |
| 4 | Plot style table CTB/STB | Orta | Orta |
| 5 | Hatch boundary grips | Orta | Orta |
| 6 | Solid entity (2D) | Düşük | Kolay |
| 7 | Underlay entity | Düşük | Kolay |
| 8 | UCS icon render | Düşük | Kolay |
| 9 | Wipeout maskeleme | Düşük | Orta |
| 10 | MLineStyle yöneticisi | Düşük | Orta |
| 11 | TableStyle yöneticisi | Düşük | Orta |
| 12 | TextStyle font browser | Düşük | Kolay |
| 13 | IMAGE / raster pipeline | Düşük | Yüksek |
| 14 | Per-viewport arka plan rengi | Düşük | Yüksek |
| 15 | PDF shade plot | Düşük | Yüksek |
| 16 | VPCLIP | Düşük | Yüksek + Bloker |
| 17 | Solid3D / ACIS | Çok Düşük | Çok Yüksek |