乐筑天下

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

[编程交流] 重复即时命令lisp

[复制链接]

27

主题

113

帖子

90

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
132
发表于 2022-7-5 22:59:16 | 显示全部楼层 |阅读模式
你好
 
我看到一个问题,有人想在活动图形中的某些时刻“重置”由于某种原因不断变化的设置。
 
例如,我有一个问题,PICKFIRST命令有时会无缘无故地变为0,或者当我将鼠标悬停在一行上时,我的“选择预览”处于关闭状态,我必须重新设置选项中的2个复选框(虽然我准备了一个lisp,但它是手动的)。
 
在这个问题中,是某个运行第三方程序的人随机更改了高程(z)值(因此您将其设置为零,但当您绘制时,它会更改回其他高程)。
 
 
有没有办法每隔一段时间重新加载某些命令?
类似于自动保存功能,它以给定的间隔保存备份。
 
这在lisp格式中可能吗?
比如:(随机码)
 
  1. C:reloadcommand ()(
  2. $interval: "5"; //minutes
  3. $command: "change pickfirst to 1"
  4. REPEAT $command AT TIMEINTERVAL $interval;
  5. )

 
或者类似的东西,但在Lisp程序的情况下。
回复

使用道具 举报

24

主题

1265

帖子

1028

银币

后起之秀

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

铜币
362
发表于 2022-7-6 00:49:31 | 显示全部楼层
一种方法是为经常使用的命令编写包装,例如LINE、ERASE、EXPLODE(或类似的东西),并包括sysvar的重置。
 
  1. ;example
  2. (defun c:e ()
  3. (setvar "pickfirst" 1)
  4. (vl-cmdf "._erase")
  5. )

 
显然,这并不能保证系统变量不会被更改,但这是一种快速、相当有效的处理方法。
 
 
另一种方法是使用一个反应器,当所需的系统变量发生变化时,该反应器就会启动,然后您可以定义一个函数在该时刻运行(将系统变量更改回来,提醒您它已经发生了变化,等等)
这对于在系统变量设置发生变化时反转它可能有99%的效果。当然,您可以使用它来寻找真正的问题,即:首先是什么让sysvar“自行”改变。
下面是一些如上所述创建反应器的示例代码。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 03:15 , Processed in 4.477822 second(s), 56 queries .

© 2020-2025 乐筑天下

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