iCAx开思网

标题: 【原创】关于lisp的简单教程 [打印本页]

作者: 鲁东东    时间: 2004-10-7 14:04
标题: 【原创】关于lisp的简单教程
很多朋友在问LISP的使用问题,我现在简单终结一下,如果我没说清楚,请再发问。
各位高手也可以帮助解答,会者不难,难者不会!
作者: 鲁东东    时间: 2004-10-7 14:12
安装LISP文件很简单,只需要以下步骤:
Tools->AutoLSP->load->打开对话框
找到相应的LISP文件,LOAD即可.
  
以下面的测量弧长的LISP为例: (LISP文件可以用记事本打开)
(defun c :dimarc()
   (setvar "cmdecho" 0)
   (setq en0(entsel "Select the exist ARC:"))
   (command "lengthen" en0 "")
   (setq len (rtos (getvar "perimeter") 2 2))
   (command "dimangular" en0 "t" len pause)
   (prin1)
)
红色的字符是这个LISP的命令名.(大家可以不去关心LISP的具体内容)
  
LOAD完成后,在命令行输入DIMARC就可以启动这个命令.
作者: 鲁东东    时间: 2004-10-7 14:22
经常碰到的问体是:当你打开另一个文件,或者新建一个文件时.
刚刚加载的LISP又失效了,需要重新LOAD.很烦!
其实是有个设置没打开:
Tools->Options->打开对话框
选择system页
勾选右边的 Load acad.lsp with every drawing.
以后打开每个文件都可以用了.
作者: 鲁东东    时间: 2004-10-7 14:27
为了避免和以前已设置的键盘快捷键冲突,LISP的编写者通常会给LISP起一个比较长的命令名.
其实你可以任意修改命令名,比如上面的DIMARC 可以改为K,只要你原来的K键没有设置成别的快捷命令.
作者: 鲁东东    时间: 2004-10-7 14:32
我通常喜欢在AOTUCAD/SUPPORT文件夹下用记事本建立一个ACAD.LSP的文件,将所有要用的LISP都复制进去.
CAD会自动搜索ACAD.LSP文件,就不用再LOAD了.
作者: 鲁东东    时间: 2004-10-7 14:32
希望对各位有帮助!
作者: katsu    时间: 2004-10-7 15:40
非常谢谢鲁东东,是不是山东的?
  
最近很忙,有时间必仔细揣摩体会。
  
建议斑竹给加分!
作者: Joseph Lin    时间: 2004-10-7 16:14
《Tools→AutoLSP→load→xxxx》方法和(Load "xxxxx")最顯著的不同是後者有指令
****的提示而前者沒有。因為llisp的名稱和指令不盡相同,且有的LSP含有數個指令所以如果沒有提示時便不知如何輸入指令。
作者: 鲁东东    时间: 2004-10-7 18:39
katsu wrote:
非常谢谢鲁东东,是不是山东的?  
  
  最近很忙,有时间必仔细揣摩体会。  
  
  建议斑竹给加分!


作者: wjzeng    时间: 2004-10-7 18:44

  
    顶!
      还有没有?请go on...
作者: 鲁东东    时间: 2004-10-8 07:25
Joseph Lin wrote:
《Tools→AutoLSP→load→xxxx》方法和(Load "xxxxx")最顯著的不同是後者有指令  
  ****的提示而前者沒有。因為llisp的名稱和指令不盡相同,且有的LSP含有數個指令所以如果沒有提示時便不知如何輸入指令。

Joseph兄,可在2000版以后输入命令"LOAD"或"-LOAD"都是出现对话框::?::?,
不知道怎么办,命令改了吗::?::?
作者: 鲁东东    时间: 2004-10-8 07:29
wjzeng wrote:
  
  
      顶!  
        还有没有?请go on...

