ljcgq 发表于 2004-6-15 19:14:00

[现学现用]会动的cad----会走的闹钟!

学习高手们的思路,我学着用cad作了个会动的闹钟,其实还可以再扩展为实体,或者电子显示表,因为时间的原因只能做到这个地步.....希望大家热烈参与讨论并完善.....在此现谢谢大家!!

mikewolf2k 发表于 2004-6-15 19:18:00

不错不错,恭喜恭喜

ljcgq 发表于 2004-6-15 19:25:00

把源代码贴给大家,不过这个思路是从高手那里学来的.....为了讨论,也只好借花现佛....附件是lsp运行的cad图形。打开图形加载程序输入"bb"侧从零开始转起.....希望高手改进.....不要每次都总是从零开始转起....
;========================
;从零开始的闹钟
;ljc 2004.6.15
;========================
(defun c:BB ()
       (command "ucs" "w")
       (setq os (getvar "osmode"))
       (setvar "osmode" 0)                                                                                                                                                               
       (setq ho (getvar "cmdecho"))
       (setvar "CMDECHO" 0)
       (command "erase" "all" "")
       (COMMAND "-INSERT" "bp" (LIST 0 0 0) "" "" "")
       (COMMAND "-INSERT" "H" (LIST 0 0 10) "" "" "")
       (setq H (entget (entlast)))
       (COMMAND "-INSERT" "M" (LIST 0 0 20) "" "" "")
       (setq M (entget (entlast)))                                                                                                                                               
       (COMMAND "-INSERT" "S" (LIST 0 0 30) "" "" "")
       (setq S (entget (entlast)))
       (SETQ N 1 nn 1 nnn 1)
               (while t
                       (SETQ SJ       (* (/ n -30.0) pi ) )
                       (setq S (subst (cons 50 SJ) (assoc 50 S) S))
                       (SETQ mJ       (* (/ nnn -1800.0) pi ) )
                       (setq m (subst (cons 50 mJ) (assoc 50 m) m))
                       (entmod S)(entmod m)
                       (COMMAND "DELAY" "1000")
                       (if (= n 60)
                                                                       (progn
                                                                                                               (setq n 1)
                                                                                                               (SETQ hJ       (* (/ nn -360.0) pi ) )
                                                                                                               (setq h (subst (cons 50 hJ) (assoc 50 h) h))       
                                                                                                               (COMMAND "DELAY" "0")
                                                                                                               (entmod h)
                                                                                                               (setq nn (+ nn 1))                                                                                               
                                                                       )
                                                                                                                               (SETQ N (+ N 1))
                       );if
                       (setq nnn (+ nnn 1))
                       (if (= nnn 3600) (setq nnn 1))
       );while
       
       (setvar "osmode" os)
       (setvar "cmdecho" ho)                                               
)
       

四羽 发表于 2004-6-15 20:50:00

厉害啊!好佩服啊。。。。。。怎么可以这样子呢?

llccadd 发表于 2004-6-15 22:04:00

不错,不错

ldb1420 发表于 2004-6-16 08:33:00



CADghost 发表于 2004-6-16 10:37:00

你把他的表.dwgCOPY到你的CAD安装目录下的support目录下
就OK了

CADghost 发表于 2004-6-16 10:40:00

ljcgq你越来越强了!
真佩服!

ljcgq 发表于 2004-6-16 11:29:00

ldb1420:你把表.dwg文件打开,然后加载程序,运行。
页: [1]
查看完整版本: [现学现用]会动的cad----会走的闹钟!