cad如何用lisp或者巨集批量實現圖層顏色隨層

時間 2021-06-11 15:22:03

1樓:朱正偉

;一鍵,所有圖元顏色隨層顏色

(defun c:tes ( / block e obj ss)

(if (null vlax-dump-object) (vl-load-com) )

(if (setq ss (ssget "x"))

(progn

(vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))

;; 塊定義內實體

(vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))

(vlax-for obj block

(vla-put-color obj 256)))

(while (setq e (ssname ss 0))

(setq ss (ssdel e ss) obj (vlax-ename->vla-object e))

(vla-put-color obj 256)))

)(princ))

cad裡怎麼用lisp調出圖層管理器中的圖層過濾器,並且批量更改過濾出來的圖層顏色、凍結狀態?

2樓:匿名使用者

acaddoc.layers.count----得到圖中所有的圖層 的總層數

遍歷所有的層

某一層 lll=acaddoc.layers.item i------也就是得到第i層

用--lll.name----得到某一層的層名

通過比較 如果該層正是 你想要改顏色的那個 層,那就用 lll.turecolor ---來設定層的顏色

------------------對了,前提是圖中所有圖元的顏色都是"bylayer"--也就是「隨層」

3樓:人生丶也多礁

賤人工具箱不行嗎?圖層功能很強大了啊

cad 如何用lisp實現如圖層一到二十,把全部圖層變成8號色?然後其中的某個圖層為紅色

4樓:朱正偉

(defun c:tes ( / n tr)(setq n 0)

(while (< (setq n (1+ n)) 21)(setq tr (rtos n 2 0))(if (null (tblsearch "layer" tr))(entmake (list '(0 . "layer") '(100 . "acdbsymboltablerecord") '(100 .

"acdblayertablerecord") (cons 62 8) '(70 . 0) (cons 2 tr)))

);圖層**;62顏色,負值為關閉圖層;;290不列印0;列印1;;;370線寬0;預設線寬-3;;;70圖層可見0;凍結1+鎖定4

)(princ)

);複製到記事本,以【.lsp】為字尾命名,載入到cad,命令為【tes】(可以自己修改)

5樓:匿名使用者

程式設計思路如下:

1、介面上放兩個按鈕,

2、其中一個按鈕用來定義哪些層需要變成紅色的,裡邊讓使用者輸入字串,比如:aaa,bbb,,也就是定義為 aaa層與bbb層 將變成紅色,其它所有層變為8號色

3、另一個按鈕用來執行任務

遍歷所有圖層,將圖層名稱 逐一 與定義的字串比較,如果相同 則設為紅色,否則設為8號色---------------------------圖中 層的總個數 layers.count

------------------------------某一層 layerx= layers.item i

------------------------某一層的層名 :layerx.name

------------------改某一層 顏色用 layerx.truecolor tcolor

-------truecolor設定起來有點難度哦,你多想想

cad中,如何使用lisp進行qselect操作。有幾個引數,圖層,顏色??請大俠不 5

6樓:

如果文字的顏色是隨層,你就直接設定圖層顏色好了,如果不是隨層的話,那就需要想辦法將這些文字選出來,然後改顏色,你可以試試快速選擇qselect

7樓:秋水

感覺應該差不多是這樣,我也除錯不出來,如果用visual lisp應該可以

(command "qselect" "layer" "beam")

cad中用lisp程式實現批量偏移複製,並要求偏移好的線變色?

8樓:匿名使用者

能說明輸入什麼樣的引數

輸出什麼樣的圖形?

變色希望是什麼效果的?

(setq cs (getvar "osmode"))

(setvar "osmode" 0 )

(setq n1 (getint "\n個數:"))

(setq d1 (getint "\n間距:"))

(setq ent1 (car (entsel "\n選取圖元:")))

(setq p1 (getpoint "\n指定要偏移的那一側上的點:"))

(setq n 1)

(repeat n1

(command "offset" d1 ent1 p1 "e" )

(setq ent1 (entget (entlast)))

(setq ent1 (subst (cons 62 n) (assoc 62 ent1) ent1 ))

(entmod ent1)

(setq n (1+ n))

(setq ent1 (entlast))

)上面是基本意思,前提是原圖形的顏色不是隨層的,點選那一側上的點時儘量遠,因為這個點沒有隨著增加的線自動變化。

9樓:匿名使用者

不必非要用lisp程式,直接offset好了。

10樓:匿名使用者

看不懂,建議選相關參考書學習。

cad二次開發proe工程圖轉cad用一個鍵將裡面的東西分到各圖層,線型,顏色需隨層,請教高手該lisp程式格式. 20

11樓:匿名使用者

是不是想把proe轉到cad的工程圖,按照不同的線型、顏色,

(依據對照表,把不同的顏色線形的物件放置到不同的圖層中去)

類似「自動分類」?

autocad, 用lisp怎麼把block裡面的圖層轉換成0圖層,並且block裡面的圖層顏色是set by layer? 5

12樓:小白天然呆呀

見過類似的外掛。我只會用不會寫。。

如果你只是為了用這功能,可以搜**外掛 。

如果你是要知道 如何寫**。你或者聯絡那外掛設計者。

cad裡用lisp寫命令建圖層畫線

13樓:朱正偉

(if (null (tblsearch "layer" "圖層名稱"))

(entmake (list'(0 . "layer")'(100 . "acdbsymboltablerecord")'(100 .

 "acdblayertablerecord") '(6 . "center") '(62 . 1) '(370 .

 0) '(70 . 0) '(290 . 1) '(2 .

 "圖層名稱")))

;6組碼【線型】,62組碼【顏色】,370組碼【線寬】,70組碼【可見】,290組碼【列印】,2組碼【圖層名稱】

);autolisp建立圖層

如何用cad算房間面積,如何用CAD算房間面積?

首先把你要計算的房間,外框用多義線 pl 畫成一個整體,輸入查詢面積輸令 aa 回車,輸入o選取已畫好的外框多義線,此時在命令欄內會自動彈出面積 周長,這就是你想要的面積了。 在cad中做個面積標註屬性塊,再將屬性與圖形關聯,就可以幫你自動計算面積 自動標註面積數值,當圖形形狀改變時面積值也將自動改...

如何用CAD繪製動物的圖案,如何用CAD繪製一個動物的圖案

1 首先將cad這款軟體開啟,然後在該介面內找到圓弧選項,2 選擇圓弧選項在繪圖區裡繪製出小豬佩奇的頭部圖形,3 再在繪圖區裡找到圓形命令選項,4 選擇圓形命令我們繪製出小豬的眼睛和鼻孔5 在選擇圓弧選項我們繪製出小豬的佩奇的兩隻耳朵,和嘴巴,6 再次使用圓弧命令繪製出小豬佩奇的身體,然後選擇直線將...

如何用cad畫施工總平面圖,如何用CAD畫施工總平面圖

和畫別的圖沒區別的,你先把總平圖的要點弄明白吧 用cad畫總平面圖?怎麼畫? 戲蕾孟雲 把你的區域性點和碎步點座標輸入進去,之後運用直線命令連線就行啦, 呼丹樊初夏 掌握cad的基本命令,什麼平面圖都可以畫。如果你指的是 建築平面圖 的話,可以裝一款 建築軟體 例如浩辰建築 天正建築。如何用cad畫...