文本长度
我们能用lisp语言找出文本的长度吗。是的,可以使用边界框方法。它将为您提供左下角和右上角坐标,然后您需要计算长度和高度。如果是旋转0、90、180或270,则简单,对于任何其他旋转,则稍微困难一些。
我不知道边界盒方法。Pl.解释 试试这个
(setq util (vla-get-utility
(vla-get-activedocument
(vlax-get-acad-object))))
(vla-getentity util 'obj 'ip "\nSelect Object: ")
(vla-GetBoundingBox obj 'minpoint 'maxpoint)
(setq pointmin (vlax-safearray->list minpoint))
(setq pointmax (vlax-safearray->list maxpoint))
(princ pointmin)(princ "\n")(princ pointmax)
谢谢你的快速回复。 另一个
(vl-load-com)
(defun c:tw (/ c_doc obj minExt maxExt dist d_ang width ht)
(setq c_doc (vla-get-ActiveDocument (vlax-get-acad-object))
obj (vlax-ename->vla-object (car (entsel "\nSelect entity to be object data : ")))
)
(vla-GetBoundingBox obj 'minExt 'maxExt)
(setq dist (distance (vlax-safearray->list minExt) (vlax-safearray->list maxExt))
d_ang (angle (vlax-safearray->list minExt) (vlax-safearray->list maxExt))
width (* (cos d_ang) dist)
ht (* (sin d_ang) dist)
)
(princ (strcat "\nWidth = " (rtos width 2) " : Height = " (rtos ht 2)))
);_end_GBB defun
(princ)
(setq text_list (ssget"C"pt1 pt2'((0 . "TEXT") ))); list of texts
当文本在选择集中时。如何修改上述代码。
这是给我的还是给比格尔的?
如果是我,你想用文本实体做什么? 我建议使用textbox函数——下面是一个示例。 此外,为了将来减少混淆,ssget将“选择集”设置为“列表”,列表是一个包含许多简单值的变量。
页:
[1]
2