相交路口lisp程式 lisp函式詳解

2021-10-13 15:00:29 字數 4406 閱讀 1541

auotlisp及vlisp函式全集

212.  ssget

一. 功能

提示使用者選擇物件(圖元),並返回乙個選擇集。

二. 格式

(ssget[mode] [pt1 [pt2]]

[pt_list] [filter_list])

三. 說明

(一).函式呼叫中各變元的說明

mode變元是指定物件(圖元)選擇方法的乙個字串。有效的選擇方法是:'w'、 'wp'、 'c'、 'cp'、

'l'、 'p'、 'i'以及'f',它們分別對應於window、wpolygon、crossing、cpolygon、last、previous、implied、fence選擇方法。其它的可選的mode值是'x',它用於選擇整個資料庫。pt1和pt2指定與選擇有關的點。呼叫ssget時提供了乙個點而不提供mode變元,等價於拾取單個點來做物件選擇。ssget函式忽略objectsnap(物件捕捉)的現行設定方式,除非您在呼叫本函式時專門指定了它。filter_list變元是指定物件特徵的乙個關聯表。與filter_list匹配的那些物件被加入到選擇集中。如果呼叫ssget函式時,省略所有變元,則ssget函式給出'selectobject'提示,允許使用者互動地構造選擇集。

選擇集中可以包含圖紙空間和模型空間兩個空間中的物件,但該選擇集由某一種操作所使用時,在現行空間中無效的那些物件會被過濾掉。由ssget函式返回的選擇集中僅包含主圖元(不包含屬性和多義線的頂點圖元)。

下面給出一些使用例項。

(1)(ssget)

讓使用者用普通的物件選擇方法選擇物件,構成選擇集。

(2)(ssget 'p')

生成乙個選擇集,該選擇集由最近所選擇的那些物件所組成。

(3)(ssget 'l')

生成乙個選擇集,該選擇集由最後被增加到圖形資料庫中的那個可見物件組成。

(4)(ssget 'i')

生成乙個選擇集,該選擇集由pickfirst生效時所選擇的那些物件組成。

