自由度较高的【模拟右键菜单】,增加列数、正则匹配、字齐线等,更新V1.32版
本帖最后由 hf423 于 2022-6-24 01:00 编辑2022.6.23 V1.32:
1、在“点选文字对齐线”功能下,选择文字在线上滑动时,右键返回或者ESC键后,增加选择的文字退回原位的功能
2、在"菜单编辑(E)"中,当添加的正则表达式开头为"["或结尾为"]"时,修正出错的BUG
3、在"菜单编辑(E)"中,当添加正则表达式时,对添加的正则表达式增加校验功能,防止添加错误的正则表达式而使得程序失效
4、在"菜单编辑(E)"、"属性标签设置(O)"中,进行"添加"、"删除"操作时,完善"排序"按钮的显隐逻辑关系
5、在"菜单编辑(E)"、"属性标签设置(O)"中,进行"添加"操作时,调整添加内容的次序默认到尾部
6、在"属性标签设置(O)"中,添加属性标签时,修正提示备注名称重复而不能添加的BUG,关闭备注名称重复提示
7、修正其他已知BUG
感谢AndyWang反馈的问题
2022.6.17 V1.31:
1、修正1.3版文字对齐线参数的BUG
2、修正进入"菜单编辑(E)"、"属性标签设置(O)"中删除分类闪退的BUG
3、修改首次进入程序功能为模拟右键菜单
4、文字对齐线中增加文字可读性(Y)选项,文字可读性关闭时文字可以在线上旋转到360度
2022.6.15 V1.3:
1、修正错误处理函数
2、增加选择文字对齐线功能
3、其他BUG修正
2022.6.9 V1.2:
1、增加标注文字专项菜单,用过之前版本的请删除程序目录下的“模拟右键菜单替换文字.ini”文件(做好备份,随时在新版本中导入回来),以便重新生成默认ini文件。
2、增加支持对多重引线文字修改
2022.6.8 V1.1:
1、修正块内属性文字改字时出现重复情况
2、去掉支持修改标注文字、表格文字
3、块内文字修改后不再需要REGEN了
非源码,不收费,在此下载:
启动命令:YouJianCD
------------------------------------------------------------------------------------------------------------
在wowan1314的http://bbs.mjtd.com/thread-101509-1-1.html的基础上,
在 尘缘一生、fl202、1028695446、gason等坛友的修改修正版本上,
参考tryhi海哥的正则表达式函数、1291500406的正则表达式详解、LEE-MAC的部分函数,
完善了列数、线对齐、块内属性、属性标签等内容。
VLX打包了baitang36盛老师的"精确获取vlx的加载位置",
在此对以上前辈表示感谢,如有遗漏,请谅解。
主要功能介绍:
1、 "点击文字修改":点击图中文字,根据正则表达式列表次序,依次匹配,匹配到某项时,显示对应的菜单;支持的文字有单行文字、多行文字、属性文字、块内属性文字、块内文字、、标注文字、多重引线文字、天正文字等,不支持表格文字,天正文字不支持T8格式(vlax-ename->vla-object时出现错误),处理天正文字前请保存文件以防CAD崩溃。
2、 "点击线或空点生成文字":支持直线、多段线、三维多段线、样条曲线、射线、构造线、引线、圆、圆弧、椭圆、螺旋,以及块内的以上各种线,不支持多重引线、多线,文字自动同线对齐(同时可调整文字同线角度与距离);空点时的菜单为"其他"项对应的菜单。
3、 "菜单编辑(E)":进入菜单编辑面板。
【注意】:面板里的正则表达式仅为示意,可以根据你自己需要,修改或添加相关正则表达式匹配规则。
4、 "菜单设置(S)":进入菜单设置面板。
5、 "属性标签设置(O)":进入属性标签设置面板。
6、 "帮助(H)":弹出本帮助。
7、 "大小写(C)":临时切换正则表达式是否区分大小写。
8、 "单次匹配(M)":临时切换正则表达式是否单次匹配。
9、 "局部替换(L)":临时切换正则表达式是否局部替换。
10、"属性按标签(A)":对于块内属性,临时切换是按属性标签获得菜单还是走文字的正则表达式匹配菜单。
11、"选字齐线(W)":临时切换选择文字对齐线功能。
【注意】:此处的的"大小写(C)"、"单次匹配(M)"、"局部替换(L)"、"属性按标签(A)"、"选字齐线(W)"都是临时切换对应功能,程序首次使用时,是否具有对应功能,需要进入"菜单设置(S)"中勾选对应选项。
已知问题:加载程序后,第一次点击线或空点生成文字时,生成的文字可能会消失,或者不跟随鼠标。
在WIN10 64位,CAD2014上测试,其他系统与CAD版本未测试,仅支持世界坐标系,可能有些BUG未发现,请反馈。
设置面板:
1、 "显示列数":范围1~15列。
2、 "高度系数":菜单文字与方格网高度的比例。
3、 "显示比例":菜单的整体显示比例。
4、 "菜单文字样式":菜单文字采用的样式,找不到该样式时,采用当前样式,宜采用宽度系数0.7的单线字体。
5、 "菜单文字颜色"、"菜单方格颜色":菜单文字与方格网显示的颜色,宜设为一致。
6、 "菜单文字亮显颜色"、"菜单方格亮显颜色":在菜单方格内拖动鼠标,方格网亮显时的颜色,宜设为一致。
7、 "是否虚线":方格网亮显时是否为虚线,有可能不起作用。
8、 "生成文字图层":空点或线上生成文字时采用的图层,找不到该图层时,采用当前图层。
9、 "生成文字样式":空点或线上生成文字时采用的样式,找不到该样式时,采用当前样式。
10、"生成文字高度":空点或线上生成文字的字高,不能为0或负数。
11、"生成文字角度":空点或线上生成文字的角度,单位为角度。
12、"生成文字对齐点":空点或线上生成文字的基点。
13、"文字偏移线距离":在线上生成文字时,文字基点与线段的垂直距离。
14、"区分大小写":改写文字时,正则表达式是否区分大小写,例如:当区分时,点dn100文字,匹配不到DN100系列的菜单,最后匹配到"其他"项对应菜单。15、"局部替换":改写文字时,是找到的符合处替换还是整个文字全部替换,例如:勾选局部替换时,点文字DN200-ES-CM1,菜单选DN300,得到DN300-ES-CM1,反之得到DN300。
16、"单次匹配":改写文字时,是找到多处符合处的第一处替换,还是各处都替换,例如:当勾选单次匹配时,点DN200-DN200文字,菜单选DN300,得到DN300-DN200,反之得到DN300-DN300。【注意】:"局部替换"未勾选时,本功能无效。
17、"属性按标签":改写块内属性时,菜单是按属性标签确定还是走正则表达式确定,当勾选时,若未找到该属性标签对应的菜单,则转为走正则表达式查找菜单,例如:当勾选时,点击块内属性标签为MATERIAL的文字,会匹配到块内属性专属菜单中的材质菜单,反之则忽略属性专属菜单,走正则表达式匹配到\"其他\"项对应菜单。
18、"选字齐线":当勾选时,程序默认首次出现的功能为选择文字对齐线,反之则为程序默认首次出现的功能为点击文字修改,点击线或空点生成文字。
【注意】:此面板中的"区分大小写"、"单次匹配"、"局部替换"、"属性按标签"、"选字齐线"是否勾选决定了程序首次使用时,是否具有对应功能,可以在程序使用的过程中随时临时切换相应功能。
菜单面板:
1、"正则表达式":列表里双斜杠"\\"的第一个斜杠表示转义符;列表里的次序决定了匹配文字分类的先后,匹配范围越小越精确的放到前面,越是模糊范围大的放后面,否则出现某些匹配被拦截的情况;点击顶部"正则表达式"访问明经论坛有关正则表达式的详解。
2、"备注名称":双击列表可以修改,点击顶部"备注名称"访问明经论坛本程序帖子。
3、"分类菜单明细":列表的次序决定了菜单中文字的顺序(从左到右,从上到下);双击列表可以在上方编辑框中显示文本;右侧"拾取"可以到图中点文字获取文本显示到编辑框中;在编辑框里文本处理好后,记得点右侧的"添加"或"修改"按钮以生效。
4、允许不通过本面板,而到程序目录下手动修改ini文件,但要【注意】:不要修改"其他"项名称和其对应的".*"名称,不要修改"【标注文字】"的名称和其对应的菜单项名称(可以增项或改变排列次序)。
5、采用了部分映射文字:
"YYYY.MM"、"YYYY.MM.DD"--->今天日期"."连接型式
"YYYY-MM"、"YYYY-MM-DD"--->今天日期"-"连接型式
"YYYY年MM月DD日"--->今天日期"年月日"连接型式
"HH:MM:SS"--->当前时间":"连接型式
"HH时MM分SS秒"--->当前时间"时分秒"连接型式
"本图目录"--->当前图纸所在目录路径
"本图路径"--->当前图纸路径
"【标注文字】"菜单下的各个默认项--->对应功能的文字
属性标签面板:
1、 "整块":点击图中块内属性文字,获取块的全部属性标签,并叠加到"属性标签"列表中;
2、 "单个":点击图中块内属性文字,获取其单个属性标签,并叠加到"属性标签"列表中;
3、 "标签备注":双击列表可以修改。
4、 "属性菜单明细":列表的次序决定了菜单中文字的顺序(从左到右,从上到下);双击列表可以在上方编辑框中显示文本;右侧"拾取"可以到图中点文字获取文本显示到编辑框中;在编辑框里文本处理好后,记得点右侧的"添加"或"修改"按钮以生效。
使用中看看提示和点点帮助。
太牛了,感谢 lxl217114 发表于 2022-6-8 22:28
弱弱的问一句,作者能否弄个自定义启动命令的设置功能。
现在的命令真嗒有点长youjiancd共9个键
应该是长命令好啊
CAD的命令别名了解一下
找到acad.pgp文件
在最后一行,添加yj, *YoujianCD
保存文件
CAD里输入(setvar "re-init" 16)
可以用yj愉快的玩耍了 zhangcan0515 发表于 2022-6-7 11:20
请问能不能修改属性块里边的属性值?
可以,对块内属性,可以按文字内容走正则表达式查找菜单来修改,或者按属性标签查找菜单来修改 本帖最后由 AndyWang 于 2022-6-17 16:34 编辑
1.3版本bug及建议
1、点击菜单设置,界面一闪,程序就退出了。
2、属性标签设置,无法删除属性标签,点击删除程序退出。
3、1.2版本缺少YJ_MODETILE2函数,不知道1.3版本有没有补上,因为第2条的原因,无法测试。
4、现在首次运行程式,是默认进入选字对齐线的功能,因为程序是模拟右键功能,最好直接进入模拟右键的菜单选择项更好点(因无法进入菜单设置,不知道里面是否有相关设置,所以先提了)
5、在选字齐线功能中,转90度,能不能做成在转90度基础上可以再转90度?
感谢大佬分享~~~ 太牛了,感谢分享 又一个经典的程序出现了 谢谢楼主分享新作
又一个经典的程序出现了 请问能不能修改属性块里边的属性值? 本帖最后由 wharan 于 2022-6-7 13:12 编辑
思路很好,值得一试
做得很别致,能不能将DCL文件公布,让大家学习学习! yshf 发表于 2022-6-7 13:56
做得很别致,能不能将DCL文件公布,让大家学习学习!
CAD里打开面板后先不要退出面板,可以到临时文件夹里找到DCL文件