找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 995|回复: 6

[求助] [求助]:[求助]: 帮我看看着错在哪了,谢谢!!

[复制链接]
发表于 2005-11-1 09:47:03 | 显示全部楼层 |阅读模式

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

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

×
(defun c:qq (/ x time pt year month day selt datlst lr) ;変更日期
  (setq        selt (ssget)
        pt   (getvar "cdate")                ;提取系統時間
        pt   (rtos pt 2 4)
  )
  (setq        year  (substr pt 1 4)
        month (substr pt 5 2)
        day   (substr pt 7 2)
        lr    1984
  )
  (setq year (atof year))
  (setq year (- year lr))
  (setq year (itoa year))
  (setq time (strcat year "-" month "-" day))
  (REPEAT loop
    (SETQ datlst (ENTGET (SSNAME selt sn)))
    (SETQ datlst (SUBST (CONS 1 time) (ASSOC 1 datlst) datlst))
    (ENTMOD datlst)
    (SETQ sn (1+ sn))
  )
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-1 10:11:49 | 显示全部楼层

你的意图是什么?这样行吗?

[CODE]
[PHP]
(DEFUN C:QQ (/ SELT PT YEAR MONTH DAY LR TIME LOOP SN DATLST) ;変更日期
  (SETQ        SELT (SSGET        '((-4 . "<OR")
                          (0 . "TEXT")
                          (0 . "MTEXT")
                          (0 . "DIMENSION")
                          (-4 . "OR>")
                         )
                 )
        PT   (GETVAR "CDATE")                ;提取系統時間
        PT   (RTOS PT 2 4)
  )
  (SETQ        YEAR  (SUBSTR PT 1 4)
        MONTH (SUBSTR PT 5 2)
        DAY   (SUBSTR PT 7 2)
        LR    1984
  )
  (SETQ YEAR (ATOF YEAR))
  (SETQ YEAR (- YEAR LR))
  (SETQ YEAR (RTOS YEAR 2 0))
  (SETQ TIME (STRCAT YEAR "-" MONTH "-" DAY))
  (SETQ LOOP (SSLENGTH SELT))
  (SETQ SN 0)
  (WHILE (< SN LOOP)
    (SETQ DATLST (ENTGET (SSNAME SELT SN)))
    (SETQ DATLST (SUBST (CONS 1 TIME) (ASSOC 1 DATLST) DATLST))
    (ENTMOD DATLST)
    (SETQ SN (1+ SN))
  )
  (PRINC)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-1 10:26:15 | 显示全部楼层
(setq year (itoa year))
这里有问题,itoa 是将integer型 转换 string型
可你这里的year是float型(你上边用(setq year (atof year))转换的)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-11-1 11:08:07 | 显示全部楼层
这个函数对你有用吗?
(defun tt (/ tmp txt )
  (setq tmp (rtos (getvar "cdate") 2 8))
  (setq txt (strcat (rtos (atof (substr tmp 1 4)) 2 0) "年"
                    (rtos (atof (substr tmp 5 2)) 2 0) "月"
                    (rtos (atof (substr tmp 7 2)) 2 0) "日"
                    (rtos (atof (substr tmp 10 2)) 2 0) "时"
                    (rtos (atof (substr tmp 12 2)) 2 0) "分"
                    ))
  (alert txt)
  (princ)
)

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

使用道具 举报

发表于 2005-11-1 11:44:31 | 显示全部楼层
上边说得对,loop,sn 初值都没有,咋行呢

请问你这句在替换什么啊(SETQ datlst (SUBST (CONS 1 time) (ASSOC 1 datlst) datlst))
(CONS 1 time) 为(1 . “21-11-1”)
(ASSOC 1 datlst)找什么啊?对象数据里边有这样的值吗,是啥意思,我不明白
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-11-1 13:16:21 | 显示全部楼层
while虽然慢一点,但可以减少空选的错误。
loop就可以省了,程序修改如下:
  1. [FONT=courier new]
  2. (load "xyp_lib")
  3. ;|加载通用函数(可在签名栏直接下载)
  4. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  5. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  6. ★1·在acad.lsp中增加(load"xyp_lib")
  7. ■2·在每个程序内增加(load"xyp_lib")
  8. ■3·在command下,输入(load"xyp_lib")
  9. ■4·在菜单.mnl中增加(load"xyp_lib")
  10. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  11. ★通用函数下载地址:
  12. [url]http://www.xdcad.net/forum/attachme...&postid=1606661[/url]
  13. |;


  14. ;;;変更日期
  15. (defun c:qq (/ ss pt year month day time i s1)
  16.   (cmdla0)
  17.   (if (null no1)
  18.     (setq no1 1984)
  19.   )
  20.   (setq        no1   (UREAL 7 "" "\n4位数的年代" no1)
  21.         ss    (ssget '((0 . "TEXT")))
  22.         pt    (rtos (getvar "cdate") 2 4)
  23.         year  (substr pt 1 4)
  24.         month (substr pt 5 2)
  25.         day   (substr pt 7 2)
  26.         year  (rtos (- (atof year) no1) 2 0)
  27.         time  (strcat year "-" month "-" day)
  28.         i     -1
  29.   )
  30.   (while (setq s1 (SSNAME ss (setq i (1+ i))))
  31.     (sub_upd s1 1 time)
  32.   )
  33.   (cmdla1)
  34. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 18:37 , Processed in 0.176100 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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