乐筑天下

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

[编程交流] 属性块的文件名

[复制链接]

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 15:55:04 | 显示全部楼层 |阅读模式
您好,这里是新用户!
 
我有一个旧的LSP,我总是使用VBE运行,该VBE获取文件名的一部分,并将其插入到相应命名的目录中所有图形的属性块中。
 
示例文件名:DCA-ABC-123456789-E001 R0(图纸编号)。图纸
 
文件名中的每一组字符都将因项目而异,因为它们是基于项目的。我们有一个称为“DCA\U stmp”的DCA块,用于为客户创建变更单,然后将其合并到记录图纸中。很多时候,我们有数百个这样的程序,如果有人向程序包中添加一个图形,我们需要对它们重新编号,因为它们应该按图形编号的字母数字顺序排列。很可怕的是,必须按文件名和图纸戳记内手动重新编号,因此我们尝试将其保留为“DCA-WEH-112177115-EXXX R0(图纸编号).dwg”,直到项目中可能的最新点。它工作得很好,直到我们从AutoCAD 2012跳到2016,现在它运行起来就像在进行更改,保存图形,但不会更改块。
 
我已经附加了LSP,但它不允许我上传VBE。。。谁能帮我弄清楚我需要做什么才能让这一切再次成功??我已经很多年没有上LSP课程了,我的知识是如此的基础,以至于我无法找出问题所在,更不用说如何修复它了。
文件名TodCA。lsp
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:15:15 | 显示全部楼层
对不起,我忘了包括街区!它位于适当命名的附件内
DCA-ABC-123456789-EXXX R0(图纸编号)。图纸
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:26:53 | 显示全部楼层
也许张贴一张显示预期结果的图纸。。这是一件永远不应该手动完成的事情。
回复

使用道具 举报

1

主题

3

帖子

2

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:36:02 | 显示全部楼层
我们已经习惯于使用2012年及之前的LSP,因此我们显然认为它是理所当然的。这是一个包含填充块的dwg。
DCA-WEH-112177115-E002 R0(45B799s205r2)。图纸
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:47:20 | 显示全部楼层
快速测试和代码在这里工作。。但是,在块中属性的可见性方面发生了一些奇怪的事情?
165511is3eee3emmnnadze.png
回复

使用道具 举报

58

主题

3353

帖子

33

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1761
发表于 2022-7-5 16:58:26 | 显示全部楼层
下面是代码的更统一版本。你有没有想过用字段来表示这个(%)?
  1. (defun c:foo (/ i n s)
  2. (cond
  3.    ((null (setq s (ssget "_X" '((0 . "insert") (2 . "dca_stmp") (66 . 1)))))
  4.     (print "Block 'dca_stmp' not found...")
  5.    )
  6.    ((null (setq i (vl-string-position (ascii "-") (setq n (getvar 'dwgname)) 0 t)))
  7.     (print "'-' not found in drawing name...")
  8.    )
  9.    ((foreach b        (mapcar 'cadr (ssnamex s))
  10.       (vl-some        '(lambda (x)
  11.            (and (= "DCA_NO." (vla-get-tagstring x)) (vla-put-textstring x (substr n 1 i)))
  12.          )
  13.         (vlax-invoke (vlax-ename->vla-object b) 'getattributes)
  14.       )
  15.     )
  16.    )
  17. )
  18. (princ)
  19. )
  20. (vl-load-com)

 
附着的是默认设置为“图形名称”的块。
DCA-ABC-123456789-EXXX R0(图纸编号)。图纸
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-13 20:00 , Processed in 0.439544 second(s), 66 queries .

© 2020-2025 乐筑天下

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