tombu 发表于 2022-7-5 18:27:18

在他们将弹出按钮添加到状态栏之前,我使用了旧的Osmode切换:
(defun c:tosnap ( / csnap)
(setq csnap (getvar "osmode"))
(cond
   ((= csnap 16384)(setvar "osmode" 0))
   ((< csnap 16384)(setvar "osmode"(+ csnap 16384)))
   ((> csnap 16384)(setvar "osmode"(- csnap 16384)))
)
(cond
   ((= csnap 0)(princ))
;    ((= csnap 0)(command "'_dsettings"))
   ((< csnap 16384)(princ "\n<Osnap off>"))
   ((>= csnap 16384)(princ "\n<Osnap on>"))
)
(princ)
)

应该有助于你开始。

BKT 发表于 2022-7-5 18:29:01

我没有最新版本的AutoCAD,但以前的版本(和BricsCAD)可以使用“1”或“ON”以及“0”或“OFF”在命令行上切换LWDISPLAY,但在LISP中,您需要使用“1”或“0”。看看这是否适合你:
 
(setvar“LWDISPLAY”1)
(setvar“LWDISPLAY”0)

tombu 发表于 2022-7-5 18:33:31

对于简单的开/关切换,没有什么比使用ai_onoff更容易的了:
自从我使用AutoCAD 23年以来,这个ai实用程序就一直存在。

BKT 发表于 2022-7-5 18:36:52

嘿,我喜欢!我有一个早期版本的intelliCAD,但它在BricsCAD15中运行良好。谢谢你提醒我!工具箱中还有一个工具。。。全职工作时没有做很多Lisp程序的事情,但现在开始了。
 
 

tombu 发表于 2022-7-5 18:38:47

ai_utils。lsp附带了早期版本,现在它们不再位于我们可以打开的简单文件中。如果有人知道在哪里可以找到所有这些命令(如AI\u MOLC)和lisp函数(如AI\u onoff)的良好参考,请发布它。我能找到的最好的是http://www.cadforum.cz/cadforum_en/command.asp?ini=A

broncos15 发表于 2022-7-5 18:42:29

使用CUI键盘快捷键菜单可能更容易做到这一点。

Deby Ferdian 发表于 2022-7-5 18:46:39

我不明白@汤布!很抱歉但我会努力的,我会努力思考。如何使它和修改为“3DOSMODE”我过去和现在没有一个很好的审查。。。
 
嗨,@broncos15!我什么也得不到。我不知道为什么?我一直在做的事情是尝试将3DOSMODE分配给另一个组合键,而不仅仅是热键;F4除外。我想为3DOSMODE将其指定为CTRL+SHIFT+F,但度假村不会出现像我通常在按键对话框中所想的那样。。

Grrr 发表于 2022-7-5 18:49:07

你好
以下是另一个修改:
(defun c:TGG (/ )
(if (not *ans*) (setq *ans* "Osmode"))
(initget "Osmode 3dosmode Lwdisplay")
(setq *ans* (cond ( (getkword (strcat "\nToggle <" *ans* ">: "))) ( *ans* )))
(cond
((= *ans* "Osmode")
   (if (= (getvar 'Osmode ) 24751)
   (progn
   (setvar "Osmode" 8367)
   (princ (strcat "\nOSMODE is set to \"" (rtos(getvar "Osmode") 2 0) "\" (ON)"))
   );progn true
   (progn
   (setvar "Osmode" 24751)
   (princ (strcat "\nOSMODE is set to \"" (rtos(getvar "Osmode") 2 0) "\" (OFF)"))
   );progn false
   );if
   )
((= *ans* "3dosmode")
   (if (= (getvar '3dosmode ) 63)
   (progn
   (setvar "3dosmode" 62)
   (princ (strcat "\n3D-osmode is set to \"" (rtos(getvar "3dosmode") 2 0) "\" (ON)"))
   );progn true
   (progn
   (setvar "3dosmode" 63)
   (princ (strcat "\n3D-osmode is set to \"" (rtos(getvar "3dosmode") 2 0) "\" (OFF)"))
   );progn false
   );if
   )
((= *ans* "Lwdisplay")
   (if (= (getvar 'Lwdisplay ) 0)
   (progn
   (setvar 'LWDISPLAY 1 )
   (princ (strcat "\nLWDISPLAY is set to \"" (rtos(getvar 'lwdisplay ) 2 0) "\" (ON)"))
   );progn true
   (progn
   (setvar 'LWDISPLAY 0 )
   (princ (strcat "\nLWDISPLAY is set to \"" (rtos(getvar 'lwdisplay ) 2 0) "\" (OFF)"))
   );progn false
   );if
   )
);cond
(princ)
);defun
我修改了你的osmode和3dosmode切换,我的意思是:
如果osmode在“24751”值上,它会将其更改为8367,如果它不在24751上,它会将其更改为24751,因为在我之前的帖子中,检查是在“0”值上。
 
感谢上帝,我向最好的人学习(李·麦克、塔瓦……嗯,席尔瓦、斯特凡·BMR、杰夫!)否则我帮不了你!

tombu 发表于 2022-7-5 18:51:39

 
“3DOSMODE”测试需要
9

Lee Mac 发表于 2022-7-5 18:55:22

 
FWIW,这可能成为:
10
页: 1 [2]
查看完整版本: 分配Tog的组合键