如何将文本与文本中心对齐
使用autolisp程序或autocad 2004中的任何工具。我想将文本与多边形的中心对齐。我已经在每个多边形的末尾粘贴了文本。但是现在我想把它和多边形的中心对齐。它应该适用于所有选定的多边形。多边形大小不同。 你可以在开始时使用这个(defun c:CEN (/ SS C CEN)
(princ "\nSelect polygones: ")
(if (setq SS (ssget '((0 . "LWPOLYLINE"))))
(progn
(setq C 0)
(repeat (sslength SS)
(setq CEN
(kr:GOE_GetCentroidCoordinates
(vlax-Ename->vla-Object (ssname SS C))
)
)
(entmakex
(list
(cons 0 "CIRCLE")
(cons 10 (trans CEN 1 0))
(cons 40 2)
)
)
(setq C (1+ C))
)
)
(princ "\n** Nothing selected **")
)
(princ)
)
; ============================================================ ;
; Get centroid coordinates ;
;Obj - VLA object ;
; ============================================================ ;
(defun kr:GOE_GetCentroidCoordinates (Obj / RA PT TEMP)
(if
(not
(vl-catch-all-error-p
(setq RA
(vl-catch-all-apply
'vlax-invoke
(list
(vla-get-modelspace
(vla-get-document Obj)
)
'AddRegion
(list Obj)
)
)
)
)
)
(progn
(setq PT
(vlax-get
(setq TEMP (car RA))
'Centroid
)
)
(vla-delete TEMP)
)
)
PT
)
克鲁格 我们有3dpolyline图纸,而不是LWDPolyline图纸。对于单个选定的多边形,显示为“1已找到”“1已过滤掉”的消息。 这将使用与Kruuger类似的方法返回对象质心的坐标:
(defun _centroid ( obj / reg cen )
(setq reg (car (vlax-invoke (vla-objectidtoobject (vla-get-document obj) (vla-get-ownerid obj)) 'addregion (list obj)))
cen (vlax-get reg 'centroid)
)
(vla-delete reg)
cen
)
致电:
(_centroid <VLA-Object>) FWIW-我不久前添加了Gile的自定义OSNAPs程序,发现它非常有用。 我附上了示例gif并突出显示了放置在多边形中的文本。我想将文本与所有单个多边形的多边形中心对齐。我尝试了更多的lisp和auto cad 2004工具,但仍然无法解决这个问题。谢谢
文本的理由是什么?AutoCAD 2004是否具有M2P?如果不是的话,以前也有Lisp程序的说法。 它不起作用了。我有500多个多边形。请参见上图以供参考。。
什么不起作用?
你使用了什么代码?你有将文本移动到多段线中心的实际程序吗?
如前所述,需要考虑的因素。
文本对齐
UCS
pline类型
页:
[1]