docs: Refresh ARCHITECTURE/README (EN+zh-TW) for v0.5.0 feature set
- READMEs: version badge 0.5.0, hotkey column in measure table, circle-center snap / standard views / ortho / tree search & isolate / volume / 3-pt section / multi-file interference / STEP export / settings & MRU; version history adds v0.4.0 and v0.5.0 - ARCHITECTURE: overview bullets, data models (ModelNodeViewModel, MeasureMode.Volume) brought up to date Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+43
-29
@@ -4,7 +4,7 @@
|
||||
|
||||
> STP/STEP 3D 檢視器(Windows 桌面程式,C# .NET 8 WPF)— 多檔匯入、裝配樹、點/距離/邊/面/圓量測。
|
||||
|
||||
   
|
||||
   
|
||||
|
||||
---
|
||||
|
||||
@@ -28,30 +28,33 @@
|
||||
|
||||
快速開啟機構件 STEP 檔做確認與量測,不需安裝 SolidWorks / Creo 等重量級 CAD。
|
||||
|
||||
- **多檔匯入** — STEP / STL / DXF,工具列匯入(可複選)、拖放到視窗,或命令列 `STPViewer.exe a.stp b.stl`
|
||||
- **裝配樹** — STEP product structure 還原成樹(組件→零件);逐節點 顯示/隱藏、換色(cascade)、Zoom-to;檔案層級可移除、開關輪廓邊線
|
||||
- **量測**(工具列切換模式,點擊模型):
|
||||
- **多檔匯入** — STEP / STL / DXF,工具列匯入(可複選)、拖放到視窗、命令列 `STPViewer.exe a.stp b.stl`,或最近檔案下拉(▾,最近 10 筆)
|
||||
- **裝配樹** — STEP product structure 還原成樹(組件→零件);逐節點 顯示/隱藏、換色(cascade)、Zoom-to;檔案層級可移除、開關輪廓邊線;**名稱搜尋過濾**;右鍵 **只顯示此節點 / 反轉顯示 / 全部顯示 / 量體積質心**;tooltip 顯示外形尺寸 L×W×H
|
||||
- **量測**(工具列切換模式或快速鍵,點擊模型):
|
||||
|
||||
| 模式 | 輸出 |
|
||||
|---|---|
|
||||
| 📍 點 | XYZ 座標(自動吸附鄰近 B-rep 頂點) |
|
||||
| 📏 距離 | 兩點直線距離 + ΔX/ΔY/ΔZ |
|
||||
| 📐 邊 | 直線長 / 曲線長 / 圓弧長 + 半徑 |
|
||||
| ⬛ 面 | 面積(網格近似)+ 曲面類型(平面法向量、圓柱半徑/軸向) |
|
||||
| ⭕ 圓 | 圓心 / 半徑 / 直徑 / 周長 |
|
||||
| ∠ 角度 | 兩面(法向量)/ 兩直線邊 夾角 + 補角 |
|
||||
| ⇔ 面距 | 面到面最短距離(網格近似)+ 最近點對 |
|
||||
| ⤚ 對齊(兩點) | 點「要移動零件」一點 + 目標點 → 純平移使兩點貼合 |
|
||||
| 🎯 對齊(三點) | 來源檔 3 點 + 目標檔 3 對應點 → 旋轉+平移一次貼合 |
|
||||
| 模式 | 快速鍵 | 輸出 |
|
||||
|---|---|---|
|
||||
| 📍 點 | P | XYZ 座標(自動吸附鄰近 B-rep 頂點**或圓心**) |
|
||||
| 📏 距離 | D | 兩點直線距離 + ΔX/ΔY/ΔZ — 點兩個孔緣即吸附**圓心**=直接量 pin pitch |
|
||||
| 📐 邊 | E | 直線長 / 曲線長 / 圓弧長 + 半徑 |
|
||||
| ⬛ 面 | F | 面積(網格近似)+ 曲面類型(平面法向量、圓柱半徑/軸向) |
|
||||
| ⭕ 圓 | C | 圓心 / 半徑 / 直徑 / 周長 |
|
||||
| ∠ 角度 | A | 兩面(法向量)/ 兩直線邊 夾角 + 補角 |
|
||||
| ⇔ 面距 | M | 面到面最短距離(網格近似)+ 最近點對 |
|
||||
| ⚖ 體積 | (樹右鍵) | 網格 signed volume + 質心標記 + 外形尺寸(封閉實體) |
|
||||
| ⤚ 對齊(兩點) | | 點「要移動零件」一點 + 目標點 → 純平移使兩點貼合 |
|
||||
| 🎯 對齊(三點) | | 來源檔 3 點 + 目標檔 3 對應點 → 旋轉+平移一次貼合 |
|
||||
|
||||
同鍵再按 = 退出模式;**Esc** 先取消進行中的點選、再按退出模式。
|
||||
- **旋轉** — 樹面板選檔案 + 工具列 ↻X/↻Y/↻Z 繞中心 +90°(擺正方向用,連按累加)
|
||||
- **拖曳** 🖐 — 手形游標模式,左鍵按住零件沿螢幕平面拖動、放開定位(右鍵轉視角不受影響)
|
||||
- **操作器** ⊹ — 樹面板選檔案 → XYZ 三色箭頭 + 旋轉環(Fusion 360 風格);拖箭頭沿該軸移動(與視角無關)、拖環繞軸轉。永遠浮在最上層、不被實體遮擋
|
||||
- **干涉檢查** 🧩 — 勾選剛好 2 個可見檔案 → 相交時顯示紅色干涉交線 + 相交三角形對數;無相交時回報最小間隙 gap(gap≈0 即為配合 match,共面貼合不算干涉)
|
||||
- **剖面** ✂ — X/Y/Z 軸 + 位置滑桿 + 反向;CPU 網格裁切,原始幾何保留(量測仍精確)
|
||||
- **干涉檢查** 🧩 — 2 個以上可見檔案**兩兩配對**檢查:相交時顯示紅色干涉交線 + 相交三角形對數;無相交時回報最小間隙 gap(gap≈0 即為配合 match,共面貼合不算干涉)
|
||||
- **剖面** ✂ — X/Y/Z 軸或**在模型上點 3 點定義任意平面**;位置滑桿 + 數值輸入 + 反向;CPU 網格裁切(背景平行運算),原始幾何保留(量測仍精確)
|
||||
- **單位** — mm ⇄ inch 一鍵切換,既有量測(清單與 3D 標籤)即時換算
|
||||
- **匯出** — 量測結果 CSV(UTF-8 BOM,Excel 中文不亂碼)、3D 視圖 2× PNG 截圖
|
||||
- **視角** — 右鍵旋轉、滾輪縮放、中鍵平移、ViewCube
|
||||
- **匯出** — 量測結果 CSV(UTF-8 BOM,Excel 中文不亂碼)、3D 視圖 2× PNG 截圖、📤 **STEP 匯出**:可見零件以目前對齊位置寫成新 STEP 檔(原始檔不動)
|
||||
- **視角** — 右鍵旋轉、滾輪縮放、中鍵平移、ViewCube;一鍵 **等角/前/上/右** 標準視圖與 **正交⇄透視** 切換
|
||||
- **記住設定** — 視窗位置大小、單位、最近檔案自動保存;左右面板可拖曳調寬
|
||||
|
||||
量測原則:邊長、圓半徑、角度取 **B-rep 精確值**;面積為三角網格加總近似(三角化精度依模型尺寸自適應 0.02–0.5 mm)。
|
||||
|
||||
@@ -71,8 +74,8 @@
|
||||
|
||||
下載發佈版直接執行,免安裝。
|
||||
|
||||
- **框架相依版**(檔案較小):需 .NET 8 Desktop Runtime,執行 `STPViewer v0.3.2.exe`。
|
||||
- **Portable 版**(self-contained):內含 runtime,免安裝 / 免系統管理員,執行 `STPViewer v0.3.2.exe`。
|
||||
- **框架相依版**(檔案較小):需 .NET 8 Desktop Runtime,執行 `STPViewer v0.5.0.exe`。
|
||||
- **Portable 版**(self-contained):內含 runtime,免安裝 / 免系統管理員,執行 `STPViewer v0.5.0.exe`。
|
||||
|
||||
或從原始碼建置(見下)。
|
||||
|
||||
@@ -102,11 +105,11 @@ dotnet publish src/STPViewer -c Release -o publish/STPViewer
|
||||
## 📚 使用指南
|
||||
|
||||
1. **匯入** 一個或多個 CAD 檔,每個檔案成為裝配樹的一個 root,視角自動 Zoom 到全景。
|
||||
2. **操作樹** — 顯示/隱藏、換色、Zoom-to 某節點,或移除檔案。
|
||||
3. **量測** — 工具列選模式(點 / 距離 / 邊 / 面 / 圓 / 角度 / 面距),點擊模型;結果顯示於右側面板,可單筆刪除或全部清除。
|
||||
4. **裝配** — 用 對齊(兩點/三點)、旋轉、拖曳、操作器擺位,再用干涉檢查驗證配合。
|
||||
5. **剖面** — 開啟 ✂、選軸向、滑動剖切;量測仍以原始幾何精確計算。
|
||||
6. **匯出** — 量測結果存 CSV,或截 2× PNG。
|
||||
2. **操作樹** — 名稱搜尋、顯示/隱藏(或右鍵隔離顯示)、換色、Zoom-to 某節點,或移除檔案。
|
||||
3. **量測** — 工具列選模式或按快速鍵(P/D/E/F/C/A/M),點擊模型;點孔緣自動吸圓心,兩下就是 pin pitch;Esc 取消。結果顯示於右側面板,可單筆刪除或全部清除。
|
||||
4. **裝配** — 用 對齊(兩點/三點)、旋轉、拖曳、操作器擺位,再用干涉檢查(可見檔全部兩兩檢查)驗證配合。
|
||||
5. **剖面** — 開啟 ✂、選軸向或點 3 點定義任意平面、滑動(或輸入 %)剖切;量測仍以原始幾何精確計算。
|
||||
6. **匯出** — 量測結果存 CSV、截 2× PNG,或把對齊後的場景寫成新 STEP 檔交接給 CAD。
|
||||
|
||||
無 UI 匯入管線與幾何數學驗證:
|
||||
|
||||
@@ -115,6 +118,7 @@ dotnet run --project tools/SmokeTest -- "path\to\model.stp" # 匯入 + 裝配
|
||||
dotnet run --project tools/SmokeTest -- --clip-test # 剖切裁切數學
|
||||
dotnet run --project tools/SmokeTest -- --interference-test # 干涉 相交/分離/貼合
|
||||
dotnet run --project tools/SmokeTest -- --align-test # 三點對齊剛體變換數學
|
||||
dotnet run --project tools/SmokeTest -- --export-test in.stp out.stp # STEP 匯出往返驗證
|
||||
```
|
||||
|
||||
---
|
||||
@@ -142,8 +146,8 @@ STPViewer/
|
||||
│ ├── STPViewer.csproj # net8.0-windows、UseWPF、單一版號來源 <Version>
|
||||
│ ├── MainWindow.xaml / .cs # 版面 + 滑鼠拾取轉發
|
||||
│ ├── Models/ # FaceInfo、MeasureMode、MeasurementResult、UnitSystem
|
||||
│ ├── Services/ # StepImport、Measurement、Interference、Section、RigidAlign
|
||||
│ └── ViewModels/ # MainViewModel、ModelNodeViewModel(裝配樹)
|
||||
│ ├── Services/ # StepImport、Measurement、Interference、Section、RigidAlign、Settings
|
||||
│ └── ViewModels/ # MainViewModel(partial:Drag/Gizmo/Section/Interference/Export)、ModelNodeViewModel
|
||||
└── tools/SmokeTest/ # 無 UI 匯入 + 幾何數學驗證
|
||||
```
|
||||
|
||||
@@ -155,7 +159,8 @@ STPViewer/
|
||||
- 輪廓邊線超過 30,000 線段的檔案預設關閉邊線(WPF `LinesVisual3D` 轉動視角時效能限制),可在樹面板手動開啟。
|
||||
- **IGES 不支援**(CADability 無 IGES reader);STL 無 B-rep,僅支援 點/距離/角度/面距 量測;DXF 為線架構檢視。
|
||||
- 剖切面無封口(cap),剖開處顯示內部背面材質(深灰)。
|
||||
- 面積與面距為三角網格近似值;邊長/圓半徑/角度為 B-rep 精確值。
|
||||
- STEP 匯出為「目前位置的 Solid/Shell 平面清單」,不保留原始裝配階層與 product 名稱;STL 網格、DXF 線架構無 B-rep 不匯出。
|
||||
- 面積、面距、體積/質心為三角網格近似值;邊長/圓半徑/角度為 B-rep 精確值。
|
||||
- 少數 AP242 檔案 CADability 支援不完整,匯入失敗會提示訊息(不閃退)。
|
||||
- 唯讀檢視器,不寫入/修改原始檔案。
|
||||
|
||||
@@ -171,6 +176,15 @@ STPViewer/
|
||||
|
||||
## 📜 版本紀錄
|
||||
|
||||
### v0.5.0
|
||||
|
||||
- **功能擴充:** 圓心吸附(兩下量孔對孔 pitch)、量測快速鍵(P/D/E/F/C/A/M)+ Esc、標準視圖(等角/前/上/右)+ 正交投影、裝配樹搜尋/隔離顯示/反轉、體積與質心、3點任意剖切平面 + 位置數值輸入、干涉檢查支援 3+ 檔(兩兩配對)、對齊後場景匯出 STEP、面板可調寬、視窗/單位/最近檔案自動保存。
|
||||
|
||||
### v0.4.0
|
||||
|
||||
- **效能:** 剖面裁切改背景平行運算(大檔拉滑桿不再凍結 UI);零件變換烘焙(拖曳/操作器放開)平行化;干涉間隙精修以 AABB 快速拒絕加速。
|
||||
- **穩定性:** 全域例外處理(記 log 至 `%LOCALAPPDATA%\STPViewer\error.log` + 訊息框,不閃退);背景運算期間停用會改動幾何的指令;匯入防重入。
|
||||
|
||||
### v0.3.2
|
||||
|
||||
- **效能:** 大組件量測模式下轉動視角不再卡頓。量測模式改為渲染合併網格(每檔 1 個 model),並用命中三角形的頂點 index 反查回是哪個面,不再掛數萬個逐面 model;逐面渲染只保留給剖面模式。
|
||||
|
||||
Reference in New Issue
Block a user