乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 58|回复: 5

[编程交流] 布局选项卡选择

[复制链接]

6

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-6 10:23:55 | 显示全部楼层 |阅读模式
看来我是。lsp是文盲,但嘿,我在努力学习。
 
希望你能帮助我。我在找一块。lsp代码,允许我一次一个地在布局选项卡之间切换。需要注意的是,我需要它像键盘笔划一样工作:Ctrl+Page Up或Ctrl+Page Down,它只需一次跳上/跳下一个布局,而不需要知道布局名称。
 
额外提示:该功能从第一个布局选项卡开始,一直到最后一个布局选项卡(例如,20个布局选项卡)
 
有人知道这是否可能吗?
 
我将为每个“当前”布局执行其他任务,因为它们处于活动状态,所以我想象在为每个布局注入代码后,我只需重复一段代码。再一次试着教自己怎么做。
 
提前感谢您的帮助。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 10:44:52 | 显示全部楼层
布局选项卡是一个表,因此您可以获得它们的列表,我很确定您可以更改一个变量来设置当前选项卡值。
 
“CTAB”是的,有效。
 
来自帮助
查找符号表中的下一项
(tblnext表格名称[回放])
当反复使用tblnext时,它通常每次返回指定表中的下一个条目。tblsearch函数可以设置要检索的下一个条目。如果rewind参数存在且不为零,则将重绕符号表并检索其中的第一个条目。
论据
表名标识符号表的字符串。有效的表名值为“LAYER”、“LTYPE”、“VIEW”、“STYLE”、“BLOCK”、“UCS”、“APPID”、“DIMSTYLE”和“VPORT”。参数不区分大小写。
 
在这里搜索布局表应该有一些代码可用
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 10:48:08 | 显示全部楼层
单步执行(vla get layouts(vla get activedocument(vlax get acad object))并列出所有布局,根据vla get taborder排序。
从那里,您可以轻松地单步浏览布局列表,然后跳转到下一个或上一个。
 
只需使用(setvar'ctab)设置当前布局选项卡。
 
我觉得这很有趣。这里有一点灵感:
 
它不会在视频中显示,但如果你经过最后一个,它会跳到第一个,反之亦然。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:06:15 | 显示全部楼层
查看(布局列表)
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 11:23:44 | 显示全部楼层
但它并没有按正确的顺序返回它们。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:25:01 | 显示全部楼层
是的,没错
 
  1. (defun Test1 nil
  2. (
  3.    (lambda ( LayoutCollection )
  4.      (vl-sort (cons "Model" (layoutlist))
  5.       '(lambda ( layout1 layout2 )
  6.          (< (vla-get-TabOrder (vla-item LayoutCollection layout1))
  7.             (vla-get-TabOrder (vla-item LayoutCollection layout2))
  8.          )
  9.        )
  10.      )
  11.    )
  12.    (vla-get-layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
  13. )
  14. )
  15. (defun Test2 nil
  16. (
  17.    (lambda ( LayoutCollection / l )
  18.      (mapcar 'vla-get-Name
  19.        (vl-sort (vlax-for Layout LayoutCollection (setq l (cons Layout l)))
  20.         '(lambda ( layout1 layout2 )
  21.            (< (vla-get-TabOrder layout1)
  22.               (vla-get-TabOrder layout2)
  23.            )
  24.          )
  25.        )
  26.      )
  27.    )
  28.    (vla-get-layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
  29. )
  30. )

 
  1. Elapsed milliseconds / relative speed for 4096 iteration(s):
  2.    (TEST2).....1966 / 1.16 <fastest>
  3.    (TEST1).....2277 / 1.00 <slowest>
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 21:32 , Processed in 0.609791 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表