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

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

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完成三通放樣圖

楊柳風 在cad中,執行 放樣 命令依次指定放樣的橫截面後,使用導向 路徑或僅截面這三種cad放樣方式。1 導向 選擇多條直線 圓弧 樣條曲線 多段線作為導向曲線,放樣實體在生成時會將指定的導向曲線納入其邊界,所以導向曲線會直接影響實體外輪廓生成,2 路徑 路徑與導向不同,只能有一條,放樣路徑必須與...

如何用CAD編輯圖形尺寸,CAD如何修改已經畫好圖形的尺寸?謝謝!

很簡單,如果是用快捷鍵的,滑鼠點選時不要鬆開,然後左手按空格鍵,會跳出以視窗,滑鼠選取整個紅色數值,修改你想要的數值,確定即可。輸入命令ed,回車,點選需修改尺寸,輸入你需要的尺寸數值。1 在命令列輸入sc 空格 選擇新建的模型 空格 指定縮放的基點 輸入實際的比例。空格鍵 回車 2 在繪圖區按1 ...

如何用CAD畫正六邊形的陣列,如何用CAD畫一個正六邊形的陣列?

主要是畫出兩個加粗的六邊形,然後以這兩個粗六邊形為物件線性陣列。然後做細實線的輔助六邊形 這兩六邊形個可以在標註後刪掉 然後陣列,選取行 列間距。如何用cad畫一個正六邊形 逗丁 1 左邊工具欄中選擇 正多邊形 工具 2 根據提示,輸入正多邊形變數,即6 3 選擇 內接於圓 或 外切於圓 4,完成。...