發表文章

目前顯示的是有「圖塊」標籤的文章

AutoCAD 常見問題:圖塊無法使用現地編輯

圖片
問題: 圖塊無法使用現地編輯 顯示錯誤 指令: _refedit 在其他物件的參考中找到錯誤: ** 缺少應用程式參考: ACAD,到 AcDbLinetypeTableRecord。 原因: 該圖塊內含有其他應用程式或外掛產生的物件, 產生附加有延伸資料(XData),無法解析導致。 解決方式: 移除延伸資料(XData) 使用下面LISP,在 圖塊編輯內使用指令daa ,但 請注意他會刪除所有延伸資料(XData) (defun DelXdata (ent app / entlst tmplst)     (setq entlst (entget ent app))     (foreach memb (cdr (assoc -3 entlst)) (setq tmplst (cons -3 (list (cons (car memb) nil)))       entlst (subst tmplst (assoc -3 entlst) entlst)       entlst (entmod entlst)       ) )     ) (defun C:daa (/ curass countr)     (setq curass (ssget "X" '((-3 ("*"))))   countr 0   )     (if curass (repeat (sslength curass)     (DelXdata (ssname curass countr) '("*"))     (setq countr (1+ countr))     ) )     (princ)     ) 相關連結 AutoCAD 如何載入LISP

