找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2361|回复: 40

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

[复制链接]
发表于 2017-1-1 12:47:25 | 显示全部楼层 |阅读模式

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

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

×
各位老大,大家好,下面代码报错:用于比较的参数类型不正确: "5" 80.0   请问,这种类型的错误,问题出在哪里?
(setq zxjd (getpoint "\n左下角:"))
(setq ysjd (getcorner zxjd "\n右上角:"))
(setq yzfzx (/ (cadr (mapcar '- ysjd zxjd)) 2));;;左下角 至 右上角 y轴坐标   分中值
,,,,,
,,,,,
    (repeat (sslength xunhxj)
      (setq sam (entget (ssname xunhxj m)))
      (setq yuanxi (cdr (assoc 10 sam)))
      (setq xzzba (rtos (- (car yuanxi) xzxjd) 2 2))
      (setq yzzba (rtos (- (cadr yuanxi) yzxjd) 2 2))
,,,,,
,,,,,
      (if (> yzzba yzfzx);;;比对,,,yzzba相对yzfzx的位置
   (setq ttt (polar yuanxi (* 0.75 pi) (* 1.1 bjlscd)))
      )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-1 13:05:16 | 显示全部楼层
(setq yzfzx (/ (cadr (mapcar '- ysjd zxjd)) 2))   这个结果是实数
(setq yzzba (rtos (- (cadr yuanxi) yzxjd) 2 2))  这个结果是字符串

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

使用道具 举报

 楼主| 发表于 2017-1-1 13:31:40 | 显示全部楼层

你好,多谢指教,曾多次受到你的帮助,,


(setq yzzba (rtos (- (cadr yuanxi) yzxjd) 2 2))  这个也是数值吧,可以用text打印出来的

想让yzzba的坐标,参照(setq yzfzx (/ (cadr (mapcar '- ysjd zxjd)) 2))做个比较,请问,yzzba如何转换一下,可以实现比较?

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-1 13:34:33 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2017-1-1 13:38:53 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2017-1-2 23:50:13 | 显示全部楼层

你好,有个不懂的想求教你,下面代码请你帮我看一下
      (if (> wykbj 30) (setq kwmzb yuanxi)) ;;;wykbj 大于 30 比对通过
      (if (< wykbj 30) (aaaaa)) ;;;wykbj 小于 30 再细分比对 (这里,变量aaaaa不知怎么定义)
      (if (and (= aaaaa) (> yzzba yzfzx)) (setq kwmzb (polar yuanxi (* 0.75 pi) (* 1.1 bjlscd)))) ;;;wykbj 小于 30 , 执行(> yzzba yzfzx)比对
      (if (and (= aaaaa) (< yzzba yzfzx)) (setq kwmzb (polar yuanxi (* 1.25 pi) (* 1.1 bjlscd)))) ;;;wykbj 小于 30 , 执行(< yzzba yzfzx)比对

还这样写过,没起作用
      (if (> wykbj 30) (setq kwmzb yuanxi));;;wykbj 大于 30 比对通过
      (if (and  (< wykbj 30) (> yzzba yzfzx)) (setq kwmzb (polar yuanxi (* 0.75 pi) (* 1.1 bjlscd))));;;wykbj 小于 30 , 执行(> yzzba yzfzx)比对
      (if (and  (< wykbj 30) (< yzzba yzfzx)) (setq kwmzb (polar yuanxi (* 1.25 pi) (* 1.1 bjlscd))));;;wykbj 小于 30 , 执行(< yzzba yzfzx)比对

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-1-3 07:50:25 | 显示全部楼层

试试 cond 函数。
对多分枝判断,用 if 是比较麻烦的。

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

使用道具 举报

已领礼包: 3191个

财富等级: 富可敌国

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

使用道具 举报

 楼主| 发表于 2017-1-3 12:25:55 | 显示全部楼层

你好,请你帮我看看这些句式有什么问题
      (cond
      ((and (< wykbj 5) (> yzzba yzfzx)) (setq kwmzb (polar yuanxi (* 0.75 pi) (* 1.1 bjlscd))));;;关于(yzzba yzfzx)比对,全被这句,即(> yzzba yzfzx)控制了
      ((and (< wykbj 5) (< yzzba yzfzx)) (setq kwmzb (polar yuanxi (* 0.25 pi) (* 1.1 bjlscd))));;;这句完全不起作用
      ((> wykbj 5) (setq kwmzb yuanxi));;;这句部有时有用,有时又没用,不稳定,不知何故
      )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-1-3 13:17:33 | 显示全部楼层

就句式而言,条件不封闭,判断不完全,大于小于之间还有等于,所以会常看到cond句法最后有(t nil)一行。
你这里的句式最好写成这样:
  1. (cond
  2.       ((>= wykbj 5) (setq kwmzb yuanxi))   ;重要的或简单明了的条件太前面
  3.       ((and (< wykbj 5) (>= yzzba yzfzx)) (setq kwmzb (polar yuanxi (* 0.75 pi) (* 1.1 bjlscd))))
  4.       ((and (< wykbj 5) (< yzzba yzfzx)) (setq kwmzb (polar yuanxi (* 0.25 pi) (* 1.1 bjlscd))))       ((t nil)  ;虽然条件已经闭合,但为防止意外情况,可以加上这一行
  5.     )

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

使用道具 举报

 楼主| 发表于 2017-1-3 13:48:49 | 显示全部楼层

比对关系,还是只有(>= yzzba yzfzx)起到了作用。 (< yzzba yzfzx)完全没动作,是不是被(>= yzzba yzfzx)完全控制了?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2017-1-3 16:29:30 | 显示全部楼层

你能确定这两个值确实如你所想的那样关系?
试着用CAD自带的编辑器VLisp调试,跟踪一下这些值,或许在前面计算的时候哪里出错了,这些值并不如你所想的一样,自然比较的关系也就不是你所想的了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

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

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2017-1-3 21:49:19 | 显示全部楼层

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 06:25 , Processed in 0.356438 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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