liuhaixin88 发表于 2022-7-5 22:29:53

快速保存视图和恢复vi

大家好,
我想用三个命令来保存视图,用三个命令来恢复视图。
如。
命令“save_view1”保存视图,视图名称为“view1”
命令“restore\u view1”将视图恢复到“view1”
......视图2
......视图3

BlackBox 发表于 2022-7-5 22:40:43

这些应该让你开始。。。。
 
 
 
保存视图:
 

(defun c:ViewSave () (command "._-view" "_s") (princ))

 
 
 
还原视图:
 

(defun c:ViewRestore () (command "._-view" "_r") (princ))

liuhaixin88 发表于 2022-7-5 22:47:35

 
非常感谢。BB我知道。
(defun c:ViewSave1 () (command "._-view" "_s" "view1") (princ))
(defun c:ViewRestore1 () (command "._-view" "_r" "view1") (princ))

liuhaixin88 发表于 2022-7-5 22:53:05

(defun c:ViewRestore()(vl cmdf._-view”“\r”“view1”)(princ))
 
“命令”和“vl cmdf”哪个更好?

BlackBox 发表于 2022-7-5 22:56:06

 
不客气,刘海欣88;我很乐意帮忙。
 
干杯

BlackBox 发表于 2022-7-5 23:05:31

 
它们在功能上是相同的,但COMMAND总是返回Nil,而VL-CMDF返回T,这在测试表达式等中可能很有用。
 
干杯

liuhaixin88 发表于 2022-7-5 23:09:16

 
嗨,BB,很好的教学。再次感谢你。
 
干杯

BlackBox 发表于 2022-7-5 23:14:46

 
刘海欣,你说得太好了。

David Bethel 发表于 2022-7-5 23:18:45

我使用类似的方法:
 

;;;SAVE
(defun c:sv (/ p v vn vi)
   (setq p "VIEW" v 1)
   (setq vn (strcat p (itoa v)))
   (while (tblsearch "VIEW" vn)
          (setq v (1+ v) vn (strcat p (itoa v))))
   (initget 6)
   (setq vi (getint (strcat "\nView Number To Save <" (itoa v) ">:   ")))
   (or vi (setq vi v))
   (command "_.VIEW" "_Save" (strcat p (itoa vi)))
   (prin1))


;;;RESTORE
(defun c:rv (/ p vl td ev vi)
    (setq p "VIEW")
    (while (setq td (tblnext "VIEW" (not td)))
         (setq ev (cdr (assoc 2 td)))
         (if (= p (substr ev 1 (strlen p)))
               (setq vl (cons (atoi (substr ev (1+ (strlen p)))) vl))))
    (terpri)
    (prin1 (reverse vl))
    (while (or (not vi)
               (not (member vi vl)))
         (initget 7)
         (setq vi (getint (strcat "\tView To Restore:   "))))
    (command "_.VIEW" "_Restore" (strcat p (itoa vi)))
    (prin1))


 
我使用了与“VIEW”不同的前缀,但场景相同。
 
 
-大卫

liuhaixin88 发表于 2022-7-5 23:24:52

 
哈哈。
页: [1] 2
查看完整版本: 快速保存视图和恢复vi