找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1368|回复: 11

[LISP函数]:大家看,这样的问题能搞通吗?

[复制链接]
发表于 2002-7-24 12:15:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的程序现在出现的问题是,脚本文件aaa.scr已经在此程序里面建立成功了,当再次在程序里调用此scr文件时却不能成功,提示如下
; 错误: 参数类型错误: streamp "f:\\aaa.scr"
请版主及各位前辈帮忙,找找什么原因,难道是在同一程序里建立的脚本不能调用吗?我调试过了,脚本文件肯定没问题,在执行完此程序后再新建一个文档,运行script没有任何问题,然而,如果在原文档中是怎么也不能调用该脚本文件,无论是程序调用还是手动调用都不成功,真不知为什么?
(defun c:hh()
(vl-load-com)
(setq ff0 "f:\\a.txt")
(setq len (mc_getfile_line ff0))
(setq liebiao "")
(setq p 0)
(while (> len 0)

(setq wenjianming (mc_getfile_text ff0 p))
(setq liebiao (strcat liebiao (strcat "open " wenjianming "\n"
"(" "load " "ttt.lsp" ")" "\n" "bb" "\n" "close" wenjianming " n" "\n")))
(setq ff "f:\\aaa.scr")
(setq ffa (open ff "w"))
(write-line liebiao ffa)
(setq len (- len 1))
(setq p (1+ p))
)
(close ff)
(close ffa)
(command "script" "f:\\aaa.scr")

)
(defun mc_getfile_text (files0 line0 / fn0 text0)
(setq line0(+ 1 line0))
;(setq files0 (findfile files0))
(if files0
(progn
(setq fn0(open files0 "r"))
(if (<= line0 (mc_getfile_line files0))
(progn
(repeat line0
(setq text0(read-line fn0))
)
(close fn0)
text0
)
nil
)
)
nil
)
)


;读取文件的行数

(defun mc_getfile_line(files1 / tmplst1 x1 fn1)
(setq files1(findfile files1))
(if files1
(progn
(setq tmplst1 0)
(setq fn1(open files1 "r"))
(while (read-line fn1)
(setq tmplst1 (+ 1 tmplst1))
)
(close fn1)
tmplst1
)
nil
)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2002-7-24 18:39:46 | 显示全部楼层

怎么?都不愿意帮忙吗?

怎么?都不愿意帮忙吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-7-25 08:01:43 | 显示全部楼层

  1. (defun C:HH ()
  2.   (vl-load-com)
  3.   (setq FF0 "f:\\a.txt")
  4.   (setq LEN (MC_GETFILE_LINE FF0))
  5.   (setq LIEBIAO "")
  6.   (setq P 0)
  7.   (while (> LEN 0)
  8.     (setq WENJIANMING (MC_GETFILE_TEXT FF0 P))
  9.     (setq LIEBIAO (strcat LIEBIAO
  10.                           (strcat "open "    WENJIANMING
  11.                                   "\n"             "("        "load "
  12.                                   "ttt.lsp"  ")"        "\n"
  13.                                   "bb"             "\n"        "close "
  14.                                   WENJIANMING                " n"
  15.                                   "\n"
  16.                                  )
  17.                   )
  18.     ); "close"→"close "
  19.     (setq FF "f:\\aaa.scr")
  20.     (setq FFA (open FF "w"))
  21.     (write-line LIEBIAO FFA)
  22.     (setq LEN (- LEN 1))
  23.     (setq P (1+ P))
  24.   )
  25. ;;(close ff)  ;;多了一行
  26.   (close FFA)
  27.   (command "script" "f:\\aaa.scr")
  28. )

  29. (defun MC_GETFILE_TEXT (FILES0 LINE0 / FN0 TEXT0)
  30.   (setq LINE0 (+ 1 LINE0))
  31. ;;(setq files0 (findfile files0))
  32.   (if FILES0
  33.     (progn
  34.       (setq FN0 (open FILES0 "r"))
  35.       (if (<= LINE0 (MC_GETFILE_LINE FILES0))
  36.         (progn
  37.           (repeat LINE0
  38.             (setq TEXT0 (read-line FN0))
  39.           )
  40.           (close FN0)
  41.           TEXT0
  42.         )
  43.         NIL
  44.       )
  45.     )
  46.     NIL
  47.   )
  48. )

  49. ;;;讀取文件的行數
  50. (defun MC_GETFILE_LINE (FILES1 / TMPLST1 X1 FN1)
  51.   (setq FILES1 (findfile FILES1))
  52.   (if FILES1
  53.     (progn
  54.       (setq TMPLST1 0)
  55.       (setq FN1 (open FILES1 "r"))
  56.       (while (read-line FN1)
  57.         (setq TMPLST1 (+ 1 TMPLST1))
  58.       )
  59.       (close FN1)
  60.       TMPLST1
  61.     )
  62.     NIL
  63.   )
  64. )

  65. ;a.txt------------c:\lsp\aa
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-7-25 08:32:17 | 显示全部楼层
lisp跨文档执行是很麻烦的。用vba轻松搞定。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-25 12:31:02 | 显示全部楼层

谢谢台湾来的朋友!

非常感谢您帮忙调试程序,我已经更正了其中代码,但根本问题现在还是没有得到解决,就是lisp程序本身建立的scr脚本文件不能够打开执行,这是为什么?能够解决吗?
请大家再来帖子!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-25 12:32:58 | 显示全部楼层

秋枫先生,我不想用VBA来弄,用LISP可以解决吗?

帮忙!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-7-25 13:32:38 | 显示全部楼层
(setq ff0 "f:\\a.txt")
传一个这个 a.txt
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-7-25 15:09:47 | 显示全部楼层

(setq liebiao (strcat liebiao (strcat "open " wenjianming "\n"
"(" "load " "ttt.lsp" ")" "\n" "bb" "\n" "close" wenjianming " n" "\n")))
改成
(setq liebiao (strcat liebiao (strcat "open " wenjianming "\n"
"(" "load " "\"ttt.lsp\"" ")" "\n" "bb" "\n" "close\n" wenjianming " n" "\n")))
试试呢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-25 15:10:49 | 显示全部楼层

好的,还有SCR脚本也一并上传,帮忙解决!

好的,还有SCR脚本也一并上传,帮忙解决!
A.TXT和AAA.SCR都是用lisp程序创建的,先检索某一文件夹下所有DWG文档,然后按名将其列表为A.TXT,再用程序读出列表生成SCR文件,还有个问题就上,刚建立的列表A.TXT也不能有程序立即读出,关闭当前文档后,第二次才能成功读出,否则出现“无法打开A.TXT或AAA.SCR文件”这样的错误。就是不能够在创建之后立即调用SCR脚本,只能先关闭当前文档才能调用该脚本,且能正确执行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-7-25 15:18:35 | 显示全部楼层
看了一下你的script文件,果然与我的预料相同。就是那个问题,我在楼上指出了。

  1. [FONT=courier new]
  2. open f:\inax\P-S01245.dwg
  3. (load wba.lsp)
  4. wba
  5. close y
  6. [/FONT]
复制代码

其中的(load wba.lsp)就应改为(load "wba.lsp")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-25 15:24:44 | 显示全部楼层

秋枫前辈,你误会了,不是文件格式问题

秋枫前辈,你误会了,不是文件格式问题,脚本文件没有任何问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-7-25 15:45:47 | 显示全部楼层

哦,这个还真是错了,但主要问题还没解决。

程序不能立刻调用AAA.SCR,就连在命令行里输入“script”运行AAA.SCR都不行,错误信息如下:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 00:42 , Processed in 0.197882 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表