乐筑天下

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

[编程交流] 退出AutoCAD的区别

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:27:51 | 显示全部楼层
 
朗尼,
 
我要澄清的是,我不会“鼓励”设置注册表项——我只会在这个问题唯一可行的解决方案的情况下使用这个选项。你真的不想不必要地膨胀注册表。
 
关于你的“每日提示”,请注意ACAD。lsp,不同于阿卡多克。lsp将在每次启动AutoCAD时加载,但不是每次启动新图形时都加载-但我不确定在加载AutoCAD时弹出对话框是否是一个好主意-我说“不确定”,因为我从来没有这样做过-我会让其他人就这个问题发表意见。
 
如果您希望每天只运行一次程序,那么是的,可能需要一个注册表项(或其他一些存储方法,如临时文件)。也许可以设置LISP来检查儒略日,并将其存储在注册表(或其他地方)中,那么,如果该日与存储在注册表中的日相同,它将不会运行。
 
另外,你可能想看看这个
 
回复

使用道具 举报

17

主题

127

帖子

110

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-6 10:31:13 | 显示全部楼层
 
我不知道,所以谢谢你的提示。
 
 
李又是一段很棒的代码。从现在开始,我不再问你是否已经为特定情况编写了代码,而是假设你已经编写了,然后说“嘿,李,把你的代码给我,谢谢!”
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:35:46 | 显示全部楼层
朗尼,
 
关于我对一个每天运行一次的程序的想法,这是我所涉及的结构:
 
  1. (defun IWillOnlyRunOnceADay nil
  2. (alert "This is all you'll hear from me today")
  3. (princ)
  4. )
  5. (if
  6. (not
  7.    (and
  8.      (setq date (getenv "LMAC_OnceADay"))
  9.      (= (fix (getvar 'DATE)) (atoi date))
  10.    )
  11. )
  12. (progn
  13.    (IWillOnlyRunOnceADay)
  14.    (setenv "LMAC_OnceADay" (itoa (fix (getvar 'DATE))))
  15. )
  16. )
  17. (princ)

 
它将坐在阿卡多克。lsp
 
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:37:26 | 显示全部楼层
 
 
0000000000
回复

使用道具 举报

17

主题

127

帖子

110

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-6 10:42:06 | 显示全部楼层
 
谢谢你的代码!我也必须把它添加到我的工具箱中。虽然你们花了2分钟才写出下面的代码,但这是我用来处理同样事情的反应堆代码,我只花了几个小时,哈哈:
 
 
  1. (vlr-command-reactor nil '((:vlr-commandWillStart . DoOnExit)))
  2. (defun DoOnExit ( Caller CmdSet )
  3. (if (member (car CmdSet) '("END" "EXIT" "QUIT"))
  4.    (setenv "CSC:OnceADay" "YES")
  5. )
  6. )

 
 
我唯一不确定的是清理反应堆。我正在使用的其他反应堆包含在它们自己的lisp中,它们的名称就像任何lisp一样。然而,因为这是在我的阿卡多克。lsp我不得不从它的defun语句中去掉命令reactor,然后由于我没有给reactor分配变量,我不知道如何清除它(或者在这种情况下它是否重要)。我的意思是,通常你会这样清理反应堆:
 
 
  1. (defun clear_myExitReact ()
  2. (if (and (myExitReact (vlr-added-p myExitReact))
  3.    (vlr-remove myExitReact)
  4. )
  5. )

 
 
我也试过vlr命令反应堆,但没能让它工作。由于我使用的是vlr命令willstart reactor,因此一旦调用该命令,注册表就会发生更改,因此如果用户取消AutoCAD退出,然后打开一个新图形,则会再次显示当天的提示。
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 10:44:56 | 显示全部楼层
一旦“每日提示”的新颖性消失了,会有任何杀死它的规定吗?我是根据我以前运行的另一个具有类似功能的程序的经验提出这个问题的。过了一段时间,它变成了一个主要的皮塔。当一开始加载程序时,坐在多个启动屏幕上已经够糟糕的了,但是后来不得不查看提示,这让我感到很尴尬。无意冒犯,但你必须从用户的角度来看这一点。
回复

使用道具 举报

17

主题

127

帖子

110

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-6 10:46:41 | 显示全部楼层
 
你提出了一个很好的论点,既然你已经看到了这种努力在现实世界中的结果,我一定会听从你的建议,要么找出一种永久禁用它的方法,要么在预定的时间内禁用它。当然,如果我真的把这个应用到我们的办公室。现在我正在尝试学习不同的概念,并且对这样的事情很感兴趣。我可能会使用此概念提醒用户AutoCAD套件的新开发或新增强。谢谢你的建议!
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 10:51:43 | 显示全部楼层
代码中是否可以包含计时元素,而不是禁用预定的时间长度,以便在一周的预定日期/时间(例如周一上午9点)显示警报/通知?
回复

使用道具 举报

17

主题

127

帖子

110

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-6 10:55:35 | 显示全部楼层
我也这么认为。如果我们将变量设置为一年中第一个星期一的日期,然后将提示设置为显示(getvar“CDATE”)是否等于星期一变量加上7的倍数。现在我真的很感兴趣,所以我将不得不制定一些代码(如果李没有打败我,哈哈)。
回复

使用道具 举报

17

主题

127

帖子

110

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2022-7-6 10:58:04 | 显示全部楼层
 
我是个白痴
 
CDATE变量将日期返回为YYYYMMDD。SSSSSS。。。。所以在任意日期加上7的倍数是行不通的。我想我们可以将每个星期一的日期存储在一个列表中,然后将CDATE的值与列表进行比较,然后激活提示代码,如果CDATE本身是列表的成员(有点丑陋的代码):
 
  1. 5

 
未经测试,您必须每年重置列表。我相信有更好的方法。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 00:18 , Processed in 0.377473 second(s), 71 queries .

© 2020-2025 乐筑天下

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