【FA】阿甘文字刷_v5.0.3
本帖最后由 kucha007 于 2025-3-29 22:48 编辑阿甘写的文字刷,用了很久,非常好用!
http://bbs.mjtd.com/forum.php?mo ... 376&fromuid=7329538
个人出于学习的目的,梳理了一遍程序,然后增加了一些阿甘没有加进去的天正对象,欢迎大家使用
本帖最后由 kucha007 于 2025-3-29 22:49 编辑
20250329-v5.0.3
1-修复了一些bug
2-应小伙伴要求,暂时取消了中文括号替换成英文的模块
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
个人偶尔需要刷图号,但图号前面的图类和连字符不需要,所以就加了一个识别连字符拆分字符串的功能。具体各位用用便知。
本帖最后由 lxl217114 于 2023-7-23 14:23 编辑
可以增加一个连刷模式么:
就是执行FA命令以后,可以一直执行:选择【源文字】——>【需要改变的文字】的这个步骤,
相当于执行完成一次【源文字】——>【需要改变的文字】操作后,软件默认回到选择【源文字】这个步骤,然后周而复始。
;保存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
)
) 谢谢分享,,学习学习! 谢谢楼主的分享!~
下载来试试看 厉害了,我的哥。这个插件儿是我启动组必备 楼主请问LSP和fas这两个文件是 一样的吧?
lxl217114 发表于 2023-4-29 20:50
厉害了,我的哥。这个插件儿是我启动组必备
很难不同意~ hiviki 发表于 2023-4-30 07:32
楼主请问LSP和fas这两个文件是 一样的吧?
一样的,只是源码权限更高 感谢楼主分享 两年的时间你已经牛13哄哄的了,写的插件非常好用
话说你的屁打怎么没后续了 szhorse 发表于 2023-4-30 10:43
两年的时间你已经牛13哄哄的了,写的插件非常好用
话说你的屁打怎么没后续了
因为暂时够用了啊~现在还能想到要加的一点就是判断缩放后的图块