找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: 行雲

[求助] 错误: 用于比较的参数类型不正确

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

使用道具 举报

 楼主| 发表于 2017-1-3 22:22:42 | 显示全部楼层

你好,我现在是这样试,放弃了(> radius 5) ,只剩下( yzzba yzfzx)比对,仍然不行

      (cond
      ((> yzzba yzfzx) (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))) ;;;只有这行在动作
       ((princ (strcat "\naaaaaaaaaaaaaaa:" (rtos yzfzx 2 3))));;;这个信息没看到
      ((< yzzba yzfzx) (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd))))
      )

是不是  (setq yzfzx (rtos (/ (cadr (mapcar '- zxjd ysjd)) 2) 2 2))没传递到参照信息?

但是,如果改成这样 (setq yzfzx (/ (cadr (mapcar '- zxjd ysjd)) 2)  )又会提示,错误: 用于比较的参数类型不正确  
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-3 22:55:48 | 显示全部楼层

让你在 cond外面 打印 yzzba和 yzfzx 的值,你看看他们是什么? 然后你才知道应该进入哪个分支。

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-3 22:59:31 | 显示全部楼层
本帖最后由 Lisphk 于 2017-1-3 23:02 编辑
(princ "\nyzzba===")
(princ yzzba)
(princ "\nyzfzx===")
(princ yzfzx)
(cond
  ((> yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
  ((< yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
)

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

使用道具 举报

 楼主| 发表于 2017-1-3 23:11:58 | 显示全部楼层
本帖最后由 行雲 于 2017-1-3 23:21 编辑

有,看到了打印码,说明yzfzx应该是传递到了的


改到下一行,又无打印码了。这样:
      (cond
      ((> yzzba yzfzx)
       (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
       )
(princ "\nyzzba===============================")
(princ yzzba)
(princ "\nyzfzx==============================")
(princ yzfzx)
      ((< yzzba yzfzx)
       (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
       )
      )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-4 01:09:55 | 显示全部楼层

你写代码不都格式化下吗? 格式化下你至少可以看到左右括号的匹配情况

这是你的代码,你对照COND函数的格式要求,自己看下你问题出哪了

(cond
  ((> yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
  (princ "\nyzzba===============================")
  (princ yzzba)
  (princ "\nyzfzx==============================")
  (princ yzfzx)
  ((< yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
)

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

使用道具 举报

 楼主| 发表于 2017-1-4 16:40:47 | 显示全部楼层

左右括号配对吧,程序可以从头到尾完成,只是没见到那打印码,,,

改了一下,还是没见到打印码
      (cond
      ((> yzzba yzfzx)
       (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
       )
      ((princ "\nyzzba==============================="))
      ((princ yzzba))
      ((princ "\nyzfzx=============================="))
      ((princ yzfzx))
      ((< yzzba yzfzx)
       (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
       )
      )

这样,则可以见到打印码
      (princ "\nyzzba===============================")
      (princ yzzba)
      (princ "\nyzfzx==============================")
      (princ yzfzx)
      (cond
      ((> yzzba yzfzx)
       (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
       )
      ((< yzzba yzfzx)
       (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
       )
      )

请问,没能实现比对分支的原因在哪里?

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-4 16:44:00 | 显示全部楼层

你还是没理解COND
(cond
  ((条件1为真)
    (
      (
        (...)
      )
    )
  )
  ((条件2为真)
    (
      (
        (....)
      )
    )
  )
  ((条件3为真)
    (
      (
        (....)
      )
    )
  )
  ...
)


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

使用道具 举报

 楼主| 发表于 2017-1-4 16:57:42 | 显示全部楼层
本帖最后由 行雲 于 2017-1-4 16:58 编辑

你好,现在这样

   (cond
     ((> yzzba yzfzx)
       (
        (
         (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
        )
       )
     )
     ((< yzzba yzfzx)
       (
        (
         (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
        )
       )
     )
   )
程序没完成,,,,,,命令: ; 错误: 函数错误: (20427.9 1014.0 0.0)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-4 18:08:06 | 显示全部楼层

晕死了,我给你那些对称的括号是告诉你层次,你要根据实际情况变化啊

LISP不会有 (((多个括号挨着的,LISP要求一个左括号后面要跟着函数名

(cond
  ((> yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
  ((< yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
)

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

使用道具 举报

 楼主| 发表于 2017-1-4 21:21:34 | 显示全部楼层

谢谢你,大致来说,不能实现比对分支的原因是什么


(princ "\nyzfzx==============================")比对值yzfzx传到了这里
(cond
  ((> yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
(princ "\nyzfzx==============================")到了这里就没有了
  ((< yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-4 21:38:25 | 显示全部楼层

你这么写是错的

(princ "\nyzfzx==============================")比对值yzfzx传到了这里
(cond
  ((> yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
  (princ "\nyzfzx==============================")
  ((< yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
)


下面这么写是对的

(princ "\nyzfzx==============================")比对值yzfzx传到了这里
(cond
  ((> yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
    (princ "\nyzfzx==============================")
  )
  ((< yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
  )
)


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

使用道具 举报

 楼主| 发表于 2017-1-4 21:44:24 | 显示全部楼层

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-4 21:46:49 | 显示全部楼层
(cond
  ((> yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 0.75 pi) (+ (* 1.1 bjlscd) wbgd)))
    (princ "\n111111111111111111111111111111")
  )
  ((< yzzba yzfzx)
    (setq kwmzb (polar yuanxi (* 1.25 pi) (+ (* 1.1 bjlscd) wbgd)))
    (princ "\n22222222222222222222222")
  )
  (t
    (princ "\n33333333333333333333")
  )
)


把上面代码放到你的程序中

如果屏幕显示 111111111111111111111, 说明 yzzba > yzfzx


如果显示  2222222222222222222222222 说明 yzzba < yzfzx


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

使用道具 举报

 楼主| 发表于 2017-1-4 22:08:15 | 显示全部楼层
本帖最后由 行雲 于 2017-1-4 22:09 编辑

只会报111111111111111111111   yzzba > yzfzx

试了三种形式 :  yzzba 小于 yzfzx;     yzzba 大于 yzfzx;     yzzba 刚好在 yzfzx 线 上。   均只报111111111111111111111。超奇怪,请问问题出在哪里?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 06:32 , Processed in 0.405010 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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