西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁西西教程其它教程 → 使用Autolisp刪除Autocad指定圖層內(nèi)的實體

使用Autolisp刪除Autocad指定圖層內(nèi)的實體

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2014/2/17 10:58:37字體大小:A-A+

作者:西西點擊:244次評論:0次標簽: lisp

LispLinkV16.02漢化綠色版
  • 類型:編程工具大。949KB語言:中文 評分:5.0
  • 標簽:
立即下載

如何用autolisp獲取cad圖形文件中直線和多義線的圖層名?

用(cdr(assoc 8 (entget (car (entsel)))))就可以得到直線和其他實體的圖層名。

想要的程序是:點取一條直線,得到該直線的層名,然后將該層所有直線的線寬改為某個值。我現(xiàn)在想要的是“點取直線,獲得層名”這一步。

(setq lyname (cdr(assoc 8 (entget (car (entsel)))))) that's it!, What else d

(setq lyname (cdr(assoc 8 (entget (car (entsel)))))) that's it!, What else do you want?    

繪圖過程中經(jīng)常會碰到這種情況:某個圖層已被“清空”,但卻無法將其刪除,究竟是什么回事?其實,圖層中還可能含有不可見的實體。例如,使用mtext命令輸入一連串空格,即產(chǎn)生一個不可見實體。在實際繪圖中,我們當然不會特意去建立這樣的實體,但無意的操作或者ACAD應用程序的運行都有可能產(chǎn)生“副產(chǎn)品”,要刪除這些不可見實體,如果單靠現(xiàn)成的ACAD命令是難以完成的,必須借助程序來進行,下面的程序能夠刪除指定圖層內(nèi)的一切簡單實體,從而能讓用戶進一步使用layer或purge命令來刪除圖層。

需要注意的是,個別圖層即便使用下列程序處理后,仍可能關(guān)聯(lián)其他對象(注意,對象的概念較實體廣得多,包括標注樣式等非實體對象)而不能被刪除,除非指定的圖層不再關(guān)聯(lián)圖塊或者不含有任何用戶定義的標注樣式。這些圖層是:
1.被塊定義參照的圖層,如a層含有一個圖塊,塊內(nèi)某條線屬于b層;
2.名字為 DEFPOINTS 的特殊圖層(為某個標注樣式所用)。

程序清單如下:

(defun c:de(/ et ln lay_name ss li)
(princ "刪除指定圖層內(nèi)的實體\n")
(setq li (entsel"\n請選擇指定圖層內(nèi)的任何一個實體<回車直接輸入層名>:"))
(if li 
    (progn ;選擇一個實體
         (setq et (entget(nth 0 li)))
         (setq lay_name (cdr (assoc 8 et)))
    )
    (progn ;直接輸入層名,理想的辦法是采用列表框選擇,大家可以自己試試。
         (princ"輸入層名:")
         (while (= ln nil) 
                (setq lay_name (getstring))
                (setq ln (cdr (assoc 2 (tblnext "layer" t))))
                (while (and ln (/= ln "%") ) 
                       (if (/= ln lay_name)
                           (setq ln (cdr (assoc 2 (tblnext "layer"))))
                           (setq ln "%") 
                           ;如指定的圖層名已存在,則設(shè)“%”標志
                        )
                )
               (if (/= ln "%") ;錯誤處理
                   (princ"指定的圖層不存在,請重新輸入:")
                )
         ) 

    ) 
)
(setq ss (ssget "X"(list(cons 8 lay_name)))) ;構(gòu)造選擇集
(COMMAND "-layer" "u" lay_name "")           ;圖層解鎖
(COMMAND "ERASE" ss "")                      ;清除所有實體
(princ "\n清除完畢!")
(princ)
)

;程序結(jié)束

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)