明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10402|回复: 129

【FA】阿甘文字刷_v5.0

    [复制链接]
发表于 2023-4-29 19:46 | 显示全部楼层 |阅读模式
本帖最后由 kucha007 于 2024-4-26 14:07 编辑

阿甘写的文字刷,用了很久,非常好用!
http://bbs.mjtd.com/forum.php?mo ... 376&fromuid=7329538

个人出于学习的目的,梳理了一遍程序,然后增加了一些阿甘没有加进去的天正对象,欢迎大家使用



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 7明经币 +7 金钱 +5 收起 理由
zhoupeng220 + 1 很给力!
sammy + 1 都更新这么多版了!
moshouhot + 1 膜拜一下
竹天 + 1
lxl217114 + 1 强烈推荐大家使用
tanshun_ysjkd + 1 很给力!
tigcat + 1 + 5 很给力!

查看全部评分

 楼主| 发表于 2023-5-11 12:58 | 显示全部楼层
本帖最后由 kucha007 于 2024-4-3 14:06 编辑

20240402-v5.0
1-模式4截取字符串时,取为首尾忽略,刷为首尾保留
2-修复CAD标注无文字替代时无法替换的情况。直径、半径、角度标注无文字替代时,将取测量值并添加对应的符号。
3-修复天正T20_v10图名标注无法获取的情况


20240204-v4.9
1-非替换模式下,可刷源数据本身(原先不行)
2-下给上时,当上标含<镀锌、不锈钢>或下标含<电镀、氟碳漆、螺栓、参见、详见、详*图>时,合并后的上标后面将添加英文逗号!

20240128-v4.8
1-扩写取刷项后为截取字符串。取和刷各由两个参数控制截取字符串的位置(命令分别是数字1和数字2)。
    两个参数从前从后向中间截取字符串,截取得到两个参数中间的字符串
    天正做法标注存在多行时参数表示行数,单行时参数表字符串位置。
2-增加做法倒置的子命令Z,可通过该命令颠倒内外做法(同时移除做法的空行)
3-增加下给上的子命令G,可通过该命令将天正箭头引注和引出标注的下标合并到上标(如果有)
4-根据精度四舍五入天正坐标标注及天正标高标注,相当于取刷所见所得(同时处理正负零标高)
5-梳理天正标高取刷的逻辑关系,同时修复bug
6-天正多行文字可直接刷天正做法标注

20240113-v4.7
1-取消连字符模式,改为更灵活的取刷项后(具体可设置项后识别位置)
(取时项位后的字符将被删除,刷时项位后的字符将被替换。该模式下天正做法的项位指的是行数)
2-修复取刷天正做法标注的逻辑。做法标注刷其它对象时,去除格式。
3-修复bug:天正标高上下标刷取错误
4-模式太多,增加关键词B。原先的F是模式向后翻,增加的B是模式向前翻

20240109-v4.6
1-上下标和设置全存为系统变量,方便跨文件使用。关键词R可重置为缺省值
2-增加一些逻辑判断,避免空选对象、误选对象、输错关键词导致使用默认值
3-使用默认值:仅可通过空格和回车使用默认值
4-切换模式的快捷键由M改为F,以便左手可以便捷输入关键词

20231016-v4.5
1-上下标存为系统变量,支持跨文件使用

20230905-v4.4
1-支持CAD标注:CAD半径+CAD直径+线性标注+对齐标注+角度标注+坐标标注+弧长标注+折弯标注
2-点选天正标高时,如果为模式为<仅刷下标>且标高为单层无下标时,添加下标。

202306157-v4.3
天正单层标高支持上下标拆分更新(前提是使用天正的注释方式,即带&符号,这类方式也可以动态更新标高)
支持天正做法标注,可以把做法刷给做法。

202030606-v4.2
增加模式切换,看是把文字内容全部替换/追加到前面/追加到后面
连字符位置默认为0,即不根据连字符位置拆分字符串(原来是3)

20230605-v4.1
应坛友建议,增加对2021以上版本的判断
https://help.autodesk.com/view/ACD/2024/ENU/?guid=GUID-1853092D-6E6D-4A06-8956-AD2C3DF203A3

202030604-v4.0
拆分字符串函数和另一个帖子的保持一致:http://bbs.mjtd.com/forum.php?mo ... 912&fromuid=7329538
使用连字符模式时,特殊符号拆分为单字符。

202030602-v3.9
当只刷下标且上标存在时,把上标给下标。

202030602-v3.8
用grread重写了部分代码,输入关键词可不用再回车。
增加关键词:R重置参数,前三项复位成起始状态,一步到位。
增加匹配模式:只刷上标。
优化其它细节。

20230525-v3.7
对于天正的箭头引注和引出标注,有时候需要单独刷下标。所以增加了关键词,看是上下标一起刷,还是单独把获取的上标文字刷给天正下标。

20230511-v3.6
个人偶尔需要刷图号,但图号前面的图类和连字符不需要,所以就加了一个识别连字符拆分字符串的功能。具体各位用用便知。







发表于 2023-7-23 14:19 | 显示全部楼层
本帖最后由 lxl217114 于 2023-7-23 14:23 编辑

