乐筑天下

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

[编程交流] 自动更新标题blo

[复制链接]

7

主题

26

帖子

19

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 10:45:57 | 显示全部楼层 |阅读模式
大家好,
 
我有一个lisp例程,我想将其更改为更加自动化。
 
;* -------------------------- 子程序------------------------------
(defun NEWSYSTEM()
(条件
(=标记名“DRGNUM”)(setq newdata drawingno)
(=标记名“CADFILE”)(setq newdata CADFILE)
(=标记名“REV”)(setq newdata REV)
(无)
)
)
;* -------------------------- 主程序------------------------------
 
(定义C:UPN(/cadfile cadfilelen drawingno drawingrev drawingrevlen)
rev field savefilename标记名newdata)
(setq cadfile(getvar“DWGNAME”))
(setq cadfilelen(strlen cadfile))
(setq图纸编号(substr cadfile 1(-cadfilelen 6)))
(setq drawingrev(substr cadfile 1(-cadfilelen 4)))
(setq drawingrevlen(strlen drawingrev))
(setq rev(substr drawingrev drawingrevlen))
(setq字段(entget(car(ENTSEL)))
(setq savefilename(cdr(assoc 1字段)))
(setq标记名(cdr(assoc 2字段)))
(新闻系统)
(setq字段(subst(cons 1 newdata)(assoc 1字段)字段))
(entmod字段);修改数据库
(entupd(cdr(caddr字段));更新实体而不重新生成
(普林斯)
)
 
这允许我选择标题栏属性,并根据文件名进行相应更改。(不是教你吃蛋)
 
现在我想让它做的是,作为所有标题栏,搜索块“A0 Sheet”“A1 Sheet”“A3 Sheet”,然后找到“cadfile”属性,并自动更改图纸编号和版本。
 
有人能帮我吗?
 
米尔西
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:05:48 | 显示全部楼层
没有任何东西可以测试。。。
 
  1. (defun c:upn ( / ss )
  2. ;; © Lee Mac 2010
  3. (if (setq ss (ssget "_X" '((0 . "INSERT") (2 . "A#-Sheet") (66 . 1))))
  4.    (
  5.      (lambda ( i / file l dwg rev e el )
  6.        (setq file (getvar 'DWGNAME) l (strlen file))
  7.        (setq dwg (substr file 1 (- l 6))
  8.              rev (substr file (- l 4) 1))
  9.        (while (setq e (ssname ss (setq i (1+ i))))
  10.          (while
  11.            (not
  12.              (eq "SEQEND"
  13.                (cdr
  14.                  (assoc 2
  15.                    (setq el
  16.                      (entget
  17.                        (setq e
  18.                          (entnext e)
  19.                        )
  20.                      )
  21.                    )
  22.                  )
  23.                )
  24.              )
  25.            )
  26.            (cond
  27.              (
  28.                (eq "DRGNUM" (cdr (assoc 2 el)))
  29.                (Update (SubstDXF 1 dwg el))
  30.              )
  31.              (
  32.                (eq "CADFILE" (cdr (assoc 2 el)))
  33.                (Update (SubstDXF 1 file el))
  34.              )
  35.              (
  36.                (eq "REV" (cdr (assoc 2 el)))
  37.                (Update (SubstDXF 1 rev el))
  38.              )
  39.            )
  40.          )
  41.        )
  42.      )
  43.      -1
  44.    )
  45. )
  46. (princ)
  47. )
  48. (defun SubstDXF ( code value elist )
  49. ;; © Lee Mac 2010
  50. (entmod
  51.    (subst
  52.      (cons code value) (assoc code elist) elist
  53.    )
  54. )
  55. )
  56. (defun Update ( elist )
  57. ;; © Lee Mac 2010
  58. (entupd
  59.    (cdr (assoc -1 elist))
  60. )
  61. )
回复

使用道具 举报

7

主题

26

帖子

19

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 11:18:45 | 显示全部楼层
cad文件更改和图纸编号更改有效,但版本显示为-而不是A,这可能是文件名的错误部分吗?
 
以下文件名示例:
302039-01M0201-003-A.dwg
 
这也是在最后出现的????
 
; 错误:*error*函数内发生错误参数太多
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:23:27 | 显示全部楼层
 
是的,我正要问一个文件名示例
 
不确定*错误*-这与您正在运行的另一个例程中的未定位错误处理程序有关,因为我的例程没有错误处理程序。
 
更新的代码。
回复

使用道具 举报

7

主题

26

帖子

19

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 11:34:31 | 显示全部楼层
美丽的帕特里克!!!!

                               
登录/注册后可看大图

:lol::lol::lol:
 
很有魅力!
 
非常感谢
 
米尔西
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:51:37 | 显示全部楼层
很好-很好
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:22 , Processed in 0.365697 second(s), 67 queries .

© 2020-2025 乐筑天下

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