當(dāng)前位置:首頁(yè) > 電腦軟件 > 編程軟件 > Lisplink(Autolisp程序編寫工具)

Lisplink(Autolisp程序編寫工具)

版本:v22.01 大?。?47K 語(yǔ)言:英文 類別:編程軟件
  • 類型:國(guó)外軟件
  • 授權(quán):免費(fèi)軟件
  • 更新:2023-12-24
  • 環(huán)境:Windows11,Windows10,Windows8,Windows7
  • 本地下載
9
0% 0%

情介紹

autolisp是一款由autodesk開發(fā)的一種叫做LISP的程序語(yǔ)言,全稱是List Processor,通過(guò)這款軟件能夠節(jié)省很多的時(shí)間在CAD工具的制作上,這樣工程師們就有足夠多和好的工具來(lái)幫助自己進(jìn)行工程的設(shè)計(jì)。
autolisp作為嵌入在AutoCAD內(nèi)部的具有智能特點(diǎn)的編程語(yǔ)言,是開發(fā)和應(yīng)用AutoCAD不可或缺的工具,特別是AutoCAD軟件中包含大多數(shù)用于產(chǎn)生圖形的命令,但是卻還是有些命令違背提供,例如AutoCAD中沒(méi)有在圖形文本對(duì)象內(nèi)回執(zhí)舉行及全局改變的命令。這時(shí)候,autolisp就能夠派上用場(chǎng)了,開發(fā)人員可以利用軟件編制能夠在圖形文本對(duì)象內(nèi)回執(zhí)舉行或作全局選擇性的改變的程序。當(dāng)然,我們的這款軟件不僅僅只有這么一個(gè)作用,你也可以直接將autolisp嵌入到菜單中,這樣你的系統(tǒng)會(huì)獲得更高的開發(fā)效率。

autolisp特點(diǎn)

