TheSwamp
Code Red => AutoLISP (Vanilla / Visual) => Topic started by: ElpanovEvgeniy on March 07, 2006, 05:59:19 PM
-
clock in AutoCad.
-
I like it!!! Very, nice. :-)
THX
-
neato burrito
when you going to incorporate big loud annoying beeps and animation?
-
This is my another clock lisp, can run in R14, but certainly, EL's clock is much more beautiful~
;;by qjchen, China, 2005
;;a clock that show time in the screen
(defun c:sz ()
(setq 123err *error*
*error* abcderr
)
(command "redraw")
(setq vc (getvar "viewctr"))
(setq vs (getvar "viewsize"))
(setq r (* 0.5 vs))
(setq color1 20)
(draw12)
(draw3)
(draw6)
(draw9)
(drawcircleandline)
(setq i 0)
(setq p2 vc
pfz2 p2
psz2 p2
)
(setq temp (cadr (grread 5)))
(while (< i 10000)
(setq time (menucmd "m=$(edtime,$(getvar,date),hh:mm:ss)"))
(setq timelen (strlen time))
(setq stime (atof (substr time 1 2)))
(if (>= stime 12)
(setq stime (- stime 12))
)
(setq ftime (atof (substr time 4 2)))
(setq mtime (atof (substr time (- timelen 1) 2)))
(setq p0 vc)
(setq ang (- (* 0.5 pi) (/ (* mtime pi) 30)))
(setq angfz (- (* 0.5 pi) (/ (* ftime pi) 30)))
(setq angsz (- (* 0.5 pi) (/ (* stime pi) 6)))
(setq angsz (- angsz (/ (* ftime pi) 360)))
(grdraw p0 p2 0)
(grdraw p0 pfz2 0)
(grdraw p0 psz2 0)
(setq p1 (polar p0 ang (* r 0.68)))
(setq pfz1 (polar p0 angfz (* r 0.58)))
(setq psz1 (polar p0 angsz (* r 0.50)))
(grdraw p0 p1 1)
(grdraw p0 pfz1 4)
(grdraw p0 psz1 3)
(setq p2 p1)
(setq pfz2 pfz1)
(setq psz2 psz1)
(princ)
(std-sleep 1)
(setq i (1+ i))
)
(setq *error* 123err)
)
(defun draw12 (/ pa p12-1 p12-2 p12-3 p12-4 p12-5 p12-6 p12-7 p12-8)
(setq pa (polar vc (* 0.5 pi) (* vs 0.4)))
(setq p12-1 (polar pa pi (* 0.05 r)))
(setq p12-2 (polar p12-1 (* 1.5 pi) (* 0.2 r)))
(setq p12-3 (polar pa 0 (* 0.01 r)))
(setq p12-4 (polar p12-3 0 (* 0.1 r)))
(setq p12-5 (polar p12-4 (* 1.5 pi) (* 0.1 r)))
(setq p12-6 (polar p12-5 pi (* 0.1 r)))
(setq p12-7 (polar p12-6 (* 1.5 pi) (* 0.1 r)))
(setq p12-8 (polar p12-7 0 (* 0.1 r)))
(grdraw p12-1 p12-2 color1)
(grdraw p12-3 p12-4 color1)
(grdraw p12-4 p12-5 color1)
(grdraw p12-5 p12-6 color1)
(grdraw p12-6 p12-7 color1)
(grdraw p12-7 p12-8 color1)
)
(defun draw3 (/ pb p12-1 p12-2 p12-3 p12-4 p12-5 p12-6)
(setq pb (polar vc 0 (* vs 0.37)))
(setq p12-6 pb)
(setq p12-3 (polar pb pi (* 0.1 r)))
(setq p12-4 (polar pb (* 1.5 pi) (* 0.1 r)))
(setq p12-1 (polar pb (* 0.5 pi) (* 0.1 r)))
(setq p12-2 (polar p12-1 pi (* 0.1 r)))
(setq p12-5 (polar p12-4 pi (* 0.1 r)))
(grdraw p12-6 p12-3 color1)
(grdraw p12-1 p12-2 color1)
(grdraw p12-4 p12-5 color1)
(grdraw p12-1 p12-6 color1)
(grdraw p12-6 p12-4 color1)
)
(defun draw6 (/ pb p12-1 p12-2 p12-3 p12-4 p12-5 p12-6)
(setq pc (polar vc (* 1.5 pi) (* vs 0.4)))
(setq p12-1 (polar pc 0 (* 0.05 r)))
(setq p12-2 (polar p12-1 (* 0.5 pi) (* 0.1 r)))
(setq p12-3 (polar p12-2 pi (* 0.1 r)))
(setq p12-4 (polar p12-3 (* 1.5 pi) (* 0.1 r)))
(setq p12-5 (polar p12-3 (* 0.5 pi) (* 0.1 r)))
(setq p12-6 (polar p12-5 0 (* 0.1 r)))
(grdraw p12-1 p12-2 color1)
(grdraw p12-2 p12-3 color1)
(grdraw p12-4 p12-1 color1)
(grdraw p12-4 p12-5 color1)
(grdraw p12-5 p12-6 color1)
)
(defun draw9 (/ pb p12-1 p12-2 p12-3 p12-4 p12-5 p12-6)
(setq pd (polar vc pi (* vs 0.37)))
(setq p12-1 pd)
(setq p12-2 (polar p12-1 (* 0.5 pi) (* 0.1 r)))
(setq p12-3 (polar p12-2 0 (* 0.1 r)))
(setq p12-4 (polar p12-3 (* 1.5 pi) (* 0.1 r)))
(setq p12-5 (polar p12-4 (* 1.5 pi) (* 0.1 r)))
(setq p12-6 (polar p12-5 pi (* 0.1 r)))
(grdraw p12-1 p12-2 color1)
(grdraw p12-2 p12-3 color1)
(grdraw p12-4 p12-1 color1)
(grdraw p12-3 p12-5 color1)
(grdraw p12-5 p12-6 color1)
)
(defun drawcircleandline (/ i pe pf p1 p2)
(setq i 1)
(repeat 11
(setq pe (polar vc (* i (/ pi 6)) (* vs 0.38)))
(setq pf (polar vc (* i (/ pi 6)) (* vs 0.35)))
(if (and
(/= i 3)
(/= i 6)
(/= i 9)
)
(grdraw pe pf 31)
)
(setq i (1+ i))
)
(cc (* r 0.86) 42)
(cc (* r 0.9) 31)
)
(defun cc(a b)
(setq i 0)
(while (< i (* 2 pi))
(setq p1 (polar vc i a))
(setq i (+ i (/ (* 2 pi) 180)))
(setq p2 (polar vc i a))
(grdraw p1 p2 b)
)
)
(defun abcderr (st)
(if (/= st "Function cancelled")
(princ (strcat "\nerror:" s))
)
)
(defun STD-SLEEP (secs / endt)
(setq endt (+ (getvar "DATE") (/ secs 86400.0))) ; fixed
(while (< (getvar "DATE") endt)
T
)
)
-
Very nice clock!
You used grdraw, "viewctr" and "viewsize"...
I was too lazy :-(
-
Some people just have way too much time on their hands...
I can't think of anythingelse timely to say. Good clocks.
Tick Tick
-
With usage of a matrix 4x4
For any coordinate system
:-)
(defun c:clo (/ A1 GR I S)
;; ElpanovEvgeniy, Russia, Moscow, 2006
;; Clock that show time in the screen
(setq a1 (/ pi 30))
(while (= (car (setq gr (grread 5))) 5)
(setq s (/ (getvar "viewsize") 12.)
gr (trans (cadr gr) 1 3)
i 0
) ;_ setq
(redraw)
(grvecs ;SS
'(2 (-0.01 0.) (1. 0.))
((lambda (a)
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos a) s)
(* (sin a) s)
(car gr)
(+ (* s 1.5) (cadr gr))
s
)
) ;_ lambda
(- (/ pi 2.) (* (/ pi 30.) (atof (menucmd "M=$(edtime,$(getvar,date),SS.MSEC)"))))
)
) ;_ grvecs
(grvecs ;MM
'(3(-0.01 0.)(0.8 0.)3(-0.01 -0.01)(0.6 -0.01)3(-0.01 0.01)(0.6 0.01)3(-0.01 -0.02)(0.4 -0.02)3(-0.01 0.02)(0.4 0.02))
((lambda (a)
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos a) s)
(* (sin a) s)
(car gr)
(+ (* s 1.5) (cadr gr))
s
)
) ;_ lambda
(- (/ pi 2.) (* (/ pi 30.) (atoi (menucmd "M=$(edtime,$(getvar,date),MM)"))))
)
) ;_ grvecs
(grvecs ;H
'(3(-0.01 0.)(0.5 0.)3(-0.01 -0.01)(0.4 -0.01)3(-0.01 0.01)(0.4 0.01)3(-0.01 -0.02)(0.3 -0.02)
3(-0.01 0.02)(0.3 0.02)3(-0.01 -0.03)(0.2 -0.03)3(-0.01 0.03)(0.2 0.03)
)
((lambda (a)
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos a) s)
(* (sin a) s)
(car gr)
(+ (* s 1.5) (cadr gr))
s
)
) ;_ lambda
(- (/ pi 2.)
(* (/ pi 6.)
(+ (atoi (menucmd "M=$(edtime,$(getvar,date),H)"))
(/ (atoi (menucmd "M=$(edtime,$(getvar,date),MM)")) 60.)
) ;_ +
) ;_ *
) ;_ -
)
) ;_ grvecs
(repeat 4
(grvecs
'(5(0.8 0.)(0.82 0.02)5(0.82 0.02)(1. 0.02)5(1. 0.02)(1. -0.02)5(1. -0.02)(0.82 -0.02)5(0.82 -0.02)(0.8 0.))
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos (* a1 i)) s)
(* (sin (* a1 i)) s)
(car gr)
(+ (* s 1.5) (cadr gr))
s
)
) ;_ grvecs
(repeat 3
(grvecs
'(5(1. 0.01)(0.92 0.01)5(1. -0.01)(0.92 -0.01))
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos (* a1 i)) s)
(* (sin (* a1 i)) s)
(car gr)
(+ (* s 1.5) (cadr gr))
s
)
) ;_ grvecs
(repeat 5
(grvecs
'(5 (0.9 0) (1 0))
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos (* a1 i)) s)
(* (sin (* a1 i)) s)
(car gr)
(+ (* s 1.5) (cadr gr))
s
)
) ;_ grvecs
(setq i (1+ i))
) ;_ repeat
) ;_ repeat
) ;_ repeat
) ;_ while
(redraw)
)
-
dear Evgeniy
It seems that the clock pointer couldnt animate that just like the up two rountine does, only when the mouse move, then the time change.
could the clock a little more bigger?
I like your code:)
-
dear Evgeniy
It seems that the clock pointer couldnt animate that just like the up two rountine does, only when the mouse move, then the time change.
could the clock a little more bigger?
I like your code:)
(defun c:clo (/ A1 GR I S)
;; ElpanovEvgeniy, Russia, Moscow, 2006
;; Clock that show time in the screen
(setq a1 (/ pi 30))
(while (= (car (setq gr (grread 5))) 5)
(setq s (/ (getvar "viewsize") 12.); Replace on 2. - 100.
gr (trans (cadr gr) 1 3)
i 0
) ;_ setq
(redraw)
.............................Is cut off......................................
-
very nice :kewl:
-
It is probable, so it is better...
(defun c:clo (/ A1 GR I S)
;; ElpanovEvgeniy, Russia, Moscow, 2006
;; Clock that show time in the screen
(setq a1 (/ pi 30))
(while (= (car (setq gr (grread nil 5 1))) 5)
(setq s (/ (getvar "viewsize") 8.)
gr (trans (cadr gr) 1 3)
i 0
) ;_ setq
(redraw)
(grvecs ;SS
'(2 (-0.01 0.) (1. 0.))
((lambda (a)
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos a) s)
(* (sin a) s)
(car gr)
(cadr gr)
s
)
) ;_ lambda
(- (/ pi 2.) (* (/ pi 30.) (atof (menucmd "M=$(edtime,$(getvar,date),SS.MSEC)"))))
)
) ;_ grvecs
(grvecs ;MM
'(3 (-0.01 0.) (0.8 0.)
3 (-0.01 -0.01) (0.6 -0.01)
3 (-0.01 0.01) (0.6 0.01)
3 (-0.01 -0.02) (0.4 -0.02)
3 (-0.01 0.02) (0.4 0.02)
3 (0.4 -0.02) (0.8 0.)
3 (0.4 0.02) (0.8 0.)
)
((lambda (a)
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos a) s)
(* (sin a) s)
(car gr)
(cadr gr)
s
)
) ;_ lambda
(- (/ pi 2.) (* (/ pi 30.) (atoi (menucmd "M=$(edtime,$(getvar,date),MM)"))))
)
) ;_ grvecs
(grvecs ;H
'(1 (-0.01 0.) (0.5 0.)
1 (-0.01 -0.01) (0.4 -0.01)
1 (-0.01 0.01) (0.4 0.01)
1 (-0.01 -0.02) (0.3 -0.02)
1 (-0.01 0.02) (0.3 0.02)
1 (-0.01 -0.03) (0.2 -0.03)
1 (-0.01 0.03) (0.2 0.03)
1 (0.2 -0.03) (0.5 0.)
1 (0.2 0.03) (0.5 0.)
)
((lambda (a)
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos a) s)
(* (sin a) s)
(car gr)
(cadr gr)
s
)
) ;_ lambda
(- (/ pi 2.)
(* (/ pi 6.)
(+ (atoi (menucmd "M=$(edtime,$(getvar,date),H)"))
(/ (atoi (menucmd "M=$(edtime,$(getvar,date),MM)")) 60.)
) ;_ +
) ;_ *
) ;_ -
)
) ;_ grvecs
(repeat 4
(grvecs
'(6 (0.8 0.) (0.82 0.02)
6 (0.82 0.02) (1. 0.02)
6 (1. 0.02) (1. -0.02)
6 (1. -0.02) (0.82 -0.02)
6 (0.82 -0.02) (0.8 0.)
)
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos (* a1 i)) s)
(* (sin (* a1 i)) s)
(car gr)
(cadr gr)
s
)
) ;_ grvecs
(repeat 3
(grvecs
'(5 (1. 0.01) (0.92 0.01) 5 (1. -0.01) (0.92 -0.01)5 (0.92 0.01)(0.89 0.) 5 (0.92 -0.01)(0.89 0.))
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos (* a1 i)) s)
(* (sin (* a1 i)) s)
(car gr)
(cadr gr)
s
)
) ;_ grvecs
(repeat 5
(grvecs
'(3 (-0.25 1.2) (0 1.3) 3 (0 1.3) (0.25 1.2) 3 (0.25 1.2) (0 1.1) 3 (0 1.1) (-0.25 1.2))
((lambda (c s x y sc)
(list (list c (- s) 0. (+ s s (* s 0.5) x))
(list s c 0. y)
(list 0. 0. sc 0.)
'(0. 0. 0. 1.)
) ;_ list
) ;_ lambda
(* (cos (* a1 i 1)) s)
(* (sin (* a1 i 1)) s)
(car gr)
(cadr gr)
s
)
) ;_ grvecs
(grvecs
'(5 (0.9 0) (1 0)); 5 (1.05 -0.9) (1.05 0.9)
((lambda (c s x y sc)
(list (list c (- s) 0. x) (list s c 0. y) (list 0. 0. sc 0.) '(0. 0. 0. 1.))
) ;_ lambda
(* (cos (* a1 i)) s)
(* (sin (* a1 i)) s)
(car gr)
(cadr gr)
s
)
) ;_ grvecs
(setq i (1+ i))
) ;_ repeat
) ;_ repeat
) ;_ repeat
) ;_ while
(redraw)
)
-
It is probable, so it is better...
Evgeniy that is amazing! :-)