(5)(ssget '(2,2))

生成乙個選擇集,該選擇由通過點(2,2)的那些物件組成。

(6)(ssget 'w' (0

0) '(5 5))

生成乙個選擇集,該選擇集包含了由(0,0)到(5,5)定義的視窗中的所有物件。

(7)(ssget 'c' '(0

0)'(1 1)

生成乙個選擇集,該選擇集中既包含了由(0,0)到(1,1)定義的視窗中的所有物件,也包含了與這個視窗相交的那些物件。

(8)(ssget 'x')

生成乙個選擇集,該選擇集中包含了現行圖形資料庫中的所有物件。

(9)(ssget 'x' filter_list)

掃瞄圖形資料庫,將與過濾表filter_list匹配的那些物件組成乙個選擇集並返回。

(10)(ssgetfilter_list)

讓使用者用一般的物件選擇方式選擇物件,將使用者所選擇的所用物件與過濾器表filter_list進行比較,只有與過濾器表相匹配的那些物件才放入到選擇集中,最後返回所生成的這個選擇集。

(11)(ssget 'p' filter_list)

生成乙個選擇集,入選該選擇集的條件是,它既是最近所選擇的那些物件,且又滿足過濾器的要求。

(12)(ssget 'wp' pt_list)

生成乙個選擇集,該選擇集中既包含了由點表pt_list定義的多邊形中的所有物件。

(13)(ssget 'cp' pt_list)

生成乙個選擇集,該選擇集中既包含了由點表pt_list定義的多邊形中的所有物件,也包含了與該多邊形相交的那些物件。

(14)(ssget 'f' pt_list)

生成乙個選擇集,該選擇集中包含了與點表pt_list定義的多邊形籬笆相交的全部物件。

(15)(ssget 'wp' pt_listfilter_list)

生成乙個選擇集,該選擇集中的所有物件既必須處於由點表pt_list定義的多邊形內,也必須滿足過濾器表filter_list中的條件。

只有當一帶變元呼叫ssget函式時,被選取的物件才會高亮顯示。選擇集會消耗autocad臨時檔案儲存區,autolisp不允許同時開啟的選擇集多於128個。如果選擇集的數目達到了這個極限,autocad會拒絕

再生成選擇集,再呼叫更多次ssget函式也只能是返回nil。為了關閉不再需要的選擇集。可以將它設定為nil。

對於任何以last響應'selectobject:'提示有效的地方,都可以向autocad傳遞乙個選擇集變數。它將選擇所傳遞的選擇集中的所有物件。

(二).關於選擇集中過濾器的進一步討論

選擇集過濾器表可以由任何方式所使用。您可以獲得乙個包含在給定圖層上(或乙個給定顏色、給定型別的全部物件的選擇集。

下面的例項中,返回乙個選擇集,該選擇集中僅包含在pickfirst方式有效時所選擇的那些物件中,顏色為蘭色的直線段。

(ssget'i' '((0. 'line')(62.5)))

使用過濾器表,您也能選擇屬於乙個特定申請的包含在擴充套件資料中的全部物件。要達到這一目的,需要按如下方式

-3組碼:

(1)過濾器表中的關係測試

除非特別指定,否則對過濾器表filter_list中的每一項都隱含了乙個「相等」測試。對於數值組(整數、實數、點以及向量),

通過包含了乙個專用的-4組來指定乙個關係運算子,您可以指定其它的關係。乙個-4組的值是乙個字串,它用於指出要作用於過濾器表中隨後的測試運算子。

(ssget'x' '(((0.'circle')(-4.'>=')(40.2.0))))

上述表示式,將選擇半徑大於或等於2.0的所有圓來構成乙個選擇集。

下表中列出了過濾器表中所有可以使用的運算子。

選擇集過濾器表中所用的關係運算子

'*'    任何情況(總是為真)

'='    等於

'!='   不等於

'/='   不等於

'<>'   不等於

'<='   小於或等於

'>'    大於

'>='   大於或等於

'&'    按位於與(and)(僅適用於組值為整型的組)

'&='   按位遮蔽相等(僅適用於組值為整型數的組)

關係運算子的使用取決於使用者要測試的組的型別:

. 除去按位運算子('&'和'&=')之外,所有關係運算子對組為整型數和實型數的組都是有效的。

. 按位運算子'&'和'&=',僅應用於組值為整型數的組才是有效的。如果((inter-group & filter)/=0)那麼,按位'與'('&')才是真,也就是說,在遮蔽中的任何一引起位設定為1,在整型組值中那些對應位也為1時,按位'與'('&')的結果才為真。如果((integer-group & filter)=filter),按位遮蔽相等'&=',才是真,也就是說,在遮蔽中的所有位設定為1,在integer-group中也設定為1,按位遮蔽相等'&='才是真(在integer-group中的其它位可能也是置為1,但不對它作檢測)。

. 對於表示點座標的組,x,y和z測試可以組合成單個字串,同時每個個運算子用逗號作分隔

(例如:'>,>,*')。如果乙個運算子在字串中被省略(例如:'=,<>'省略了z測試),則假定它是'*'運算子。

. 方向向量(210組)僅能用'*'、'='和'!

='運算子進行比較('! ='表示不等)。

組值為字串的不能使用關係運算子進行測試,而要使用萬用字元進行比較。

(2)過濾器測試的邏輯分組

剛剛討論過的關係運算子是二進位制運算子。通過知生成使用分組運算子巢狀布林表示式,您也可以對組進行測試。下表中列出了分組運算子。分組運算子同-4組指定,就象關係運算子那樣。分組運算子是成對出現的,在過濾器表中它們必須匹配正確,否則,ssget函式呼叫就會失敗。

用在選擇集過濾器表中的分組運算子

起始運算子  包含的內容

結束運算子

乙個或多個運算元   'adn>'

乙個或多個運算元   'or>'

兩個運算元        'xor>'

乙個運算元        'not>'

由分組運算子所使用的乙個運算元是乙個或多個圖元域。乙個關係運算子後跟乙個或多個圖元域,或乙個由這些運算子所生成的巢狀的表示式。下面是乙個在過濾器表中使用了分組運算子的例項:

(setq'x' '((-4. '

(-4.

(0.'circle')

(40.

1.0)

(-4.'and>')

(-4.'

(0.'line')

(8.'abc')

(-4.

'and>')

(-4.

'or>')

這就選擇了所有關徑為1.0的圓,外加在圖層'abc'上的所有直線。

由於分組運算子對小寫是不敏感的,所以您可以使用與大寫等價的小寫形式,即:''、 ''、 ''、

四. 例項

下面的程式例項用於改變現行圖形中所有文字的盡無動於寸。

(defunc:chtext2 (atsnin

lisp實戰文庫 LISP經典程式

一 繪製地形圖符號 1.點狀符號 對於點狀符號 其位置固定 數量較多 且一般都帶有一定的標註 可逐個製作屬性塊圖元 單獨插入。2.線狀符號 利用autocad 中強大的線型定義。3.面狀符號 由充填符號在面域內按一定的排列方式組合而成。目前auto cad 在建築設計 工程施工放樣得到廣泛應用 au...

lisp程式繪製大樹 LISP 樹

可以從cons單元構建樹的資料結構,如清單列表。為了實現樹形結構,則必須設計功能,將遍歷cons 單元,在特定的順序,例如,前序,順序和後序的二進位制樹。樹列表的列表 讓我們考慮由cons單元的樹狀結構,形成列出的清單如下 1 2 3 4 5 6 它可以表示為 lisp樹的功能 雖然多數時候仍需要根...

lisp正負調換 LISP程式庫

軟體簡介 如果您使用 autocad,下面的內容對您一定有幫助。在某些方面能大大提高您的工作效率。壓縮包中含有以下面程式,且均以源程式方式給出,您可以使用 參考 修改它。解壓縮後請先看說明檔案。bg.lsp 自動生成 asc.lsp 將文字檔案內容寫入圖中,字元是單個的 wf.lsp 將圖中字元寫入...