




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章
數(shù)據(jù)類型、表達(dá)式和函數(shù)
AutoLISP的數(shù)據(jù)類型豐富,除了一般程序設(shè)計(jì)語(yǔ)言具有的整型、實(shí)型、字符串等類型之外,還有表、函數(shù)、文件描述符、AutoCAD選擇集、AutoCAD圖元名、VLA對(duì)象、函數(shù)分頁(yè)表和外部函數(shù)等數(shù)據(jù)類型。2.1數(shù)據(jù)類型1.整型(INT)整型即整數(shù),整數(shù)由數(shù)字和正負(fù)號(hào)組成,正號(hào)可省略。整數(shù)為32位帶符號(hào)的數(shù)字,其范圍從-2147483648到+2147483647。
2.實(shí)型(REAL)實(shí)型數(shù)是帶小數(shù)點(diǎn)的數(shù)。在-1和1之間的實(shí)數(shù)必須以0開(kāi)頭,例如:.5是錯(cuò)誤的,應(yīng)該寫(xiě)成0.5。實(shí)數(shù)用雙精度的浮點(diǎn)數(shù)表示,并且至少有14位有效位數(shù)的精度。注意,VisualLISP不顯示所有的有效位。3.字符串(STR)字符串又被稱為字符常數(shù),它是由雙引號(hào)括起來(lái)的字符序列。字符串中字母的大、小寫(xiě)和空格符都是有意義的。字符串中字符的個(gè)數(shù)(不包括雙引號(hào))稱為字符串的長(zhǎng)度。字符串的最大長(zhǎng)度為100,如果超過(guò)100,第100個(gè)字符后面的字符將是無(wú)效的。字符串可以是空的,即"",稱為空串,其長(zhǎng)度為0。任何字符都可以用\nnn的格式表示,其中反斜杠“\”是ASCII碼的前導(dǎo)標(biāo)識(shí)字符,nnn是該字符八進(jìn)制的ASCII碼。例如,字符串ABCD也可表示為\101\102\123\104。一些常用的控制字符,象反斜杠、雙引號(hào),除了可以用\nnn的格式表示之外,還可以用“\”轉(zhuǎn)義字符的格式表示為“\\”、“\"”等特殊字符,見(jiàn)下表。表2-1常用控制字符的表示方法控制字符 用“\”為前導(dǎo)字符用“\”為前導(dǎo)的ASCII碼表示反斜杠“\” \\ \134雙引號(hào)“"” \" \042Esc鍵 \e \033換行 \n \012回車鍵 \r \015Tab鍵 \t \011注意,其中的字符e,n,r,t必須小寫(xiě)。
4.表表以左圓括號(hào)開(kāi)始,以配對(duì)的右圓括號(hào)結(jié)束,表可以是空的,可以有若干個(gè)元素;元素可以是簡(jiǎn)單的,也可以是復(fù)雜的,還可以是其它的表。例如:(+123)、(sin(*0.5pi))、(AB)、((AB)C(CD))、(0"LINE")、(101.52.60.0)、()都是合法的表。表中元素的個(gè)數(shù)稱為表的長(zhǎng)度。例如,表(+123)的長(zhǎng)度為4、表(sin(*0.5pi))的長(zhǎng)度為2、表((AB)C(CD))的長(zhǎng)度為3、表()的長(zhǎng)度為0。用表可以方便地構(gòu)造出復(fù)雜的數(shù)據(jù)結(jié)構(gòu),例如,(1.53.6)可以表示為一個(gè)X等于1.5、Y等于3.6的二維點(diǎn),(2.52.01.0)可以表示為一個(gè)X等于2.5、Y等于2.0、Z等于1.0的三維點(diǎn)。
5.函數(shù)(SUBS)函數(shù)相當(dāng)于子程序或過(guò)程。函數(shù)分為內(nèi)部函數(shù)和外部函數(shù)。AutoLISP提供的或用AutoLISP定義的函數(shù)為內(nèi)部函數(shù)。用ADS、ADSRX或ARX定義的函數(shù)為外部函數(shù)。例如sin、cos、sqrt為內(nèi)部函數(shù)。運(yùn)算符在AutoLISP里屬于函數(shù),例如“+”、“-”、“*”、“/”分別稱之為加、減、乘、除函數(shù),“<”、“<=”、“>”分別稱之為小于、小于等于和大于函數(shù)。其它計(jì)算機(jī)語(yǔ)言里的子程序、過(guò)程、程序流程控制的關(guān)字,在AutoLISP里也屬于函數(shù),例如“if”、“while”分別稱之為條件和條件循環(huán)函數(shù)。
6.文件描述符(FILE)文件描述符是AutoLISP賦于被打開(kāi)文件的標(biāo)識(shí)號(hào),它類似于文件指針。下面的例子是以“讀”的方式打開(kāi)文件myfile.dat,并將該文件的描述符賦予符號(hào)f1。(setqf1(open"myfile.dat""r"))返回<File:#34614>7.圖元名(ENAME)圖元名是AutoCAD為圖形對(duì)象指定的16進(jìn)制的數(shù)字標(biāo)識(shí)。
AutoLISP通過(guò)該標(biāo)識(shí),找到該圖形對(duì)象在圖形數(shù)據(jù)庫(kù)中的位置,以便對(duì)其進(jìn)行訪問(wèn)或編輯。
8.選擇集(PICKSET)選擇集是一個(gè)或多個(gè)圖形對(duì)象命名的集合??梢酝ㄟ^(guò)AutoLISP程序建立選擇集、向指定的選擇集添加或移去圖形對(duì)象,通過(guò)選擇集可以對(duì)其內(nèi)指定的成員進(jìn)行訪問(wèn)或編輯。9.VLA對(duì)象
VLA對(duì)象是ActiveX應(yīng)用程序的主要組成部分。不僅直線、圓弧、多義線和圓等都被稱為VLA對(duì)象,圖層、組、塊、視圖、視口、圖形的模型空間、圖紙空間、線型和尺寸標(biāo)注樣式等也被稱為VLA對(duì)象,甚至連AutoCAD本身也被認(rèn)為是VLA對(duì)象。
2.2變量2.2.1符號(hào)符號(hào)(SYMBOL)可以理解為標(biāo)識(shí),用來(lái)作為變量、函數(shù)的名字。它的命名規(guī)則是不能只含數(shù)字,可以由下列字符以外的任何可打印的字符所組成:“(”、“)”、“·”、“'”、“"”、“;”例如,a1、b2、c_3是合法的符號(hào),(a、)b、.c、’4、"5是非法的符號(hào)。注意:[1]、{2}、~3、!4、/5、1a、3c、-d、+e、b-2、c*3也是合法的符號(hào),這是與多數(shù)計(jì)算機(jī)語(yǔ)言的不同之處。
在AutoLISP中,符號(hào)的大小寫(xiě)等價(jià),符號(hào)的長(zhǎng)度沒(méi)有限制,且所有的字符都是有意義的。如果一個(gè)符號(hào)的長(zhǎng)度不超過(guò)6,就用節(jié)點(diǎn)本身來(lái)存儲(chǔ);如果符號(hào)的長(zhǎng)度超過(guò)6,這樣的符號(hào)就不能用節(jié)點(diǎn)來(lái)存儲(chǔ),而是在節(jié)點(diǎn)中存放一個(gè)指向?qū)嶋H存儲(chǔ)符號(hào)名的指針。這將會(huì)多占用存儲(chǔ)空間,且減慢了執(zhí)行速度。因此,符號(hào)的長(zhǎng)度最好不要超過(guò)6。
2.2.2變量的數(shù)據(jù)類型
AutoLISP變量屬于符號(hào),是指存儲(chǔ)靜態(tài)數(shù)據(jù)的符號(hào)。數(shù)據(jù)類型是變量的重要的特征,因?yàn)樗P(guān)系到存放變量值的存儲(chǔ)空間的大小。多數(shù)的計(jì)算機(jī)語(yǔ)言都在為變量賦值前對(duì)變量做顯式或隱式的說(shuō)明。AutoLISP無(wú)須對(duì)變量做事先的類型說(shuō)明,變量被賦予值的類型即為變量的類型。用setq函數(shù)對(duì)變量賦值,例如,(setqa5),賦值后的結(jié)果是:變量a是整型的,因?yàn)?是整型的;同樣的原因,(setqb2.5)之后,b是實(shí)型的,(setqc"ABC")之后,c就是字符串類型的。
在程序運(yùn)行過(guò)程中,同一變量在不同的時(shí)刻可以被賦予不同類型的值,因此在程序運(yùn)行過(guò)程中,變量的數(shù)據(jù)類型是可以被改變的。例如,在一個(gè)程序里有以下兩行:(setqa5)當(dāng)前的變量a是整型的。(setqa"ABC")當(dāng)前的變量a是字符串類型的。用type函數(shù)了解變量的類型,例如,(typea)返回INT,顯示變量a是整型的;(typeb)返回REAL,顯示變量b是實(shí)型的,(typec)返回STR,顯示變量c是字符串類型的。
2.2.3為變量賦值用setq函數(shù)為變量賦值,其格式如下:
(setq變量1值1[變量2值2...])例如:
Command:(setqx
1.5
y
20
p
"Center")
返回“Center”
除了為變量x、y、p賦值外,還返回最后一個(gè)表達(dá)式的結(jié)果“Center”。如果上述表達(dá)式還有外層表達(dá)式,那么,將把該表達(dá)式的返回值“Center”賦給外層表達(dá)式的變量。例如,
Command:(setqv(setqx
1.5
y
20
p
"Center"))
返回“Center”
該表達(dá)式同樣為變量x、y、p賦值,并將內(nèi)層表達(dá)式返回的結(jié)果“Center”賦給變量v,最后返回外層表達(dá)式的結(jié)果“Center”。沒(méi)有被賦值的變量屬于無(wú)定義的變量。
2.2.4預(yù)定義的符號(hào)
AutoLISP對(duì)變量nil、T、Pause和Pi進(jìn)行了預(yù)定義,用戶可以在編寫(xiě)AutoLISP程序時(shí)直接使用。(1)nil
如果變量沒(méi)有被賦值,它的值為nil。nil與空和0不同的是,它既不是空串,也不是0值,它表示尚無(wú)定義。引用未被賦值的變量是錯(cuò)誤的。例如,變量x尚未被賦值,(+1x)就會(huì)出現(xiàn)error:badargumenttype(壞的參數(shù)類型錯(cuò))。將nil賦給某一有定義的變量,其結(jié)果是:取消該變量的定義,并釋放其所占存儲(chǔ)空間。
nil作為邏輯變量的值,表示不成立,相當(dāng)于其他程序設(shè)計(jì)語(yǔ)言的false。
(2)TT為常量,它作為邏輯變量的值,表示成立,相當(dāng)于其他程序設(shè)計(jì)語(yǔ)言的true。(3)PAUSEPAUSE與command函數(shù)配合使用,用于暫停,等候用戶輸入。(4)PIPI被定義為常量
。每個(gè)變量都占用一些內(nèi)存空間。為了節(jié)省存儲(chǔ)空間,可重復(fù)使用變量名,或者將不再使用的變量設(shè)為nil,以便釋放該變量所占的內(nèi)存空間。
必須注意,一般的編程語(yǔ)言不允許將內(nèi)部函數(shù)名或流程控制的關(guān)鍵字作為變量名,而AutoLISP沒(méi)有這樣的限制。因此,程序中定義的符號(hào)名稱不要與系統(tǒng)定義的函數(shù)名和預(yù)定義的變量名相同,否則,后面的定義將取代已有的定義,從而引起混亂。例如,sin是正弦函數(shù),可是在執(zhí)行表達(dá)式(setqsin1)之后,sin不再是正弦函數(shù),而是一個(gè)值為1的整型變量。
2.2.5顯示變量的值要想在AutoCAD命令提示區(qū)顯示變量的值,必須在變量名前添加驚嘆號(hào)!。例如了解前面已賦值的變量x、v的值,操作如下:Command:!x
1.5Command:!v
"Center"Command:!z
nil(假定變量z尚未被定義)
2.2.6在交互方式下將變量的值傳遞給AutoCAD
在變量前加一個(gè)感嘆號(hào)“!”,即可將表達(dá)式的值傳遞給AutoCAD。例如:
Command:(setqp'(2010)r5)
Command:circle
Specifycenterpointforcircleor[3P/2P/Ttr(tantanradius)]:!p
Specifyradiusofcircleor[Diameter]::!r
即可畫(huà)出圓心的坐標(biāo)為(20,10)半徑為5的圓。R
2.3表達(dá)式
AutoLISP處理的對(duì)象是符號(hào)表達(dá)式(簡(jiǎn)稱表達(dá)式)。表達(dá)式相當(dāng)于其他編程語(yǔ)言中程序的語(yǔ)句。2.3.1表達(dá)式的構(gòu)成表達(dá)式是由原子或表構(gòu)成的。原子可細(xì)分為數(shù)原子、串原子和符號(hào)原子。數(shù)或串原子的值是數(shù)或串本身,符號(hào)原子的值是賦給該符號(hào)的值。例如:5、12.5、“ABC"是單個(gè)原子構(gòu)成的表達(dá)式。多數(shù)情況下,表達(dá)式以表的形式存在,其格式如下:
(函數(shù)名[變?cè)猐…)
變?cè)臄?shù)量可能為0,也可能任意多個(gè),這取決于具體函數(shù)。每個(gè)參數(shù)還可以是一個(gè)表達(dá)式。表達(dá)式形式的表,左圓括號(hào)之后的第一個(gè)元素必須是函數(shù)名。
2.3.2表達(dá)式的前綴表示法大多數(shù)計(jì)算機(jī)語(yǔ)言的表達(dá)式采用中綴表示法,即運(yùn)算符在操作數(shù)中間。如,x=2.5,y=1+2。
AutoLISP采用前綴表示法,將函數(shù)名放在所有操作數(shù)之前。如,(setqx2.5),(setqy(+12))。若將x=(a+b)*c
改寫(xiě)為AutoLISP表達(dá)式,則為:
(setqx(*(+ab)c))
前綴表示法使得運(yùn)算和函數(shù)調(diào)用的形式得到了統(tǒng)一。前面提到,在AutoLISP語(yǔ)言里,運(yùn)算符也屬于函數(shù)。
2.3.3表達(dá)式的求值過(guò)程在LISP語(yǔ)言中,函數(shù)之間不存在是否優(yōu)先的關(guān)系,運(yùn)算的先后順序只能通過(guò)表的層次來(lái)實(shí)現(xiàn),最里層的表最先被求值,把求值的結(jié)果返回給外層表,直至求值完畢。例如,表達(dá)式(setqx(*(+ab)c)),先求出最內(nèi)層a與b之和,然后求出a、b之和與c的積,將求得的積賦給x,最后返回x的值??梢栽贑ommand:提示下,輸入一個(gè)表達(dá)式,AutoCAD將計(jì)算該表達(dá)式并返回計(jì)算結(jié)果。AutoCAD至多顯示6位小數(shù)。例如,在Command:提示下,鍵入(sin0.5)之后回車,將返回0.479426。
如果輸入的或者從文件中讀入的表達(dá)式不正確,將顯示出錯(cuò)信息,最常見(jiàn)的出錯(cuò)信息是:(((_>
表示缺少與左圓括號(hào)匹配的右圓括號(hào),“(”的個(gè)數(shù)即為缺少右圓括號(hào)的數(shù)量。如果出現(xiàn)該信息,輸入與所提示的左圓括號(hào)相等的右圓括號(hào)既可。由于所缺的右圓括號(hào)不一定都是最后的,所以可能產(chǎn)生錯(cuò)誤的結(jié)果。如果遺漏了與左端雙引號(hào)匹配的右端的雙引號(hào),顯示的出錯(cuò)信息為:
("_>
在這種情況下輸入匹配的雙引號(hào)也不一定使表達(dá)式能正常求值。此時(shí)只能按Esc鍵終止當(dāng)前的輸入,重新輸入表達(dá)式。
2.3.4表達(dá)式的求值規(guī)則(1)整型數(shù)、實(shí)型數(shù)、字符串,以它們本身的值作為求值結(jié)果。(2)符號(hào)以它們當(dāng)前的約束值作為求值結(jié)果。(3)表是根據(jù)其第一個(gè)元素來(lái)進(jìn)行求值的。①如果第一個(gè)元素或第一個(gè)元素的計(jì)算結(jié)果是一個(gè)函數(shù)名,那么以表中剩余的元素作為該函數(shù)的變?cè)?,?jì)算出該函數(shù)的值。例如,表達(dá)式:(+(*23)(/503))先計(jì)算最內(nèi)層的表達(dá)式(*23)和(/503),將結(jié)果6和16返回給其外層表達(dá)式,原表達(dá)式變?yōu)椋海?616)繼續(xù)計(jì)算表達(dá)式(+616),返回22。
②如果第一個(gè)元素是一個(gè)表,該表不是調(diào)用而是定義函數(shù),若語(yǔ)法正確,首先定義這個(gè)函數(shù),然后繼續(xù)表達(dá)式求值。③如果第一個(gè)元素既不是函數(shù)名,也不是定義函數(shù),將停止求值并顯示出錯(cuò)信息。例如(25abc),將停止求值并顯示“error:badfunction:25”,因?yàn)?5是非法的函數(shù)名,所以顯示25是壞函數(shù)的出錯(cuò)信息。又比如(fxabc),將停止求值并顯示“error:nofunctiondefinition:FX”,指出沒(méi)有定義fx這個(gè)函數(shù)。
④用quote函數(shù)可以禁止對(duì)表求值。對(duì)于不需求值而直接整體引用的表,例如將一個(gè)表示三維點(diǎn)的表(321)賦給變量p,如果表達(dá)式為(setqp(321)),將中斷求值過(guò)程并顯示“error:badfunction:3”出錯(cuò)信息。因?yàn)槭紫葘?duì)內(nèi)層表求值,而內(nèi)層表的第1個(gè)元素“3”不是函數(shù)名,所以停止求值。此時(shí)應(yīng)該用quote函數(shù),將表達(dá)式改為(setqp(quote(321))),這樣就不再對(duì)表(321)求值,而是將將表(321)整體賦給變量p,使之表示一個(gè)3維的點(diǎn)。
quote是AutoLISP程序中使用最多的函數(shù),因此該函數(shù)可用一個(gè)單引號(hào)“'”表示。例如(quote(1020))可以表示為'(1020)。如果將(1020)這個(gè)2維點(diǎn)賦給變量p2,可寫(xiě)成:
(setqp2'(1020))
2.4數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)計(jì)算機(jī)的內(nèi)存是由許多編了碼的內(nèi)存單元組成。一個(gè)特定內(nèi)存單元的編號(hào)稱為內(nèi)存地址。內(nèi)存單元的內(nèi)容是數(shù)字,也可以是內(nèi)存單元的編號(hào),即另一內(nèi)存單元的地址。如果一個(gè)內(nèi)存單元的內(nèi)容是另一個(gè)內(nèi)存單元的地址,那么,這個(gè)內(nèi)存單元被稱為是指向另一個(gè)內(nèi)存單元的指針。如果一個(gè)內(nèi)存單元分為左、右兩部分,分別存放兩個(gè)內(nèi)存單元的地址,那么,這個(gè)內(nèi)存單元就具有左、右兩個(gè)指針。這種具有左、右兩個(gè)指針的內(nèi)存單元被稱為節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)的長(zhǎng)度是12個(gè)字節(jié),等分為左、右兩部分,作為左、右指針,每個(gè)節(jié)點(diǎn)都有它的地址。AutoLISP通過(guò)這樣的一些節(jié)點(diǎn)構(gòu)成鏈表,以鏈?zhǔn)椒绞酱鎯?chǔ)各種數(shù)據(jù)。
1.符號(hào)創(chuàng)建一個(gè)符號(hào),例如(setqradius10),至少需要3個(gè)節(jié)點(diǎn)。一個(gè)節(jié)點(diǎn)鏈接到符號(hào)原子表的鏈尾并指向存放符號(hào)名的節(jié)點(diǎn),一個(gè)節(jié)點(diǎn)存放符號(hào)名和存放符號(hào)值的指針,最后一個(gè)節(jié)點(diǎn)存放符號(hào)的值,見(jiàn)圖(a)。如果符號(hào)的長(zhǎng)度超過(guò)6字符,例如(setqfillet_radius5),需要申請(qǐng)存放符號(hào)名的存儲(chǔ)空間,用原來(lái)存放符號(hào)名的半個(gè)節(jié)點(diǎn)作為指向存放符號(hào)名的指針,見(jiàn)圖(b)。顯然要多占用一些存儲(chǔ)空
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)下冊(cè)數(shù)學(xué)教案-3.1 解決問(wèn)題的策略-從條件想起丨蘇教版
- 一年級(jí)下冊(cè)數(shù)學(xué)教案-7.2 變葫蘆| 青島版(五四學(xué)制)
- Unit 3 Section A (1a-1c)教學(xué)設(shè)計(jì) 2024-2025學(xué)年人教版八年級(jí)英語(yǔ)上冊(cè)
- 2025年貴州機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)必考題
- 2025年嘉興南湖學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)完整版
- 物理-云南省三校2025屆高三2月高考備考聯(lián)考卷(六)試題和答案
- 2025年哈爾濱鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)必考題
- 2025屆黑龍江佳木斯一中高三上學(xué)期五調(diào)政治試題及答案
- 2025年度工傷賠償協(xié)議范本(房地產(chǎn)行業(yè))
- 2025年湖南都市職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)帶答案
- DBJ50-T-100-2022 建筑邊坡工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)
- 2025年中考語(yǔ)文模擬試卷(含答案解析)
- 2025年寧夏工商職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025版校園樂(lè)器銷售代理與服務(wù)協(xié)議3篇
- DB11-T 1004-2023 房屋建筑使用安全檢查評(píng)定技術(shù)規(guī)程
- 2024-2025年天津河西區(qū)七年級(jí)上學(xué)期期末道德與法治試題(含答案)
- 《藝術(shù)與傳播》課件
- 《智慧旅游認(rèn)知與實(shí)踐》課件-第九章 智慧旅行社
- 電動(dòng)車智能充電器的設(shè)計(jì)與制作畢業(yè)論文
- 第九套廣播體操動(dòng)作要領(lǐng)及圖解.
評(píng)論
0/150
提交評(píng)論