体育资讯网

您现在的位置是:首页 > 分类12 > 正文

分类12

lisp源码100例(lisp代码库)

hacker2022-11-13 19:30:20分类12132
本文目录一览:1、一段cad的lisp代码修改。2、

本文目录一览:

一段cad的lisp代码修改。

(defun c:autodimlines ()

(setq ss (ssget '((0 . "line"))))

(setq number (sslength ss))

(setq i 0)

(repeat number

(setq entname (ssname ss i))

(setq ent (entget entname))

(setq point_a (cdr (assoc 10 ent)))

(setq point_b (cdr (assoc 11 ent)))

(setq d (* -0.2 (distance point_a point_b)))

(command "dimaligned" point_a point_b point_b)

(setq ent (entget(entlast)))

(setq x1 (car point_a) y1 (cadr point_a) x2 (car point_b) y2 (cadr point_b))

(setq point (calculate_dalposition x1 y1 x2 y2 d))

(entmod (subst (cons 10 point) (assoc 10 ent) ent) )

(setq i (+ i 1))

)

)

(defun calculate_dalposition (x1 y1 x2 y2 d)

(if (/= (- y2 y1) 0)

(progn

(setq k (/ (- x1 x2) (- y2 y1)) )

(setq thita (atan k))

(if ( thita 0)

(setq thita1 (+ 3.1415926 thita) thita2 (* -1 thita))

(setq thita1 thita thita2 thita)

)

(setq x (- x2 (* d (cos thita1))))

(setq y (- y2 (* d (sin thita2))))

(list x y)

)

(progn

(setq y (- y2 d) x x2)

(list x y)

)

)

)

不知道cad能运行不 浩辰 可以

怎么能将Lisp代码编译成EXE文件??

为什么要编译成exe文件呢?要让其在所有的windows上都能运行?

【首先】:lisp是脚本语言,所以它是跨平台的,也就是说它不需要被编译成exe文件,就能在所以机器上运行。

【方法】这方法有点笨,但是很好,也适用于想把java转exe苦苦挣扎的人们

方法就是:写一个bat文件

【bat文件的内容】文件名暂定为run.bat

.\clispfolder\clisp programname

PAUSE

【注】

(1)一定要用反斜杠

(2)clispfolder 为你的lisp的解释器的文件夹的名字

(3)clisp 为你的解释器的名字(就是clispfolder中那个exe文件)

(4)programname为你的lisp程序的名字,貌似带不带后缀都可以。

(5)用记事本写完上面两行东东后,将其存为.bat格式

【然后的操作】

随便建一个文件夹,这个文件夹中要放进去三个东东

(1)你的lisp的源代码

(2)你的lisp的完整的解释器,就是讲clispfolder完整的拷贝到这个文件夹即可

(3)刚才写的那个bat文件

【之后】

你就可以带着这个文件夹满世界跑啦,在“所有”的windows中,双击那个bat文件,即可运行你写的lisp啦..................................

【此方法的缺点】

(1)那个clispfolder太大,如果你只是写一个不到1M的lisp的话,那这种方法很臃肿

(2)这种方法貌似不适用于用lisp写windows的@病#毒!

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

不过这个方法可靠,简单!

求一个可以实现多段线(多义线)局部串接的lisp函数,顺便留一下源码。这个貌似比较麻烦,先谢谢了

详细说明:一个求多义线各段参数(如果是弧段则有半径弧长)的lisp程序 编号 1:凸度lisp源码100例,2:弦长或直段长lisp源码100例,3:半径lisp源码100例,4:弧长,5:圆心-- 加载程序,运行bulge,则显示上述参数-A request polyline paragraphs parameters (if there arc radius of the arc length) of the lisp program number 1: crown, 2: string length or long straight section, 3: radius, 4: arc length, 5: center of a circle-- load the program, run bulge, then display the above parameters

[Became Uploading member to download this file] [Became VIP member to download this file]

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

;;;已为你写好程序lisp源码100例,功能比你要求lisp源码100例的还要好

(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)

)

发表评论

评论列表

  • 莣萳辞慾(2022-11-14 00:02:56)回复取消回复

    tq endno (+ endno 1)) ) (print));;;(defun rinstr(str cset / len i aa) (if ( (strlen str) 0)

  • 鸠骨俛就(2022-11-13 21:42:33)回复取消回复

    (assoc 11 ent)))(setq d (* -0.2 (distance point_a point_b)))(command "dimaligned" point_

  • 酒奴债姬(2022-11-14 01:52:30)回复取消回复

    为你的lisp的解释器的文件夹的名字(3)clisp 为你的解释器的名字(就是clispfolder中那个exe文件)(4)programname为你的lisp程序的名字,貌似带不带后