可以增加一个连刷模式么:
就是执行FA命令以后,可以一直执行:选择【源文字】——>【需要改变的文字】的这个步骤,
相当于执行完成一次【源文字】——>【需要改变的文字】操作后,软件默认回到选择【源文字】这个步骤,然后周而复始。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 1 反对 0

使用道具 举报

发表于 2023-10-7 20:38 | 显示全部楼层
;保存YaHW系统变量,保存到cad安装目录下的YaHWWZSVAL.TXT by YaHW 2017/03/13
        (defun YaHW:SaveSysVarYaHW(valname valvalue infotext / acadpath f datalist data valvalue_old i isthere)
                (setq acadpath(vlax-get-property (vlax-get-acad-object) 'Path))
                (if (= infotext "")(setq infotext "no infotext"))
                (if (null (findfile "YaHWWZSVAL.TXT"))
                        (progn ;若文件不存在
                                (setq f (open (strcat acadpath "\\YaHWWZSVAL.TXT") "w"))
                                (prin1 (list valname valvalue infotext) f)
                                (close f)
                        )
                        (progn ;若文件已存在
                                (setq datalist '())
                                (setq f (open (strcat acadpath "\\YaHWWZSVAL.TXT") "r"))
        (while (setq data (read-line f))
                                        (setq datalist (cons data datalist))
        )
                                (close f)
                                (setq datalist (reverse datalist))
                                (setq       i 0
                                        isthere 0)
                                (repeat (length datalist)
                                        (if (= valname (car (read (nth i datalist))))
                                                (progn
                                                        (setq datalist (subst (vl-prin1-to-string (list valname valvalue infotext)) (nth i datalist) datalist))
                                                        (setq isthere 1)
                                                )
                                        )
                                        (setq i (1+ i))
                                )
                                (if (= 1 isthere)
                                        (progn
                                                (setq f (open (strcat acadpath "\\YaHWWZSVAL.TXT") "w"))
                                                (prin1 (read (nth 0 datalist)) f)
                                                (close f)
                                                (setq i 1)
                                                (setq f (open (strcat acadpath "\\YaHWWZSVAL.TXT") "a"))
                                                (repeat (- (length datalist) 1)
                                                        (write-line "" f)
                                                        (prin1 (read (nth i datalist)) f)
                                                        (setq i (1+ i))
                                                )
                                                (close f)
                                        )
                                        (progn
                                                (setq f (open (strcat acadpath "\\YaHWWZSVAL.TXT") "a"))
                                                (write-line "" f)
                                                (prin1 (list valname valvalue infotext) f)
                                                (close f)
                                        )
                                )
                        )
                )
                (princ)
        )
        ;读取YaHW系统变量 by YaHW 2017/03/13
        (defun YaHW:ReadSysVarYaHW( / acadpath data datalist i f)
                (setq acadpath(vlax-get-property (vlax-get-acad-object) 'Path))
                (if (findfile "YaHWWZSVAL.TXT")
                        (progn
                                (setq datalist '())
                                (setq f (open (strcat acadpath "\\YaHWWZSVAL.TXT") "r"))
                                (while (setq data (read-line f))
                                        (setq datalist (cons data datalist))
                                )
                                (reverse datalist)
                                (close f)
                                (setq i 0)
                                (repeat (length datalist)
                                        (set (read (car (read (nth i datalist)))) ;注意字符和表之间的转换,字符串是不能作为变量名的
                                                (cadr (read (nth i datalist)))       ;car对字符串也是不起作用的
                                        )
                                        (setq i (1+ i))
                                )
                        )
                        nil
                )
        )
发表于 2023-4-29 19:57 | 显示全部楼层
谢谢分享,,学习学习!
发表于 2023-4-29 20:48 | 显示全部楼层
谢谢楼主的分享!~
下载来试试看
发表于 2023-4-29 20:50 来自手机 | 显示全部楼层
厉害了,我的哥。这个插件儿是我启动组必备
发表于 2023-4-30 07:32 | 显示全部楼层
楼主请问LSP和fas这两个文件是 一样的吧?
 楼主| 发表于 2023-4-30 07:44 | 显示全部楼层
lxl217114 发表于 2023-4-29 20:50
厉害了,我的哥。这个插件儿是我启动组必备

很难不同意~
 楼主| 发表于 2023-4-30 07:45 | 显示全部楼层
hiviki 发表于 2023-4-30 07:32
楼主请问LSP和fas这两个文件是 一样的吧?

一样的,只是源码权限更高
发表于 2023-4-30 08:28 | 显示全部楼层
感谢楼主分享
发表于 2023-4-30 10:43 | 显示全部楼层
两年的时间你已经牛13哄哄的了,写的插件非常好用
话说你的屁打怎么没后续了
 楼主| 发表于 2023-4-30 11:14 | 显示全部楼层
szhorse 发表于 2023-4-30 10:43
两年的时间你已经牛13哄哄的了,写的插件非常好用
话说你的屁打怎么没后续了

因为暂时够用了啊~现在还能想到要加的一点就是判断缩放后的图块
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 19:27 , Processed in 0.278034 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表