多行文字长度
你好我想知道为什么这个例程不适用于多个选定的MText!
它只能在一个多行文字上实现。
(defun c:TESt (/ ss)
(if (setq ss (ssget '((0 . "MTEXT"))))
((lambda (i / e ins end ang dis)
(setq e (entget (ssname ss (setq i (1+ i)))))
(setq ins (cdr (assoc 10 e)))
(setq end (cdr (assoc 42 e)))
(setq ang (cdr (assoc 50 e)))
(setq dis (polar ins ang end))
(entmakex (list (cons 0 "LINE")
(cons 10 ins)
(cons 11 dis)
)))
-1
)
(alert "Nothing's Selected")
)
(command "_.erase" ss "")
(princ)
)
非常感谢。
塔瓦特 您没有单步执行选择集。
((lambda (i / e ins end ang dis)
(setq e (entget (ssname ss (setq i (1+ i)))))
(setq ins (cdr (assoc 10 e)))
你需要使用while或repeat。 既然你基本上已经拥有了它,这里有一点需要仔细考虑。。。
(defun c:Test (/ ss)
(if (setq ss (ssget "_:L" '((0 . "MTEXT"))))
((lambda (i / e l p)
(while (setq e (ssname ss (setq i (1+ i))))
(setq l (entget e))
(if (entmake (list '(0 . "LINE")
(setq p (assoc 10 l))
(cons 11 (polar (cdr p) (cdr (assoc 50 l)) (cdr (assoc 42 l))))
)
)
(entdel e)
)
)
)
-1
)
)
(princ)
)
要知道,这只适用于左对齐的多行文字。 非常感谢Alanjt。
这真是太棒了。
在得到你的帮助后,这是我的。。。
(defun c:TESt (/ ss)
(if (setq ss (ssget '((0 . "MTEXT"))))
((lambda (i / ent e ins end ang dis)
(while (setq ent (ssname ss (setq i (1+ i))))
(setq e (entget ent))
(setq ins (cdr (assoc 10 e)))
(setq end (cdr (assoc 42 e)))
(setq ang (cdr (assoc 50 e)))
(setq dis (polar ins ang end))
(entmakex (list (cons 0 "LINE")
(cons 10 ins)
(cons 11 dis)
))
(entdel ent)))
-1
)
)
(princ)
)
我寻找DXF代码,它可以帮助我获得文本的长度,但没有结果。
那么,如何获得多行文字呢?
非常感谢
塔瓦特 一条非常相互连接的线。
Alanjt和Tharwat的精彩套路。
我也想知道如何获得文本的长度,因为在DXf代码中不包括文本的终点?
谢谢你。 *对于方框*
开发者帮助中的查找文本框
*如上所示*
插入点dxf 10
端点dxf 42
角度dxf 50
页:
[1]