發表文章

目前顯示的是 1月, 2022的文章

AutoCAD LISP 將物件設定RGB色碼的顏色(True Color)

         想要設定超出原有的256色時就需要設定RGB色碼。 方法1:修改群組碼420 ;;;將RGB碼轉成群組碼420數值 ;;;作者:許昱凱 ;;;時間:2022/012/19 (defun k:RGB2ass420 ( rgbnum / )   (+ (* (car rgbnum) 256 256)      (* (cadr rgbnum) 256)      (caddr rgbnum))     );_end (defun c:tt (  / obj rgb ass420  )   (setq obj (entget(car(entsel))))   (setq rgb '(50 200 50) ass420 (k:RGB2ass420 rgb))   (if (assoc 420 obj)     (setq obj    (subst (cons 420 ass420)   (assoc 420 obj)   obj))     (setq obj    (append      obj      (list (cons 420 ass420))))       ) ;_if   (entmod obj)   (princ)       );_end 方法2:使用 vla 函數 ;;;設定物件RGB碼 ;;;作者:許昱凱 ;;;時間:2022/012/19 (defun K:ChangeTrueColor ( vla-obj color  / tru )   (if (listp color)     (progn       (setq tru (vla-get-truecolor vla-obj))       (apply 'vla-setrgb (cons tru color)) ;輸入自訂的RGB色碼 True Color       (vla-put-truecolor vla-obj tru)       );_progn     (vla-put-color lay color)     );_if   );_end (defun c:tt2 (  / obj tru )   (setq obj (vlax-ename->vla-object (car(entsel))

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     (setq ss (ssget ":L" '((0 . "INSERT"))))      (repeat (setq i (sslength ss))        (setq e (vlax-ename->vla-object (ssname ss (setq i (1- i)))))        (setq  

AutoCAD 不選取到鎖定圖層中物件的方法

目前沒有相關 內建指令 或 系統變數 可以使 不選取到鎖定圖層中的物件 。 1.在LISP上可以使用 此方法會選取到 鎖定圖層中的物件 ,但會在選取後把 鎖定圖層中的物件 從選擇集中剃除 (ssget ":L") 達成類似效果(通常配合在使用指令中使用) 要達到選取結束後還有選取效果則是 (sssetfirst nil (ssget ":L")) 缺點是每次都要使用一次 不過可以做成按鈕(在工具列或工具選項板上)來快速使用 2.外掛插件 使用 Daniel.Balogh 所製作的插件  IgnoreLockedLayerObjects (只能在Windows系統使用) 將壓縮檔內的  IgnoreLockedLayerObjects.bundle  資料夾複製到下面路徑上 設備上的所有使用者: %Programdata%\Autodesk\Applicationplugins 僅當前使用者: %Appdata%\autodesk\Applicationplugins (如果不存在,請在建立上面路徑) 使用方式: 輸入命令: LOCKSELECTION - 鎖定不選取到鎖定圖層中的物件 UNLOCKSELECTION - 恢復選取到鎖定圖層中的物件 下載: AutoCAD 2016/2017 IgnoreLockedLayerObjects.zip AutoCAD 2018/2019 IgnoreLockedLayerObjects.bundle_2018+.zip AutoCAD 2018-2020(修正錯誤) IgnoreLockedLayerObjects.bundle.zip 來源: 原網站連結 相關連結 AutoCAD 如何載入LISP

AutoCAD 解決畫2D圖物件有Z值

         在畫平面圖時,發現有時線段無法圓角或倒角,或是指令測量線段長度出現奇怪長度,這可能是物件Z值不為0的情形導致。          這時請點選物件看性質(快捷鍵Ctrl+1)的點座標Z值是否為0,如果Z值不為0,就需要使用下列方法修正: 1.指令Change修改 缺點:無法修改不同高程物件,無法修改圖塊內的Z軸 指命: change --> 選取物件: --> P --> E 最後輸入 0 2.指令Move修改 缺點:無法修改圖塊內的Z軸 指命: 步驟1:MOVE,Enter。 步驟2:ALL,Enter。 步驟3:0,0,1e99,Enter,Enter。 步驟4:MOVE,Enter。 步驟5:P,Enter。 步驟6:0,0,-1e99,Enter,Enter。 指令巨集: ^C^C_SELECT;\_MOVE;_p;;;0,0,1e99;_MOVE;_p;;;0,0,-1e99; LISP版(建立記事本,改副檔名成LSP, 如何載入LISP ): ;;Z值歸零 ;;;分享於 eakyle.blogspot.com (defun C:z0 ()   (command "_.UCS" "") ;_恢復為預設坐標系   (command "_.move" "_all" "" "" '(0 0 1e99) "_.move" "_p" "" "" '(0 0 -1e99) ) ;_使Z值為0   (princ "\nZ值已歸零.")   (princ)   );_end 3.指令FLATTEN(Express 工具)修改          指令FLATTEN是將 3D 幾何圖形轉換為投影的 2D 表現法。使用它將所選取物件的厚度和高程強制設定為 0。          此指令可以將圖塊內物件也改變,但注意: 多個相同圖塊將變成個別獨立圖塊。(也就是每個同一種圖塊會重新命名成不同圖塊,請慎用。) 4.LISP (建立記事本,改副檔名成LSP, 如何載入LISP ) 可修改圖塊內物件 (defun c:fl

AutoCAD 不要將CAD文字列印/匯出PDF時作為PDF註解的方法

         很多人有些困擾列印/匯出PDF時(使用繪圖機/印表機是DWG TO PDF),就是CAD文字都會轉成作為PDF註解,導致PDF滿滿的註解。有些人會把繪圖機/印表機改成Adobe PDF的方式。          其實AutoCAD內有系統變數可以控制,系統變數 PDFSHX (2016以前是 EPDFSHX),只要指令行輸入  PDFSHX  ,改成 0 ,就可以關閉此功能。

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 2020 新功能) 官方在AutoCAD 2020 新增功能,可以計算圖塊數量,附帶偵測重疊圖塊顯示。 請參考 說明 。 備註:計數清單包括巢狀在其他圖塊中的圖塊。(巢狀是指圖塊中的圖塊) 6. BCOUNT (Express Tool) 於「選取物件」提示下,使用選取方式選取您要計算數量的圖塊,或直接按 Enter 以全選目前圖面中所有的圖塊。計算結果將顯示在指令行中。 範例輸出: Block.....Count --------------- CHAIR ....10 TABLE ....9 DESK .....4 備註:BCOUNT 不會選取或計算巢狀圖塊或以巢狀結構置於關聯式陣列物件中的圖塊。(巢狀是指圖塊中的圖塊) 7. 使用LISP外掛 7.1  Lee Mac - count 請參考這篇

AutoCAD 填充線(Hatch)自訂樣式製作教學

圖片
1. 填充線(剖面線)(Hatch)樣式檔案(PAT檔)      1.1 AutoCAD線型檔檔案公制為ACADISO.pat,英制為ACAD.pat或定義與剖面線型同名的 “*.pat” 檔      1.2 自行新增填充線樣式檔案可以使用記事本(.txt檔)輸入內容後,再更改副檔名成PAT檔即可。檔案放置位置可以放入CAD支援路徑即可在填充線樣式中找到。      1.3 注意:自行新增的PAT檔只能為一個樣式一個檔案。 2. 如何自訂填充線樣式       填充線簡單說明就是由多個可有線型的直線所組成的圖案樣式。      2.1 格式說明: *pattern-name, description         angle,x-origin,y-origin,delta-x,delta-y,dash1,dash2…                 名稱 說明 pattern-name 填充線樣式名稱 description 填充線樣式描述 angle 該線段角度 x-origin,y-origin 該線段起始點 X 與 Y 座標值 ( 原點為填充線原點 ) delta-x,delta-y 該線段 重複 複製的 X 與 Y 偏移量 ( 以該線段為相對角度 0 度來看 ) dash1,dash2 … 該線段線型描述 , 如果為直線可省略 (可參閱 自訂線型教學 ) 第一行固定是*pattern-name, description 此行帶有以星號開始且不多於 31 個字元的填充線樣式名稱和一個填充線樣式描述(可有可無)。 第二行之後 如果是複雜的 圖形,由多條線組成,則每多一條直線多 一行線段描述, 每一行都是一條(可有線型 的 )直線。線型基本上是由實線、虛線(空白)和點所構成。 (可參閱 自訂線型教學 ) 每一行格式都是 angle,x-origin,y-origin,delta-x,delta-y,dash1