帮忙编写个lisp语言程序(简单的数字加减)

帮忙编写个lisp语言程序(简单的数字加减),第1张

已为你写好程序,功能比你要求的还要好

(print "图号修改(型如GCGS2010-165-19,若为多行文字请先炸开),命令:thxg")

(defun c:thxg(/ all endno aa bb cc wz tha thh thq th srz)

(if (null xzz) (setq xzz 0))

(setq srz(getint (strcat "输入修正值<" (itoa xzz) ">:")))

(if (not (null srz)) (setq xzz srz))

(setq ALL (ssget(list (cons 0 "text"))))

(if all (SETQ nn (SSLENGTH ALL)))

(print (strcat "设定的修改值为:" (itoa xzz)))

(setq endno 0)

(WHILE (and (<endno nn) all)

(setq aa (ssname all endno))

(setq bb (entget aa))

(setq cc(cdr(assoc 1 bb)))

(setq wz(rinstr cc "-"))

(setq tha(substr cc (+ wz 1) ( - (strlen cc) wz -1)))

(setq thh(itoa (+ (atoi tha) xzz)))

(setq thq (substr cc 1 wz))

(setq th(strcat thq thh))

(setq bb (subst (cons 1 th) (assoc 1 bb) bb))

(entmod bb)

(print (strcat cc "已修改为" th))

(setq endno (+ endno 1))

)

(print)

)

(defun rinstr(str cset / len i aa)

(if (>(strlen str) 0)

(progn

(setq i (strlen str))

(setq aa(substr str (strlen str) 1))

(while (and (/= aa cset) (>= i 1))

(setq i(1- i))

(setq aa(substr str i 1))

)

)

)

(setq i i)

)

方法/步骤

创建一个cad,新建一个工程,如下图所示。

在lisp编辑器中编写一下程序,程序的作用为计算线段总长度,并选择另存为位置,保存文件lsp文件。

使用cad加载lsp文件,选择lsp文件位置。

在命令栏点击l,用cad绘制几条线段,如下图所示。

在命令栏输入ll,选择所有线段,则在图下计算并显示出了所有线段的总长度,如下图所示。

用lisp的代码为(defun c:LL ()

(setvar "cmdecho" 1)

(setq en (ssget (list '(0 . "spline,arc,line,ellipse,LWPOLYLINE"))))

(setq i 0)

(setq ll 0)

(repeat (sslength en)

(setq ss (ssname en i))

(setq endata (entget ss))

(command "lengthen" ss "")

(setq dd (getvar "perimeter"))

(setq ll (+ dd ll))

(setq i (1+ i))

)

(princ "所选线条总长为:")(princ ll)(princ)

)

你想具体问哪一方面呢?是CommonLisp吗?和用其他语言写程序基本是一样的,只不过lisp的macro太灵活啦,这个要自己好好体味一段时间。

如果你想问的是如何起步的话,那么可以这样:

(1)选择一本书,推荐两本,分别是“land of lisp”和“practical common lisp”你如果想要的话我这有这两本书的pdf可以发给你

(2)选择一款编辑器或IDE,你可以用eclipse架设lisp的开发环境,但前段时间我试了一下,由于eclipse的版本现在高于那款lisp环境插件的版本,所以现在新版的eclipse用不了lisp的环境了,但推荐用编程界的两大神器之一:Emacs,你可以上网搜一下,关于它的资料有很多(用google,别用百度),它直接由lisp模式,但如果你想要诸如括号匹配,括号高亮什么的.......我可以把那部分的.emcas文件发给你...........当然很多人编写lisp的都会给emacs装上一款slime插件,网上也有别人帮你装好的一套,可以直接下载,直接用,那么如果你想要那个的话,在google中搜索lispbox

(3)多用google..............

--------------------------------------------------------------------------------------

如果你问的是画CAD的lisp,那这个我就不太懂啦..........


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12140268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存