提升3D視圖檢視效率:bCNC的OpenGL應用

bCNC OpenGL 支援的用途:提升 3D 視圖檢視效率

這次的修改重點,是將 bCNC 的 Canvas 移植到 OpenGL,讓 3D 視窗能以更直覺的方式呈現。對於需要反覆確認刀路走向、工件外形、深度變化或加工範圍的使用者來說,自由旋轉視角可以減少切換檢視角度的成本,也更方便從不同方向檢查細節。

不過,這項功能的目的在於改善檢視體驗,不是改變 bCNC 的核心加工邏輯。它仍屬於視圖層的強化,因此實際效果會受到硬體、作業系統、圖形驅動與 bCNC 版本狀態影響。

滑鼠操作方式:如何在 3D 視圖中旋轉、平移與選取

啟用 OpenGL 後,3D 視圖的滑鼠操作會更接近一般 3D 檢視工具,主要控制方式如下:

  • 左鍵(Left button)
  • 單擊:單一選取
  • 雙擊:延伸選取(延續原本的行為)
  • 拖曳:區域選取,可依拖曳方向決定包圍或交疊範圍
  • 中鍵(Mid button)
  • 點選線段:變更旋轉中心
  • 拖曳:平移視圖(Pan)
  • 右鍵(Right button)
  • 拖曳:旋轉視圖

這種操作方式的重點,是讓使用者可以快速切換觀察角度,同時保留原本的選取習慣。若你主要是用來檢查 G-code 路徑,通常會比固定視角更容易發現轉角、深度與路徑交疊等問題。

附加功能與視覺表現:捕捉點與探針圖顯示

除了基本的旋轉與平移功能外,這個 OpenGL 版本也加入一些與視覺判讀相關的輔助能力:

  • 顯示預覽捕捉點,方便確認可選位置
  • 當滑鼠停在弧線中間時,可自動捕捉到弧線中心
  • 探針圖以三維鑲嵌曲面(3D tessellated surface)方式呈現,並使用插值顏色

這些設計主要是協助使用者更快理解幾何資料與高度變化。不過,實際顯示效果仍可能因顯示卡與繪圖環境而有差異,因此在正式使用前,建議先確認畫面是否正常更新、互動是否流暢,以及重要資料是否能正確顯示。

程式修改範圍與相容性:目前仍在測試階段

目前這項功能的開發原則是盡量減少對原始程式碼的修改。實作上,主要修改集中在 CNCCanvas.py,另外也有少量其他檔案與 OpenGL 著色器(shader)加入。由於程式碼曾進行較大幅度調整,因此官方說明也明確提到:功能已具備基本完整性,但仍在測試中,可能存在錯誤。

另外,為了提高與樹莓派(Raspberry Pi)等環境的相容性,OpenGL 著色器採用 GLSL 1.0。這樣的選擇有助於擴大可用範圍,但也會帶來較多限制,使程式設計比使用較新版本 GLSL 時更複雜。若你的硬體環境較舊,或圖形驅動支援程度有限,建議先進行實際測試,再決定是否採用。

適用情境與使用前的評估重點

bCNC OpenGL 支援比較適合以下情境:

  • 需要經常檢查 3D 刀路與加工路徑
  • 想要更直覺地旋轉視角、平移畫面與調整觀察中心
  • 使用者希望在視圖層得到更清楚的幾何判讀
  • 需要在較低階或跨平台環境中維持基本相容性

在實際導入前,建議先確認幾個重點:

1. 作業系統與 Python 環境是否符合 bCNC 的需求
2. 顯示卡與驅動是否可正常支援 OpenGL
3. 目前使用的 bCNC 版本是否已包含相關修改
4. 是否能接受測試階段可能出現的例外狀況
5. 團隊是否需要保留原本的操作習慣與工作流程

如果你的工作重點是穩定、保守的加工流程,則不建議在未驗證前直接切換到新版本。較好的方式是先在測試環境確認功能,再逐步納入正式作業。

原始文件與延伸參考

這份內容的原始文件出處可參考 bCNC 專案資訊:https://github.com/koneklaudio/bCNC

GrblHAL

