找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1138|回复: 11

[求助] 求助参数类型错误。

[复制链接]
发表于 2015-6-1 15:23:47 | 显示全部楼层 |阅读模式

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

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

×
程序如下,运行时提示这个错误: 参数类型错误: stringp nil
(princ "加载程序成功,输入ddd命令可应用此工具\n")
(defun c:ddd (/ exi dcl_id)
  (setq dcl_id (load_dialog "dia"))
  (new_dialog "dia" dcl_id)  ;启动dia对话框
  (set_tile "kb" "100")   ;设定宽kb初始值100
  (action_tile "accept" "(done_dialog 1)")
  (setq exi (start_dialog))
  (setq b (atof (get_tile "kb")))
  (unload_dialog dcl_id)
  (cond
    ((= exi 1) (princ "确定") (princ b))
    ((= exi 0) (exit))) ;_ 结束cond
  (princ)
)

dia:dialog{
label="设置";
spacer_1;
  :boxed_row{label="数据";
  :edit_box{label="板宽";Key="kb";edit_width=6;}
}
                spacer_1;
:row{
fixed_width=true;
alignment=centered;
ok_cancel;
:spacer{width=2;}
:button{label="关于…";Key="info";width=10;}
}
}

这个运行时,出现对话框,但是kb初始值一直不显示,我一直怀疑“100”不是字符串?但明显双引号内的不就是字符串吗?为什么不显示?所以按了确定键也不会显示b值。大侠帮着看看吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1742个

财富等级: 堆金积玉

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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2015-6-1 17:07:49 来自手机 | 显示全部楼层
本帖最后由 csharp 于 2015-6-1 17:10 编辑

accept.要先执行get_tile赋值再done_dialog,done_dialog后dcl就结束了,不会有任何get_tile

点评

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

使用道具 举报

 楼主| 发表于 2015-6-1 17:31:36 | 显示全部楼层
(princ "加载程序成功,输入ddd命令可应用此工具\n")
(defun c:ddd (/ exi dcl_id)
   (setq dcl_id (load_dialog "dia"))
   (new_dialog "dia" dcl_id)  ;启动dia对话框
  (set_tile "kb" "100")   ;设定宽kb初始值100
   (setq b (atof (get_tile "kb"))) ;这个是不是改到这里?
(action_tile "accept" "(done_dialog 1)")
   (setq exi (start_dialog))
    (unload_dialog dcl_id)
   (cond
     ((= exi 1) (princ "确定") (princ b))
     ((= exi 0) (exit))) ;_ 结束cond
   (princ)
)
不过改过之后还是提示参数类型错误
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-1 17:33:03 | 显示全部楼层
csharp 发表于 2015-6-1 17:07
accept.要先执行get_tile赋值再done_dialog,done_dialog后dcl就结束了,不会有任何get_tile

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

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2015-6-1 20:44:40 来自手机 | 显示全部楼层
(action_tile "accept" "(setq b (atof (get_tile \"kb\"))) (done_dialog 1)")

点评

我试了还是出现参数类型错误,同时初始值也看不到。  详情 回复 发表于 2015-6-2 08:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-2 08:24:31 | 显示全部楼层
csharp 发表于 2015-6-1 20:44
(action_tile "accept" "(setq b (atof (get_tile \"kb\"))) (done_dialog 1)")

我试了还是出现参数类型错误,同时初始值也看不到。

点评

aLisp 函数大小写是没有区别的,DCL不一样, Key 和 key 不同,检查你的 DCL文件 Key="kb"; => key="kb";  详情 回复 发表于 2015-6-2 19:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2015-6-2 19:24:15 | 显示全部楼层
benq3 发表于 2015-6-2 08:24
我试了还是出现参数类型错误,同时初始值也看不到。

aLisp 函数大小写是没有区别的,DCL不一样, Key 和 key 不同,检查你的 DCL文件

Key="kb";   => key="kb";

点评

谢谢,改过之后可以赋初始值了。 另外(action_tile "accept" " (setq b (atof (get_tile \"kb\"))) (done_dialog 1)")提示输入的字符串有缺陷 或者(action_tile "accept" " (setq b (atof (get_tile "kb"))) (don  详情 回复 发表于 2015-6-2 21:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-2 21:24:43 | 显示全部楼层
csharp 发表于 2015-6-2 19:24
aLisp 函数大小写是没有区别的,DCL不一样, Key 和 key 不同,检查你的 DCL文件

Key="kb";   => key= ...

谢谢,改过之后可以赋初始值了。
另外(action_tile "accept" " (setq b (atof (get_tile \"kb\"))) (done_dialog 1)")提示输入的字符串有缺陷
或者(action_tile "accept" " (setq b (atof (get_tile "kb"))) (done_dialog 1)")提示参数太多,我把(setq b (atof (get_tile "kb"))) 另做个子函数改成 (action_tile "accept" "(getnum)(done_dialog 1)") 就可以了,具体原因不清楚。

点评

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

使用道具 举报

已领礼包: 264个

财富等级: 日进斗金

发表于 2015-6-2 22:41:01 来自手机 | 显示全部楼层
感觉这个回调是ARX的表达式数值函数

点评

学习时间不长只是做了一个算是试验吧,以后根据再扩展,结果出现这些问题,只好上论坛请教一下。  详情 回复 发表于 2015-6-3 10:12
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 859个

财富等级: 财运亨通

发表于 2015-6-3 00:06:48 | 显示全部楼层
benq3 发表于 2015-6-2 21:24
谢谢,改过之后可以赋初始值了。
另外(action_tile "accept" " (setq b (atof (get_tile \"kb\"))) (don ...

get_tile 仅取值,**处理放外面
  1. (princ "加载程序成功,输入ddd命令可应用此工具\n")
  2. (defun c:ddd (/ exi dcl_id)
  3.   (setq dcl_id (load_dialog "dia"))
  4.   (new_dialog "dia" dcl_id)                ;启动dia对话框
  5.   (set_tile "kb" "100")                        ;设定宽kb初始值100
  6.   (action_tile
  7.     "accept"
  8.     "(setq b (get_tile \"kb\"))(done_dialog 1)"
  9.   )
  10.   (setq exi (start_dialog))
  11.   (unload_dialog dcl_id)
  12.   (cond
  13.     ((= exi 1) (princ "确定") (princ (atof b)))
  14.     ((= exi 0) (exit))
  15.   ) ;_ 结束cond
  16.   (princ)
  17. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-3 10:12:09 | 显示全部楼层
iLisp 发表于 2015-6-2 22:41
感觉这个回调是ARX的表达式数值函数


学习时间不长只是做了一个算是试验吧,以后根据再扩展,结果出现这些问题,只好上论坛请教一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 12:00 , Processed in 0.228781 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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