本帖最后由 xiaomm250 于 2023-4-4 11:29 编辑
xiaomm250 发表于 2023-4-4 10:49
你的这个简直就是宝库,我从那儿把你代码复制粘贴过来了
- (vl-load-com)
- ;子函数,布局名列表,按照当前屏幕显示的顺序返回所有布局名称
- (defun c:lolist(/ a lst newlst out x y xx)
- (setq lst nil);初始赋值
- ;vlax获取所有的布局的顺序号、布局名称,两列,获得这个列表
- (vlax-for Layout (vla-get-Layouts(vla-get-ActiveDocument(vlax-get-acad-object)))
- (setq lst (cons (list (vla-get-TabOrder Layout)(vla-get-name Layout)) lst))
- )
- ;重新排序,按照第1列(TabOrder)从小到大的顺序排列
- (setq newlst (vl-sort lst (function(lambda(x y)(<(car x)(car y))))))
- ;只取第二列的元素,也就是布局的名称
- (setq out (mapcar(function(lambda(xx)(nth 1 xx))) newlst))
- ;第一个是模型名称,因此删除
- (setq out (cdr out))
- )
我把你的代码改一改!
完善你的代码,让你的代码能独立工作,并且让代码可读性进一步提升!
|