andy_lee 发表于 2022-7-5 22:34:00

您好,恢复到WCS?

嗨,伙计们
 
有时,有些lisp代码无法在“UCS模式”下运行,只能在“WCS”上运行,
如何做?
 
我想,也许可以在开头添加“恢复到WCS”。
 
我需要一些代码。帮助

marko_ribar 发表于 2022-7-5 22:46:23


(defun c:foo ( / vars... )

(command "_.ucs" "_w")
...
(etc...)
...
(command "_.ucs" "_p")
(princ)
)

andy_lee 发表于 2022-7-5 22:51:38

 
马尔科。非常感谢。
出现错误时,如何“(命令“.ucs”“\u p”)?

Lee Mac 发表于 2022-7-5 22:58:04

添加:
(command "_.ucs" "_p")到*error*函数(如果存在),否则定义自己的包含此表达式的局部*error*函数。
 
有关如何定义*错误*函数的更多信息,请参见此处。

andy_lee 发表于 2022-7-5 23:09:30

 
谢谢李。我知道,我不能打开那个链接,是吗?http://lee-mac.com/errorhandling.html

Dana W 发表于 2022-7-5 23:12:36

 
这就是链接。

andy_lee 发表于 2022-7-5 23:20:07

如何添加:
(command "_.ucs" "_p")
这个函数?
 
(defun c:test ( / *error* osm )

   (defun *error* ( msg )
       (if osm (setvar 'osmode osm))
       (if (not (member msg '("Function cancelled" "quit / exit abort")))
         (princ (strcat "\nError: " msg))
       )
       (princ)
   )

   (setq osm (getvar 'osmode))
   (setvar 'osmode 0)

   (rtos (getreal "\nPress Esc to exit, press Enter to force an error ..."))

   (setvar 'osmode osm)
   (princ)
)

marko_ribar 发表于 2022-7-5 23:26:38


(defun c:test ( / *error* osm )

   (defun *error* ( msg )
       (if osm (setvar 'osmode osm))
       (if (= (getvar 'worlducs) 1) (command "_.ucs" "_p"))
       (if (not (member msg '("Function cancelled" "quit / exit abort")))
         (princ (strcat "\nError: " msg))
       )
       (princ)
   )

   (setq osm (getvar 'osmode))
   (setvar 'osmode 0)
   (command "_.ucs" "_w")

   (rtos (getreal "\nPress Esc to exit, press Enter to force an error ..."))

   (*error* nil)
   (princ)
)
页: [1]
查看完整版本: 您好,恢复到WCS?