nyistjz 发表于 2022-10-18 12:41:05

文件标签与布局标签 循环切换

本帖最后由 nyistjz 于 2022-10-20 19:08 编辑

(setq *ACAD* (vlax-get-acad-object))
(setq *DOC* (vla-get-ActiveDocument *ACAD*))
(setq *docs* (vla-get-Documents *ACAD*))
(setq *MSPACE* (vla-get-ModelSpace *DOC*))


;循环切换标签
(defun c:tabup()(tab-loop "l"))
(defun c:tabdown()(tab-loop "r"))
(defun tab-loop (dir / len n obj tab tablist)
      (vlax-for layout *docs*
                (setq tablist (cons (list (vla-get-Name layout) layout) tablist))
      )
      (setq tablist (reverse tablist))
      (setq tab (assoc (vla-get-Name *doc*) tablist))
      (setq n (vl-position tab tablist))
      (setq len (length tablist))
      (setq n
                (cond
                        ((= dir "l")(if (= n 0)(setq n len))(1- n))
                        ((= dir "r")(if (= n (1- len))(setq n -1))(1+ n))
                        (t nil)
                )
      )
      (vla-activate (cadr (nth n tablist)))
)

;循环切换布局
(defun c:layoutup()(layout-loop "l"))
(defun c:layoutdown()(layout-loop "r"))
(defun layout-loop (dir / count layouts n tab tablist)
      (setq layouts (vla-get-layouts *doc*))
      (vlax-for layout layouts
                (setq tablist (cons (vla-get-Name layout) tablist))
      )
      (setq tablist (reverse tablist))
      (setq n (vl-position (getvar "ctab") tablist))
      (setq count (vla-get-count layouts))
      (cond
                ((= dir "l")
                        (if (= n 0)(setq n count))
                        (setq tab (nth (1- n) tablist))
                )
                ((= dir "r")
                        (if (= n (1- count))(setq n -1))
                        (setq tab (nth (1+ n) tablist))
                )
      )
      (setvar "CTAB" tab)
)


配合附件中的外挂功能键设置会更好用!

xj6019 发表于 2022-10-22 18:25:27

本帖最后由 xj6019 于 2022-10-22 19:30 编辑

nyistjz 发表于 2022-10-21 17:04
你这个找了很久没有找到,您可以共享出来吗 ?
论坛有牛逼的定义方式很得劲 可以研究一下
http://bbs.mjtd.com/thread-93319-1-1.html

用上面的方法可以直接把这四个分别定义给上下左右四个方向键,还是很好玩的,有兴趣的,仔细读读上面链接大佬的经验分享!!!

xiangganglv 发表于 2022-10-22 16:55:58

nyistjz 发表于 2022-10-21 17:04
你这个找了很久没有找到,您可以共享出来吗 ?

AutoHotKey就是一个游戏脚本插件,原理是用它的按键外挂改按键方式而已。本来按2-3次的按键,它一键搞定,前期设置有点麻烦。

菜卷鱼 发表于 2022-10-20 18:39:27

xiangganglv 发表于 2022-10-20 15:09
知道怎么设置Tab快捷键吗?

理论上就是去cui文件里直接改,
因为键盘快捷键没有新增功能,复制的会跟之前的同步变化,只能牺牲掉1个默认的去改

liunian0524 发表于 2022-10-18 13:10:22

感谢分享,收藏支持

lxl217114 发表于 2022-10-18 13:10:31

感谢大佬分享,收藏

xj6019 发表于 2022-10-18 13:15:27

感谢大佬分享,收藏 大佬威武

MUSIC-DIE 发表于 2022-10-18 13:28:01

感谢大佬分享!

没有昵称呀 发表于 2022-10-18 15:19:05

感谢大佬分享,收藏

菜卷鱼 发表于 2022-10-18 16:55:24

不错,配合键盘快捷键更好用

趣意人生 发表于 2022-10-18 21:17:40

感谢大佬分享,收藏

nyistjz 发表于 2022-10-18 21:46:15

菜卷鱼 发表于 2022-10-18 16:55
不错,配合键盘快捷键更好用

正解!

hzyhzjjzh 发表于 2022-10-19 12:45:53

感谢分享,{:1_1:}
页: [1] 2
查看完整版本: 文件标签与布局标签 循环切换