(defun SortedLayoutsList ( / L )
(vlax-map-collection
(vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
(function (lambda (x) (setq L (cons (list (vla-get-TabOrder x) (vla-get-Name x)) L))))
)
(mapcar 'cadr (cdr (vl-sort L '(lambda (a b) (< (car a) (car b))))))
); defun SortedLayoutsList
(SortedLayoutList)而不是(layoutlist)
编辑:
或者直接获取第一个选项卡(对于此特定任务):
; (GetFirstLayoutTab)
(defun GetFirstLayoutTab ( / Lcoll )
(setq Lcoll (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) )
(vl-some
'(lambda (x) (if (= 1 (vla-get-TabOrder x)) (vla-get-Name x)))
(mapcar '(lambda (x) (vla-item Lcoll x)) (layoutlist))
)
)
你好,Grr
如何组合此
; (GetFirstLayoutTab) (defun GetFirstLayoutTab ( / Lcoll ) (setq Lcoll (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) ) (vl-some '(lambda (x) (if (= 1 (vla-get-TabOrder x)) (vla-get-Name x))) (mapcar '(lambda (x) (vla-item Lcoll x)) (layoutlist)) ) )到您的EARLER代码中?
(defun C:test ( / ) (vla-SaveAs (vla-get-ActiveDocument (vlax-get-acad-object)) (strcat (car (layoutlist)) "-" (getvar 'dwgname)) ) (princ) )(vl-load-com) (princ) 为了找到我做过的事情,帖子被删除了。我想就是这样。
(vlax-for lay (vla-get-Layouts (vla-get-activedocument (vlax-get-acad-object)))
(if (= 1 (vla-get-taborder lay)) ; 0 is "Model" 1 is 1st
(setvar "ctab" (vla-get-name lay))
)
)
这样地:
(defun C:test ( / GetFirstLayoutTab )
(defun GetFirstLayoutTab ( / Lcoll )
(setq Lcoll (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) )
(vl-some
'(lambda (x) (if (= 1 (vla-get-TabOrder x)) (vla-get-Name x)))
(mapcar '(lambda (x) (vla-item Lcoll x)) (layoutlist))
)
)
(vla-SaveAs
(vla-get-ActiveDocument (vlax-get-acad-object))
(strcat (GetFirstLayoutTab) "-" (getvar 'dwgname))
)
(princ)
)(vl-load-com) (princ) 谢谢Grrr。
如果我没有弄错的话,我注意到新创建的文件(带有前缀)将保存到最后保存的位置。这是我遇到的一个问题,上次保存的位置是项目A,文件重命名是项目B,但保存到项目A。如果可能的话,你能将其重新定位到文档文件夹吗?
可能在代码中添加(getvar“dwgprefix”),这是dwg的路径。如果您知道公司目录结构,请根据需要进行更改。
页:
1
[2]