乐筑天下

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

[编程交流] 标题栏属性脚本

[复制链接]

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:03:31 | 显示全部楼层
我得走了,但我明天会回来查看你的回复,谢谢
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:05:34 | 显示全部楼层
先看关贸总协定
 
脚本如下
关贸总协定

区块名称
标记名
新价值
......
 
这就是每个标签名
 
现在来看带脚本的lisp程序
 
这将是脚本的前几行:
 
  1. (setq mlst '("DWG_REV0_NO[color=blue][b]1[/b][/color]" [b][color=sienna]"A"[/color][/b] "DWG_REV0_DESC[color=blue][b]1[/b][/color]" [b][color=sienna]"WHATEVER"[/color][/b] "DWG_REV0_BY[color=blue][b]1[/b][/color]" [b][color=sienna]"ME" [/color][/b]"DWG_REV0_DATE[color=blue][b]1[/b][/color]" [b][color=sienna]"YOU"[/color][/b] "DWG_REV0_CHK[b][color=blue]1[/color][/b]" [color=sienna][b]"HIM"[/b][/color] "DWG_REV0_APPR[b][color=blue]1[/color][/b]" [color=sienna][b]"THEM"[/b][/color]))
  2. (setq mlst (vl-propagate 'mlst))
  3. _.open "D:\Path\sheet1.dwg" (RunIt mlst) _.save  _Y _.close
  4. _.open "D:\Path\sheet2.dwg" (RunIt mlst) _.save  _Y _.close

 
其中红色的是需要更改的数字,蓝色的是文字字符串/新字符串
 
  1. (defun RunIt (lst)
  2. (setq aDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
  3. (vlax-for itm (vla-get-ModelSpace aDoc)
  4.    (if (and
  5.   (eq (vla-get-objectname itm) "AcDbBlockReference")
  6.   (eq (vla-get-effectivename itm) "[b]YourBlockName"[/b])
  7. )
  8.      (mapcar (function
  9. (lambda (j)
  10.    (if (setq AtM (member (vla-get-tagstring j) lst))
  11.      (vla-put-textstring j (cadr AtM))
  12.    )
  13. )
  14.       )
  15.       (vlax-invoke itm 'GetAttributes)
  16.      )
  17.    )
  18. )
  19. (princ)
  20. )

 
希望这有帮助
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:08:51 | 显示全部楼层
 
Autodesk从未修复的ObjectDBX的一个不幸错误
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:11:29 | 显示全部楼层
 
你知道吗,李,我也在想这个。。当我试图重新创建你的BFIND程序时,我遇到了同样的问题
另一方面:
您是如何使用BFind代码修改当前在另一个会话中打开的图形的?
 
顺便说一句:你没有双胞胎吗?也许是三胞胎?你到处都是
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:15:07 | 显示全部楼层
 
这里有一个较短/更简单的研究程序,演示了修改打开图形的相同方法。
 
 
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:17:04 | 显示全部楼层
 
凉豆
 
谢谢李
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:20:17 | 显示全部楼层
谢谢pBe,
 
那么这些代码的每一位都做了什么呢?
 
我已将第二个保存为。lsp和把我的标题栏的名字,但我不确定还有什么我必须做的。。。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-6 09:24:07 | 显示全部楼层
我明白了,我将为您编写一个支持lisp的代码,这样您就可以自己尝试了
 
坚持住。
 
编辑:
提醒:
1.runit代码应加载到每个图形上:(启动套件/Acaddoc.lsp)
2、您已准备好运行脚本:
此格式
_.打开“D:\path\sheet1.dwg”(RunIt mlst)_。保存。关
_.打开“D:\path\sheet2.dwg”(RunIt mlst)_。保存。关
 
 
  1. [color=black](defun c:runscr (/ *IntGet1 RevV RevDes RevBy RevDte  RevChk RevApp)[/color]
  2. [color=black](defun *IntGet1 (fn msg flg )(initget 1)[/color]
  3. [color=black](setq val ((eval fn) flg msg))[/color]
  4. [color=black](if (eq val "")(progn (princ "Null Input Try again")[/color]
  5. [color=black](*IntGet1 fn msg flg))) val     [/color]
  6. [color=black])[/color]
  7. [color=black](if (not suf) (setq suf 1))[/color]
  8. [color=black]    (setq suf (cond[/color]
  9. [color=black]                   ((getint (strcat "\nEnter Revision Number Suffix < " (itoa suf) " >: ")))[/color]
  10. [color=black]                   (suf)))[/color]
  11. [color=black](setq RevV (strcase (*IntGet1 'Getstring "\nEnter New Revision Value: " nil))[/color]
  12. [color=black]    RevDte (strcase (*IntGet1 'Getstring "\nEnter New Revision Date: " nil))[/color]
  13. [color=black]    RevDes (strcase (*IntGet1 'Getstring "\nEnter New Revision Descriptiom: " T))[/color]
  14. [color=black]    RevBy (strcase (*IntGet1 'Getstring "\nEnter By: " nil))[/color]
  15. [color=black]    RevChk (strcase (*IntGet1 'Getstring "\nEnter Checked: " nil))[/color]
  16. [color=black]    RevApp (strcase (*IntGet1 'Getstring "\nEnter Approved: " nil)))[/color]
  17. [color=black](setq mlst[/color]
  18. [color=black]    (apply 'append[/color]
  19. [color=black](mapcar '(lambda (j k)[/color]
  20. [color=black]   (list (strcat "DWG_REV" (itoa suf) j) (eval k)))[/color]
  21. [color=black]  '("_NO" "_DESC" "_BY" "_DATE" "_CHK" "_APPR")[/color]
  22. [color=black]'(RevV RevDes RevBy RevDte  RevChk RevApp))[/color]
  23. [color=black]     )[/color]
  24. [color=black]   )[/color]
  25. [color=black](vl-propagate 'mlst)[/color]
  26. [color=black](setq Fl (getfiled "Select Script file: " "" "scr" )[/color]
  27. [color=black](command "_.script" fl)[/color]
  28. [color=black](princ)[/color]
  29. [color=black])[/color]

 
命令:RUNSCR
输入修订号后缀:2
输入新修订值:B
输入新修订日期:2011年10月19日
输入新修订说明:一般修订
输入人:pBe
输入选中项:HIM
输入已批准:BOSS
 
一个窗口将提示您选择保存的Sript文件
 
希望这有帮助
 
 
顺便说一句:我对我的第一份名单完全不满意
“DWG\u REV0\u NO1”应该是(“DWG\u REV1\u NO”愚蠢的我
回复

使用道具 举报

1

主题

9

帖子

8

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 09:27:02 | 显示全部楼层
谢谢,对不起,我还是迷路了
你指的是什么(Startup Suite/Acaddoc.lsp)?
我该如何处理这些不同的代码位,并以什么顺序运行它们?
 
所以,整个过程是否不像我想象的那么简单,我想有一种方法可以让脚本只使用ATTEDIT,按名称选择模板,然后将属性标记更改为我在脚本中输入的新值,然后使用ScriptPro选择多个图形。。。不是那么容易吗?
回复

使用道具 举报

73

主题

261

帖子

195

银币

后起之秀

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

铜币
375
发表于 2022-7-6 09:30:53 | 显示全部楼层
为什么不使用Autocad electrical,您可以运行项目范围的脚本。比ScriptPro工作更快。一个项目可以包含所有数据。
 
Pmxcad
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 09:12 , Processed in 0.516625 second(s), 70 queries .

© 2020-2025 乐筑天下

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