找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 740|回复: 4

[求助] [求助]:取出的字符不能插入我设的图块?

[复制链接]
发表于 2004-4-30 15:56:20 | 显示全部楼层 |阅读模式

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

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

×
以下是我的程序,请大家指点:
   (defun c:mixi()
   (setvar "cmdecho" 0)
   (setq blkname "mixitt");建立mixitt属性块
   (dcl_mixi)
   (prinl)
)


(defun dcl_mixi()
   (setq dcl_id (load_dialog "mixi"));我的dcl对话框名字是mixi
   (new_dialog "mixi" dcl_id)
   (action_tile "ins_ok" "(ok_mixi)(done_dialog l)")
(setq dd(start_dialog))

  (if (= dd 1)
       (progn
            (setq inspt (getpoint "\n选取图块插入点:"))   ;以下动态插入属性块
            (command "insert" blkname '(0 0) 1 1 0   ww wa wb wc wd we wf wg wh wi wj wk );怀疑这句语句有错
            (command "move" (entlast) "" '(0 0) pause)
        )
   )
  
)


(defun ok_mixi()
    (setq ww (atoi(get_tile "ww")));这里是取得各dcl中的KEY对应的TEXT内容。仍有错误
    (setq wa (atoi(get_tile "wa")));比如框内输入了a,会出现未知命令a
    (setq wb (atoi(get_tile "wb")))
    (setq wc (atoi(get_tile "wc")))
    (setq wd (get_tile "wd"))
    (setq we (get_tile "we"))

    (setq wf (get_tile "wf"))
    (setq wg (get_tile "wg"))
    (setq wh (get_tile "wh"))
    (setq wi (get_tile "wi"))
    (setq wj (get_tile "wj"))
    (setq wk (get_tile "wk"))
  )

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

已领礼包: 1个

财富等级: 恭喜发财

发表于 2004-4-30 21:24:58 | 显示全部楼层
(setq ww (atoi(get_tile "ww")));
这句中的函数atoi
语法

    (atoi string)

功能及参数

    此函数可用来将字符串转换成整型数。
你输入字符当然不能转换为整型啦!


范例

(atof "97") 返回 97
(atof "3") 返回 3
(atof "3.9") 返回 3

--------------------------
这里给你一个检测类型的函数


  1. (defun Dcl_Verify_Data (a / str strn lp)
  2.   (setq str (get_tile a)
  3.         lp 0
  4.         strn 0)
  5.     (if (=(substr str 1 1) ".")
  6.     (setq str (strcat "0" str))
  7.     )
  8.   (while (setq lp (vl-string-position (ascii ".") str lp))
  9.     (setq strn (1+ strn)
  10.           lp (1+ lp))
  11.     )
  12.   (if (and (or(= strn 1)
  13.               (= strn 0)
  14.               )
  15.            (numberp (read str))
  16.       )
  17.     (SET (read a) (read str))
  18.     (progn
  19.       (mode_tile a 2)
  20.       (vlr-beep-reaction)
  21.       (set_tile "error" "数据错误!--本编辑框只能是数字!!!")
  22.       (not t)
  23.     )
  24.   )
  25. )


在你必须输入数值型的文本框中调用:
(Dcl_Verify_Data "test")
[/COLOR]
---------------------
你的这句
(action_tile "ins_ok" "(ok_mixi)(done_dialog l)")
中的done_dialog后是字符L而不是数字1
------------------------
你所插入的块并没有你所定义的这么多属性。
---------------------
你最好将你的块及对话框等所有资源文件都传上来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-30 21:38:26 | 显示全部楼层
数值型文本的判定已经有基本函数:
(distof str)

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

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 03:42 , Processed in 0.171745 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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