乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 120|回复: 19

[编程交流] 生日快乐。lsp==>乐趣vs.p

[复制链接]

7

主题

32

帖子

26

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:22:56 | 显示全部楼层 |阅读模式
大家好,
 
我想捉弄我的绘图员同事,我需要一些帮助。
...请随意改进我糟糕的编码。。。
 
 
  1. [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]
  2. [color=RED]([/color][color=BLUE]if[/color] [color=#990099];list of users for the pop-ups[/color]
  3.         [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]
  4.         [color=RED]([/color][color=BLUE]progn[/color]
  5.                 [color=RED]([/color][color=BLUE]cond[/color]
  6. [color=#990099];                                                User Name                                                User                                                Birthday                                                retirement age[/color]
  7.                         [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]
  8.                         [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]
  9.                         [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]
  10.                         [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]
  11.                 [color=RED])[/color][color=#990099];_cond end[/color]
  12.         [color=RED])[/color][color=#990099];_progn end[/color]
  13. [color=RED])[/color][color=#990099];_if end[/color]
  14. [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]
  15. [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]
  16. [color=RED]([/color][color=BLUE]alert[/color]
  17.         [color=RED]([/color][color=BLUE]strcat[/color]
  18.                 [color=#a52a2a]"Hello "[/color] [color=BLUE]User1[/color] [color=#a52a2a]"!"[/color]
  19.                 [color=#a52a2a]"\n\nHerzlichen Glückwunsch zum "[/color] [color=BLUE]age[/color] [color=#a52a2a]". Geburtstag !!!"[/color]
  20.                 [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]
  21.                 [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]
  22.                 [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]
  23.                 [color=#a52a2a]"\n\n\nKeyuser Michael"[/color]
  24.                 [color=RED])[/color]
  25. [color=RED])[/color]
  26. [color=RED]([/color][color=BLUE]princ[/color][color=RED])[/color]
  27. [color=RED])[/color]
  28. [color=#990099];original code from 06.01.2011/Lee Mac changed on my needs[/color]
  29. [color=#990099];http://www.cadtutor.net/forum/showthread.php?55800-Differences-in-exiting-AutoCAD&p=378358&viewfull=1#post378358[/color]
  30. [color=RED]([/color][color=BLUE]if[/color]
  31. [color=RED]([/color][color=BLUE]not[/color]
  32.         [color=RED]([/color][color=BLUE]and[/color]
  33.                 [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]
  34.                 [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]
  35.         [color=RED])[/color][color=#990099];_end and[/color]
  36. [color=RED])[/color][color=#990099];_end not[/color]
  37. [color=RED]([/color][color=BLUE]progn[/color]
  38.         [color=RED]([/color]c:HappyBirthday[color=RED])[/color]
  39.         [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]
  40. [color=RED])[/color][color=#990099];_end progn[/color]
  41. [color=RED])[/color][color=#990099];_end if[/color]
  42. [color=RED]([/color][color=BLUE]princ[/color][color=RED])[/color]
回复

使用道具 举报

0

主题

24

帖子

24

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 15:28:14 | 显示全部楼层
 
“第13位”
 
这是另一种可能的方式:
  1. (setq suffix (chr (last (vl-string->list age))))
  2. (cond ((eq suffix "1") (setq suffix "st"))
  3.      ((eq suffix "2") (setq suffix "nd"))
  4.      ((eq suffix "3") (setq suffix "rd"))
  5.      ( T (setq suffix "th"))
  6. )
  1. (defun ordinal ( n )
  2.    (cond ((< 10 (rem n 100) 14) "th") ((nth (rem n 10) '(nil "st" "nd" "rd"))) ("th"))
  3. )
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 15:30:35 | 显示全部楼层
像这样的怎么样?
将上述内容复制到您的acaddoc中。lsp
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 15:33:32 | 显示全部楼层
 
哎呀
回复

使用道具 举报

0

主题

24

帖子

24

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 15:36:57 | 显示全部楼层
这让我想知道,为什么不编写一些使用以下参数之一的泛型函数:
'(日-周-月-年)
 
  1. (   (lambda ( lst / age itm ord ret )
  2.        (defun ord ( n ) (cond ((< 10 (rem n 100) 14) "th") ((nth (rem n 10) '(nil "st" "nd" "rd"))) ("th")))
  3.        (cond
  4.            (   (null (setq itm (assoc (strcase (getvar 'loginname)) lst)))
  5.                (princ "\nSorry, user not listed!")
  6.            )
  7.            (   (zerop (rem (setq age (- (fix (getvar 'cdate)) (caddr itm))) 10000))
  8.                (setq age (/ age 10000)
  9.                      ret (- (cadddr itm) age)
  10.                )
  11.                (alert
  12.                    (strcat
  13.                        "Hello " (cadr itm) "!"
  14.                        "\n\nHerzlichen Glückwunsch zum " (itoa age) ". Geburtstag !!!"
  15.                        "\n\nCongratulations on your " (itoa age) (ord age) " Birthday !!!"
  16.                        "\n\n\n\nVon jetzt an, sind es nur noch " (itoa ret) " Jahre bis zur Rente \n... Also hau rein ... :-)"
  17.                        "\n\nFrom now on, there are only " (itoa ret) " years left to retirement \n... so get in there ... :-)"
  18.                        "\n\n\nKeyuser Michael"
  19.                    )
  20.                )
  21.            )
  22.        )
  23.        (princ)
  24.    )
  25.   '(
  26.        ("MH019" "Michael" 19991003 67)
  27.        ("MH019" "Michael" 20180109 67)
  28.        ("MH019" "Michael" 20180110 67)
  29.    )
  30. )
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 15:39:36 | 显示全部楼层
你好
 
确保扬声器已打开
 
  1. (defun RunOnceA ( sym func ) ...)
  2. (RunOnceA 'week '(lambda ( / ) <bla-bla>) )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 15:43:15 | 显示全部楼层
大家好,
 
谢谢大家,我非常感谢!
 
@李·麦克
 
我没有运行你的代码。我把它放在我的阿卡多克上。lsp,但什么也没发生。
我做错了什么?
... 我很难理解到底发生了什么。你能为我添加一些评论/解释吗?
 
 
 
@比加尔
 
这是一个有趣的。。。。但我们没有演讲者。。。
 
回复

使用道具 举报

7

主题

32

帖子

26

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:45:12 | 显示全部楼层
 
只有在庆祝生日时才会运行!
 
尝试将生日在今天的新用户添加到列表中
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-5 15:48:22 | 显示全部楼层
谢谢李!!!
 
现在我明白了。。。但不懂密码
 
 
有没有办法不整天和我的绘图员唠叨?
... 3到4次就足够了。。。
回复

使用道具 举报

7

主题

32

帖子

26

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 15:52:32 | 显示全部楼层
 
可能是这样的:
  1. (defun SpeakSapi ( s / sapi )
  2.    (if (eq (type s) 'STR)
  3.      (progn
  4.        (setq sapi (vlax-create-object "Sapi.SpVoice"))
  5.        (vlax-put sapi 'SynchronousSpeakTimeout 1)
  6.        (vlax-invoke-method sapi 'WaitUntilDone 0)
  7.        (vlax-invoke sapi "Speak" s 0)
  8.        (vlax-release-object sapi)
  9.      )
  10.    )
  11. )
  12. (speaksapi "please remain seated during your Autocad session do not leave work area")
  13. (setq x 24)
  14. (setq ans (strcat "alan is " (rtos x 2 0)))
  15. (speaksapi ans)
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 03:23 , Processed in 0.539471 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表