bCNC 本身是一套跨平台的 G-code 發送器,支援 Windows、Linux、Mac,並以 Python 撰寫。它常被用於 CNC 控制、自動調平、G-code 編輯與相關檢查工作。若你正在評估 OpenGL 版本的 3D 視圖,建議同時參考原專案說明、相容性資訊與更新紀錄,以便理解功能差異與風險範圍。

結論

整體來看,bCNC OpenGL 支援的價值在於讓 3D 視圖更容易操作,特別是滑鼠自由旋轉、平移與捕捉點輔助,能提升刀路檢查的便利性。不過,這項功能目前仍屬測試階段,且涉及較多圖形相容性條件,因此導入時應以實際驗證為主,避免直接套用到未確認的工作環境。

Meta 描述: 了解 bCNC OpenGL 支援如何啟用滑鼠自由旋轉 3D 視圖,包含操作方式、適用情境、測試限制與相容性注意事項。

🧭 grblHAL G/M 指令摘要與用途說明

適用範圍:以 Grbl 1.1 指令集合為基礎,並補充 grblHAL 常見擴充(例如:G43.1、G65/巨集、部分循環/車削循環等)。

注意:grblHAL 的 **實際可用 G/M 指令會依建置選項(Web Builder / config)、控制板驅動、外掛(spindle/coolant/tool changer 等)**而不同。若你發現某些碼在你的機器上回 error,多半是「未啟用」或「該外掛未載入」。


🧩 G 指令(G-codes)

🚀 1) 運動與插補

指令名稱/用途重點說明/常見用法
G0快速定位(Rapid)不受進給 F 影響(由機台最大速/設定限制)。
G1直線插補G1 X.. Y.. Z.. F..,F 為進給。
G2 / G3圓弧插補(CW/CCW)依平面(G17/18/19)解讀;IJK 或 R 依設定/模式。
G4停留(Dwell)常見:G4 P1.5(秒)。
G5 / G5.1曲線插補(樣條/樣條近似)視建置是否啟用(部分機型不支援)。
G33螺紋/同步進給(Threading)通常需主軸同步/編碼器支援;依外掛/硬體而定。
G38.2探測(觸發成功才算成功)失敗通常會報錯/中止(依設定)。
G38.3探測(可失敗不報錯)常用於「找邊/找表面」允許沒觸發的情境。
G38.4反向探測(失敗才算成功)用於反向偵測邏輯。
G38.5反向探測(可失敗不報錯)與 G38.4 類似但容錯。
G73 / G75 / G76循環/車削循環(依建置)常見於車床/循環加工擴充;若你是銑床韌體可能未啟用。
G80–G89固定循環(Canned cycles,依建置)例如鑽孔/擴孔/攻牙循環;是否可用取決於 RS274/NGC 功能啟用。

提示:圓弧/探測/固定循環最常見的「不動」原因是:平面/距離模式/單位或 IJK 模式不一致,或探針輸入未設定。

閱讀全文〈🧭 grblHAL G/M 指令摘要與用途說明〉

E2D 商店 開始支援 台灣Pay QR Code 掃碼轉帳

台灣Pay跨行轉帳免手續費
E2D 商店 開始支援 台灣Pay QR Code 掃碼轉帳

台灣Pay跨行轉帳免手續費
活動時間 2026/01/01 – 2026/12/31 詳情請參閱:台灣Pay跨行轉帳免手續費

特色商品

做好3D 列印,接下來印一台CNC 雕刻機來玩吧!

有3D列印真的很方便,要自己 Make 一台自己3D printer 並不困難,又是開源的資訊及廣大的網路社團,最主要的是可以自己自由修改~~如綱路流傳的 Open Source  is Free.開源是可以給你想要的自由…但不是免費,因為我投資了也不少,還好不貴…怕只是會一直燒下去…難怪會有人說自由是可貴的。

Cyclone PCB Factory – RepRapWiki

Cyclone PCB Factory 到底有何媚力讓我想要做一台來玩,因為機構可以用3D printer 列印又是開放式硬體設計,提供OpenSCAD 資料,讓MAKER可以修改尺寸規格,而且利用Arduino UNO 來做控制器,開源電路GRBL 利用Arduino 來操控X,Y,Z 及主軸轉速,符合標準的G代碼,沒有任何測試上的疑慮。

閱讀全文〈做好3D 列印,接下來印一台CNC 雕刻機來玩吧!〉