Jump to content
Bluebird1973

HappyBirthday.lsp ==>Fun vs. prank

Recommended Posts

Bluebird1973

Hi together,

 

I would like to play a trick on my draftsman colleagues and I needed some help.

...feel free to improve my poor coding...

 

 


[color=RED]([/color][color=BLUE]defun[/color] c:HappyBirthday [color=RED]([/color][color=BLUE]/[/color] [color=BLUE]UserName[/color] [color=BLUE]User1[/color] [color=BLUE]B-Day_Date[/color] [color=BLUE]R-age[/color] [color=BLUE]age[/color] [color=BLUE]ry[/color][color=RED])[/color]

[color=RED]([/color][color=BLUE]if[/color] [color=#990099];list of users for the pop-ups[/color]
	[color=RED]([/color][color=BLUE]setq[/color] [color=BLUE]UserName[/color] [color=RED]([/color][color=BLUE]strcase[/color][color=RED]([/color][color=BLUE]getvar[/color] [color=DARKRED]'[/color]loginname[color=RED])))[/color]
	[color=RED]([/color][color=BLUE]progn[/color]
		[color=RED]([/color][color=BLUE]cond[/color]
[color=#990099];						User Name						User						Birthday						retirement age[/color]
			[color=RED](([/color][color=BLUE]equal[/color] [color=BLUE]UserName[/color] [color=#a52a2a]"MH019"[/color][color=RED])[/color] [color=RED]([/color][color=BLUE]setq[/color] [color=BLUE]User1[/color] [color=#a52a2a]"Michael"[/color]		[color=BLUE]B-Day_Date[/color] [color=#a52a2a]"19991003"[/color]			[color=BLUE]R-age[/color] [color=#009900]67[/color][color=RED]))[/color]
			[color=RED](([/color][color=BLUE]equal[/color] [color=BLUE]UserName[/color] [color=#a52a2a]"MH019"[/color][color=RED])[/color] [color=RED]([/color][color=BLUE]setq[/color] [color=BLUE]User1[/color] [color=#a52a2a]"Michael"[/color]		[color=BLUE]B-Day_Date[/color] [color=#a52a2a]"20180109"[/color]			[color=BLUE]R-age[/color] [color=#009900]67[/color][color=RED]))[/color]
			[color=RED](([/color][color=BLUE]equal[/color] [color=BLUE]UserName[/color] [color=#a52a2a]"MH019"[/color][color=RED])[/color] [color=RED]([/color][color=BLUE]setq[/color] [color=BLUE]User1[/color] [color=#a52a2a]"Michael"[/color]		[color=BLUE]B-Day_Date[/color] [color=#a52a2a]"20180110"[/color]			[color=BLUE]R-age[/color] [color=#009900]67[/color][color=RED]))[/color]
			[color=RED]([/color][color=BLUE]T[/color]		[color=RED]([/color][color=BLUE]princ[/color] [color=#a52a2a]"\n\nSorry, User not listed !!!"[/color][color=RED]))[/color]
		[color=RED])[/color][color=#990099];_cond end[/color]
	[color=RED])[/color][color=#990099];_progn end[/color]
[color=RED])[/color][color=#990099];_if end[/color]

[color=RED]([/color][color=BLUE]setq[/color] [color=BLUE]age[/color] [color=RED]([/color][color=BLUE]itoa[/color] [color=RED]([/color][color=BLUE]-[/color] [color=RED]([/color][color=BLUE]atoi[/color] [color=RED]([/color][color=BLUE]substr[/color] [color=RED]([/color][color=BLUE]rtos[/color] [color=RED]([/color][color=BLUE]fix[/color] [color=RED]([/color][color=BLUE]getvar[/color] [color=DARKRED]'[/color]CDATE[color=RED])))[/color] [color=#009900]1[/color] [color=#009900]4[/color][color=RED]))[/color] [color=RED]([/color][color=BLUE]atoi[/color] [color=RED]([/color][color=BLUE]substr[/color] [color=BLUE]B-Day_Date[/color] [color=#009900]1[/color] [color=#009900]4[/color][color=RED]))[/color] [color=RED])[/color] [color=RED]))[/color][color=#990099];calculating the age of the user[/color]
[color=RED]([/color][color=BLUE]setq[/color] [color=BLUE]ry[/color]	[color=RED]([/color][color=BLUE]itoa[/color] [color=RED]([/color][color=BLUE]-[/color] [color=BLUE]R-age[/color] [color=RED]([/color][color=BLUE]atoi[/color] [color=BLUE]age[/color][color=RED]))))[/color][color=#990099];remaining years until retirement[/color]

[color=RED]([/color][color=BLUE]alert[/color]
	[color=RED]([/color][color=BLUE]strcat[/color] 
		[color=#a52a2a]"Hello "[/color] [color=BLUE]User1[/color] [color=#a52a2a]"!"[/color]
		[color=#a52a2a]"\n\nHerzlichen Glückwunsch zum "[/color] [color=BLUE]age[/color] [color=#a52a2a]". Geburtstag !!!"[/color]
		[color=#a52a2a]"\n\nCongratulations on your "[/color] [color=BLUE]age[/color] [color=#a52a2a]"st/nd/rd/ th birthday !!!"[/color] [color=#990099];here I need some help for the e.g. 21st, 22nd, 23rd, 24th.[/color]
		[color=#a52a2a]"\n\n\n\nVon jetzt an, sind es nur noch "[/color] [color=BLUE]ry[/color] [color=#a52a2a]" Jahre bis zur Rente \n... Also hau rein ... :-)"[/color]
		[color=#a52a2a]"\n\nFrom now on, there are only "[/color] [color=BLUE]ry[/color] [color=#a52a2a]"  years left to retirement \n... so get in there ... :-)"[/color]
		[color=#a52a2a]"\n\n\nKeyuser Michael"[/color]
		[color=RED])[/color]
[color=RED])[/color]
[color=RED]([/color][color=BLUE]princ[/color][color=RED])[/color]
[color=RED])[/color]

[color=#990099];original code from 06.01.2011/Lee Mac changed on my needs[/color]
[color=#990099];http://www.cadtutor.net/forum/showthread.php?55800-Differences-in-exiting-AutoCAD&p=378358&viewfull=1#post378358[/color]
[color=RED]([/color][color=BLUE]if[/color]
[color=RED]([/color][color=BLUE]not[/color]
	[color=RED]([/color][color=BLUE]and[/color]
		[color=RED]([/color][color=BLUE]setq[/color] [color=BLUE]date[/color] [color=RED]([/color][color=BLUE]getenv[/color] [color=#a52a2a]"OnceAYear"[/color][color=RED]))[/color]
		[color=RED]([/color][color=BLUE]<[/color] [color=RED]([/color][color=BLUE]fix[/color] [color=RED]([/color][color=BLUE]getvar[/color] [color=DARKRED]'[/color]CDATE[color=RED]))[/color] [color=RED]([/color][color=BLUE]atoi[/color] [color=BLUE]date[/color][color=RED]))[/color]
	[color=RED])[/color][color=#990099];_end and[/color]
[color=RED])[/color][color=#990099];_end not[/color]
[color=RED]([/color][color=BLUE]progn[/color]
	[color=RED]([/color]c:HappyBirthday[color=RED])[/color]
	[color=RED]([/color][color=BLUE]setenv[/color] [color=#a52a2a]"OnceAYear"[/color] [color=RED]([/color][color=BLUE]itoa[/color] [color=RED]([/color][color=BLUE]+[/color] [color=#009900]10000[/color] [color=RED]([/color][color=BLUE]fix[/color] [color=RED]([/color][color=BLUE]getvar[/color] [color=DARKRED]'[/color]CDATE[color=RED])))))[/color]	[color=#990099];stored in windows registry [HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R19.1\ACAD-D004:409\FixedProfile\General][/color]
[color=RED])[/color][color=#990099];_end progn[/color]
[color=RED])[/color][color=#990099];_end if[/color]
[color=RED]([/color][color=BLUE]princ[/color][color=RED])[/color]


 

Thank you in advanced !!! :D

 

kind regards

Bluebird1973

Share this post


Link to post
Share on other sites
FranknBeans

here's one way to get the suffix

 

(setq suffix (chr (last (vl-string->list age))))
(cond ((eq suffix "1") (setq suffix "st"))
     ((eq suffix "2") (setq suffix "nd"))
     ((eq suffix "3") (setq suffix "rd"))
     ( T (setq suffix "th"))
)

Share this post


Link to post
Share on other sites
Lee Mac
here's one way to get the suffix

 

(setq suffix (chr (last (vl-string->list age))))
(cond ((eq suffix "1") (setq suffix "st"))
     ((eq suffix "2") (setq suffix "nd"))
     ((eq suffix "3") (setq suffix "rd"))
     ( T (setq suffix "th"))
)

 

"13rd" ;)

 

Here's another possible way:

(defun ordinal ( n )
   (cond ((< 10 (rem n 100) 14) "th") ((nth (rem n 10) '(nil "st" "nd" "rd"))) ("th"))
)

_$ (ordinal 13)
"th"
_$ (ordinal 21)
"st"
_$ (ordinal 123)
"rd"

Share this post


Link to post
Share on other sites
Lee Mac

How about something like this?

(   (lambda ( lst / age itm ord ret )
       (defun ord ( n ) (cond ((< 10 (rem n 100) 14) "th") ((nth (rem n 10) '(nil "st" "nd" "rd"))) ("th")))
       (cond
           (   (null (setq itm (assoc (strcase (getvar 'loginname)) lst)))
               (princ "\nSorry, user not listed!")
           )
           (   (zerop (rem (setq age (- (fix (getvar 'cdate)) (caddr itm))) 10000))
               (setq age (/ age 10000)
                     ret (- (cadddr itm) age)
               )
               (alert
                   (strcat 
                       "Hello " (cadr itm) "!"
                       "\n\nHerzlichen Glückwunsch zum " (itoa age) ". Geburtstag !!!"
                       "\n\nCongratulations on your " (itoa age) (ord age) " Birthday !!!"
                       "\n\n\n\nVon jetzt an, sind es nur noch " (itoa ret) " Jahre bis zur Rente \n... Also hau rein ... :-)"
                       "\n\nFrom now on, there are only " (itoa ret) " years left to retirement \n... so get in there ... :-)"
                       "\n\n\nKeyuser Michael"
                   )
               )
           )
       )
       (princ)
   )
  '(
       ("MH019" "Michael" 19991003 67)
       ("MH019" "Michael" 20180109 67)
       ("MH019" "Michael" 20180110 67)
   )
)

Copy the above into your acaddoc.lsp ;)

Share this post


Link to post
Share on other sites
FranknBeans
"13rd" ;)

 

oops :D

Share this post


Link to post
Share on other sites
Grrr

:idea: This made me wonder, why not write some generic function that uses one of the arguments:

'(day week month year)

 

(defun RunOnceA ( sym func ) ...)

(RunOnceA 'week '(lambda ( / ) <bla-bla>) )

Share this post


Link to post
Share on other sites
BIGAL

Hellooooo

 

make sure speaker is on

 

(defun SpeakSapi ( s / sapi )
   (if (eq (type s) 'STR)
     (progn
       (setq sapi (vlax-create-object "Sapi.SpVoice"))
       (vlax-put sapi 'SynchronousSpeakTimeout 1)
       (vlax-invoke-method sapi 'WaitUntilDone 0)
       (vlax-invoke sapi "Speak" s 0)
       (vlax-release-object sapi)
     )
   )
)
(speaksapi "please remain seated during your Autocad session do not leave work area")
(setq x 24)
(setq ans (strcat "alan is " (rtos x 2 0)))
(speaksapi ans)

Share this post


Link to post
Share on other sites
Bluebird1973

Hi together,

 

Thanks to everyone, I appreciate that very much ! :)

 

@ Lee Mac

 

I didn't get your code to run. I put it on my acaddoc.lsp but nothing happens.

What I'm doing wrong?

... and I have problems to understand what's going on. Could you please add some comments/explanations for me?

 

How about something like this?
(   (lambda ( lst / age itm ord ret )
       (defun ord ( n ) (cond ((< 10 (rem n 100) 14) "th") ((nth (rem n 10) '(nil "st" "nd" "rd"))) ("th")))
       (cond
           (   (null (setq itm (assoc (strcase (getvar 'loginname)) lst)))
               (princ "\nSorry, user not listed!")
           )
           (   (zerop (rem (setq age (- (fix (getvar 'cdate)) (caddr itm))) 10000))
               (setq age (/ age 10000)
                     ret (- (cadddr itm) age)
               )
               (alert
                   (strcat 
                       "Hello " (cadr itm) "!"
                       "\n\nHerzlichen Glückwunsch zum " (itoa age) ". Geburtstag !!!"
                       "\n\nCongratulations on your " (itoa age) (ord age) " Birthday !!!"
                       "\n\n\n\nVon jetzt an, sind es nur noch " (itoa ret) " Jahre bis zur Rente \n... Also hau rein ... :-)"
                       "\n\nFrom now on, there are only " (itoa ret) " years left to retirement \n... so get in there ... :-)"
                       "\n\n\nKeyuser Michael"
                   )
               )
           )
       )
       (princ)
   )
  '(
       ("MH019" "Michael" 19991003 67)
       ("MH019" "Michael" 20180109 67)
       ("MH019" "Michael" 20180110 67)
   )
)

Copy the above into your acaddoc.lsp ;)

 

 

@BIGAL

 

This is a funny one.... but we have no speakers ... :cry:

 

Hellooooo

 

make sure speaker is on

 

(defun SpeakSapi ( s / sapi )
   (if (eq (type s) 'STR)
     (progn
       (setq sapi (vlax-create-object "Sapi.SpVoice"))
       (vlax-put sapi 'SynchronousSpeakTimeout 1)
       (vlax-invoke-method sapi 'WaitUntilDone 0)
       (vlax-invoke sapi "Speak" s 0)
       (vlax-release-object sapi)
     )
   )
)
(speaksapi "please remain seated during your Autocad session do not leave work area")
(setq x 24)
(setq ans (strcat "alan is " (rtos x 2 0)))
(speaksapi ans)

Share this post


Link to post
Share on other sites
Lee Mac
@ Lee Mac

 

I didn't get your code to run. I put it on my acaddoc.lsp but nothing happens.

What I'm doing wrong?

... and I have problems to understand what's going on. Could you please add some comments/explanations for me?

 

It will only run when there is a birthday to be celebrated!

 

Try adding a new user to the list whose birthday is today ;)

Share this post


Link to post
Share on other sites
Bluebird1973

Thank you Lee Mac !!!

 

now I got it. ...but didn't understand the code :cry:

 

 

is there a way to not pank my draftsman the whole day?

... 3 or 4 times would be enough ...

Share this post


Link to post
Share on other sites
Lee Mac
is there a way to not pank my draftsman the whole day?

... 3 or 4 times would be enough ...

 

Something like this perhaps:

(   (lambda ( lst / age itm ord ret tmp )
       (defun ord ( n ) (cond ((< 10 (rem n 100) 14) "th") ((nth (rem n 10) '(nil "st" "nd" "rd"))) ("th")))
       (cond
           (   (null (setq itm (assoc (strcase (getvar 'loginname)) lst)))
               (princ "\nSorry, user not listed!")
           )
           (   (and (zerop (rem (setq age (- (fix (getvar 'cdate)) (caddr itm))) 10000))
                    (or (null (setq tmp (getenv "CurrentAge")))
                        (/= age (atoi tmp))
                    )
               )
               (setenv "CurrentAge" (itoa age))
               (setq age (/ age 10000)
                     ret (- (cadddr itm) age)
               )
               (alert
                   (strcat 
                       "Hello " (cadr itm) "!"
                       "\n\nHerzlichen Glückwunsch zum " (itoa age) ". Geburtstag !!!"
                       "\n\nCongratulations on your " (itoa age) (ord age) " Birthday !!!"
                       "\n\n\n\nVon jetzt an, sind es nur noch " (itoa ret) " Jahre bis zur Rente \n... Also hau rein ... :-)"
                       "\n\nFrom now on, there are only " (itoa ret) " years left to retirement \n... so get in there ... :-)"
                       "\n\n\nKeyuser Michael"
                   )
               )
           )
       )
       (princ)
   )
  '(
       ("MH019" "Michael" 19991003 67)
       ("MH019" "Michael" 20180109 67)
       ("MH019" "Michael" 20180110 67)
   )
)

Share this post


Link to post
Share on other sites
Bluebird1973

Great !!! :)

 

... but I would like to prank a little bit... o:)

is it possible to add a counter which I could set to show up 3-4 times?

Share this post


Link to post
Share on other sites
Grrr
:idea: This made me wonder, why not write some generic function that uses one of the arguments:

'(day week month year)

 

; (RunOnceA 'day (lambda nil (alert "Hello world!")))
(defun RunOnceA ( sym func / env dateL tmp new old aL )
 
 (defun SubstrByN ( n str ) (if (and (eq 'INT (type n)) (> n 0) (/= "" str)) (cons (substr str 1 n) (SubstrByN n (substr str (1+ n))))) )
 
 (setq env "RunOnceA")
 (setq dateL
   (lambda nil
     (mapcar 'cons '(year month day)
       (apply '(lambda (a b c d) (list (strcat a b) c d))
         (SubstrByN 2 (vl-prin1-to-string (fix (getvar 'cdate))))
       )
     )
   )
 )
 (and ; first time using 'RunOnceA' function
   (or (= (setq tmp (getenv env)) "") (not tmp) )
   (progn
     (setenv env (vl-prin1-to-string (dateL)))
     (func)
   ); progn
 ); and
 
 (if (member sym '(day month year)) ; check if valid symbol is provided, to avoid redundant prompts
   (if
     (not 
       (equal
         (setq new (assoc sym (dateL)))
         (setq old (assoc sym (setq aL (read (getenv env)))))
       )
     )
     (progn (setenv env (vl-prin1-to-string (subst new old aL))) (func) ) ; first store the current date, incase (func) crashes
     (prompt (strcat "\nRunOnceA: will evaluate the next " (strcase (vl-prin1-to-string sym) t) "."))
   ); if
   (prompt "\nRunOnceA: invalid symbol provided, use [day/month/year].")
 ); if
 
); defun RunOnceA

Share this post


Link to post
Share on other sites
rlx
; (RunOnceA 'day (lambda nil (alert "Hello world!")))
(defun RunOnceA ( sym func / env dateL tmp new old aL )
 
 (defun SubstrByN ( n str ) (if (and (eq 'INT (type n)) (> n 0) (/= "" str)) (cons (substr str 1 n) (SubstrByN n (substr str (1+ n))))) )
 
 (setq env "RunOnceA")
 (setq dateL
   (lambda nil
     (mapcar 'cons '(year month day)
       (apply '(lambda (a b c d) (list (strcat a b) c d))
         (SubstrByN 2 (vl-prin1-to-string (fix (getvar 'cdate))))
       )
     )
   )
 )
 (and ; first time using 'RunOnceA' function
   (or (= (setq tmp (getenv env)) "") (not tmp) )
   (progn
     (setenv env (vl-prin1-to-string (dateL)))
     (func)
   ); progn
 ); and
 
 (if (member sym '(day month year)) ; check if valid symbol is provided, to avoid redundant prompts
   (if
     (not 
       (equal
         (setq new (assoc sym (dateL)))
         (setq old (assoc sym (setq aL (read (getenv env)))))
       )
     )
     (progn (setenv env (vl-prin1-to-string (subst new old aL))) (func) ) ; first store the current date, incase (func) crashes
     (prompt (strcat "\nRunOnceA: will evaluate the next " (strcase (vl-prin1-to-string sym) t) "."))
   ); if
   (prompt "\nRunOnceA: invalid symbol provided, use [day/month/year].")
 ); if
 
); defun RunOnceA

 

Nicely coded :twisted:

 

Gr. Rlx

Share this post


Link to post
Share on other sites
Grrr
Nicely coded :twisted:

 

Gr. Rlx

 

Thanks! :)

I hope it works as supposed - didn't found any problems in my initial testing.

Share this post


Link to post
Share on other sites
Lee Mac
Great !!! :)

 

... but I would like to prank a little bit... o:)

is it possible to add a counter which I could set to show up 3-4 times?

 

The following will 'prank' the user between 1 and 5 times if they 'roll a 3' when opening a drawing ;) :

[color=GREEN];; Rand  -  Lee Mac[/color]
[color=GREEN];; PRNG implementing a linear congruential generator with[/color]
[color=GREEN];; parameters derived from the book 'Numerical Recipes'[/color]

([color=BLUE]defun[/color] LM:rand ( [color=BLUE]/[/color] a c m )
   ([color=BLUE]setq[/color] m   4294967296.0
         a   1664525.0
         c   1013904223.0
         $xn ([color=BLUE]rem[/color] ([color=BLUE]+[/color] c ([color=BLUE]*[/color] a ([color=BLUE]cond[/color] ($xn) (([color=BLUE]getvar[/color] 'date))))) m)
   )
   ([color=BLUE]/[/color] $xn m)
)

[color=GREEN];; Random in Range  -  Lee Mac[/color]
[color=GREEN];; Returns a pseudo-random integral number in a given range (inclusive)[/color]

([color=BLUE]defun[/color] LM:randrange ( a b )
   ([color=BLUE]+[/color] ([color=BLUE]min[/color] a b) ([color=BLUE]fix[/color] ([color=BLUE]*[/color] ([color=BLUE]LM:rand[/color]) ([color=BLUE]1+[/color] ([color=BLUE]abs[/color] ([color=BLUE]-[/color] a b))))))
)

(   ([color=BLUE]lambda[/color] ( lst [color=BLUE]/[/color] age itm ord ret tmp )
       ([color=BLUE]defun[/color] ord ( n ) ([color=BLUE]cond[/color] (([color=BLUE]<[/color] 10 ([color=BLUE]rem[/color] n 100) 14) [color=MAROON]"th"[/color]) (([color=BLUE]nth[/color] ([color=BLUE]rem[/color] n 10) '([color=BLUE]nil[/color] [color=MAROON]"st"[/color] [color=MAROON]"nd"[/color] [color=MAROON]"rd"[/color]))) ([color=MAROON]"th"[/color])))
       ([color=BLUE]cond[/color]
           (   ([color=BLUE]null[/color] ([color=BLUE]setq[/color] itm ([color=BLUE]assoc[/color] ([color=BLUE]strcase[/color] ([color=BLUE]getvar[/color] 'loginname)) lst)))
               ([color=BLUE]princ[/color] [color=MAROON]"\nSorry, user not listed!"[/color])
           )
           (   ([color=BLUE]and[/color] ([color=BLUE]zerop[/color] ([color=BLUE]rem[/color] ([color=BLUE]setq[/color] age ([color=BLUE]-[/color] ([color=BLUE]fix[/color] ([color=BLUE]getvar[/color] 'cdate)) ([color=BLUE]caddr[/color] itm))) 10000))
                    ([color=BLUE]=[/color] 3 (LM:randrange 1 6)) [color=GREEN];; Adding some randomness to when the message is displayed[/color]
                    ([color=BLUE]cond[/color]
                        (   ([color=BLUE]or[/color] ([color=BLUE]null[/color] ([color=BLUE]setq[/color] tmp ([color=BLUE]getenv[/color] [color=MAROON]"CurrentAge"[/color]))) ([color=BLUE]<[/color] ([color=BLUE]atoi[/color] tmp) age))
                            ([color=BLUE]setenv[/color] [color=MAROON]"CurrentAge"[/color] ([color=BLUE]itoa[/color] ([color=BLUE]+[/color] age (LM:randrange 1 5))))
                        )
                        (   ([color=BLUE]<[/color] age ([color=BLUE]atoi[/color] tmp))
                            ([color=BLUE]setenv[/color] [color=MAROON]"CurrentAge"[/color] ([color=BLUE]itoa[/color] ([color=BLUE]1-[/color] ([color=BLUE]atoi[/color] tmp))))
                        )
                    )
               )
               ([color=BLUE]setq[/color] age ([color=BLUE]/[/color] age 10000)
                     ret ([color=BLUE]-[/color] ([color=BLUE]cadddr[/color] itm) age)
               )
               ([color=BLUE]alert[/color]
                   ([color=BLUE]strcat[/color] 
                       [color=MAROON]"Hello "[/color] ([color=BLUE]cadr[/color] itm) [color=MAROON]"!"[/color]
                       [color=MAROON]"\n\nHerzlichen Glückwunsch zum "[/color] ([color=BLUE]itoa[/color] age) [color=MAROON]". Geburtstag !!!"[/color]
                       [color=MAROON]"\n\nCongratulations on your "[/color] ([color=BLUE]itoa[/color] age) (ord age) [color=MAROON]" Birthday !!!"[/color]
                       [color=MAROON]"\n\n\n\nVon jetzt an, sind es nur noch "[/color] ([color=BLUE]itoa[/color] ret) [color=MAROON]" Jahre bis zur Rente \n... Also hau rein ... :-)"[/color]
                       [color=MAROON]"\n\nFrom now on, there are only "[/color] ([color=BLUE]itoa[/color] ret) [color=MAROON]" years left to retirement \n... so get in there ... :-)"[/color]
                       [color=MAROON]"\n\n\nKeyuser Michael"[/color]
                   )
               )
           )
       )
       ([color=BLUE]princ[/color])
   )
  '(
       ([color=MAROON]"MH019"[/color] [color=MAROON]"Michael"[/color] 19991003 67)
       ([color=MAROON]"MH019"[/color] [color=MAROON]"Michael"[/color] 20180109 67)
       ([color=MAROON]"MH019"[/color] [color=MAROON]"Michael"[/color] 20180110 67)
   )
)

([color=BLUE]princ[/color])

Edited by Lee Mac

Share this post


Link to post
Share on other sites
rlx

Well thank you Lee :winner:

Prank.png

Share this post


Link to post
Share on other sites
Grrr

Just imagine Lee's code triggering some Sapi voices randomly! :lol:

Share this post


Link to post
Share on other sites
rlx
Just imagine Lee's code triggering some Sapi voices randomly! :lol:

 

 

Most people here have muted their pc but the colleague right in front of me hasn't ... he would make a good candidate. In fact , I have 'pranked' him in the past. He likes to kill rabbits in his spare time so one day I arranged for a slide to appear with each drawing he opened with a armed rabbit showing :D

Share this post


Link to post
Share on other sites
Grrr
Most people here have muted their pc but the colleague right in front of me hasn't ... he would make a good candidate. In fact , I have 'pranked' him in the past. He likes to kill rabbits in his spare time so one day I arranged for a slide to appear with each drawing he opened with a armed rabbit showing :D

 

That sounds like a good practice,

I was imaginig more like a windows XP loading sound upon running autocad (annoying nostalgia). :lol:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×