我在这里只是针对那些不了解LISP的人,让他们在使用LISP时可以顺利安装.
如果你想学LISP语言和编程,我恐怕帮不到你,我自己才刚入门.
作者: Joseph Lin    时间: 2004-10-8 14:34
LISP的語法是(Load "xxx"),一定要加括號且左右邊的括號數必須相同。因它是一行一行執行的,而指令是一個指令一個指令執行的。
LOAD和_LOAD的作用一樣,AutoCAD裡沒有-LOAD指令。
《_》符號是acad2000後新增的【各種語言版本的統一指令寫法】
《-》符號是【以傳統的問答式代替交談框式】的指令書寫法。
作者: 鲁东东    时间: 2004-10-8 15:36
Joseph Lin wrote:
LISP的語法是(Load "xxx"),一定要加括號且左右邊的括號數必須相同。因它是一行一行執行的,而指令是一個指令一個指令執行的。  
  LOAD和_LOAD的作用一樣,AutoCAD裡沒有-LOAD指令。  
  《_》符號是acad2000後新增的【各種語言版本的統一指令寫法】  
  《-》符號是【以傳統的問答式代替交談框式】的指令書寫法。

谢谢指教
作者: wayne    时间: 2004-10-8 17:09
Joseph Lin wrote:
《Tools→AutoLSP→load→xxxx》方法和(Load "xxxxx")最顯著的不同是後者有指令  
  ****的提示而前者沒有。因為llisp的名稱和指令不盡相同,且有的LSP含有數個指令所以如果沒有提示時便不知如何輸入指令。

  
在檔案末端加入註解, 簡單明瞭幫助使用.
(defun c :dimarc()  
    .
    .
    (prin1)  
)  
  
(Princ "\nDIMARC 已載入, 請鍵入 DIMARC 作標註弧長")
  
(Princ)
作者: yi_san    时间: 2004-10-9 22:34
命令: (load "yinyang.lsp")
; 错误: LOAD 失败: "yinyang.lsp"
  
请高手帮忙!!
作者: Joseph Lin    时间: 2004-10-10 16:08
yi_san wrote:
命令: (load "yinyang.lsp")  
  ; 错误: LOAD 失败: "yinyang.lsp"  
  
  请高手帮忙!!

  
是yingang,lsp路逕措誤。解決方法:
1. 改為(load"*:\*** yinyang")                 *:\***=path
2.將yinyang.lsp copy至acad支援的路徑,如acad\support
   (Load "yinyang")   即可
有沒有.lsp沒關係。
作者: katsu    时间: 2004-10-12 09:07
东东说的option中的哪一项我勾选了,可是还是每次需要启动load,这样的话怎么解决?
作者: katsu    时间: 2004-10-12 09:08
能不能把这个dimarc的命令加载到菜单里面?怎么做?谢谢
作者: katsu    时间: 2004-10-13 07:47
顶起来,求助!
作者: 鲁东东    时间: 2004-10-13 08:42
katsu wrote:
能不能把这个dimarc的命令加载到菜单里面?怎么做?谢谢

什么意思?想做成图标
作者: wayne    时间: 2004-10-13 16:53
katsu wrote:
能不能把这个dimarc的命令加载到菜单里面?怎么做?谢谢

最近, 我正在複習菜單的巨集指令, 可以加入下拉式功能表及圖像工具列, 明天有空的話, 將貼上步驟.
作者: katsu    时间: 2004-10-13 17:58
wayne wrote:
   
  最近, 我正在複習菜單的巨集指令, 可以加入下拉式功能表及圖像工具列, 明天有空的話, 將貼上步驟.

  
谢谢,盼教程
作者: Joseph Lin    时间: 2004-10-14 13:33
katsu wrote:
能不能把这个dimarc的命令加载到菜单里面?怎么做?谢谢

  
當然可以,只要修改acad.mns即可。Macro=
   ID_Dimarc  [Dimarc ]^C^C(LOAD "DIMARC")_ DIMARC
作者: katsu    时间: 2004-10-14 14:25
Joseph Lin wrote:
   
  
  當然可以,只要修改acad.mns即可。Macro=  
     ID_Dimarc  [Dimarc ]^C^C(LOAD "DIMARC")_ DIMARC

  
谢谢前辈!
作者: Joseph Lin    时间: 2004-10-16 08:43
katsu wrote:
东东说的option中的哪一项我勾选了,可是还是每次需要启动load,这样的话怎么解决?

  
OPTIONS內的設定是記錄在acad.mns裡,所以必須重新啟動才能生效。
作者: pros    时间: 2004-12-21 09:36
lisp里面用什么语句可以把某一层的数据都调出来保存到一个文档里面啊,谢谢
作者: holly2000    时间: 2005-1-1 22:22
不知哪里错了。。老不能执行。。。。谢啦




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3