2015年5月8日 星期五

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/



標籤: , , ,

14 個意見:

Blogger Unknown 提到...

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

2016年3月9日 星期三 下午5:59:00 [PST]

 
Blogger Unknown 提到...

作者已經移除這則留言。

2016年3月9日 星期三 下午6:03:00 [PST]

 
Blogger Wildkid 提到...

放任何地方都可以使用,你可以 Google 一下載入Autolisp 的方法

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

2016年3月13日 星期日 上午8:42:00 [PDT]

 
Blogger Unknown 提到...

非常謝謝您

2016年3月13日 星期日 上午10:14:00 [PDT]

 
Blogger KAI KAI 提到...

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

2016年9月6日 星期二 晚上7:15:00 [PDT]

 
Blogger KAI KAI 提到...

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

2016年9月6日 星期二 晚上7:42:00 [PDT]

 
Blogger rei 提到...

非常感謝你的分享!對我幫助很大!

2017年1月18日 星期三 下午5:57:00 [PST]

 
Blogger Wildkid 提到...

https://tw.answers.yahoo.com/question/index?qid=20081003000015KK02392

2017年4月6日 星期四 清晨6:09:00 [PDT]

 
Blogger Wildkid 提到...

別客氣

2017年4月6日 星期四 清晨6:09:00 [PDT]

 
Blogger Unknown 提到...

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

2017年7月25日 星期二 晚上9:15:00 [PDT]

 
Blogger Wildkid 提到...

http://wildkidblog.blogspot.tw/2017/07/autolisp.html

2017年7月26日 星期三 凌晨2:27:00 [PDT]

 
Blogger Wildkid 提到...

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

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

2017年7月26日 星期三 凌晨2:37:00 [PDT]

 
Blogger Unknown 提到...

但是draftsight用不習慣@@

2017年7月31日 星期一 凌晨12:02:00 [PDT]

 
Blogger 1 提到...

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

2023年8月30日 星期三 凌晨3:43:00 [PDT]

 

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