找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1089|回复: 11

调用lisp程序时出现“; 错误: 输入的列表有缺陷”是怎么回事?

[复制链接]
发表于 2018-11-14 17:30:02 | 显示全部楼层 |阅读模式

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

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

×
我用的是2006,在调用lisp出现时总是出现“; 错误: 输入的列表有缺陷“,请问这是怎么回事?如何解决?郁闷呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-11-14 17:38:54 | 显示全部楼层
你调用的那个LISP,括号不匹配,把LISP压缩传上来,可以帮你看看
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-14 18:02:09 | 显示全部楼层
检查过,括号匹配呀。请问怎么上传啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5295个

财富等级: 富甲天下

发表于 2018-11-14 18:06:57 | 显示全部楼层
抓紧时间学习,入门了就可以自己解决问题了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-14 18:07:09 | 显示全部楼层
;;;绘制图框    Tk.lsp

(defun C:Tk(/size size_1 a c pt1 pt2 p1 p2 p3 p4 scall)

    ;设置系统变量
    (setvar "cmdecho" 0)    ;执行过程中命令行不响应
    (setvar "blipmode" 0)

    ;设置图幅Size的取值范围
    (initget "A0,A1,A2,A3,A4")
    (setq size (getstring "\n输入图纸图幅< A1 >:"))
    (if (= size "") (setq size "A1"))
   
    ;将字母转化成大写
    (setq size (strcase size))

    ;图纸加长
    (setq size_1 (getint "\n输入图纸加长级数< 0 >:"))
    (if (= size_1 "") (setq size_1 0))

    ;图纸比例
    (setq scall (getreal "\n输入图纸比例< 1 >:"))
    (if (= scall "") (setq scall 1))

    ;输入图纸左下角坐标
    (setq pt1 (getpoint "\n输入图框左下角:"))
    ;pt1、pt2为图框外框左下角、右下角坐标;p1、P2、p3、p4为内框四个角坐标
    (setq a 25)

    (cond
       ((= size "A0")
        (progn (setq pt2 '((* (+ (car pt1) (* size_1 149) 1189) scall) (* 841 scall)))
               (setq c 10)
               (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall)))
               (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall)))
               (setq p2 '((car p1) (cadr p3))
               (setq p4 '((car p3) (cadr p1))
        )

       ((= size "A1")
        (progn (setq pt2 '((* (+ (car pt1) (* size_1 210) 841) scall) (* 594 scall)))
               (setq c 10)
               (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall)))
               (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall)))
               (setq p2 '((car p1) (cadr p3))
               (setq p4 '((car p3) (cadr p1))
        )

       ((= size "A2")
        (progn (setq pt2 '((* (+ (car pt1) (* size_1 149) 594) scall) (* 420 scall)))
               (setq c 10)
               (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall)))
               (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall)))
               (setq p2 '((car p1) (cadr p3))
               (setq p4 '((car p3) (cadr p1))
        )

       ((= size "A3")
        (progn (setq pt2 '((* (+ (car pt1) (* size_1 210) 420) scall) (* 297 scall)))
               (setq c 5)
               (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall)))
               (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall)))
               (setq p2 '((car p1) (cadr p3))
               (setq p4 '((car p3) (cadr p1))
        )

       ((= size "A4")
        (progn (setq pt2 '((* (+ (car pt1) 297) scall) (* 210 scall))
               (setq c 5)
               (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall)))
               (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall)))
               (setq p2 '((car p1) (cadr p3))
               (setq p4 '((car p3) (cadr p1))
        )

       (t
        (progn (setq pt2 '((* (+ (car pt1) (* size_1 210) 841) scall) (* 594 scall)))
               (setq c 10)
               (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall)))
               (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall)))
               (setq p2 '((car p1) (cadr p3))
               (setq p4 '((car p3) (cadr p1))
        )
    )

    ;开始绘制图框
    (command "rectang" pt1 pt2)      ;画矩形
    (command "pline" p1 "w" (* 0.5 scall) "" p2 p3 p4 "c")

    ;插入图签
    (command "insert" "图签" p4 scall scall "")

    (command "zoom" "a")

    (prin1)

    (prompt "\n绘制图框Tk.lsp")
    (prin1)
)

点评

有很多括号不匹配 打开VLISP编辑器,优化代码,就会提示你 [attachimg]81620[/attachimg] 不匹配的 [attachimg]81619[/attachimg] 后面添加括号 [attachimg]81618[/attachimg] 这个COND语句里面  详情 回复 发表于 2018-11-14 20:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2018-11-14 20:34:48 | 显示全部楼层
zxc001975cvb 发表于 2018-11-14 18:07
;;;绘制图框    Tk.lsp