1、AutoLISP語(yǔ)言是在普通的LISP語(yǔ)言基礎(chǔ)上,又?jǐn)U充了許多適用于CAD應(yīng)用的功能而形成的一種程序設(shè)計(jì)語(yǔ)言。它是一種解釋性求值語(yǔ)言,速度較慢,難以保密,可用任何文字編輯軟件編輯,用純文本的格式保存。例如:
(setq i 1);就是代碼i值是1
(command "CIRCLE" '(0 0) 100);命令在坐標(biāo)原點(diǎn)繪制半徑100的圓。
2、AutoLISP語(yǔ)言中的一切成分都是以函數(shù)形式給出的,它沒(méi)有語(yǔ)句概念或其他語(yǔ)法結(jié)構(gòu)。執(zhí)行AutoLISP程序就是執(zhí)行一些函數(shù),再調(diào)用其它函數(shù)。例如:
(setq pt1 (getpoint "\n請(qǐng)選擇圓心插入點(diǎn)"))
(command "CIRCLE" pt1 100);命令這個(gè)插入點(diǎn)繪制圓,半徑為100
3、AutoLISP語(yǔ)言中程序運(yùn)行過(guò)程就是對(duì)函數(shù)求值的過(guò)程,是在對(duì)函數(shù)求值的過(guò)程中實(shí)現(xiàn)函數(shù)的功能。在AutoCAD里面,所有的對(duì)象可以看成是由無(wú)數(shù)的點(diǎn)構(gòu)成,每個(gè)點(diǎn)都有自己的坐標(biāo),函數(shù)的運(yùn)行就是計(jì)算出這些點(diǎn)的數(shù)值,根據(jù)得到的數(shù)值進(jìn)行判斷。
4、AutoLISP語(yǔ)言的主要控制結(jié)構(gòu)是采用遞歸方式。遞歸方式的使用,使得程序設(shè)計(jì)簡(jiǎn)單易懂。例如:
(setq &k1 (entsel));選擇對(duì)象
(setq &k1 (car &k1));提取圖元
(setq #g1 (entget &k1));取得屬性列表
(setq c0 (cdr (assoc 0 #g1)));取得圖元名稱
以上是一個(gè)個(gè)的寫下來(lái),可以寫成以下:
(setq c0 (cdr (assoc 0 (entget (car (entsel))))));簡(jiǎn)單易懂
5、由于autolisp簡(jiǎn)單,容易,所以上手很快。編寫程序后,可以大大的提高繪圖效率,有名的【天正】插件,就是繪圖的好幫手。
6、autolisp程序也有不足的地方,如提取坐標(biāo),這個(gè)只能在圖元屬性里面提取,這樣的話會(huì)有局限性,法向坐標(biāo)1與-1的坐標(biāo)值相同,但是圖形的位置不同,造成計(jì)算坐標(biāo)的困難,所以提取坐標(biāo)值,最好使用VLAX函數(shù)來(lái)提取。

autolisp數(shù)學(xué)運(yùn)算

任何編程語(yǔ)言都提供數(shù)學(xué)函數(shù)。在AutoLISP中,同樣提供了編程以及數(shù)學(xué)計(jì)算所需的大部分?jǐn)?shù)學(xué)函數(shù),你可以使用AutoLISP對(duì)數(shù)字進(jìn)行加、減、乘、除運(yùn)算,還可以得到以弧度表示的角度的正弦值、余弦值及反正切值等。使用AutoLISP還可以進(jìn)行許多其他計(jì)算。這一節(jié)主要討論AutoLISP程序語(yǔ)言支持的常用數(shù)學(xué)函數(shù)。
加法
格式(+ num1 num2 num3...)
此函數(shù)(+)計(jì)算加號(hào)(+)右邊所有數(shù)字的和(+ num1 num2 num3...)。這些數(shù)字可以是整數(shù)或?qū)崝?shù)。如果均為整數(shù),則和為整數(shù);如果均為實(shí)數(shù),則和為實(shí)數(shù)。但是如果既有整數(shù)又有實(shí)數(shù),則和為實(shí)數(shù)。如下所示,在前兩個(gè)例子中,所有數(shù)字均為整數(shù),所以結(jié)果是整數(shù)。在第三個(gè)例子中,一個(gè)是實(shí)數(shù)(50.0),故結(jié)果為實(shí)數(shù)。
示例:
Command:(+2 5)返回 7
Command:(+2 30 4 50)返回86
Command:(+2 30 4 50.0)返回 86.0
減法
格式(- num1 num2 num3...)
此函數(shù)(-)從第一個(gè)數(shù)中減去第二個(gè)數(shù)(num1-num2)。如果多于兩個(gè)數(shù),就用第一個(gè)數(shù)字減去其后所有數(shù)字的和[num1-(num2+num3...)]。在下面的第一個(gè)例子中,28減去14后返回14。因?yàn)閮蓚€(gè)數(shù)均為整數(shù),結(jié)果亦為整數(shù)。在第三個(gè)例子中20與10.0相加,并用50減去兩數(shù)的和(30.0),返回一個(gè)實(shí)數(shù)20.0。
示例:
Command:(- 28 14) 返回14
Command:(- 25 7 11)返回7
Command:(- 50 20 10.0)返回20.0
Command:(- 20 30)返回-10
Command:(- 20.0 30.0)返回-10.0
乘法
格式(* num1 num2 num3…)
此函數(shù)(*)計(jì)算乘號(hào)右邊所有數(shù)字的乘積( num1×num2×num3...)。若均為整數(shù),它們的乘積亦為整數(shù);若其中含有一個(gè)實(shí)數(shù),乘積即為實(shí)數(shù)。
示例:
Command:(* 2 5) 返回10
Command:(* 2 5 3) 返回30
Command:(* 25 3 2.0) 返回150.0
Command: (* 2 -5.5) 返回-11.0
Command: (* 2.0 -5.5 -2) 返回22.0
除法
格式( / num1 num2 num3…)
此函數(shù)(/)用第一個(gè)數(shù)除以第二個(gè)數(shù)。如果多于兩個(gè)數(shù),就用第一個(gè)數(shù)除以其后所有數(shù)的乘積[num1/(num2 × num3 ×...)]。在下面的第四個(gè)例子中,用200除以5.0與4的乘積[200/(5.0×4)]。
示例:
Command:(/ 30)返回 30
Command:(/ 3 2)返回1
Command:(/3.0 2) 返回 1.5
Command:(/ 200.0 5.0 4)返回 10.0
Command:(/ 200 -5)返回-40
Command:(/ -200 -5.0)返回40.0

autolisp數(shù)字介紹

增量數(shù)字
格式(1+ number)
此函數(shù)(l+)使數(shù)字與1(整數(shù))相加,返回一個(gè)增加1的數(shù)。在下面的第二個(gè)例子中,1與-10.5相加返回-9.5。
示例:
(1+ 20)返回 21
(1+ -10.5)返回-9.5
減量數(shù)字
格式(1- number)
此函數(shù)(1-)從數(shù)字中減去1(整數(shù)),并返回一個(gè)減去1的數(shù)。在下面的第二個(gè)例子中-10.5減去1返回-11.5。
示例:
(1- 10)返回9
(1- -10.5)返回-11.5
絕對(duì)數(shù)字
格式(abs num)
abs函數(shù)返回一個(gè)數(shù)的絕對(duì)值。該數(shù)可以是整數(shù)或者實(shí)數(shù)。在下面的第二個(gè)例子中,由于-20的絕對(duì)值為20,故函數(shù)返回20。
(abs 20)返回 20
(abs -20)返回20
(abs -20.5)返回20.5

autolisp三角函數(shù)

