乐筑天下

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

[编程交流] 如何避免丢失Osnap

[复制链接]

56

主题

346

帖子

68

银币

中流砥柱

Rank: 25

铜币
512
发表于 2022-7-5 23:40:16 | 显示全部楼层 |阅读模式
嘿伙计们,
如何避免丢失Osnap?
经常用一些lisp,后来发现Osnap丢了
谢谢你的帮助!
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-5 23:52:39 | 显示全部楼层
您需要有权访问AutoLISP代码。主动Osnap模式存储在OSMODE系统变量中;程序员将其设置为0,以不干扰其代码执行的绘制操作,但在处理完成时以及出现错误时,应将其恢复。
  1. (setq userOsm (getvar "OSMODE"))   ;retain user setup
  2. (setvar "OSMODE" 0)                ;disable temporary
  3. ...
  4. (setvar "OSMODE" userOsm)          ;restore user setup
回复

使用道具 举报

34

主题

174

帖子

60

银币

后起之秀

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

铜币
257
发表于 2022-7-5 23:56:30 | 显示全部楼层
试试这个:
  1. (defun resetosmode (v1 v2 /)
  2. (if (/= (getvar "osmode") 1015)
  3.    (setvar "osmode" 1015)
  4. )
  5. (princ)
  6. )
  7. (vlr-editor-reactor
  8. nil
  9. '((:vlr-lispEnded . ResetOsmode)
  10.    (:vlr-lispCancelled . ResetOsmode)
  11.    (:vlr-commandEnded . ResetOsmode)  
  12.    (:vlr-commandCancelled . ResetOsmode)  
  13.    (:vlr-commandFailed . ResetOsmode)
  14.   )
  15. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 00:06:08 | 显示全部楼层
还可以查看错误陷阱,并将重置osmode恢复到原来的状态,这是我们对osmode和filedia进行2键重置的最简单方式。
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:12:55 | 显示全部楼层
 
 
 
Flyfox1047-如何在现有程序中实现这一点?我有多个程序,我想添加一些错误处理,这样当用户“逃逸”时,不会导致他们失去所有为程序更改的变量。提前感谢!
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 00:13:54 | 显示全部楼层
请查看李的教程。
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:22:49 | 显示全部楼层
谢谢MSasu,我想我终于明白了!
回复

使用道具 举报

34

主题

174

帖子

60

银币

后起之秀

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

铜币
257
发表于 2022-7-6 00:31:13 | 显示全部楼层
 
将其放在代码的开头,或放在ACAD20XDOC中。lsp
回复

使用道具 举报

35

主题

2471

帖子

2447

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
174
发表于 2022-7-6 00:34:28 | 显示全部楼层
Flyfox1047,请考虑使用acad。lsp/阿卡多克。lsp自动加载器代替acad??。lsp/acad20??文件。lsp文件;这些是为系统目的保留的,不建议附加到它们上(即可能被修复或service pack安装所取代)。
回复

使用道具 举报

4

主题

19

帖子

15

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:43:34 | 显示全部楼层
谢谢你们的帮助。我最初的问题是,如果有人运行我的程序是esc。从程序中,所有切换的变量都将丢失。所以我所做的就是在我的getvar代码之后添加了*错误*代码。此外,在*错误*代码中,我重置了所有原始变量。所以现在它工作得很好!!几年来,我一直在努力解决这个问题,在你的帮助下,我成功了,谢谢!!!
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:04 , Processed in 0.371674 second(s), 72 queries .

© 2020-2025 乐筑天下

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