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