乐筑天下

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

[编程交流] 将布局名称作为前缀添加到

[复制链接]

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:26:22 | 显示全部楼层
好的,在塔瓦的评论之后,你可以用这个:
  1. (defun SortedLayoutsList ( / L )
  2. (vlax-map-collection
  3.    (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
  4.    (function (lambda (x) (setq L (cons (list (vla-get-TabOrder x) (vla-get-Name x)) L))))
  5. )
  6. (mapcar 'cadr (cdr (vl-sort L '(lambda (a b) (< (car a) (car b))))))
  7. ); defun SortedLayoutsList

 
(SortedLayoutList)而不是(layoutlist)
 
编辑:
或者直接获取第一个选项卡(对于此特定任务):
  1. ; (GetFirstLayoutTab)
  2. (defun GetFirstLayoutTab ( / Lcoll )
  3. (setq Lcoll (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) )
  4. (vl-some
  5.    '(lambda (x) (if (= 1 (vla-get-TabOrder x)) (vla-get-Name x)))
  6.    (mapcar '(lambda (x) (vla-item Lcoll x)) (layoutlist))
  7. )
  8. )
回复

使用道具 举报

13

主题

56

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 17:27:49 | 显示全部楼层
你好,Grr
 
如何组合此
 
  1. ; (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代码中?
 
  1. (defun C:test ( / )   (vla-SaveAs      (vla-get-ActiveDocument (vlax-get-acad-object))      (strcat (car (layoutlist)) "-" (getvar 'dwgname))   )   (princ) )(vl-load-com) (princ)
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:33:51 | 显示全部楼层
为了找到我做过的事情,帖子被删除了。我想就是这样。
 
  1. (vlax-for lay (vla-get-Layouts (vla-get-activedocument (vlax-get-acad-object)))
  2. (if (= 1 (vla-get-taborder lay)) ; 0 is "Model" 1 is 1st
  3. (setvar "ctab" (vla-get-name lay))
  4. )
  5. )
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:36:34 | 显示全部楼层
 
这样地:
  1. (defun C:test ( / GetFirstLayoutTab )
  2. (defun GetFirstLayoutTab ( / Lcoll )
  3.    (setq Lcoll (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object))) )
  4.    (vl-some
  5.      '(lambda (x) (if (= 1 (vla-get-TabOrder x)) (vla-get-Name x)))
  6.      (mapcar '(lambda (x) (vla-item Lcoll x)) (layoutlist))
  7.    )
  8. )
  9. (vla-SaveAs
  10.    (vla-get-ActiveDocument (vlax-get-acad-object))
  11.    (strcat (GetFirstLayoutTab) "-" (getvar 'dwgname))
  12. )
  13. (princ)
  14. )(vl-load-com) (princ)
回复

使用道具 举报

13

主题

56

帖子

39

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-5 17:42:11 | 显示全部楼层
谢谢Grrr。
如果我没有弄错的话,我注意到新创建的文件(带有前缀)将保存到最后保存的位置。这是我遇到的一个问题,上次保存的位置是项目A,文件重命名是项目B,但保存到项目A。如果可能的话,你能将其重新定位到文档文件夹吗?
 
 
 
 
 
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 17:46:51 | 显示全部楼层
可能在代码中添加(getvar“dwgprefix”),这是dwg的路径。如果您知道公司目录结构,请根据需要进行更改。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-23 17:22 , Processed in 1.250702 second(s), 62 queries .

© 2020-2025 乐筑天下

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