前言

你有沒有過這種經驗——打開一份設計圖想快速看一下,結果圖紙空間裡一堆淡黃色、淺灰的線條,在白底上幾乎看不到?盯著螢幕十分鐘,眼睛就開始抗議。
這種狀況在審圖、對圖階段特別常見。我自己常常只是想快速確認某個位置的細節,卻因為對比度不足而看錯線、甚至漏看一條重要的管線。
後來我受不了了,就寫了這支小工具:ToggleLayoutColor。它的功能很單純——按一下變黑白、再按一下變彩色,讓你在閱讀圖面時不用再被顏色干擾。

這個工具在做什麼

這支腳本的核心不是「把線條改成黑色」,而是切換 layout 的出圖樣式表(Plot Style Table)
AutoCAD 的 plot style 是一個獨立於圖層顏色的機制——它決定了「最終出圖時(或顯示時)顏色如何呈現」。我們利用這個特性:
  • 黑白模式:套用 monochrome.ctb + 開啟 Show Plot Styles
  • 彩色模式:套用 acad.ctb(預設)+ 關閉 Show Plot Styles
這樣做最大的好處是:圖面資料完全不會被修改。線條的幾何、圖層、顏色、線型等原始資訊都還在原位,你看到的黑白只是顯示層面的切換。

安裝方式

  1. ToggleLayoutColor.lsp 儲存到任意路徑
  1. 開啟 AutoCAD,在命令列輸入 APPLOAD
  1. 在「載入/卸載應用程式」對話框中選擇該 .lsp 檔案,按下「載入」
  1. 載入成功後,命令列不會顯示訊息(這是正常的,腳本沒有輸出)
提示:若希望每次開啟 AutoCAD 都自動載入,可以把 .lsp 加入到 acaddoc.lsp 或 startup suite 中。

使用方式

在 AutoCAD 命令列輸入:
按下 Enter 後,腳本會根據當前的 plot style 狀態自動判斷:
  • 目前是 monochrome.ctb → 切換回 acad.ctb + 關閉顯示,還原彩色
  • 其他任何狀態(空白、acad.ctb、自訂 ctb)→ 強制切到 monochrome.ctb + 開啟顯示,強制黑白
切換完成後,腳本會自動執行 REGENALL 重繪畫面。

程式碼解析

完整程式碼如下:
重點在於三個動作:
  1. 讀取當前 stylesheetvla-get-stylesheet
  1. 切換 stylesheet 與 showplotstyles 狀態vla-put-stylesheet + vla-put-showplotstyles
  1. 觸發 regenall 重繪vl-cmdf "_.REGENALL"
toggle 邏輯的設計很直覺:只有當目前已經是 monochrome.ctb 時,才切換回 acad.ctb。其他任何情況——包含空白、自訂 ctb——都一律強制切到黑白。這讓指令變得「按一次保證黑白、按第二次保證彩色」,不用擔心圖面原本狀態是什麼。

注意事項

使用這支腳本前,請先了解以下幾點:
  • 圖面幾何資料不會被修改:腳本只動到 plot style 與顯示設定,線條、圖層、屬性等資料完全不會被改變。
  • 會修改 plot style 設定:由於 plot style 本身會參與列印輸出,如果切換後將檔案存檔,這個 plot style 設定就會被寫入 .dwg 檔案中,進而影響這份檔案後續的列印結果。
  • 建議使用情境:這支工具比較適合單純閱讀、閱讀完就關閉不存檔的使用情境。如果要更保險,可以先用唯讀模式開啟圖檔再執行切換。
  • AutoCAD LT 限制:AutoCAD LT 不支援 LSP 載入,這支腳本僅適用於完整版 AutoCAD。

結語

這支小工具實際用起來,最大的感受是——眼睛的負擔明顯少了很多。
以前在查閱設計圖說總是要在白色的畫面上找到那幾條不顯眼的黃色或青色線條,有時候看一下午眼睛總是痠到不行;自從有了這個快速切換黑白的功能後,只要圖面太雜、看不清楚,就一鍵轉黑白繼續看,看完再一鍵回彩色對照原始圖層資訊,降低眼睛的負擔外也少了一些看漏的風險。
ChatGPT Go 訂閱紀錄:付費後的 Codex 額度竟然只有免費的 10%如何中心化管理多個 sd-webui 實例
Loading...