找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 346|回复: 7

[求助] 这段程序有没有错误,返回结果老不对,请各位高手帮忙看看,先行谢过啦!!!

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

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

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

×
DCL文件:
//
//    SBFdcl.DCL
//
sbf:dialog{
            label="绘图参数输入";                     
            :popup_list{                                
                 label="水泵台数:";
                 key=“n”;                           
                 edit_width=8;
                 fixed_width=true;

            }
          spacer_1;
          ok_cancel;

          }


LISP代码:

(defun C:BF ()


  (setvar "cmdecho" 0)       
  (setvar "blipmode" 0)


  (if (null dcl_pt)
    (setq dcl_pt '(-1 -1))
  )


  (setq dcl_id (load_dialog "bf.dcl"))


  (if (not (new_dialog "sbf" dcl_id))
    (exit)
  )

  ?
  (setq n_list (list "3" "4" "5" "6" "7"))

  (show_list "n" n_list)

  (action_tile "n" "(get_n $value)")


  (action_tile "accept" "(setq dcl_pt  (done_dialog 1))")
  (action_tile "cancel" "(setq dcl_pt  (done_dialog 0))")


  (setq dd (start_dialog))               
  (cond
    ((= dd 1)
       (done_dialog)
    )                                       
    ((= dd 0)
      ( progn (unload_dialog 0) (exit))
    )                                       
  )


  (prin1)
)


(defun show_list(key newlist)
   (start_list key)
   (mapcar 'add_list newlist)
   (end_list)
)

(defun get_n(vn)
   (set_tile "n" (nth (atoi vn) n_list))
   (setq n  (atoi (get_tile "n")))
)


(prompt "=========BF.lsp==========")
(prin1)

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

已领礼包: 19个

财富等级: 恭喜发财

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

使用道具 举报

 楼主| 发表于 2018-11-27 22:18:07 | 显示全部楼层
Lisphk,请指点一下喽

点评

你的代码里面有个 ? 是不是这个地方错了? 把它删除掉 ) ? (setq n_list (list "3" "4" "5" "6" "7"))  详情 回复 发表于 2018-11-27 22:20
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-11-27 22:20:33 | 显示全部楼层
zxc001975cvb 发表于 2018-11-27 22:18
Lisphk,请指点一下喽
你那里执行有什么错误提示,贴上来,方便大家帮你分析。

你的代码里面有个 ?
是不是这个地方错了? 把它删除掉

)

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

使用道具 举报

 楼主| 发表于 2018-11-28 09:34:48 | 显示全部楼层
去掉那个问号也不行。
出现的问题:
见图
1、DCL文件中“key=n”时。列表框中有数据,改成“key=“n“ ”时,列表框中反而没有数据了,也不能选择。
2、在key=n的情况下,出现以下结果:
     选3,显示6,n的值为3;
     选4,显示7,n的值为4;
     选5,显示5,n的值为2;

     选6,显示6,n的值为3;

     选7,显示7,n的值为4;

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

使用道具 举报

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

使用道具 举报

已领礼包: 55个

财富等级: 招财进宝

发表于 2018-11-28 13:55:38 | 显示全部楼层
sbf:dialog{
            label="绘图参数输入";                     
            :popup_list{                                
                 label="水泵台数";
                 key="n";                           
                 edit_width=8;
                 fixed_width=true;
            }
          spacer_1;
          ok_cancel;

}
(defun c:CBF ()
  (setvar "cmdecho" 0)        
  (setvar "blipmode" 0)
  (if (null dcl_pt)(setq dcl_pt '(-1 -1)))
  (setq dcl_id (load_dialog "C:/Users/hanjianwen/Desktop/sbf.dcl"))
  ;(if (not (new_dialog "sbf" dcl_id))(exit))
  (new_dialog "sbf" dcl_id)
  (setq n_list (list "3" "4" "5" "6" "7"))
  (show_list "n" n_list)
  (action_tile "n" "(get_n $value)")
  (action_tile "accept" "(setq dcl_pt  (done_dialog 1))")
  (action_tile "cancel" "(setq dcl_pt  (done_dialog 0))")
  (setq dd (start_dialog))               
  (cond
    ((= dd 1)
       (done_dialog)
    )                                       
    ((= dd 0)
      ( progn (unload_dialog 0) (exit))
    )                                       
  )
  (prin1)
)

(defun show_list (key newlist)
   (start_list key)
   (mapcar 'add_list newlist)
   (end_list)
)

(defun get_n (vn)
   (set_tile "n" vn)
;(nth (atoi vn) n_list))
   (setq n (atoi (nth (atoi vn) n_list)))
)

评分

参与人数 1D豆 +5 收起 理由
newer + 5 热心帮忙奖!

查看全部评分

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 12:29 , Processed in 0.246734 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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