乐筑天下

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

[编程交流] 布局图纸空间重新编号

[复制链接]

10

主题

52

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-5 20:23:57 | 显示全部楼层 |阅读模式
大家好,圣诞快乐。
进展祝你新年快乐
 
我正在寻找自动重新编号的纸张空间文字或属性块每个布局。
 
我有25到60个布局
 
谢谢,问候
yathishkumar先生
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-5 20:28:06 | 显示全部楼层
显示一个包含更多详细信息的示例
回复

使用道具 举报

10

主题

52

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-5 20:32:31 | 显示全部楼层
请查找随附的图纸文件
示例文件
 
 
谢谢问候
yathishkumar先生
图纸6.dwg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:36:31 | 显示全部楼层
您可以进行各种自动重新编号,我们可以阅读dwg图纸NUB的布局选项卡,您可以从1开始重新编号,等等。
 
唯一需要注意的是,简单来说,布局有两个列表——你看到它们的顺序和它们创建的顺序——通常我们使用你看到它们的顺序。
 
那么如何保存布局呢?剩下的很简单。
 
  1. ; this is an example it will need to be modified to suit your dwg
  2. ; change the 410 to layout name
  3. ;;-------------------=={ Parse Numbers }==--------------------;;
  4. ;;                                                            ;;
  5. ;;  Parses a list of numerical values from a supplied string. ;;
  6. ;;------------------------------------------------------------;;
  7. ;;  Author: Lee Mac, Copyright © 2011 - www.lee-mac.com       ;;
  8. ;;------------------------------------------------------------;;
  9. ;;  Arguments:                                                ;;
  10. ;;  s - String to process                                     ;;
  11. ;;------------------------------------------------------------;;
  12. ;;  Returns:  List of numerical values found in string.       ;;
  13. ;;------------------------------------------------------------;;
  14. (defun LM:ParseNumbers ( s )
  15. (
  16.    (lambda ( l )
  17.      (read
  18.        (strcat "("
  19.          (vl-list->string
  20.            (mapcar
  21.              (function
  22.                (lambda ( a b c )
  23.                  (if
  24.                    (or
  25.                      (< 47 b 58)
  26.                      (and (= 45 b) (< 47 c 58) (not (< 47 a 58)))
  27.                      (and (= 46 b) (< 47 a 58) (< 47 c 58))
  28.                    )
  29.                    b 32
  30.                  )
  31.                )
  32.              )
  33.              (cons nil l) l (append (cdr l) (list nil))
  34.            )
  35.          )
  36.          ")"
  37.        )
  38.      )
  39.    )
  40.    (vl-string->list s)
  41. )
  42. )
  43. ;; Input  Dialog box with variable title
  44. ;; By Ah June 2012
  45. ;; code (ah:getval title)
  46. (defun AH:Getval (title width limit / fo)
  47. (setq fname "C://acadtemp//getval.dcl")
  48. (setq fo (open fname "w"))
  49. (write-line "ddgetval : dialog {" fo)
  50. (write-line " : row {" fo)
  51. (write-line ": edit_box {" fo)
  52. (write-line (strcat "    key = "  (chr 34) "sizze" (chr 34) ";") fo)
  53. (write-line  (strcat " label = "  (chr 34) title (chr 34) ";"  )   fo)
  54. ; these can be replaced with shorter value etc
  55. ;(write-line "     edit_width = 18;" fo)
  56. ;(write-line "     edit_limit = 15;" fo)
  57. (write-line width fo)
  58. (write-line limit fo)
  59. (write-line "   is_enabled = true;" fo)        
  60. (write-line "    }" fo)
  61. (write-line "  }" fo)
  62. (write-line "ok_cancel;}" fo)
  63. (close fo)
  64. (setq dcl_id (load_dialog  "c:\\acadtemp\\getval"))
  65. (if (not (new_dialog "ddgetval" dcl_id))
  66. (exit))
  67. (action_tile "sizze" "(setq item  $value)(done_dialog)")
  68. (mode_tile "sizze" 3)
  69. (start_dialog)
  70. ; returns the value of item
  71. )
  72. ;(defun ah:sheetupdate1 (ss1 lay plotabs tabname dwgname)
  73. (defun ah:sheetupdate1 ()
  74. (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  75. (vlax-for lay (vla-get-Layouts doc)
  76. (setq plotabs (cons (vla-get-name lay) plotabs))
  77. )
  78. (setq title "Please enter dwg number")
  79. (setq width "   edit_width = 12;")
  80. (setq limit "     edit_limit = 9;")
  81. (ah:getval title width limit)
  82. (setq dwgname item)
  83. (setq title "Please enter version for all sheets <Cr> no change")
  84. (setq width "   edit_width = 8;")
  85. (setq limit "     edit_limit = 5;")
  86. (ah:getval title width limit)  
  87. (setq newstr4 item)
  88. (princ "0")
  89. (setq len (length plotabs))
  90. (setq x 0)
  91. (setq bname "DA1DRTXT") ; title block name
  92. (repeat len
  93. (setq tabname (nth x plotabs))
  94. (if (/= tabname "Model")
  95.    (progn
  96.      (setvar "ctab" tabname)
  97.      (setq ss1 (ssget "x"  (list (cons 0 "INSERT") (cons 2 bname)(cons 410 tabname))))
  98.      (setq dwgnum (Lm:parsenumbers tabname))
  99.      (setq sheetnum (car dwgnum))
  100.      (setq oldtag1 "SHT_NO") ;attribute tag name
  101.      (setq newstr1 (rtos sheetnum 2 0))
  102.      (setq oldtag2 "DRG_NO") ;attribute tag name
  103.      (setq oldtag3 "PROJ_NO") ;attribute tag name
  104.      (setq newstr3 dwgname)
  105.      (setq oldtag4 "REV_NO") ;attribute tag name
  106. ; if less than 10
  107. (if (< (car dwgnum) 10.0)
  108.      (setq newstr2 (strcat dwgname "-D0"  (rtos sheetnum 2 0)))
  109.      (setq newstr2 (strcat dwgname "-D"  (rtos sheetnum 2 0)))
  110. )
  111.      (foreach att (vlax-invoke (vlax-ename->vla-object (ssname SS1 0 )) 'getattributes)
  112.        (if (= oldtag1 (strcase (vla-get-tagstring att)))
  113.        (vla-put-textstring att newstr1)
  114.        ) ; end if
  115.        (if (= oldtag2 (strcase (vla-get-tagstring att)))
  116.        (vla-put-textstring att newstr2)
  117.        ) ; end if
  118.        (if (= oldtag3 (strcase (vla-get-tagstring att)))
  119.        (vla-put-textstring att newstr3)
  120.        ) ; end if
  121.        (if (and (/= newstr4 nil) (= oldtag4 (strcase (vla-get-tagstring att))) )
  122.        (vla-put-textstring att newstr4)
  123.        ) ; end if
  124.       ) ; end foreach
  125.    ) ; end progn
  126. ) ; end if
  127. (setq x (+ x 1))
  128. ) ; end repeat
  129. (setq ss1 nil)  
  130. ) ; end defun ah
  131. (ah:sheetupdate1)
  132. (princ)
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 20:37:44 | 显示全部楼层
 
“布局”是指图纸空间布局?如果是的话,这对于一幅画来说是惊人的多。
 
或者这是序列号,但图形只有一个布局选项卡?如果是,您最好使用图纸集管理器(SSM)。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:42:40 | 显示全部楼层
Pbe我在一个民用道路设计图纸中有88个布局,毫无疑问,如果是ssm,它将不起作用,因为我们使用了第三方产品,并通过剪切和粘贴更新设计来更正图纸。看到我的帖子,通过一个数字跳转到任何布局,我相信即使在2015年也会遗漏一些东西。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 20:45:32 | 显示全部楼层
 
哇,以前从没这么做过。
 
 
这是一个好主意,类似于卓越的“激活”能力。
 
至于OPs发布的图形文件。你认为Fields value适用吗
 
ctab+1
ctab-1
 
思想?
 
我附上了一张图纸,以证明我所说的ctab+/-1是什么意思
 
图纸6.dwg
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:48:39 | 显示全部楼层
Pbe使用一个字段很好,我们通常将布局标记为D01 d02等。在88个布局中,我们再次使用D54FRED ST,因此使用Lee mac例程仅检索数字。该例程对布局进行计数,因此第二部分是第1页,共88页。删除一张图纸将成为第1页,共87页。然后使用DWGINDEX。lsp更新主索引。原始图纸对所需内容有点吹牛。
 
这是布局链接的多个功能http://www.cadtutor.net/forum/showthread.php?84430-移动布局重命名布局转到布局
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 20:51:31 | 显示全部楼层
感谢您发布链接BIGAL,GOTO确实帮助用户跳转到特定的布局选项卡,我记得我以前用一个列表框写过类似的东西,我添加了该功能,因为用户要求使用从模型到图纸空间布局的创建“字段”值。
 
回到OP,post#4的代码中似乎缺少函数AH:GETVAL?最好测试一下代码。
回复

使用道具 举报

10

主题

52

帖子

42

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-5 20:53:30 | 显示全部楼层
你好
让我试试
 
但我有不同的选项卡名称和图纸名称是不同的。
 
谢谢,regardes
雅提斯库马尔
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-18 19:50 , Processed in 4.003374 second(s), 72 queries .

© 2020-2025 乐筑天下

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