文字“宽高比”难道就没有办法完美了么?
本帖最后由 尘缘一生 于 2019-1-8 19:52 编辑前言:
在PKPM软件早期版本中,T转CAD是“双穴”点定位的。这种定位有它不可替代的好处,那就是,文字长短是固定的,不容易错乱。然而,随着时间推移,基本都抛弃了这个“双穴”定位。为何呢?
一是不容易编写进一步程序,麻烦,再加上后来的垃圾软件--【天正】的发展,占据了半壁江山,应用在大部分学生中【就因为好学!】
那么问题来了,如下图所示:
这是天正图转过来的,左定位方式,一行字数不等,差别多时,右侧远远跑出去了,超过图示绿色线了,.......怎么解决?在这里我希望得到完美答案!
个人思路:
假如一个字的宽高比为0.8,并设定为固定时,那么要两个字并列,它两个字的宽高比,应该为 0.8X0.8=0.64才对,否则,就右侧偏移!以此类推,对应关系不难得到公式。
解决办法:
CAD系统设置,不要固定宽高比,然后,编写一个反应器,这个反应器始终检测图档DWG文字编辑改变情况,一有炸开或合并,就自动调整变化的文字这一行的宽高比,我想不难实现吧?关键是,我的思路可行否?
解决不了的办法:
假如实在没有办法解决这个问题,那么只有一行一行的调整了,本论坛有完美程序。那就是:郎大师的“单行文本自由拉伸”,链接如下:【里面后续回复也有我进一步的修改代码】。
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=175713&highlight=%B5%A5%D0%D0%CE%C4%B1%BE%B6%AF%CC%AC%C0%AD%C9%EC
但是一张A1图纸,你调整完美也得1个小时!效率不行。
不同的字体,对于高度和宽度定义都是不一样的。哪怕同样的字高和宽度,不同的字体都可能显示不同。同样字体应该没有这个问题,换成同样字体即可。
另外看到的宽度也并不绝对等于高度乘以宽度比例,这也依旧取决于具体的字体,假设某个字体形文件不规范,里面定义的字是矮胖的,那么最终出来的宽度值可能大于高度值。
如果实在没有同样字体,单向转存的话,还有个办法就是把字炸开,炸成线条或者程序分解成单个字符,这样虽然每个字的宽度都会有变化,但是每个字符都会在原位置定位,这个宽度的变化不会累加,单个字符的宽度变化值基本都极小看不出来。 转成一篇MTEXT很容易就搞好了 小菜123 发表于 2019-1-9 11:05
转成一篇MTEXT很容易就搞好了
MTEXT更加麻烦,还有行间距的问题,竖直方向上都可能不对。 当年刚学AutoLISP,马上写了个修改t2dwg后的图中文字对齐方式由fit改为left的程序(PKPM自带了一个LSP,就是写的太不好用了,所以学习LISP按自己的意图写个新版的)。
Fit的对齐方式对于多行的长短不一大量Text对象来说是完全不合适的,所以改为最普通的Left更加符合要求。
还有上面提到的,每个shx的定义的参数都不完全相同(ttf也是一样),所以还是尽量简化吧。
mikewolf2k 发表于 2019-1-9 11:34
MTEXT更加麻烦,还有行间距的问题,竖直方向上都可能不对。
行间距是可以准确控制的,除非你本来间距就不等 小菜123 发表于 2019-1-9 15:42
行间距是可以准确控制的,除非你本来间距就不等
建议先搞清楚为什么会有变化的原理再说。
页:
[1]