明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 443|回复: 7

[讨论] 不同的字体实际高度和宽度不一样,该怎么解决?

[复制链接]
发表于 2018-11-17 19:25 | 显示全部楼层 |阅读模式
本帖最后由 iJero 于 2018-11-17 22:36 编辑

我先用textBox函数得到一串字符串的外框尺寸,记长度为L,高度为H,一般系统默认H=0.200,
然后我用entmake函数绘制了一个文字段,设置高度为300 (cons 40 300) (cons 41 0.7),
那可以计算得到实际文字段的长度是L实际=0.7*(300/0.2)*L,思路是这样应该没错,
但,实际用用的时候发现因字体而已,
不同的字体、以及中英文的实际文字高度都会有较大的差异,以至于按上述思路计算得到的文字段实际长度不一样。
请叫各路大侠,该怎么计算出实际的文字长度呢?,还是我哪里忽略掉了什么?
发表于 2018-11-18 17:48 | 显示全部楼层
每次用textBox计算行不行,textbox可以虚拟计算,只要你给的表正确即可,不一定是实际的实体。
发表于 2018-11-18 21:04 | 显示全部楼层
textbox得到的就是文字的实际高宽,你还要怎么样?如果是因为字体不同,你可以加上组码7。为保险起见,你还可以加上组码50、51。
发表于 2018-11-19 09:18 | 显示全部楼层
理论上是无解的,程序告诉字体画一个字高为5的字,但画出来的具体字要取决于字体的设置,有的字体画的是5,也有的字体画的是10。这是字体决定的,ACAD都不知道。
有个比较接近的方法,在VBA里面有个boundarybox取画出来的字的外边框,与字体无关,比较靠近了。用lsp中的等效函数试试看。
 楼主| 发表于 2018-11-19 09:59 | 显示全部楼层
本帖最后由 iJero 于 2018-11-19 10:10 编辑
mikewolf2k 发表于 2018-11-19 09:18
理论上是无解的,程序告诉字体画一个字高为5的字,但画出来的具体字要取决于字体的设置,有的字体画的是5, ...

我刚才也试了用另外一种方法(先entmake文字,再用textbox求画出来的文字),但结果也一样(毕竟textbox得到的不是画面上的图元)。
VBA不会用,算了,我再看看其他办法。
谢谢。
 楼主| 发表于 2018-11-19 10:00 | 显示全部楼层
谢谢楼上三位大侠
 楼主| 发表于 2018-11-19 10:58 | 显示全部楼层
问题已经搞定,
先entmake
再用textbox对(entget (entlast))进行求坐标
即(textbox (entget (entlast)))即可!

点评

textbox可以只用表,不一定是实体图形,只要你按entmake的格式就能计算。。  发表于 2018-11-20 23:47
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 17:00 , Processed in 0.536301 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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