找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 656|回复: 7

[LISP程序]:教小孩子算算术的小程序,请“大家”完善

[复制链接]
发表于 2004-9-26 06:41:00 | 显示全部楼层 |阅读模式

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

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

×
[PHP];;;列出算式要求答案,判断对错
(defun c:ss (/ answer entnum num1 num2 xian1 xian2 ccdate high midpt
             elist ptg)
  (defun sserr (s)
    (cond ((= s "quit / exit abort")
           (princ)
          )
    )
    (setq *error* olderr)
    (command "undo" "end")
    (princ)
  )
  (setq        olderr        *error*
        *error*        sserr
  )
  (setq        xian1 8
        xian2 5
        num1 9
  )
  (while (or (<= num1 xian1) (<= num2 xian2))
    (setq ccdate (getvar "cdate"))
    (setq ccdate (- ccdate (fix ccdate)))
    (setq ccdate (- (* ccdate 1000000) (fix (* ccdate 1000000))))
    (setq num1 (fix (* ccdate 100)))
    (setq ccdate (- (* ccdate 1000000) (fix (* ccdate 1000000))))
    (setq num2 (fix (* ccdate 10)))
  )
  (setq high (/ (getvar "viewsize") 8))
  (setq midpt (polar (getvar "viewctr") (* 1.5 pi) (* 4 high)))
  (command "-pan" (list 0 high) "")
  (setq high (/ high 1.5))
  (entmake
    (list (cons 0 "TEXT")
          (cons 1 (strcat (itoa num1) "+" (itoa num2) "="))
          (cons 7 "STANDARD")
          (cons 8 "算式")
          (cons 10 (polar midpt pi (* 2.8 high)))
          (cons 40 high)
          (cons 50 0)
          (cons 41 0.7)
          (cons 71 0)
          (cons 72 0)
          (cons 73 0)
    )
  )
  (setq elist (entget (entlast)))
  (terpri)
  (setq answer nil)
  (while (/= answer (+ num1 num2))
    (while (null answer)
      (setq answer (getint "\r等于?"))
    )
    (if        (and (= entnum 2) (/= answer nil))
      (progn
        (entdel (entlast))
        (entdel (entlast))
        (setq entnum nil)
      )
    )

    (setq
      elist (subst
              (cons
                1
                (strcat        (itoa num1)
                        "+"
                        (itoa num2)
                        "="
                        (itoa answer)
                )
              )
              (assoc 1 elist)
              elist
            )
    )
    (entmod elist)
    (if        (= answer (+ num1 num2))
      (progn
        (setq ptg (polar midpt 0.15 (* 2.45 high)))
        (entmake (list (cons 0 "LWPOLYLINE")
                       (cons 8 "判断")
                       (cons 100 "AcDbEntity")
                       (cons 100 "AcDbPolyline")
                       (cons 90 3)
                       (cons 70 0)
                       (cons 62 205)
                       (cons 40 (* 0.15 high))
                       (cons 41 (* 0.15 high))
                       (cons 42 0)
                       (cons 10 ptg)
                       (cons 40 (* 0.15 high))
                       (cons 41 (* 0.15 high))
                       (cons 42 0)
                       (cons 10 (polar ptg 5.59 (* 1.0 high)))
                       (cons 40 (* 0.15 high))
                       (cons 41 (* 0.15 high))
                       (cons 42 0)
                       (cons 10 (polar ptg 0.7 (* 3.5 high)))
                 )
        )
        (setq *error* sserr)
        (exit)
      )
      (progn
        (setq ptg (polar midpt 0.15 (* 1.8 high)))
        (entmake (list (cons 0 "LWPOLYLINE")
                       (cons 8 "判断")
                       (cons 100 "AcDbEntity")
                       (cons 100 "AcDbPolyline")
                       (cons 90 3)
                       (cons 70 0)
                       (cons 62 2)
                       (cons 40 (* 0.15 high))
                       (cons 41 (* 0.15 high))
                       (cons 42 0)
                       (cons 10 (polar ptg 2.3 high))
                       (cons 40 (* 0.15 high))
                       (cons 41 (* 0.15 high))
                       (cons 42 0)
                       (cons 10 (polar ptg 5.4 high))
                 )
        )
        (entmake (list (cons 0 "LWPOLYLINE")
                       (cons 8 "判断")
                       (cons 100 "AcDbEntity")
                       (cons 100 "AcDbPolyline")
                       (cons 90 3)
                       (cons 70 0)
                       (cons 62 2)
                       (cons 40 (* 0.15 high))
                       (cons 41 (* 0.15 high))
                       (cons 42 0)
                       (cons 10 (polar ptg 0.8 high))
                       (cons 40 (* 0.15 high))
                       (cons 41 (* 0.15 high))
                       (cons 42 0)
                       (cons 10 (polar ptg 3.9 high))
                 )
        )
        (setq entnum 2)
      )
    )
    (setq answer nil)
  )
  (princ)
)
;;;----------------------------------------------------------------------------
(princ "\n  SS V1.0已加载。以SS启动命令。")
(princ)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-9-26 09:13:40 | 显示全部楼层
有一个小问题群码100是什么含义

在论坛上看到过几次。不过在资料中没有查到

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2004-9-27 09:39:28 | 显示全部楼层
多谢4楼的指点

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

使用道具 举报

 楼主| 发表于 2004-9-27 09:45:57 | 显示全部楼层
记得从前我作程序的时候试验过了,缺少是不不可以的,只能增加上。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-27 16:42:43 | 显示全部楼层
URLJIT你好

只能在这给你回复了,我的爱心币不够

多谢你的关心我会努力的

其实在这里我们都是互相学习、互相促进的

希望我们可以成为好朋友

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

使用道具 举报

 楼主| 发表于 2004-9-29 13:34:08 | 显示全部楼层
hyx_lyn 你好:
你可以将存款取出就可以发送悄悄话了
让我们互相学习吧
你可以QQ联系我,我愿意和你称为好朋友
关于程序,以后有时间再改进吧
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 11:54 , Processed in 0.198628 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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