布局选项卡选择
看来我是。lsp是文盲,但嘿,我在努力学习。希望你能帮助我。我在找一块。lsp代码,允许我一次一个地在布局选项卡之间切换。需要注意的是,我需要它像键盘笔划一样工作:Ctrl+Page Up或Ctrl+Page Down,它只需一次跳上/跳下一个布局,而不需要知道布局名称。
额外提示:该功能从第一个布局选项卡开始,一直到最后一个布局选项卡(例如,20个布局选项卡)
有人知道这是否可能吗?
我将为每个“当前”布局执行其他任务,因为它们处于活动状态,所以我想象在为每个布局注入代码后,我只需重复一段代码。再一次试着教自己怎么做。
提前感谢您的帮助。 布局选项卡是一个表,因此您可以获得它们的列表,我很确定您可以更改一个变量来设置当前选项卡值。
“CTAB”是的,有效。
来自帮助
查找符号表中的下一项
(tblnext表格名称[回放])
当反复使用tblnext时,它通常每次返回指定表中的下一个条目。tblsearch函数可以设置要检索的下一个条目。如果rewind参数存在且不为零,则将重绕符号表并检索其中的第一个条目。
论据
表名标识符号表的字符串。有效的表名值为“LAYER”、“LTYPE”、“VIEW”、“STYLE”、“BLOCK”、“UCS”、“APPID”、“DIMSTYLE”和“VPORT”。参数不区分大小写。
在这里搜索布局表应该有一些代码可用 单步执行(vla get layouts(vla get activedocument(vlax get acad object))并列出所有布局,根据vla get taborder排序。
从那里,您可以轻松地单步浏览布局列表,然后跳转到下一个或上一个。
只需使用(setvar'ctab)设置当前布局选项卡。
我觉得这很有趣。这里有一点灵感:
它不会在视频中显示,但如果你经过最后一个,它会跳到第一个,反之亦然。 查看(布局列表) 但它并没有按正确的顺序返回它们。 是的,没错
(defun Test1 nil
(
(lambda ( LayoutCollection )
(vl-sort (cons "Model" (layoutlist))
'(lambda ( layout1 layout2 )
(< (vla-get-TabOrder (vla-item LayoutCollection layout1))
(vla-get-TabOrder (vla-item LayoutCollection layout2))
)
)
)
)
(vla-get-layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
)
)
(defun Test2 nil
(
(lambda ( LayoutCollection / l )
(mapcar 'vla-get-Name
(vl-sort (vlax-for Layout LayoutCollection (setq l (cons Layout l)))
'(lambda ( layout1 layout2 )
(< (vla-get-TabOrder layout1)
(vla-get-TabOrder layout2)
)
)
)
)
)
(vla-get-layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
)
)
Elapsed milliseconds / relative speed for 4096 iteration(s):
(TEST2).....1966 / 1.16 <fastest>
(TEST1).....2277 / 1.00 <slowest>
页:
[1]