Grrr 发表于 2022-7-5 17:26:22

好的,在塔瓦的评论之后,你可以用这个:

(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))
)
)

tive29 发表于 2022-7-5 17:27:49

你好,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)

BIGAL 发表于 2022-7-5 17:33:51

为了找到我做过的事情,帖子被删除了。我想就是这样。
 

(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))
)
)

Grrr 发表于 2022-7-5 17:36:34

 
这样地:
(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)

tive29 发表于 2022-7-5 17:42:11

谢谢Grrr。
如果我没有弄错的话,我注意到新创建的文件(带有前缀)将保存到最后保存的位置。这是我遇到的一个问题,上次保存的位置是项目A,文件重命名是项目B,但保存到项目A。如果可能的话,你能将其重新定位到文档文件夹吗?
 
 
 
 
 

BIGAL 发表于 2022-7-5 17:46:51

可能在代码中添加(getvar“dwgprefix”),这是dwg的路径。如果您知道公司目录结构,请根据需要进行更改。
页: 1 [2]
查看完整版本: 将布局名称作为前缀添加到