不同的字体实际高度和宽度不一样,该怎么解决?
本帖最后由 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,思路是这样应该没错,
但,实际用用的时候发现因字体而已,
不同的字体、以及中英文的实际文字高度都会有较大的差异,以至于按上述思路计算得到的文字段实际长度不一样。
请叫各路大侠,该怎么计算出实际的文字长度呢?,还是我哪里忽略掉了什么?
每次用textBox计算行不行,textbox可以虚拟计算,只要你给的表正确即可,不一定是实际的实体。 textbox得到的就是文字的实际高宽,你还要怎么样?如果是因为字体不同,你可以加上组码7。为保险起见,你还可以加上组码50、51。 理论上是无解的,程序告诉字体画一个字高为5的字,但画出来的具体字要取决于字体的设置,有的字体画的是5,也有的字体画的是10。这是字体决定的,ACAD都不知道。
有个比较接近的方法,在VBA里面有个boundarybox取画出来的字的外边框,与字体无关,比较靠近了。用lsp中的等效函数试试看。 本帖最后由 iJero 于 2018-11-19 10:10 编辑
mikewolf2k 发表于 2018-11-19 09:18
理论上是无解的,程序告诉字体画一个字高为5的字,但画出来的具体字要取决于字体的设置,有的字体画的是5, ...
我刚才也试了用另外一种方法(先entmake文字,再用textbox求画出来的文字),但结果也一样(毕竟textbox得到的不是画面上的图元)。
VBA不会用,算了,我再看看其他办法。
谢谢。
谢谢楼上三位大侠 问题已经搞定,
先entmake
再用textbox对(entget (entlast))进行求坐标
即(textbox (entget (entlast)))即可!
页:
[1]