CAD中LISP程序使用方法
CAD中LISP程序使用方法
2007-08-06 19:13:32| 分类:学习园地 |字号订阅
1. 对于提供附件下载的,把附件下载就可以了
2. 对于提供的源LISP代码,把代码拷贝、粘贴到一个文件,自己起个名或者若程序里面注释推荐了文件名,就用推荐的,然后保存成扩展名是LSP的文件即可了。
LISP程序使用方法:
加载LISP
1. 可以使用APPLOAD命令,然后去找到要加载的LISP文件,加载即可。
2. 可以自己从文件管理器把LISP文件拖动到ACAD的图形窗口,也可以加载
3. 在命令行后用,(load "c:\\temp\\xxx.lsp")也可以加载,路径名请输入实际的路径。
另:对于一个LSP程序,(defun 后面的既是命令或者函数,一般程序应该有提示,若没有,标志符c:后面的单词是可以在ACAD下使用的命令,既可以在COMMAND:后面直接输入,即可执行。
CAD快速切换图层LISP代码(方法2)
给楼主发一个图层更改的lisp程序,按对应数字键就可以切换到相应的图层。很方便。
0————0
1————OBJ
2————6t
3————SCETR
。。。
8————BORDER
如果这些不是你想要的图层,将lisp用笔记本打开,把里边的OBJ,6t等图层名改为你想要的就可以了。以后要切换图层时,按相应的数字键即可。
(defun YH_chlayer (YH_layer / YH_S)
(if (null (tblsearch "LAYER" YH_layer))
(entmake (list
'(0 . "LAYER")
'(100 . "AcDbSymbolTableRecord")
'(100 . "AcDbLayerTableRecord")
(cons 2 YH_layer) ;图层名称
'(70 . 0) ;图层状态
'(62 . 7) ;图层颜色
'(6 . "bylayer") ;图层线型
)
)
)
(setq YH_S (cadr (ssgetfirst)))
(if YH_S
(command "CHPROP" YH_S "" "la" YH_layer "c" "bylayer" "") (setvar "clayer" YH_layer)
)
(princ)
)
(defun c:0 ()
(YH_chlayer "0")
)
(defun c:1 ()
(YH_chlayer "OBJ")
)
(defun c:2 ()
(YH_chlayer "6t")
)
(defun c:3 ()
(YH_chlayer "SCETR")
)
(defun c:4 ()
(YH_chlayer "HIDD")
)
(defun c:5 ()
(YH_chlayer "DIM")
)
(defun c:6 ()
(YH_chlayer "DASH")
)
(defun c:7 ()
(YH_chlayer "TEXT")
)
(defun c:8 ()
(YH_chlayer "BORDER")
)
#Cad
到上面一行为址,保存为lsp格式。
LISP 小程序,改变对象颜色
;;数字1
(defun C:1 ( / gp)
(setvar "cmdecho" 0)
(princ "\n★改变对象颜色为红色★")
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" "1" "")) (princ "\nOK")
(princ)
);end defun C:1
;;数字2
(defun C:2 ( / gp)
(setvar "cmdecho" 0)
(princ "\n★改变对象颜色为黄色★")
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" "2" "")) (princ "\nOK")
(princ)
);end defun C:2
;;数字3
(defun C:3 ( / gp)
(setvar "cmdecho" 0)
(princ "\n★改变对象颜色为绿色★")
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" "3" "")) (princ "\nOK")
(princ)
);end defun C:3
;;数字4
(defun C:4 ( / gp)
(setvar "cmdecho" 0)
(princ "\n★改变对象颜色为青色★")
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" "4" "")) (princ "\nOK")
(princ)
);end defun C:4
;;数字5
(defun C:5 ( / gp)
(setvar "cmdecho" 0)
(princ "\n★改变对象颜色为蓝色★")
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" "5" "")) (princ "\nOK")
(princ)
);end defun C:5
;;数字6
(defun C:6 ( / gp)
(setvar "cmdecho" 0)
(princ "\n★改变对象颜色为紫色★")
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" "6" "")) (princ "\nOK")
(princ)
);end defun C:6
;;数字7
(defun C:7 ( / gp)
(setvar "cmdecho" 0)
(princ "\n★改变对象颜色为白色★")
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" "7" "")) (princ "\nOK")
(princ)
);end defun C:7
;;数字8
(defun C:8 ( / gp)
(setvar "cmdecho" 0)
(princ "\n★改变对象颜色为深灰色★")
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" "8" "")) (princ "\nOK")
(princ)
);end defun C:8
;;数字9
(defun C:9 ( / gp)
(setvar "cmdecho" 0)
(princ "\n★改变对象颜色为灰色★")
(setq gp (ssget))
(if (/= gp nil) (command ".change" gp "" "p" "c" "9" "")) (princ "\nOK")
(princ)
);end defun C:9