LisPlink是一種技術(shù),它可以幫助企業(yè)和個人輕松地創(chuàng)建、管理和自動化復(fù)雜的分布式應(yīng)用程序。LisPlink使用一種叫做“鏈接”的概念,將多個云端服務(wù)或者數(shù)據(jù)存儲連接在一起,從而實現(xiàn)共享數(shù)據(jù)、合作實時通信、自動化工作流以及其他復(fù)雜的工作流。LisPlink也可以用于監(jiān)控大量數(shù)據(jù)并根據(jù)特定標準進行分類,這樣就能夠快速識別出特征性信號并對其進行相應(yīng)的響應(yīng)。
autolisp是一款由autodesk開發(fā)的一種叫做LISP的程序語言,全稱是List Processor,通過這款軟件工程師們能夠節(jié)省很多的時間在CAD工具的制作上,這樣工程師們就有足夠多和好的工具來幫助自己進行工程的設(shè)計。
LisPlink數(shù)學(xué)運算
任何編程語言都提供數(shù)學(xué)函數(shù)。在AutoLISP中,同樣提供了編程以及數(shù)學(xué)計算所需的大部分數(shù)學(xué)函數(shù),你可以使用AutoLISP對數(shù)字進行加、減、乘、除運算,還可以得到以弧度表示的角度的正弦值、余弦值及反正切值等。使用AutoLISP還可以進行許多其他計算。這一節(jié)主要討論AutoLISP程序語言支持的常用數(shù)學(xué)函數(shù)。
加法
格式(+ num1 num2 num3...)
此函數(shù)(+)計算加號(+)右邊所有數(shù)字的和(+ num1 num2 num3...)。這些數(shù)字可以是整數(shù)或?qū)崝?shù)。如果均為整數(shù),則和為整數(shù);如果均為實數(shù),則和為實數(shù)。但是如果既有整數(shù)又有實數(shù),則和為實數(shù)。如下所示,在前兩個例子中,所有數(shù)字均為整數(shù),所以結(jié)果是整數(shù)。在第三個例子中,一個是實數(shù)(50.0),故結(jié)果為實數(shù)。
示例:
Command:(+2 5)返回 7
Command:(+2 30 4 50)返回86
Command:(+2 30 4 50.0)返回 86.0
減法
格式(- num1 num2 num3...)
此函數(shù)(-)從第一個數(shù)中減去第二個數(shù)(num1-num2)。如果多于兩個數(shù),就用第一個數(shù)字減去其后所有數(shù)字的和[num1-(num2+num3...)]。在下面的第一個例子中,28減去14后返回14。因為兩個數(shù)均為整數(shù),結(jié)果亦為整數(shù)。在第三個例子中20與10.0相加,并用50減去兩數(shù)的和(30.0),返回一個實數(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ù)(*)計算乘號右邊所有數(shù)字的乘積( num1×num2×num3...)。若均為整數(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ù)(/)用第一個數(shù)除以第二個數(shù)。如果多于兩個數(shù),就用第一個數(shù)除以其后所有數(shù)的乘積[num1/(num2 × num3 ×...)]。在下面的第四個例子中,用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表達式
在程序中,通常都需要測試某些特定的條件。若條件為真,程序執(zhí)行某些功能,若不為真,執(zhí)行另外一些功能。例如,條件表達式(if(< X 5)),若變量x的值小于5,測試結(jié)果為真。編程過程中經(jīng)常要用到這種類型的測試條件。本節(jié)討論在AutoLISP編程中要用到的各種關(guān)系表達式。
等于
格式(= atom1 atom2…)
該函數(shù)(=)檢查兩個元素是否相等。若相等,條件為真,函數(shù)返回T。同樣,若指定的元素不相等,條件為假,函數(shù)返回nil。
示例:
(= 5 5)返回T
(= 5 49)返回nil
(= 5.5 5.5 5.5)返回T
(= "yes"“yes”)返回T
(=“yes" "yes" “no”)返回nil
不等于
格式(/= atom1 atom2…)
該函數(shù)(/=)檢查兩個元素是否不相等。若不相等,條件為真,函數(shù)返回T。同樣,若指定的元素相等,條件為假,函數(shù)返回nil。
示例:
(/=50 4)返回T
(/= 50 50)返回nil
(/= 50 -50)返回T
(/= “yes” “no”)返回T
小于
格式(該函數(shù)(<)檢查第一個元素(atoml)是否小于第H個元素(atomZ)。若為真,函數(shù)返回T,否則返回nil。
示例:
(< 3 5)返回T
(< 5 3 4)返回nil
(< “x” “y”)返回T
小于等于
格式(<= atom1 atom2...)
該函數(shù)(<=)檢查第一個元素(atom1)是否小于等于第二個元素(atom2),若是,函數(shù)返回T,否則返回nil。
示例:
(<= 10 15)返回T
(<=“c”“b”)返回nil
(<= 2.0 0)返回T
大于
格式(> atom1 atom2…)
該函數(shù)(>)檢查第一個元素(atom1) 是否大于第二個元素(atom2)。若是,函數(shù)返回T,否則返回nil。在下面第一個例子中,15大于10,因此,關(guān)系表達式為真,且函數(shù)返回T。在第二個例子中,10大于9,但9并不大于其后的9,因此函數(shù)返回nil。
示例:
(> 15 10)返回T
(>10 9 9)返回nil
(>“c”“b”)返回T
大于等于
格式(>= atom1 atom2…)
該函數(shù)(>=)檢查第一個元素(atom1)的值是否大于等于第二個元素(atom2)。若是,函數(shù)返回T,否則返回nil。在下面第一個例子中,78大于但木等于50,因此,函數(shù)返回T。
示例:
(>= 78 50) 返回T
(>= "x"“y") 返回nil
abs 返回參數(shù)的絕對值
(abs number)
參數(shù) number
返回值 參數(shù)的絕對值
示例 (abs 100) 返回100
(abs -3) 返回3
acad_colordlg
顯示標準的AutoCAD顏色選擇對話框
(acad_colordlg colornum [flag])
參數(shù)
colornum
整數(shù),其取值范圍是 0-256 (包括 0 和 256),它用于指定顏色對話框的缺省的顏色代碼。
flag
如可選參數(shù) flag 設(shè)為 nil,禁用“隨層”和“隨塊”按鈕;省略 flag 參數(shù)或?qū)⑵湓O(shè)為非 nil 值,則可啟用“隨層”和“隨塊”按鈕。
colornum 為 0 時代表 BYBLOCK(隨塊),為 256 時代表 BYLAYER(隨層)。
用戶所選擇的顏色代碼,如果用戶取消該對話框則返回 nil。
示例
下列代碼提示用戶選擇一種顏色,如果不選則指定綠色為缺省顏色:
(acad_colordlg 3)
acad-pop-dbmod
恢復(fù) DBMOD 系統(tǒng)變量的值到最近用 acad-push-dbmod 保存的值
(acad-pop-dbmod) 該函數(shù)使用 acad-push-dbmod 控制 DBMOD 系統(tǒng)變量。DBMOD 系統(tǒng)變量跟蹤圖形的修改狀態(tài)和觸發(fā)保存圖形請求。
如果成功時返回 T;否則,如果堆棧為空時,返回 nil。
acad-push-dbmod
儲存 DBMOD 系統(tǒng)變量的當(dāng)前值
(acad-push-dbmod)
該函數(shù)使用 acad-pop-dbmod 來控制 DBMOD 系統(tǒng)變量。用戶可使用該函數(shù)來更改圖形而保持 DBMOD 系統(tǒng)變量不變。DBMOD 系統(tǒng)變量跟蹤圖形的修改狀態(tài)和觸發(fā)保存圖形請求。
該函數(shù)在 acapp.arx 中實現(xiàn),acapp.arx 默認狀態(tài)下是加載的。該函數(shù)可將 DBMOD 系統(tǒng)變量的當(dāng)前值轉(zhuǎn)到內(nèi)部堆棧。要使用 acad-push-dbmod 和 acad-pop-dbmod,必須先進行 acad-push-dbmod 操作,再使用 acad-pop-dbmod 來恢復(fù) DBMOD 系統(tǒng)變量的初始狀態(tài)。
總是返回 T。
autolisp功能
1.AutoLISP語言是在普通的LISP語言基礎(chǔ)上,擴充了許多適用于CAD應(yīng)用的特殊功能而形成的,一種僅能以解釋方式運行于AutoCAD內(nèi)部的解釋性程序設(shè)計語言。
2.AutoLISP語言中的一切成分都是以函數(shù)的形式給出的,它沒有語句概念或其他語法結(jié)構(gòu)。執(zhí)行AutoLISP程序就是執(zhí)行一些函數(shù),再調(diào)用其他函數(shù)。
3.AutoLISP把數(shù)據(jù)和程序統(tǒng)一表達為表結(jié)構(gòu),即S-表達式處理,故也可把程序當(dāng)作數(shù)據(jù)來處理,也可把數(shù)據(jù)當(dāng)作程序來執(zhí)行。
4.AutoLISP語言中的程序運行過程就是對函數(shù)求值過程,是在對函數(shù)求值過程中實現(xiàn)函數(shù)功能。
5.AutoLISP語言的主要控制結(jié)構(gòu)是采用遞歸方式。遞歸方式的使用,使得程序設(shè)計簡單易懂。
LisPlink特點
1、AutoLISP語言是在普通LISP語言前提下,又擴大了很多適用CAD運用的作用而形成的一種編程設(shè)計語言。它是一種實證性求值語言,速度較慢,無法信息保密,可以用一切文字編輯軟件編寫,用純文本的格式儲存。比如:
(setqi1);便是編碼i值是1
(command"CIRCLE""(00)100);指令在坐標原點制作半經(jīng)100的圓。
2、AutoLISP語言里的一切成份都以函數(shù)方式給的,本身沒有句子定義或其它句法結(jié)構(gòu)。實行AutoLISP程序流程便是實行一些函數(shù),再啟用其他函數(shù)。比如:
(setqpt1(getpoint"
挑選圓心點插入點"))
(command"CIRCLE"pt1100);指令這一插入點制作圓,半經(jīng)為100
3、AutoLISP語言中程序執(zhí)行過程便是對函數(shù)求值的過程,是在對函數(shù)求值的過程中獲得函數(shù)的功效。在AutoCAD里邊,每一個目標能夠當(dāng)做是通過成千上萬一個點組成,每一個點都有各自的座標,函數(shù)的運轉(zhuǎn)便是算出這種點標值,依據(jù)獲得的數(shù)值作出判斷。
4、AutoLISP語言的重要系統(tǒng)結(jié)構(gòu)采用的是遞歸方法。遞歸方法的應(yīng)用,促使編程設(shè)計通俗易懂。比如:
(setq&k1(entsel));選擇點
(setq&k1(car&k1));獲取圖元
(setq#g1(entget&k1));獲得特性目錄
(setqc0(cdr(assoc0#g1)));獲得圖元名字
以上就是一個個的記錄下來,能夠?qū)懗鱿铝校?br />
(setqc0(cdr(assoc0(entget(car(entsel))))));通俗易懂
5、因為autolisp簡易,非常容易,因此入門迅速。進行程序編寫后,能夠極大地提升制圖高效率,著名的【天正】軟件,便是制圖的好伙伴。
6、autolisp程序流程也是有不足之處,如獲取座標,這一必須要在圖元特性里邊獲取,那樣的話會出現(xiàn)局限,反向座標1與-1的平面坐標同樣,可是圖形部位不一樣,導(dǎo)致測算座標的難題,因此獲取平面坐標,建議使用VLAX函數(shù)來獲取。
以上便是KKX小編給大家分享介紹的Autolisp程序編寫工具!