sin函數(shù)
格式( sin angle)
sin函數(shù)計(jì)算一個(gè)角(以弧度表示)的正弦值。在下面的第二個(gè)例子中,sin函數(shù)計(jì)算Pi(180度)的正弦值并返回0。
示例:
Command:(sin 0)返回0.0
Command:(sin Pi)返回0.0
Command:(sin 1.0472)返回0.866027
cos函數(shù)
格式(cos angle)
cos函數(shù)計(jì)算一個(gè)角(以弧度表示)的余弦值。在下面的第三個(gè)例子中,cos函數(shù)計(jì)算Pi(180度)的余弦值并返回-1.0。
示例:
Command:(cos 0)返回l.0
Command:(cos 0.0)返回1.0
Command:(cos Pi)返回-1.0
Command:(cos 1.0)返回0.540302
atan函數(shù)
格式( atan num1)
atan函數(shù)計(jì)算數(shù)的反正切值,返回角度以弧度表示。下面的第二個(gè)atan函數(shù)計(jì)算1.0的反正切值并返回0.785398(弧度)。
示例:
Command:(atan 0.5)返回0.463648
Command:(atan 1.0)返回0.785398
Command:(atan -1.0)返回-0.785398
兩個(gè)參數(shù)的atan函數(shù)
格式( atan num1 num2)
還可以在atan函數(shù)中再指定一個(gè)數(shù)。若指定了第二個(gè)數(shù),函數(shù)將以弧度形式返回(num1/num2)的反正切值。在下面的第一個(gè)例子中,第一個(gè)數(shù)(0.5)除以第二個(gè)數(shù)(1.0),atan函數(shù)計(jì)算商(0.5/1=0.5)的反正切值。
示例:
Command:(atan 0.5 1.0)返回0.463648弧度
Command:(atan 20 3.0)返回0.588003弧度
Command:(atan 2.0 -3.0)返回2.55359弧度
Command:(atan -2.0 3.00)返回-0.5880033弧度
Command:(atan -2.0 -3.0)返回-2.55359弧度
Command:(atan 1.0 0.0)返回1.5708弧度
Command:(atan -0.5 0.0)返回-1.5708弧度
angtos函數(shù)
格式(angtos angle[made[precision]])
angtos函數(shù)以字符串格式返回以弧度表示的角度值。字符串格式由made和 precision的設(shè)置決定。
示例:
Command:(angtos 0.588003 0 4)返回“33.6901"
Command:(angtos 2.55359 0 4)返回“145.3099"
Command:(angtos 1.5708 0 4)返回“90.0000"
Command:(angtos -1.5708 0 2)返回“270.00"
注意 在(angtos angle[mode[precision]])中:
angle是以弧度表示的角度值。
mode是與AutoCAD系統(tǒng)變量AUNITS相對(duì)應(yīng)的angtos模式。
AutoCAD中可用模式如下:
ANGTOS模式 編輯格式
0 十進(jìn)制角度
1 度/分/秒
2 梯度
3 弧度
4 測(cè)量單位
precision是一個(gè)整數(shù),用于控制小數(shù)的位數(shù),與AutoCAD系統(tǒng)變量AUPREC相對(duì)應(yīng)。 其最小值為0,最大值為4。
在上面的第一個(gè)例子中,angle為0.588003弧度,mode為0(十進(jìn)制角度),precision為4(小數(shù)點(diǎn)后有四位)。函數(shù)返回33.6901。

autolisp功能

1.AutoLISP語(yǔ)言是在普通的LISP語(yǔ)言基礎(chǔ)上,擴(kuò)充了許多適用于CAD應(yīng)用的特殊功能而形成的,一種僅能以解釋方式運(yùn)行于AutoCAD內(nèi)部的解釋性程序設(shè)計(jì)語(yǔ)言。
2.AutoLISP語(yǔ)言中的一切成分都是以函數(shù)的形式給出的,它沒(méi)有語(yǔ)句概念或其他語(yǔ)法結(jié)構(gòu)。執(zhí)行AutoLISP程序就是執(zhí)行一些函數(shù),再調(diào)用其他函數(shù)。
3.AutoLISP把數(shù)據(jù)和程序統(tǒng)一表達(dá)為表結(jié)構(gòu),即S-表達(dá)式處理,故也可把程序當(dāng)作數(shù)據(jù)來(lái)處理,也可把數(shù)據(jù)當(dāng)作程序來(lái)執(zhí)行。
4.AutoLISP語(yǔ)言中的程序運(yùn)行過(guò)程就是對(duì)函數(shù)求值過(guò)程,是在對(duì)函數(shù)求值過(guò)程中實(shí)現(xiàn)函數(shù)功能。
5.AutoLISP語(yǔ)言的主要控制結(jié)構(gòu)是采用遞歸方式。遞歸方式的使用,使得程序設(shè)計(jì)簡(jiǎn)單易懂。

載地址

  • 電腦版
Lisplink(Autolisp程序編寫工具) v22.01

網(wǎng)友評(píng)論

0條評(píng)論
(您的評(píng)論需要經(jīng)過(guò)審核才能顯示)