修改批量改页码插件
本帖最后由 qazxswk 于 2022-5-13 12:11 编辑下面附件,是LLXXZZ大神写的批量改页码的插件,很好用。但是,在选择属性块时,必须要点到页码的位置,似乎有点点不太顺手 。因为属性块中,可能有多个标记,如图名、图纸比例、序号、图号等等,一不小心会点错。
我想各位大神,能不能修改一下,就是能点取属性块的任一位置,然后自动读取页码标记并修改页码。
其点取属性块的代码如下:
(if (progn
(setq EP1 (entsel "点取属性块中页码的位置:\n"))
(setq EG1 (cdr (assoc 0 (entget (car EP1)))))
(if (= EG1 "INSERT")
(progn (setq EG2 (car (nentselp (cadr EP1))))
(if (= (cdr (assoc 0 (entget EG2))) "ATTRIB")
(setq blktag (cdr (assoc 2 (entget EG2)))) ;标记
)
(setq EP1st (entget (car EP1)))
(setq blkname (assoc 2 EP1st))
)
)
)
(princ (strcat " 块名为-->" (cdr blkname) " 标记为-->" blktag "\n"))
(progn(princ "必须选择属性块!")(exit))
)
插件原地址 http://bbs.mjtd.com/forum.php?mo ... hlight=%D2%B3%C2%EB
本帖最后由 vectra 于 2022-5-13 15:12 编辑
屏蔽点取属性块的代码,并增加如下代码,块名和标签名按实际需要修改。
(setq blkname "A$C366b6fde"
blktag "图号"
)
这样可以省去前面选择属性的步骤。
另外选择块那行代码
(princ ">>选择对象...")
(setq ss (ssget(cons blkname slist)))
似乎要修改成下面这样才能正常运行。
(princ ">>选择对象...")
(setq ss (ssget (list '(0 . "INSERT") (cons 2 blkname))))
此外rtos函数全改成itoa才合理
vectra 发表于 2022-5-13 15:08
屏蔽点取属性块的代码,并增加如下代码,块名和标签名按实际需要修改。
用你的方式,已经解决了我的问题,而且还不用事先去点属性块,这样更省事。设置好前缀,直接框选就可以了。原来的作者可能考虑到插件的通用性,所以先要获取块名与标记。我反正是自己用,有图号的块就固定那一两个。我也把这个代码成功加上一个对话框了。现在使用体验性很好。谢谢你了。 本帖最后由 ZJKUSO 于 2022-5-22 21:43 编辑
vectra 发表于 2022-5-13 11:36
屏蔽点取属性块的代码,并增加如下代码,块名和标签名按实际需要修改。
可以增加 后缀 吗?
我已经自己修改,把后缀加进去了,花了半天时间,搞这个有时候会上瘾,会的人几分钟就搞好了,想专业的还是要系统学习一下
本帖最后由 vitalgg 于 2022-5-20 15:49 编辑
ZJKUSO 发表于 2022-5-20 15:03
可以增加 后缀 吗?
https://atlisp.cn/package-info/at-block-stable.html
https://atlisp.cn/stable/at-block/readme.mp4
https://atlisp.cn/package-info/at-pm-stable.html
vitalgg 发表于 2022-5-20 15:47
https://atlisp.cn/package-info/at-block-stable.html
https://atlisp.cn/package-info/at-pm-stable ...
谢谢,之前用过了,功能很丰富,我想找个离线的编号就好 vectra 发表于 2022-5-13 11:36
屏蔽点取属性块的代码,并增加如下代码,块名和标签名按实际需要修改。
不知为什么运行不了,能加入共多少页就好了
页:
[1]