caar, cadr, cddr, cadar, etc.




ÀâòîËÈÑÏ îáåñïå÷èâàåò ñâÿçü CAR è CDR äî ÷åòûðåõ óðîâíåé âãëóáü. Íàïðèìåð, çàäàíî íàçíà÷åíèå:

(setq x '((a b) c d))

òîãäà:

(caar x) ýêâèâàëåíòíî (car (car x)) ââîäèò A

(cdar x) ýêâèâàëåíòíî (cdr (car x)) ââîäèò (B)

(cadar x) ýêâèâàëåíòíî (car (cdr (car x))) ââîäèò B

(cadr x) ýêâèâàëåíòíî (car (cdr x)) ââîäèò Ñ

(cddr x) ýêâèâàëåíòíî (ñdr (ñdr x)) ââîäèò (D)

(caddr x) ýêâèâàëåíòíî (car (cdr (cdr x))) ââîäèò D

 ÀâòîËÈÑÏå CADR ÷àñòè÷íî ïðèìåíÿåòñÿ äëÿ ïîëó÷åíèÿ êîîðäèíàòû Y äëÿ òî÷åê 2D è 3D (âòîðîé ýëåìåíò â ñïèñêå èç äâóõ èëè òðåõ äåéñòâèòåëüíûõ ÷èñåë). Àíàëîãè÷íî, CADDR ìîæåò ïðèìåíÿòüñÿ äëÿ îïðåäåëåíèÿ êîîðäèíàòû Z äëÿ òî÷êè 3D. Íàïðèìåð:

(setq pt2 '(5.2 1.0 (2D òî÷êà)

(setq pt3 '(5.2 1.0 3.0) (3D òî÷êà)

òîãäà:

(car pt2) ââîäèò 5.200000

(cadr pt2) ââîäèò 1.000000

(caddr pt2) ââîäèò nil

(car pt3) ââîäèò 5.200000

(cadr pt3) ââîäèò 1.000000

(caddr pt3) ââîäèò 3.000000

4.29 (car <list>)

Ýòà ôóíêöèÿ ââîäèò ïåðâûé ýëåìåíò <ñïèñêà>. Åñëè <ñïèñîê> ïóñòîé, ââîäèòñÿ íîëü. Íàïðèìåð:

(car '(a b c)) ââîäèò A

(car '((a b) c)) ââîäèò (A B)

(car '()) ââîäèò nil

4.30 (cdr <list>)

Ýòà ôóíêöèÿ ââîäèò âåñü <ñïèñîê>, êðîìå åãî ïåðâîãî ýëåìåíòà. Åñëè <ñïèñîê> ïóñòîé, ââîäèòñÿ íîëü. Íàïðèìåð:

(cdr '(a b c)) ââîäèò (B C)

(cdr '((a b) c)) ââîäèò (C)

(cdr '()) ââîäèò nil

Êîãäà ïàðàìåòðû <ñïèñêà> - ðàçäåëåííûå òî÷êîé ïàðû (ñì. íèæå CONS), CDR ââîäèò âòîðîé ýëåìåíò áåç âêëþ÷åíèÿ åãî â ñïèñîê. Íàïðèìåð:

(cdr '(a. b) ââîäèò B

(cdr '(1. "Text") ââîäèò "Text"

4.31 (chr <number>)

Ýòà ôóíêöèÿ ââîäèò ïåðåõîä öåëûõ ÷èñåë, ïðåäñòàâëåííûõ â çíàêîâîì êîäå ASCII, â îäíîçíàêîâóþ ñòðîêó (àíàëîãè÷íî ôóíêöèè CHRS â ÿçûêå ÁÅÉÑÈÊ). Íàïðèìåð:

(chr 65) ââîäèò "A"

(chr 66) ââîäèò "B"

(chr 97) ââîäèò "a"

4.32 (close <file-desc>)

Ýòà ôóíêöèÿ çàêðûâàåò ôàéë è ââîäèò íîëü. <File-desc> - äåñêðèïòîð ôàéëà (îïðèñàòåëü), ïîëó÷åííûé èç ôóíêöèè OPEN. Ïîñëå CLOSE äåñêðèïòîð ôàéëà íå èçìåíÿåòñÿ, íî ñòàíîâèòñÿ íåäåéñòâèòåëüíûì. Íàïðèìåð, ïðåäñòàâüòå, ÷òî Õ - äåéñòâèòåëüíûé îòêðûòûé äåñêðèïòîð ôàéëà,

(close x)

çàêðîåò ïðåäïîëàãàåìûé ôàéë è ââåäåò íîëü.

4.33 (command <arqs>...)

Ýòà ôóíêöèÿ âûïîëíÿåò êîìàíäó ÀâòîÊÀÄà â ïðåäåëàõ ÀâòîËÈÑÏà è âñåãäà ââîäèò íîëü. Ïàðàìåòðû, ïðåäñòàâëÿþùèå êîìàíäû ÀâòîÊÀÄà, è èõ ïîäêîìàíäû, êàæäûé ïàðàìåòð âûñ÷èòûâàåòñÿ â ÀâòîÊÀÄ â êà÷åñòâå îòâåòà íà ïîñëåäóþùèå ïîäñêàçêè. Èìåíà êîìàíä è îïöèè çàïóñêàþòñÿ â âèäå ñòðî÷åê, òî÷êè 2D êàê ñïèñêè èç äâóõ äåéñòâèòåëüíûõ ÷èñåë è 3D òî÷êè êàê ñïèñêè èç òðåõ äåéñòâèòåëüíûõ ÷èñåë. Èìåíà êîìàíä óçíàþòñÿ ÀâòîÊÀÄîì òîëüêî ïðè âûõîäå ïîäñêàçêè "Command". Íàïðèìåð:

(setq pt1 '(1.45 3.23))

(setq pt2 (getpoint "Enter a point: "))

(command "line" pt1 pt2)

(command "")

Ïðåäïîëàãàÿ, ÷òî ïîäñêàçêà ÀâòîÊÀÄà "Command" íå âûïîëíÿåòñÿ, óêàçàííàÿ âûøå ïîñëåäîâàòåëüíîñòü âûðàæåíèé óñòàíàâëèâàåò çíà÷åíèå äëÿ òî÷êè "pt1", âûäàåò ïîäñêàçêó äëÿ òî÷êè "pt2" è âûïîëíÿåò êîìàíäó ÀâòîÊÀÄà LINE ñ äâóìÿ òî÷êàìè êàê äàííûìè ââîäà. Ïàðàìåòðàìè COMMAND ìîãóò áûòü ñòðî÷êè, äåéñòâèòåëüíûå è öåëûå ÷èñëà èëè òî÷êè, êàê ïðåäóñìàòðè-âàåòñÿ ïîñëåäîâàòåëüíîñòüþ ïîäñêàçêè äëÿ âûïîëíåíèÿ êîìàíäû ÀâòîÊÀÄà. Íóëåâàÿ ñòðî÷êà ("") ýêâèâàëåíòíà ïå÷àòàíüþ ïðîáåëà íà êëàâèàòóðå. Âûçîâ COMMAND áåç ïàðàìåòðîâ ýêâèâàëåíòåí ïå÷àòàíèþ CTR C íà êëàâèàòóðå; ýòî îòìåíèò áîëüøèíñòâî êîìàíä ÀâòîÊÀÄà.

Êîìàíäû, âûïîëíÿåìûå èç ôóíêöèè COMMAND, íå îòðàæàþòñÿ íà ýêðàíå, åñëè ñèñòåìà ïåðåìåííûõ ÀâòîÊÀÄà CMDECHO (âûáðàííàÿ èç SETVAR èëè GETVAR) óñòàíîâëåíà íà íóëå. Ôóíêöèÿ COMMAND - îñíîâíîé ìåòîä âûáîðà êîìàíä ÀâòîÊÀÄà èç ÀâòîËÈÑÏà.

Ââîäèìûå ôóíêöèè ïîëüçîâàòåëÿ

"GETxxx" (GETANGLE, GETSTRING, GETINT, GETPOINT) íå ìîãóò ïðèìåíÿòüñÿ âíóòðè ôóíêöèè. Ïîïûòêà ïðîäåëàòü ýòî, ïðèâåäåò â ðåçóëüòàòå ê ïîÿâëåíèþ ñîîáùåíèÿ:

"îøèáêà:çàáðàêîâàííàÿ ÀâòîÊÀÄîì ôóíêöèÿ" è âûïîëíåíèå ôóíêöèè ïðåêðàùàåòñÿ. Åñëè ââîä ïîëüçîâàòåëÿ íåîáõîäèì, çàðàíåå çàäàéòå ôóíêöèè GETxxx, êàê óêàçàíî âûøå, èëè ïîìåñòèòå èõ ìåæäó óäà÷íûìè âûçîâàìè ôóíêöèè COMMAND.

Åñëè êîìàíäà ÀâòîÊÀÄà âûïîëíÿåòñÿ è ñòðîêà,ñîñòîÿùàÿ èç åäèíè÷íîãî ìåðòâîãî õîäà ("/"), ïðîñ÷èòûâàåòñÿ êàê îäèí èç ïàðàìåòðîâ ôóíêöèè COMMAND, ýòà ôóíêöèÿ ïðèîñòàíîâèò ïðÿìîé ââîä ïîëüçîâàòåëÿ (èëè ñìåùåíèå). Ýòî èäåíòè÷íî ìåõàíèçìó ïàóçû ìåðòâîãî õîäà, êîòîðûì ñíàáæåíû ìåíþ. Îäíàêî, ïîñêîëüêó ìåðòâûé õîä ÿâëÿåòñÿ ñïåöèàëüíûì êîíòðîëüíûì çíàêîì â ËÈÑÏå, òðåáóåòñÿ äâà ñèìâîëà ìåðòâîãî õîäà äëÿ òîãî, ÷òîáû ïîëó÷èòü îäèí â òåêñòîâîé ñòðîêå.

Åñëè âû âûäàåòå ïðîìåæóòî÷íûå êîìàíäû â òî âðåìÿ, êîãäà ôóíêöèÿ COMMAND ïðèîñòàíîâëåíà, îíà è îñòàåòñÿ ïðèîñòàíîâëåííîé. Òåì íå ìåíåå, âû ìîæåòå âûïîëíÿòü êîìàíäó ZOOM èëè PAN âî âðåìÿ ïàóçû ôóíêöèè COMMAND. Ïàóçà ñîõðàíÿåòñÿ äî òåõ ïîð, ïîêà ÀâòîÊÀÄ ïîëó÷àåò äåéñòâèòåëüíûé ââîä è â ðàáîòå íåò íèêàêèõ ïðîìåæóòî÷íûõ êîìàíä.

Íàïðèìåð:

(command "circle" "5,5" "r" "\\" "line" "5,5" "7,5" "")

íà÷èíàåò êîìàíäó CIRCLE, óñòàíàâëèâàåò öåíòðàëüíóþ òî÷êó 5,5 è çàòåì-ïàóçà, ïîçâîëÿþùàÿ ñìåùàòü ðàäèóñ îêðóæíîñòè íà ýêðàíå. Êîãäà âû óêàæåòå íåîáõîäèìûå òî÷êè (èëè íàïå÷àòàåòå íåîáõîäèìûé ðàäèóñ), ôóíêöèÿ ïðîäîëæàåò ðàáîòó, ðèñóÿ ëèíèþ îò 5,5 äî 7,5.

Ìåíþ ââîäà íå îòìåíÿåòñÿ ïàóçîé ÀâòîËÈÑÏà. Åñëè ýëåìåíò ìåíþ àêòèâåí êîãäà ôóíêöèÿ COMMAND íàõîäèòñÿ â ïàóçå äëÿ ââîäà, ýòî òðåáîâàíèå ââîäà ìîæåò áûòü óäîâëåòâîðåíî ïðè ïîìîùè ìåíþ. Åñëè âû õîòèòå îòìåíèòü è ýëåìåíòû ìåíþ, âû äîëæíû ââåñòè ìåðòâûé õîä â ýëåìåíò ìåíþ. Êîãäà îáíàðóæåí äåéñòâèòåëüíûé ââîä, áóäóò ïðîäîëæàòüñÿ êàê ôóíêöèÿ COMMAND, òàê è ýëåìåíò ìåíþ.

4.34 (cond (<test1> <result1>...)

Ýòà ôóíêöèÿ ïðèíèìàåò â êà÷åñòâå ïàðàìåòðîâ ëþáîå êîëè÷åñòâî ñïèñêîâ. Îíà âû÷èñëÿåò ïåðâûé ýëåìåíò êàæäîãî ñïèñêà (â óñòàíîâëåííîé ïîñëåäîâàòåëüíîñòè) ïîêà îäèí èç ýòèõ ýëåìåíòîâ ââåäåò çíà÷åíèå, îòëè÷íîå îò íóëÿ. Çàòåì îíà âû÷èñëÿåò òå âûðàæåíèÿ, êîòîðûå ñëåäóþò çà òåñòîì, è ââîäèò çíà÷åíèå ïîñëåäíåãî âûðàæåíèÿ â ïîäñïèñêå. Åñëè â ïîäñïèñêå òîëüêî îäíî âûðàæåíèå (íàïðèìåð, ïðîïóùåí <result>),ââîäèòñÿ çíà÷åíèå âûðàæåíèÿ <test>. COND - èñõîäíàÿ óñëîâíàÿ ôóíêöèÿ â ÀâòîËÈÑÏå.

Íàïðèìåð,â ýòîì ñëó÷àå COND èñïîëüçóåòñÿ äëÿ âûïîëíåíèÿ ðàñ÷åòîâ àáñîëþòíîãî çíà÷åíèÿ:

(cond (minusp a) (-a))

(t a)

)

Åñëè äëÿ "à" áûëî óñòàíîâëåíî çíà÷åíèå -10, áóäåò ââåäåíî 10. Êàê ïîêàçàíî, COND ìîæåò ïðèìåíÿòüñÿ êàê ôóíêöèÿ òèïà "case". Îáùåïðèíÿòî èñïîëüçîâàòü T êàê ïîñëåäíåå (ïî óìîë÷àíèþ) <òåñòîâîå> âûðàæåíèå. Äàëåå, äðóãîé ïðèìåð. Çàäàíà îòâåòíàÿ ñòðîêà ïîëüçîâàòåëÿ â âèäå ñèìâîëà "s", ýòà ôóíêöèÿ ïðîâåðÿåò îòâåò è ââîäèò 1, åñëè îí "Y" èëè "y" è 0, åñëè îí "N" èëè "n", â îñòàëüíûõ ñëó÷àÿõ -nil (íóëü).

(cond ((= s "Y") 1)

((= s "y") 1)

((= s "N") 0)

((= s "n") 0)

(t nil)

)

4.35 (cons <new first element> <list>)

Ýòî îñíîâíîé ñïèñîê ÊÎÍÑòðóêòîðà. Îí áåðåò ýëåìåíò (<íîâûé ïåðâûé ýëåìåíò>) è ñïèñîê (<ñïèñîê>), è ââîäèò äîïîëíåíèå ýòîãî ýëåìåíòà â íà÷àëî ñïèñêà. Íàïðèìåð:

(cons 'a '(b c d)) ââîäèò (A B C D)

(cons '(a) '(b c d)) ââîäèò ((A) B C D)

Îáðàòèòå âíèìàíèå, ÷òî ïåðâûé ýëåìåíò ìîæåò áûòü àòîìîì â ñïèñêå. CONS òàêæå äîïóñêàåò àòîì íà ìåñòî ïàðàìåòðà â <ñïèñêå>, ñîçäàþùåãî ñòðóêòóðó, èçâåñòíóþ êàê dotted pair (òî÷å÷íàÿ ïàðà). Êîãäà íà ýêðàí âûäàåòñÿ òî÷å÷íàÿ ïàðà, ÀâòîËÈÑÏ ïå÷àòàåò ïåðèîä èëè òî÷êó ìåæäó ïåðâûì è âòîðûì ýëåìåíòîì ïàðû. Òî÷å÷íûå ïàðû çàíèìàþò ìåíüøå ìåñòà â ïàìÿòè, ÷åì îáû÷íûå ñïèñêè; ôóíêöèÿ CDR ìîæåò ïðèìåíÿòüñÿ äëÿ ââîäà âòîðîãî àòîìà. Òàêèì îáðàçîì:

(cons 'a 'b) ââîäèò (A. B)

(car (cons 'a 'b)) ââîäèò A

(cdr (cons 'a 'b)) ââîäèò B

4.36 (cons <angle>)

Ýòà ôóíêöèÿ ââîäèò êîñèíóñ <óãëà>, ãäå <óãîë> âûðàæåí â ðàäèàíàõ. Íàïðèìåð:

(cos 0.0) ââîäèò 1.000000

(cos pi) ââîäèò -1.000000

4.37 (defun <sym><argument list><expr>...)

DEFUN îïðåäåëÿåò ôóíêöèþ ïîä èìåíåì <sym> (îáðàòèòå âíèìàíèå, ÷òî èìÿ ôóíêöèè àâòîìàòè÷åñêè âçÿòî â óãëîâûå ñêîáêè, òàê ÷òî îíà íå äîëæíà çàêëþ÷àòüñÿ ïîëüçîâàòåëåì â ñêîáêè). Çà èìåíåì ôóíêöèè ñëåäóåò ñïèñîê ïàðàìåòðîâ (âîçìîæíî ïóñòîé), çà íèì êîñàÿ ÷åðòà íå îáÿçàòåëüíà, è èìåíà îäíîãî èëè áîëåå ëîêàëüíûõ ñèìâîëîâ äëÿ ôóíêöèè. Ïîñëåäíèé ïàðàìåòð (åñëè òàêîâîé èìååòñÿ) è ïåðâûé ëîêàëüíûé ñèìâîë äîëæíû áûòü îòäåëåíû êîñîé ÷åðòîé èëè õîòÿ áû îäíèì ïðîáåëîì.

Åñëè íå îáúÿâëÿþòñÿ íè ïàðàìåòðû, íè ëîêàëüíûå ñèìâîëû, ïîñëå èìåíè ôóíêöèè äîëæíû áûòü ïóñòûå êðóãëûå ñêîáêè. Íàïðèìåð:

(defun myfunc (x y)...) (ôóíêöèÿ ïðèíèìàåò 2 ïàðàìåòðà)

(defun myfunc (/a b)...) (ôóíêöèÿ èìååò 2 ëîêàëüíûõ ñèìâîëà)

(defun myfunc (x/temp)...) (îäèí ïàðàìåòð è îäèí ëîêàëüíûé ñèìâîë)

(defun myfunc ()...) (íåò ïàðàìåòðîâ è ëîêàëüíûõ ñèìâîëîâ)

Ñëåäóþùèå çà ñïèñêîì ïàðàìåòðîâ è ëîêàëüíûõ ñèìâîëîâ îäíî èëè íåñêîëüêî âûðàæåíèé âû÷èñëÿþòñÿ ïðè âûïîëíåíèè ôóíêöèè.

Ñàìà ôóíêöèÿ DEFUN ââîäèò èìÿ îïðåäåëåííîé ôóíêöèè. Åñëè âûçâàíà îïðåäåëåííàÿ òàêèì îáðàçîì ôóíêöèÿ, åå ïàðàìåòðû áóäóò âû÷èñëåíû è îãðàíè÷åíû (ïîäîãíàíû) ïàðàìåòðàìè ñèìâîëîâ. Ëîêàëüíûå ñèìâîëû ìîãóò ïðèìåíÿòüñÿ â ôóíêöèè áåç èçìåíåíèÿ èõ ñâÿçè íà âíåøíèõ óðîâíÿõ. Ïîñëå âû÷èñëåíèÿ ðåçóëüòàòà ïîñëåäíåãî âûðàæåíèÿ, ôóíêöèÿ áóäåò ââåäåíà. Âñå ïðåäûäóùèå âûðàæåíèÿ â ôóíêöèè èìåþò ïîáî÷íûé ýôôåêò. Ñàìà ôóíêöèÿ DEFUN ââîäèò èìÿ îïðåäåëåííîé ôóíêöèè. Íàïðèìåð:

(defun add (x y)

(+ x y)

)

(add 10 5) ââîäèò 15

(add -7. 4) ââîäèò 2,60000

è

(defun dots (x y/temp)

(setq temp (strcat x "..."))

(strcat temp y)

)

(dots "a" "b") ââîäèò "à...b"

(dots "from" "to") ââîäèò "from...to"

Íèêîãäà íå ïðèìåíÿéòå èìÿ âñòðîåííîé ôóíêöèè èëè ñèìâîëà â êà÷åñòâå <sym>, ïîñêîëüêó ýòî ñäåëàåò âñòðîåííóþ ôóíêöèþ íåäîñòóïíîé.

4.37.1. Ôóíêöèè áèáëèîòåê è àâòîìàòè÷åñêàÿ çàãðóçêà

Îïðåäåëåíèÿ ôóíêöèé ìîãóò õðàíèòüñÿ â ôàéëå è çàãðóæàòüñÿ ïðè ïîìîùè ôóíêöèè LOAD ÀâòîËÈÑÏà (ýòà ôóíêöèÿ îïèñàíà äàëüøå â ýòîé ãëàâå). Åñëè ñóùåñòâóåò ôàéë "acad.lsp", ÀâòîËÈÑÏ áóäåò çàãðóæàòü åãî àâòîìàòè÷åñêè êàæäûé ðàç ïðè ââåäåíèè ãðàôè÷åñêîãî ðåäàêòîðà ÀâòîÊÀÄà; âû ìîæåòå ïðèìåíÿòü ýòó ôóíêöèþ äëÿ ñîçäàíèÿ áèáëèîòåêè ïîëåçíûõ ôóíêöèé è äëÿ ñîçäàíèÿ ãàðàíòèè ïðèñóòñòâèÿ ýòîé áèáëèîòåêè.

4.37.2. Ôóíêöèè Ñ:õõõ - äîïîëíåíèå êîìàíä ÀâòîÊÀÄà

Âû ìîæåòå ââåñòè äîïîëíèòåëüíûå êîìàíäû â ÀâòîÊÀÄ, ïðèìåíÿÿ ôóíêöèþ DEFUN äëÿ îïðåäåëåíèÿ ôóíêöèé, ââîäÿùèõ â ðàáîòó ýòè êîìàíäû. Äëÿ òîãî, ÷òîáû ïðèìåíÿòüñÿ êàê êîìàíäû ÀâòîÊÀÄà, ýòè ôóíêöèè äîëæíû ïðèäåðæèâàòüñÿ ñëåäóþùèõ ïðàâèë:

1. Ôóíêöèÿ äîëæíà èìåòü èìÿ ñëåäóþùåé ôîðìû: "Ñ:ÕÕÕ", ãäå âñå áóêâû - âåðõíåãî ðåãèñòðà. ×àñòü èìåíè "Ñ" äîëæíà ïðèñóòñòâîâàòü âñåãäà, ÷àñòü "ÕÕÕ" ìîæåò áûòü èìåíåì êîìàíäû ïî âàøåìó âûáîðó, ïðè óñëîâèè, ÷òî îíà íå äóáëèðóåò íèêàêèõ êîìàíä ÀâòîÊÀÄà, âñòðîåííûõ èëè âíåøíèõ.

2. Ôóíêöèÿ äîëæíà áûòü îïðåäåëåíà ñ íóëåâûì ñïèñêîì ïàðàìåòðîâ (íî ëîêàëüíûå ñèìâîëû ìîãóò ïðèñóòñòâîâàòü).

Íàïðèìåð, ôóíêöèÿ: íàðèñîâàòü êâàäðàò ïðè ïîìîùè Ïîëèëèíèé îïðåäåëÿåò ñëåäóþùåå:

(defun C:PSQUARE ('pt1 pt2 pt3 pt4 len)

(setq pt1 (getpoint "Lower left corner:"))

(setq len (getdist pt1 "Length of one side:"))

(setq pt2 (polar pt1 0.0 len))

(setq pt3 (polar pt2 ('PI 2.0) len))

(setq pt4 (polar pt3 PI len))

(Command "PLINE" pt1 pt2 pt3 pt4 "C")

)

Ôóíêöèè, îïðåäåëåííûå òàêèì îáðàçîì, ìîãóò áûòü âûçâàíû ïðîñòî ââåäåíèåì ÷àñòè "ÕÕÕ" èìåíè ôóíêöèè, ïðè ïîÿâëåíèè ïîäñêàçêè ÀâòîÊÀÄà "Command:". Åñëè "ÕÕÕ" - íåèçâåñòíàÿ êîìàíäà, ÀâòîÊÀÄ ïîïûòàåòñÿ âûçâàòü ôóíêöèþ ÀâòîËÈÑÏà "Ñ:ÕÕÕ" áåç ïàðàìåòðîâ. Íàïðèìåð, ïðè ôóíêöèè C:PSQUARE äèàëîã áóäåò ñëåäóþùèì:

Ñommand: PSQUARE

Lower left corner: (enter a point)

Íèæíèé ëåâûé óãîë: (ââåäèòå òî÷êó)

Length of one side: (enter a distance)

Äëèíà ñòîðîíû: (ââåäèòå ðàçìåð)

Çàòåì ôóíêöèÿ âûçîâåò êîìàíäó ÀâòîÊÀÄà PLINE è ââåäåò â åå ïîäñêàçêè: íàðèñîâàòü æåëàåìûé êâàäðàò. Äîáàâëåíèå òàêèì îáðàçîì êîìàíäû â ÀâòîÊÀÄ - î÷åíü ìîùíîå ñâîéñòâî ÀâòîËÈÑÏà. Îäíàæäû îïðåäåëåííàÿ, íîâàÿ êîìàíäà ìîæåò èñïîëüçîâàòü âñå ñâîéñòâà, ïðåäîñòàâëÿåìûå ÀâòîËÈÑÏîì. Ôàêòè÷åñêîå ïðèìåíåíèå íîâîé êîìàíäû íå òðåáóåò îêðóæåíèÿ èìåíè êîìàíäû ïàðàìåòðàìè, òàê ÷òî ýòà ââåäåííàÿ ÀâòîËÈÑÏîì êîìàíäà, ïðèìåíÿåòñÿ òàêæå, êàê è ëþáàÿ äðóãàÿ êîìàíäà ÀâòîÊÀÄà.

4.38.(distance <pt1><pt2>)

Ýòà ôóíêöèÿ ââîäèò ðàññòîÿíèå ìåæäó 2D òî÷êàìè <pt1> è <pt2>, ãäå 2D òî÷êà - ñïèñîê èç äâóõ äåéñòâèòåëüíûõ ÷èñåë.

Íàïðèìåð:

(distance '(1.0 2.5) '(7.7 2.5)) ââîäèò 6.700000

(distance '(1.0 2.5) '(3.0 4.0)) ââîäèò 2.828427

4.39. (eq <expr1> <expr2>)

Ýòà ôóíêöèÿ îïðåäåëÿåò, èäåíòè÷íû ëè <expr1> è <expr2>, òî åñòü, îíè ôàêòè÷åñêè ãðàíè÷àò ñ îäíèì è òåì æå îáúåêòîì (íàïðèìåð,SETQ). EQ ââîäèò T, åñëè äâà âûðàæåíèÿ èäåíòè÷íû, â ïðîòèâíîì ñëó÷àå ââîäèòñÿ íîëü. Îáû÷íî îíà ïðèìåíÿåòñÿ äëÿ îïðåäåëåíèÿ ôàêòè÷åñêîé èäåíòè÷íîñòè äâóõ ñïèñêîâ. Íàïðèìåð, äàíû ñëåäóþùèå íàçíà÷åíèÿ:

(setq f1 '(a b c))

(setq f2 '(a b c))

(setq f3 f2)

òîãäà:

(eq f1 f2) ââîäèò íîëü (f1 è f2 - íå îäèí è òîò æå ñïèñîê!)

(eq f3 f2) ââîäèò T (f3 è f2 - àáñîëþòíî îäèíàêîâûå ñïèñêè!)

Ñì. òàêæå ôóíêöèþ EQUAL.

4.40 (equal <expr1><expr2>)

Ýòà ôóíêöèÿ îïðåäåëÿåò, ðàâíû ëè <expr1> è <expr2>, ò.å. âû÷èñëÿþòñÿ ëè îíè ê îäíîìó ïðåäìåòó. Íàïðèìåð, çàäàíû ñëåäóþùèå íàçíà÷åíèÿ:

(setq f1 '(a b c))

(setq f2 '(a b c))

(setq f3 f2)

òîãäà:

(equal f1 f2) ââ&i



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-04-01 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: