1.CAD显示与隐藏快捷命令---Lisp代码分享(2)
2.怎样用lisp编写程序控制cad
3.谁能帮我写个cad的程程序lisp程序?
4.ç¼åä¸lispç¨åº cad
5.CAD修改颜色命令---Lisp代码分享(3)
CAD显示与隐藏快捷命令---Lisp代码分享(2)
运用Lisp编写几个简便的CAD快捷命令,这些命令将选择相似对象与隔离功能整合,序源将多步骤操作简化为一步完成。程程序同时,序源将图层管理命令整合在一起,程程序增强操作效率。序源财务小程序源码附上完整命令集及其源代码,程程序方便用户学习与交流。序源为便于查阅,程程序前两篇Lisp相关文章也一并提供。序源文章分为三部分:第一部分介绍命令功能,程程序第二部分展示Lisp源代码,序源第三部分说明如何加载与使用这些自定义命令。程程序文章建议用户在记事本中编辑代码,序源并将其另存为my.lsp文件。程程序如果需要运行这些命令,只需在CAD命令行中输入AP,源码诱导app然后选择Lisp文件,成功加载后即可使用。对常使用的命令,可将其添加到启动组中以快速访问。为方便获取完整程序文件,用户可通过关注公众号并回复"Lisp"获取下载链接。后续制作的Lisp命令也会集中在这个文件夹内共享。
怎样用lisp编写程序控制cad
atocad能够使通过LISO编写各种定制度绘图命令,医院 crm 源码从而达到控制绘图的效果。LISP语言(全名LISt Processor,即表处理语言),由约翰·麦卡锡在年左右创造的一种基于λ演算的函数式编程语言。那么如何才能编写LISP程序控制cad绘图呢?本文就此讲解并编写了一个简单的程序,以期对读者起到抛砖引玉的作用。
创建一个cad,新建一个工程,lldb显示源码如下图所示。
在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) )
谁能帮我写个cad的lisp程序?
;矩形中心线
(defun c:jxzxx()
(setq cmd (getvar "cmdecho"))
(setq osm (getvar "osmode"))
(setvar "cmdecho" 0)
(command "undo" "be")
(If (progn
(princ "请选取矩形:")
(setq ssa (ssget":S" '((0 . "lwpolyline") ( . 4) ( . 1))))
)
(progn
(setq dxf (entget (ssname ssa 0)))
(setq pts (mapcar 'cdr (vl-remove-if '(lambda(x)(/= (car x) )) dxf)))
(setq p1 (apply 'mapcar (cons 'min pts)))
(setq p3 (apply 'mapcar (cons 'max pts)))
(setq p2 (list (car p3) (cadr p1)))
(setq p4 (list (car p1) (cadr p3)))
(setq pm1 (mapcar '(lambda(a b)(* 0.5 (+ a b))) p1 p4))
(setq pm2 (mapcar '+ pm1 '(5 0)))
(setq pm1 (mapcar '(lambda(a b)(* 0.5 (+ a b))) p1 p2))
(setq pm2 (mapcar '+ pm1 '(0 5)))
(setq pm1 (mapcar '(lambda(a b)(* 0.5 (+ a b))) p2 p3))
(setq pm2 (mapcar '+ pm1 '(-5 0)))
(setq pm1 (mapcar '(lambda(a b)(* 0.5 (+ a b))) p3 p4))
(setq pm2 (mapcar '+ pm1 '(0 -5)))
(setvar "osmode" 0)
(mapcar '(lambda(pts)
(command "_line" (car pts) (cadr pts) "" "_chprop" (entlast) "" "c" 1 "")
)
(list (list pm1 pm2)
(list pm1 pm2)
(list pm1 pm2)
(list pm1 pm2)
)
)
(setq i 1)
(mapcar '(lambda(pt dxy)
(setq pt1 (mapcar '+ pt dxy))
(if (or (= i 1) (= i 3)
(command "_Circle" pt1 1.5 "_chprop" (entlast) "" "c" 6 "")
(progn
(command "_Circle" pt1 1. "_chprop" (entlast) "" "c" 1 "")
(command "_Circle" pt1 1. "_chprop" (entlast) "" "c" 1 "")
)
)
(setq i (1+ i))
)
(list p1 p2 p3 p4)
(list '(8 8) '(-8 8) '(-8 -8) '(8 -8))
)
)
)
(command "undo" "e")
(setvar "osmode" osm)
(setvar "cmdecho" cmd)
(princ)
)
ç¼åä¸lispç¨åº cad
è¯ç¼ç¨åºå¦ä¸ï¼è¯·æ ¡æ ¸ã
(defun hang (p r n)
(repeat n
(command "circle" p r)
(setq l (cons p l)
p (polar p 0 (+ r r))
)
)
l
)
(defun sjy (p r n / i p1 p2 p3 l)
(setq i 0)
(repeat n
(hang p r (- n i))
(setq i (1+ i)
p (polar p (/ pi 3) (+ r r))
)
)
(setq p1 (last l)
p2 (car l)
p3 (polar p1 0 (distance p1 p2))
)
(command "pline" p1 p2 p3 "c")
(command "offset" r p2 (polar p2 (/ pi 2) (+ r r)) "")
(command "erase" p2 "")
l
)
(defun c:sjy (/ p r n)
(setq p (getpoint "å·¦ä¸è§åå¿åæ ï¼")
r (getdist p "åå¾ï¼")
n (getint "ææ°ï¼")
)
(sjy p r n)
)
CAD修改颜色命令---Lisp代码分享(3)
运用Lisp实现多步骤CAD命令集成,优化了颜色修改操作,改进了错误代码,修正了中途退出命令时参数恢复问题。附带CAD命令集合与源代码,便于用户交流学习。
以下是使用Lisp简化后的命令流程:
1. 打开记事本,编写代码。
2. 将文件另存为Color.lsp,确保保存类型为全部,编码类型选用UTF-8或ANSI。
3. 或者在CAD中输入Vlisp,进入编程界面,新建文件,输入代码并保存。
4. 根据需求修改defun c: 后的命令定义,本文展示部分命令,如0~等。
5. 在CAD命令行输入AP,回车,选择Lisp文件加载,即可使用定义的命令。
6. 对于常用命令,可加入启动组,方便快速访问。
注意:获取完整Lisp程序文件的步骤如下:
关注公众号:为赶路人干杯
在公众号回复关键词:Lisp(后续发布的Lisp命令集均会共享至此文件夹中)