AutoCAD LISP 修改圖塊內物件顏色及圖層

         通常畫機電繪圖的人,收到的建築底圖,通常會把顏色改成8號灰色當底圖色,但圖塊內物件不見得會是依圖層色,這導致改顏色困難。而且圖層多樣時也可以都改成圖層0。          而內建沒有比較快的方式,這時就靠LISP。 1.把圖塊內物件顏色都改成ByLayer(依圖層): (備註:如果圖層被鎖住要記得解鎖) (defun C:ChangeBlockColorByLayer (/ ss e blk doc)   (setq doc (vla-get-activedocument (vlax-get-acad-object)))   (if     (setq ss (ssget ":L" '((0 . "INSERT"))))      (repeat (setq i (sslength ss))        (setq e (vlax-ename->vla-object (ssname ss (setq i (1- i)))))        (setq blk (vla-item (vla-get-blocks doc) (vla-get-Effectivename e)) )        (vlax-for x blk (vla-put-color x 256) )        )      )   (vla-regen doc acAllViewports)   (princ)   ) 2.把圖塊內物件顏色都改成8號色(灰色): (備註:如果圖層被鎖住要記得解鎖) (defun C:ChangeBlockColor8 (/ ss e blk doc)   (setq doc (vla-get-activedocument (vlax-get-acad-object)))   (if    ...

AutoCAD 常用的圖塊統計方法

圖片
     在使用AutoCAD時,經常會使用許多圖塊,而如何統計圖塊數量,請參考下列方式: 1. 選取類似的(SelectSimilar) 1.1 可以使用右鍵 <選取類似的> 或是指令 <SelectSimilar> 1.2 可以在指令 <SelectSimilar> 中[設定(SE)]性質類似依據設定:顏色、圖層、線型、線型比例、線粗、出圖型式、物件型式、名稱。 缺點:不能只對局部圖面使用。 2. 快速選取(qselect) 2.1 使用指令 <qselect > 2.2 物件類型:圖塊參考,名稱:圖塊名 缺點:圖塊名不一定好記,圖塊太多會很難找到要找的圖塊名 3.篩選(Filter) 3.1 使用指令 <Filter > 3.2 點選<加入選取物件>產生選取物件性質,再刪除不要篩選的性質後,按下套用,選取物件 缺點:對動態圖塊使用,圖塊名稱為*U開頭,不同的狀態下*U後面的數字也不同,無法找到所有同個圖塊。 4. 資料萃取(Dataextraction) 缺點:不能只對局部圖面使用。 優點:設定過資料萃取樣板後,可快速下次使用。 5. COUNT 指令 - 計數(AutoCAD 2022 新功能) 官方在AutoCAD 2022 新增功能,可以計算圖塊數量,附帶偵測重疊圖塊顯示。 請參考 說明 。 備註:計數清單包括巢狀在其他圖塊中的圖塊。(巢狀是指圖塊中的圖塊) 可以對屬性圖塊、動態圖塊做分類統計數量。 可自訂區分類別:(可複選,名稱會以選擇項目中間用底線區隔) 一般圖塊:圖層、比例、鏡射狀態。 屬性圖塊:屬性定義名稱。 動態圖塊:動態圖塊的動態參數。 COUNTLIST - 開啟「計數」選項板,以檢視和管理計算的圖塊。 可顯示可能有該圖塊重疊、分解或更名的物件的組合。 6. BCOUNT (Express Tool) 於「選取物件」提示下,使用選取方式選取您要計算數量的圖塊,或直接按 Enter 以全選目前圖面中所有的圖塊。計算結果將顯示在指令行中。 範例輸出: Block.....Count --------------- CHAIR ....10 TABLE ....9 DESK .....4 備註:BCOUNT 不會選取或計算巢狀圖...

AutoCAD 解決圖塊現地編輯無法儲存

圖片
圖塊現地編輯後,儲存時出現視窗顯示無法儲存  常見原因: 1.多重引線(mleader)或引線:有引線關連到非圖塊內物件 解決方式:使用 DIMDISASSOCIATE指令,選取 引線取消關聯 2. 圖塊或檔案有問題 解決方式:使用AUDIT指令或DRAWINGRECOVERY指令,來修復檔案錯誤

AutoCAD LISP 圖塊統計數量

圖片
作者:Lee Mac 說明:圖塊統計數量後,可以輸出為表格物件、TXT檔、CSV檔或直接在命令列輸出 指令:count - 主程式,後來改成 blkcount (為了與CAD新指令區分)             countsettings - 設定,後來改成 blkcountsettings  原網址: Block Counter 中文化載點:解析網址中... 如何載入LISP 圖塊統計設定(Count Settings) 範例: 其他: 嵌套圖塊計數器 -  Nested Block Counter (Lee Mac) 嵌套圖塊為圖塊內的圖塊 Nested Block Counter - Lee Mac 其他: 動態圖塊計數器 - Dynamic Block Counter (Lee Mac) Dynamic Block Counter - Lee Mac 相關連結 AutoCAD 如何載入LISP AutoCAD 常用的圖塊統計方法

AutoCAD LISP 動態圖塊圖塊-動作參數 獲取或設定屬性的值

在這裡介紹 Lee Mac 所寫的函數。 函數連結: 獲取動態圖塊特定動作參數屬性值 設置動態圖塊特定動作參數屬性值 獲取動態圖塊所有動作參數屬性值 設置動態圖塊多個動作參數屬性值 獲取動態圖塊特定動作參數數值列示清單 切換動態圖塊翻轉狀態 獲取可見性參數名稱 獲取動態圖塊可見性狀態 設置動態圖塊可見性狀態 範例: 獲取動態圖塊特定動作參數屬性值 _$ (LM:getdynpropvalue (vlax-ename->vla-object (car(entsel))) "距離1") 853.74 設置動態圖塊特定動作參數屬性值 _$ (LM:setdynpropvalue (vlax-ename->vla-object (car(entsel))) "距離1" 300) 300 獲取動態圖塊所有動作參數屬性值 _$ (LM:getdynprops (vlax-ename->vla-object (car(entsel)))) (("距離1" . 300.0) ("Origin" 0.0 0.0) ("翻轉狀態1" . 0) ("可見性1" . "可見性狀態0")) 設置動態圖塊多個動作參數屬性值 _$ (LM:setdynprops (vlax-ename->vla-object (car(entsel))) '(("距離1" . 456))) nil 獲取動態圖塊特定動作參數數值列示清單 _$ (LM:getdynpropallowedvalues (vlax-ename->vla-object (car(entsel))) "距離1") (100.0 200.0 300.0 853.74) 切換動態圖塊翻轉狀態 _$ (LM:toggleflipstate (vlax-ename->vla-object (car(entsel)))) 1 獲取可見性參數名稱 _$ (LM:getvisibilityparametername (vlax-ena...