Files
OneCAD-Draft/ROADMAP.md
T

7.9 KiB
Raw Blame History

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
  • UNDERLAY komutu (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
  • UCS komutu 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
  • UCSICON komutu 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 dimblk alanı 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
  • IMAGE komutu: dosya seçimi dialog
  • ImageDefinition object 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