(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)
)
应该有助于你开始。 我没有最新版本的AutoCAD,但以前的版本(和BricsCAD)可以使用“1”或“ON”以及“0”或“OFF”在命令行上切换LWDISPLAY,但在LISP中,您需要使用“1”或“0”。看看这是否适合你:
(setvar“LWDISPLAY”1)
(setvar“LWDISPLAY”0) 对于简单的开/关切换,没有什么比使用ai_onoff更容易的了:
自从我使用AutoCAD 23年以来,这个ai实用程序就一直存在。 嘿,我喜欢!我有一个早期版本的intelliCAD,但它在BricsCAD15中运行良好。谢谢你提醒我!工具箱中还有一个工具。。。全职工作时没有做很多Lisp程序的事情,但现在开始了。
ai_utils。lsp附带了早期版本,现在它们不再位于我们可以打开的简单文件中。如果有人知道在哪里可以找到所有这些命令(如AI\u MOLC)和lisp函数(如AI\u onoff)的良好参考,请发布它。我能找到的最好的是http://www.cadforum.cz/cadforum_en/command.asp?ini=A 使用CUI键盘快捷键菜单可能更容易做到这一点。 我不明白@汤布!很抱歉但我会努力的,我会努力思考。如何使它和修改为“3DOSMODE”我过去和现在没有一个很好的审查。。。
嗨,@broncos15!我什么也得不到。我不知道为什么?我一直在做的事情是尝试将3DOSMODE分配给另一个组合键,而不仅仅是热键;F4除外。我想为3DOSMODE将其指定为CTRL+SHIFT+F,但度假村不会出现像我通常在按键对话框中所想的那样。。 你好
以下是另一个修改:
(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、杰夫!)否则我帮不了你!
“3DOSMODE”测试需要
9
FWIW,这可能成为:
10
页:
1
[2]