乐筑天下

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

[编程交流] 使用2 tit重命名布局选项卡

[复制链接]

5

主题

13

帖子

8

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 00:40:10 | 显示全部楼层 |阅读模式
我使用了我在这些论坛中发现的单属性拉取版本,但我真的很想知道在重命名中拉取2个属性是否可行。我需要图纸编号(附件“DRAWINGNO.”)以及修订(附件“REV”)

图纸编号abc123
修订版B
将布局选项卡重命名为abc123B
 
外面有什么吗。我把300个PDF重命名为RSI
我知道图纸集可能会这样做,但我们不使用它们。
感谢所有帮助和指导。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:46:35 | 显示全部楼层
欢迎来到Cadtutor
 
1-保存用于重命名布局的属性的属性块的名称是什么?
2-每个属性的两个标记名是什么?
 
塔瓦特
回复

使用道具 举报

5

主题

13

帖子

8

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 00:49:05 | 显示全部楼层
感谢您的回复:
块为“A1边框”,无引号
属性标记为“DRAWINGNO”和“REV”再次没有引用。
如果它们可以用下划线分隔,那将是理想的。。。但现在一切都会很好。
干杯
J
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:51:19 | 显示全部楼层
希望这对你有用,试试看,让我知道
 
  1. (defun c:Test (/ outs spc s)
  2. (vl-load-com)
  3. ;; --- Tharwat 16. May. 2013 --- ;;
  4. (setq outs (vla-get-layouts
  5.               (vla-get-ActiveDocument (vlax-get-acad-object))
  6.             )
  7.        spc  (getvar 'ctab)
  8. )
  9. (foreach l (layoutlist)
  10.    (setvar 'ctab l)
  11.    (if (setq s (ssget "_X" (list '(0 . "INSERT") (cons 2 "A1 Border")(cons 410 l))))
  12.      (progn
  13.        ((lambda (j / sn e ent nm lst)
  14.           (while (setq e (ssname s (setq j (1+ j))))
  15.             (setq lst nil)
  16.             (while (/= (cdr (assoc 0 (entget (setq e (entnext e)))))
  17.                        "SEQEND"
  18.                    )
  19.               (if
  20.                 (and
  21.                   (eq (cdr (assoc 0 (setq ent (entget e)))) "ATTRIB")
  22.                   (or (eq (cdr (assoc 2 ent)) "DRAWINGNO.")
  23.                       (eq (cdr (assoc 2 ent)) "REV")
  24.                   )
  25.                   (snvalid (cdr (assoc 1 ent)))
  26.                 )
  27.                  (setq lst (cons (cdr (assoc 1 ent)) lst))
  28.               )
  29.             )
  30.             (if (eq 2 (length lst))
  31.               (if (and (setq nm (strcat (car lst) "_" (cadr lst)))
  32.                        (not (member nm (layoutlist))
  33.                        )
  34.                   )
  35.                 (vla-put-name (vla-item outs l) nm)
  36.               )
  37.             )
  38.           )
  39.         )
  40.          -1
  41.        )
  42.      )
  43.    )
  44. )
  45. (setvar 'ctab spc)
  46. (princ)
  47. )
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 00:53:15 | 显示全部楼层
@塔瓦特
 
如果您要使用布局列表
  1. (setq s (ssget "_X" [b](list[/b] '(0 . "INSERT")'(2 . "A1 Border")[b](cons 410 l)[/b])))


  1. (setvar 'ctab spc)

 
如果您碰巧在paperspace选项卡中启动,则会导致错误;
 
IMO无需通过布局列表,并在每个选项卡上选择“A1边框”
 
 
我会这样做:
 
  1. (defun C:renlay (/ Layout ss n e ltn ltnlist nm Attlist)
  2. (vl-load-com)
  3. ;;;        pBe 17MAy2013        ;;;
  4. (setq
  5.    Layout (vla-get-layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
  6. )
  7. (if (setq ss (ssget "_x"
  8.                      '((0 . "INSERT")
  9.                        (2 . "A1 Border")
  10.                        (-4 . "<NOT")
  11.                        (410 . "Model")
  12.                        (-4 . "NOT>")
  13.                       )
  14.               )
  15.      )
  16.    (repeat (setq i (sslength ss))
  17.      (setq n   0
  18.            e   (ssname ss (setq i (1- i)))
  19.            ltn (cdr (assoc 410 (entget e)))
  20.      )
  21.      (if (and (not (member ltn ltnlist))
  22.               (setq AttVal
  23.                      (mapcar
  24.                        '(lambda (k)
  25.                           (list (vla-get-tagstring k) (vla-get-textstring k))
  26.                         )
  27.                        (vl-remove-if-not
  28.                          '(lambda (j)
  29.                             (member (vla-get-tagstring j) '("DRAWINGNO." "REV"))
  30.                           )
  31.                          (vlax-invoke (vlax-ename->vla-object e) 'GetAttributes)
  32.                        )
  33.                      )
  34.               )
  35.          )
  36.        (progn
  37.          ;;        In case the attribute sequence is out ot whack             
  38.          (setq ltnlist (cons ltn ltnlist)
  39.                nm      (Strcat (cadr (assoc "DRAWINGNO." Attval))
  40.                                "_"
  41.                                (cadr (assoc "REV" Attval))
  42.                        )
  43.          )
  44. ;;;        In case there are equal values                 ;;;
  45.          (while (member nm (layoutlist))
  46.            (setq nm (strcat nm " (" (itoa (setq n (1+ n))) ")"))
  47.          )
  48.          (vla-put-name (Vla-item Layout ltn) nm)
  49.        )
  50.      )
  51.    )
  52. )
  53. (princ)
  54. )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 00:56:18 | 显示全部楼层
用dxf 410很好地捕捉到了pBe。
 
非常感谢。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 01:00:49 | 显示全部楼层
 
干杯伙计
回复

使用道具 举报

5

主题

13

帖子

8

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 01:03:52 | 显示全部楼层
伙计们,
谢谢你在这方面花时间。tharwat-很抱歉,我昨天晚上一次没有回复机器。
pBe公司
RENLAYLisp程序很好地工作
我现在可以休息我的手指和休息轻松,我的pdf的将被正确命名。如果我记得在出版之前把它们放回原处。
雅特
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 01:06:51 | 显示全部楼层
 
我的代码对你有用吗?
回复

使用道具 举报

5

主题

13

帖子

8

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-6 01:09:42 | 显示全部楼层
嗨,塔尔瓦特。
它只重命名了相邻的布局选项卡(不是我当前使用的布局选项卡,也不是其他布局选项卡),还将rev放在drawingno之前。以相反的方式命名。
 
pBe修改后的代码起到了作用。所以你们之间是一针见血的。
谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 20:57 , Processed in 1.309041 second(s), 72 queries .

© 2020-2025 乐筑天下

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