Jump to content

HappyBirthday.lsp ==>Fun vs. prank


Recommended Posts

Posted

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

  • Replies 29
  • Created
  • Last Reply

Top Posters In This Topic

  • Lee Mac

    8

  • Bluebird1973

    7

  • Grrr

    5

  • BIGAL

    3

Top Posters In This Topic

Posted Images

Posted

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"))
)

Posted
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"

Posted

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 ;)

Posted

: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>) )

Posted

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)

Posted

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)

Posted
@ 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 ;)

Posted

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 ...

Posted
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)
   )
)

Posted

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?

Posted
: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

Posted
; (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

Posted
Nicely coded :twisted:

 

Gr. Rlx

 

Thanks! :)

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

Posted (edited)
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
Posted
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

Posted
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:

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...