如何确定lin的数量
我很好奇,在多重引线对象中是否有确定文本行数(或文本框高度)的方法?我已经把所有的信息都翻了一遍,没有看到任何与此相关的信息。我问这个问题的原因是因为我试图添加到李在这里找到的代码中:http://www.cadtutor.net/forum/showthread.php?76430-多重引线包络处理。我的想法是进行一次迭代,从1.01开始,以0.01的增量增加容差,直到文本框高度与最初相同(我已经多次弄乱了容差,我无法得到一个始终有效的值,但仍然缩小了文本框)。 你好如果找到多行文字字符串,可以通过多行文字字符串中组合字符串的数量\\P获得行数。 谢谢塔瓦的帮助!所以我研究了你的建议,我可以从vla get textstring或dxf组码304中获得,但问题是,\\P信息只有在用户点击enter键输入新的文本行时才可用,而不是通过拖动文本框将文本放在第二行时才可用,至少据我所知。 转储三行多行文字,你看起来像这样吗?
TextString=“abcdefg\\Phijklm\\Popqrst” 将多重引线文本框的高度除以文本高度+行距-web上某处的多行文字有一个类似的示例。 当我有一个多重引线,它有两行这样的文本:Cadtutor is
helpful.它像这样打印
TextString = "CADTUTOR IS HELPFUL"
. 谢谢李!我会玩一会儿,看看能不能弄明白。 所以我一直在胡闹,我仍然很困惑。我有一个宽度为29.9248的文本框,在查看dxf代码后,我看到的是组码43。文本框的高度是5.3333333,但我找不到任何相关信息。我试着做了29.9248/5.33333,得到了5.61,然而,没有任何组码有5.3333或5.61。我也知道文本高度是2.0(代码40),所以我试着用5.3333-2.0=3.3333来查找高度,但也没有一个具有该值的组码。我是不是错失了什么? 也许这是李写的。。。
;; by Lee Mac
;; http://forums.autodesk.com/t5/Visual-LISP-AutoLISP-and-General/Determining-the-number-of-lines-in-a-...
(defun mattrib-number-of-lines (ent / box enx)
(setq enx (entget ent)
box (textbox (list '(1 . "A") (assoc 7 enx) (assoc 40 enx)))
)
(1+ (fix (/ (cdr (assoc 43 enx)) (* 1.66 (- (cadadr box) (cadar box))))))
)
;; mtxtattrib-number-of-lines
HTH,M.R。 谢谢marko(还有Lee的代码)!因此,我在mleader对象上测试了这一点,但由于dxf组码不同,它不起作用,但在多行文字对象上效果很好。我很难将其转换为用于mleader,因为我无法理解所有等价dxf组码。我知道mtext的1相当于mleader的304(给出了第一个304代码),40到40(给出了第二个),但我找不到7(样式)或43的任何等价物(我不确定这到底给出了什么)。
第43组给出了多行文字文本框的高度-据我所知,MLeader没有等效的DXF组。然而,我已经提供了一个函数来计算这个高度(并演示了如何获得MLeader文本样式),链接在上面。
页:
[1]
2