(defun C:Tk(/size size_1 a c pt1 pt2 p1 p2 p3 p4 scall)

有很多括号不匹配
打开VLISP编辑器,优化代码,就会提示你

搜狗截图20181114202819.png

不匹配的

搜狗截图20181114202946.png

后面添加括号

搜狗截图20181114203008.png

这个COND语句里面,每个分支都不匹配,要改好多

下面是改后的代码

  1. (defun C:Tk (/size size_1 a c pt1 pt2 p1 p2 p3 p4 scall) ;设置系统变量
  2.   (setvar "cmdecho" 0)                  ;执行过程中命令行不响应
  3.   (setvar "blipmode" 0)                 ;设置图幅Size的取值范围
  4.   (initget "A0,A1,A2,A3,A4")
  5.   (setq size (getstring "\n输入图纸图幅< A1 >:"))
  6.   (if (= size "")
  7.     (setq size "A1")
  8.   )                                     ;将字母转化成大写
  9.   (setq size (strcase size))            ;图纸加长
  10.   (setq size_1 (getint "\n输入图纸加长级数< 0 >:"))
  11.   (if (= size_1 "")
  12.     (setq size_1 0)
  13.   )                                     ;图纸比例
  14.   (setq scall (getreal "\n输入图纸比例< 1 >:"))
  15.   (if (= scall "")
  16.     (setq scall 1)
  17.   )                                     ;输入图纸左下角坐标
  18.   (setq pt1 (getpoint "\n输入图框左下角:"))
  19.                                         ;pt1、pt2为图框外框左下角、右下角坐标;p1、P2、p3、p4为内框四个角坐标
  20.   (setq a 25)
  21.   (cond ((= size "A0")
  22.          (progn (setq pt2 '((* (+ (car pt1) (* size_1 149) 1189) scall) (* 841 scall)))
  23.                 (setq c 10)
  24.                 (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall))))
  25.                 (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall))))
  26.                 (setq p2 '((car p1) (cadr p3)))
  27.                 (setq p4 '((car p3) (cadr p1)))
  28.          )
  29.         )
  30.         ((= size "A1")
  31.          (progn (setq pt2 '((* (+ (car pt1) (* size_1 210) 841) scall) (* 594 scall)))
  32.                 (setq c 10)
  33.                 (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall))))
  34.                 (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall))))
  35.                 (setq p2 '((car p1) (cadr p3)))
  36.                 (setq p4 '((car p3) (cadr p1)))
  37.          )
  38.         )
  39.         ((= size "A2")
  40.          (progn (setq pt2 '((* (+ (car pt1) (* size_1 149) 594) scall) (* 420 scall)))
  41.                 (setq c 10)
  42.                 (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall))))
  43.                 (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall))))
  44.                 (setq p2 '((car p1) (cadr p3)))
  45.                 (setq p4 '((car p3) (cadr p1)))
  46.          )
  47.         )
  48.         ((= size "A3")
  49.          (progn (setq pt2 '((* (+ (car pt1) (* size_1 210) 420) scall) (* 297 scall)))
  50.                 (setq c 5)
  51.                 (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall))))
  52.                 (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall))))
  53.                 (setq p2 '((car p1) (cadr p3)))
  54.                 (setq p4 '((car p3) (cadr p1)))
  55.          )
  56.         )
  57.         ((= size "A4")
  58.          (progn (setq pt2 '((* (+ (car pt1) 297) scall) (* 210 scall)))
  59.                 (setq c 5)
  60.                 (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall))))
  61.                 (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall))))
  62.                 (setq p2 '((car p1) (cadr p3)))
  63.                 (setq p4 '((car p3) (cadr p1)))
  64.          )
  65.         )
  66.         (t
  67.          (progn (setq pt2 '((* (+ (car pt1) (* size_1 210) 841) scall) (* 594 scall)))
  68.                 (setq c 10)
  69.                 (setq p1 '((+ (car pt1) (* a scall)) (+ (cadr pt1) (* c scall))))
  70.                 (setq p3 '((- (car pt2) (* c scall)) (- (cadr pt2) (* c scall))))
  71.                 (setq p2 '((car p1) (cadr p3)))
  72.                 (setq p4 '((car p3) (cadr p1)))
  73.          )
  74.         )
  75.   )                                     ;开始绘制图框
  76.   (command "rectang" pt1 pt2)           ;画矩形
  77.   (command "pline" p1 "w" (* 0.5 scall) "" p2 p3 p4 "c") ;插入图签
  78.   (command "insert" "图签" p4 scall scall "")
  79.   (command "zoom" "a")
  80.   (prin1)
  81.   (prompt "\n绘制图框Tk.lsp")
  82.   (prin1)
  83. )

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

使用道具 举报

已领礼包: 3904个

财富等级: 富可敌国

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

使用道具 举报

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

使用道具 举报

已领礼包: 55个

财富等级: 招财进宝

发表于 2018-11-15 09:47:31 | 显示全部楼层
没事试了下,运行通过,好像还是画不出来

点评

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-11-15 09:57:57 | 显示全部楼层
本帖最后由 newer 于 2018-11-15 09:59 编辑
fengyun7000 发表于 2018-11-15 09:47
没事试了下,运行通过,好像还是画不出来

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

使用道具 举报

已领礼包: 55个

财富等级: 招财进宝

发表于 2018-11-15 16:42:35 | 显示全部楼层
关键是你画出来没有,在图签之前pt2 p1234都不是数字,改为list才是数字,而且pt2y坐标貌似不对
命令: !pt2
((* (+ (CAR PT1) (* SIZE_1 210) 841) SCALL) (* 594 SCALL))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-16 09:03:20 | 显示全部楼层
谢谢,已经修改完了,可以画出来,非常感谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-12 21:42 , Processed in 0.328156 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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