導航:首頁 > 凈水問答 > ssget過濾出定長度的選擇集

ssget過濾出定長度的選擇集

發布時間:2025-05-04 16:25:28

『壹』 lisp選擇集函數ssget過濾器中如何使用變數

『貳』 ssget怎樣選擇所有的多線lisp語言裡面……

(setq #kw (ssget "X" (list '(0 . "LWPOLYLINE") '(70 . 0))));這個是全選
;"X"表示全選; '(0 . "LWPOLYLINE");表示多段線; '(70 . 0);表示不封閉,'(70 . 1);表示封閉如果是
(setq #kw (ssget "X" (list '(0 . "LWPOLYLINE"))));所有的多段線全部選擇包括封閉的不封閉的。以下是我搜集到的ssget用法給你參考:
;可以模擬帶過濾的entsel
;選擇拾取框內的實體,選擇不到就結束
(defun c:test1()
(setq ss (ssget ":E:S" '((0 . "line"))))
(command "erase" ss "")
)

;?
(defun c:test2()
(setq ss (ssget ":N" '((0 . "insert"))))
(command "erase" ss "")
)

;會累加選擇的實體同一個塊選擇兩次個數就會乘以2(看命令行)
;去掉":D"你試試結果(看命令行)
(defun c:test3()
(setq ss (ssget ":D" '((0 . "insert"))))
(sslength ss)
)

;只選擇一次自動結束選擇
;用處省了回車
(defun c:test4()
(setq ss (ssget ":S" '((0 . "line"))))
(command "erase" ss "")
)

;會提示有幾個在鎖定圖上 並且不選擇在鎖定圖層的實體(看命令行)
;去掉":L"你試試結果(看命令行)
(defun c:test5()
(setq ss (ssget ":L" '((0 . "insert"))))
(sslength ss)
)

;上次的的選擇集 (這個好理解)
(defun c:test6()
(setq ss (ssget "P" '((0 . "insert"))))
(sslength ss)
)

;?
(defun c:test7()
(setq ss (ssget "+." '((0 . "insert"))))
(sslength ss)
)

;可以模擬帶過濾的entsel
;選擇拾取框內的實體,選擇不到就不結束,選擇到不右鍵也不結束注意和":E:S"的區別
(defun c:test8()
(setq ss (ssget ":E" '((0 . "insert"))))
(sslength ss)
)

;自動選擇所有的滿足條件的實體(好理解)凍結的也可選擇到
(defun c:test9()
(setq ss (ssget "X" '((0 . "insert"))))
(sslength ss)
)

;自動選擇不包括凍結的滿足條件的實體(感謝masterlong)
(defun c:test10()
(setq ss (ssget "A" '((0 . "insert"))))
(sslength ss)
)

;只選擇含數字的文本(好理解)
(defun c:test11()
(setq ss (ssget '((1 . "*[0-9]*"))))
)

;只選擇含數字的文本( 同上)(感謝caoyin提供)
(defun c:test11()
(setq ss (ssget '((1 . "*#*"))))
)

;只選擇數字文本
(defun c:test12()
(setq ss (ssget '((0 . "text,mtext") (1 . "~*[~-.0-9]*" ))) )
)

;選擇不含數字的文本
(defun c:test13()
(setq ss (ssget '((-4 . "<NOT")
(1 . "*[0-9]*")
(-4 . "NOT>"))
)))

;選擇不含數字的文本(同上)(caoyin 提供的)
(defun c:test13()
(setq ss(ssget '((1 . "~*#*"))))
)

;只選擇含字母的文本(好理解)
(defun c:test14()
(setq ss (ssget '((1 . "*[a-A-z-Z]*"))))
)

;只選擇字母文本
(defun c:test15()
(setq ss (ssget '((0 . "text,mtext") (1 . "~*[~a-A-z-Z]*" ))))
)

;只選擇不含字母的文本
(defun c:test16()
(setq ss (ssget '((-4 . "<NOT")
(1 . "*[a-A-z-Z]*")
(-4 . "NOT>"))))
)

;只選擇不含字母的文本(同上)
(defun c:test16()
(setq ss (ssget '((1 . "~*[a-A-z-Z]*"))))
)

;選擇半徑大於800小於8000的圓
(defun c:test17()
(setq ss (ssget '((-4 . "<and")
(0 . "circle")
(-4 . ">")(40 . 800)
(-4 . "<")(40 . 8000)
(-4 . "and>"))
))
)

;選擇圖層表("圖層1" "圖層2" "圖層3" "圖層4" ---------------有很多個圖層)內的線(這個要感謝網友eachy,感謝學院派xyp1964進行了優化)
(defun c:test18()
(setq la '("1" "2" "3" "4")
ss (ssget (list '(0 . "line") (cons 8 (apply 'strcat (mapcar '(lambda (x) (strcat x ",")) la)))))
))

;選擇經過某點的實體,
(defun c:test19()
(setq pt (getpoint))
(setq ss (ssget 「c」 pt pt))
)

;選擇0層以外的線
(defun c:test20()
(setq ss (ssget '((-4 . "<AND")
(0 . "line")
(-4 . "<NOT")
(8 . "0")
(-4 . "NOT>")
(-4 . "AND>"))
)))

;選擇0層以外的線(同上)(感謝caoyin提供)
(defun c:test20()
(setq ss (ssget '((0 . "line")(8 . "~0"))))
)

;選擇圖層名不含字母以外的線(根據caoyin提供幾個實例進行了重新組合還可以組合出來很多)
(defun c:test21()
(setq ss (ssget '((0 . "line")(8 . "~*[a-A-z-Z]*"))))
)

;選擇帶擴展數據的實體
(defun c:test22()
(setq ss (ssget '((0."CIRCLE") (-3 ("APPNAME")))))
)

;窗選擇 包含在框內的被選擇 相交的不選擇和"c"比較一下
;屏幕外的選擇不到
(defun c:test23()
(setq pt1 (getpoint))
(setq pt3 (getcorner pt1))
(setq ss(ssget "w" pt1 pt3 '((0 . "insert"))))
;"wp"後面換成點集 (setq ss(ssget "wp" ptl '((0 . "insert"))))
)

;框選擇 包含在框內的及和框相交的被選擇 和"w"比較一下
;屏幕外的選擇不到
(defun c:test24()
(setq pt1 (getpoint))
(setq pt3 (getcorner pt1))
(setq ss(ssget "c" pt1 pt3 '((0 . "insert"))))
;"cp"後面換成點集 (setq ss(ssget "cp" ptl '((0 . "insert"))))
)

;線相交的線刪除(屏幕外的選擇不到郁悶所以要用zoom "ob")
(defun c:test25()
(setq ptl nil)
(while (setq pt (getpoint))
(setq ptl (cons pt ptl))
)
(setq ss (ssget "f" ptl '((0 . "line"))))
(command "erase" ss "")
)
;刪除點(0 0)和點(1000 1000)形成的矩形內的實體(在屏幕外面的也可以),(感謝masterlong)
(defun c:test26()
(setq pt1 '(0 0)) ;窗口左下角點
(setq pt3 '(1000 1000)) ;窗口右上角點
(setq ss (ssget "x" (list
'(-4 . "<and")
'(0 . "insert")
'(-4 . ">,>,*")
(cons 10 pt1)
'(-4 . "<,<,*")
(cons 10 pt3)
'(-4 . "and>")
)))
(command "erase" ss "")
)

『叄』 lisp 選擇集過濾動態塊

;;;獲取動態塊的多個匿名塊名。返回值:nil 或 "`*?*,`*?*..."
(defun GetDynamicName (Block / DXF EN bl name ent lst)
(defun DXF (code lst)
(cdr (assoc code lst))
) ;defun
(while (setq bl (tblnext "BLOCK" (null bl)))
(and
(= 1 (logand 1 (DXF 70 bl))) ;匿名塊
(setq name (DXF 2 bl)
ent (tblobjname "BLOCK" name)
ent (DXF 330 (entget ent))
ent (DXF 331 (entget ent))
)
(setq EN (vla-get-EffectiveName (vlax-ename->vla-object ent)))
(wcmatch EN Block)
(setq name (strcat "`" name))
(not (member name lst))
(setq lst (cons name lst))
) ;and
) ;while
(and
(setq lst (reverse lst)
name (car lst)
lst (cdr lst)
)
(setq lst (mapcar '(lambda (e) (strcat "," e)) lst)
name (strcat name (apply 'strcat lst))
)
) ;and
name
)

閱讀全文

與ssget過濾出定長度的選擇集相關的資料

熱點內容
運城水處理變頻改造 瀏覽:319
電廠污水處理設備技術 瀏覽:482
污水處理廠監控崗位職責 瀏覽:230
熟料污水井怎麼開孔 瀏覽:830
如何去廢水中的氨氮 瀏覽:730
儲水水垢 瀏覽:475
石油蒸餾步驟 瀏覽:228
志俊內空調濾芯怎麼拆裝圖 瀏覽:384
天津pe材質污水提升器 瀏覽:733
花冠怎麼換空氣濾芯 瀏覽:362
建一個酸污水處理設備多少錢 瀏覽:131
污水處理費包含什麼內容 瀏覽:37
飲水機燒水壺滴水怎麼辦 瀏覽:884
天凈前置過濾器怎麼樣 瀏覽:796
能水溶的水性固體樹脂 瀏覽:792
凈化器出來的水怎麼有渣子 瀏覽:735
再生顆粒污水處理設備 瀏覽:159
為什麼換了濾芯水是渾濁的 瀏覽:515
車漆水垢太硬太厚怎麼辦 瀏覽:476
濾芯一天就發黃怎麼回事 瀏覽:33