明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1737|回复: 17

[源码] 文件标签与布局标签 循环切换

[复制链接]
发表于 2022-10-18 12:41 | 显示全部楼层 |阅读模式
本帖最后由 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)
)


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 4明经币 +4 收起 理由
USER2128 + 1 赞一个!
guosheyang + 1 赞一个!
xj6019 + 1 赞一个!
liunian0524 + 1

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-10-22 18:25 | 显示全部楼层
本帖最后由 xj6019 于 2022-10-22 19:30 编辑
nyistjz 发表于 2022-10-21 17:04
你这个找了很久没有找到,您可以共享出来吗 ?

论坛有牛逼的定义方式  很得劲 可以研究一下
http://bbs.mjtd.com/thread-93319-1-1.html

用上面的方法可以直接把这四个分别定义给上下左右四个方向键,还是很好玩的,有兴趣的,仔细读读上面链接大佬的经验分享!!!
发表于 2022-10-22 16:55 | 显示全部楼层
nyistjz 发表于 2022-10-21 17:04
你这个找了很久没有找到,您可以共享出来吗 ?

AutoHotKey就是一个游戏脚本插件,原理是用它的按键外挂改按键方式而已。本来按2-3次的按键,它一键搞定,前期设置有点麻烦。
发表于 2022-10-20 18:39 | 显示全部楼层
xiangganglv 发表于 2022-10-20 15:09
知道怎么设置Tab快捷键吗?

理论上就是去cui文件里直接改,
因为键盘快捷键没有新增功能,复制的会跟之前的同步变化,只能牺牲掉1个默认的去改
发表于 2022-10-18 13:10 | 显示全部楼层
感谢分享,收藏支持
发表于 2022-10-18 13:10 | 显示全部楼层
感谢大佬分享,收藏
发表于 2022-10-18 13:15 | 显示全部楼层
感谢大佬分享,收藏 大佬威武
发表于 2022-10-18 13:28 | 显示全部楼层
感谢大佬分享!
发表于 2022-10-18 15:19 | 显示全部楼层
感谢大佬分享,收藏
发表于 2022-10-18 16:55 | 显示全部楼层
不错,配合键盘快捷键更好用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2022-10-18 21:17 | 显示全部楼层
感谢大佬分享,收藏
 楼主| 发表于 2022-10-18 21:46 | 显示全部楼层
菜卷鱼 发表于 2022-10-18 16:55
不错,配合键盘快捷键更好用

正解!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-20 03:11 , Processed in 0.230034 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表