龙空技术网

#带你学lisp#

风云7000 269

前言:

眼前朋友们对“数据结构算法lisp”大体比较关怀,我们都想要学习一些“数据结构算法lisp”的相关资讯。那么小编也在网络上网罗了一些对于“数据结构算法lisp””的相关资讯,希望姐妹们能喜欢,小伙伴们快快来了解一下吧!

今天给大家来个稍微有点难度的,是一个画边框的LISP程序。带分号的是解释,不影响程序运行,程序如下:

;定义函数 /后面的参数是临时用用,这个函数一关闭,参数赋值就自动消失

在桌面上建立一个文本文件 pbox.lsp,打开输入:

(defun c:pbox (/ pa pb pc pd ww hh mp1 mp2 mp3 mp4)

;cmdecho 关闭指令响应,函数运行时 AutoCAD 是否回显提示和输入:0.关闭回显 1.打开回显

(setvar "cmdecho" 0)

;blipmode 控制显示点十字标志,0是不显示,1是显示

(setvar "blipmode" 0)

;以下 pa、ww、hh 值須由使用者輸入

(setq pa (getpoint "矩形框请输入左下角点:"))

(setq ww (getdist pa "\n请输入矩形框宽度:")) ;\n是指在命令行输入数据时换行,通用做法

(setq hh (getdist pa "\n请输入矩形框高度:"))

;以下pb、pc、pd值須由程式依據pa、ww、hh求出

;pb点(polar(距离)pa点 0 度方向 ww 矩形框的宽度 ),以下是一个意思,角度是弧度

(setq pb (polar pa 0 ww))

(setq pc (polar pb (/ pi 2) hh))

(setq pd (polar pc pi ww))

;以下依據 pa、pb、pc、pd 點畫矩形

(command "pline" pa pb pc pd "c")

;以下mp1、mp2、mp3、mp4值須由程式依據pa、ww、hh ;& pb、pc、pd 值求出

(setq mp1 (polar pa 0 (/ ww 2)))

(setq mp2 (polar pb (/ pi 2) (/ hh 2)))

(setq mp3 (polar pd 0 (/ ww 2)))

(setq mp4 (polar pa (/ pi 2) (/ hh 2)))

;以下依據 mp1、mp2、mp3、mp4 點畫出二條線

(command "line" mp1 mp3 "")

(command "line" mp2 mp4 "")

;prin1 (prin1)与(princ)功能一样,表示程序结束

(prin1)

) ;end defun

好了,保存关闭 ,在autocad 环境下,管理—加载lisp程序,成功

在命令行输入 pbox

按要求输入角点(可以指定,比如10,20回车)宽度比如10,高度比如20

方框就画出来了。

学好lisp,可以节省很大人力,这是我刚编好的一个桩板结构,几秒钟就ok ,要是徒手画,怎么也得20分钟。

标签: #数据结构算法lisp