AutoCad 在切換 layout 非常緩慢 的問題解決辦法

當你的在繪製大型建物時 AutoCAD 2010 或較新的版本,當你圖面擁有大量圖塊,外部參考及大量配置時,在切換配置時(Layout) 會非常緩慢,找遍國外網站都看不到有效的解決方式。

其中最有用的是 LAYOUTREGENCTL 系統變數設定成 2 。


他的作用是每當你切換配置時,他會在記憶體中快取該配置,這必須在你下次切換回來時才看得到差異,第一次切換他還是會重生 regen 計算精確值,我有些圖檔竟然需要30秒,根本不合工作效益。我不想在工作時不斷等待,有時我只是要看一下其他圖面,取得一些資訊。

有沒辦法一次快取全部配置以及模型空間呢呢?   

上網找了相關的 Autolisp 的資料,決定轉寫這個程式....



Autolisp

 

;;; ************************ cache all layout **********************
;;; ************此程式需要在搜尋路徑中找得到 msgbox.dcl           ***
;;; *****************************************************************


(defun c:CacheAll (/ x)
  (defun lspYesNo (message1 message2 message3 main)

    (setq dcl_id (load_dialog "msgbox.dcl"))
    (if (not (new_dialog "lspYesNo" dcl_id))
      (exit)
    )

    (set_tile "message1" message1)
    (set_tile "message2" message2)
    (set_tile "message3" message3)
    (set_tile "main" main)

    (action_tile "Yes" "(done_dialog 1)")
    (action_tile "No" "(done_dialog 0)")
    (setq resault (start_dialog))

    (unload_dialog dcl_id)

    (if (= resault 1)
      (setq Answer "Yes")
      (setq Answer "No")
    )
    (princ)
    Answer
  )


  (setvar "LAYOUTREGENCTL" 2)
  (if
    (=
      "Yes"
      (lspYesNo
 "根據您的電腦CPU速度以及DWG圖形的複雜度,可能需要5到10分鐘的時間 "
 "  "
 "According to your CPU speed and the complexity of drawing ,it may take few second to 10 minutes"
 "!!! 請注意  Attention Please!!!!"
      )
    )
     (foreach x (layoutlist)
       (progn
  (setvar 'ctab x)
  (Command "zoom" "e")
  (print x)
       )
     )
    (progn
     (print "使用者取消執行 User canceled ")
     (princ)
    )
  )

)



msgbox.dcl


 

lspYesNo : dialog {

 key = "main";

 : column {

 : text {
 key = "message1";
        }

 : text {
 key = "message2";
        }

 : text {
 key = "message3";
        }
 }
    : row {

 : spacer { width = 3; }

 : button {
 label = "Yes";
 key = "yes";
 width = 30;
 fixed_width = true;
 mnemonic = "Y";
 is_default = true;
 }

 : button {
 label = "No";
 key = "no";
 width = 30;
 fixed_width = true;
 mnemonic = "N";
 is_cancel = true;
   }

 : spacer { width = 3;}

 }

     }



AutoCAD 重生緩慢的問題越來越嚴重,如果你只是要部分改圖,你可以試試 Draftsight ,同樣的圖檔AutoCAD 要30 秒 Draftsight 切換只要1-2秒 。

重生 跟繪圖卡沒關係,再好的卡也快不了多少,反而跟 CPU 記憶體與硬碟有關。



這個程式的意義就是,當你要處理一個非常龐大複雜的圖檔,這個程式一次幫您快取所有配置,可能是幾秒鐘,可能是5-10分鐘 ,但當你全部快取完切換只需1-2秒。

這段時間您可以去喝咖啡.....  或做其他事。


打包下載這個程式


2017.0726 更新

我有時會用 Draftsight 處理具有大量 Layout 的圖面,因為切換超快。
有興趣的朋友可以試試有免費版。

https://www.3ds.com/products-services/draftsight-cad-software/free-download/



留言

  1. 請問要將檔案放在什麼位置才可使用?

    回覆刪除
  2. 放任何地方都可以使用,你可以 Google 一下載入Autolisp 的方法

    https://www.youtube.com/watch?v=B1unamK4qH8

    回覆刪除
    回覆
    1. 您好,我載入Autolisp 之後還需要做什麼後續才會自動讀取所有配置呢?
      因為還是跑很慢...
      msgbox.dcl 另外這個要怎麼載入呢?

      刪除
    2. http://wildkidblog.blogspot.tw/2017/07/autolisp.html

      刪除
  3. 感謝你救了我~室內圖疊了好幾層圖塊外參~印個東西真的會死人

    回覆刪除
  4. 請問CAD列印時 每次會出現 圖面中存在未調和的新圖層 有辦法關掉嘛?

    回覆刪除
    回覆
    1. https://tw.answers.yahoo.com/question/index?qid=20081003000015KK02392

      刪除
  5. 非常感謝你的分享!對我幫助很大!

    回覆刪除
  6. 我有時會用 Draftsight 處理具有大量 Layout 的圖面,因為切換超快。
    有興趣的朋友可以試試有免費版。

    https://www.3ds.com/products-services/draftsight-cad-software/free-download/

    回覆刪除
  7. 你好,我有成功CacheAll處理大量 Layout 的圖面,但是儲存圖面後,又要再重新使用一次CacheAll,請問有解決的方式嗎? 謝謝你~

    回覆刪除

張貼留言

熱門文章