stephenjose 发表于 2022-7-6 08:56:41

如何将文本与文本中心对齐

使用autolisp程序或autocad 2004中的任何工具。我想将文本与多边形的中心对齐。我已经在每个多边形的末尾粘贴了文本。但是现在我想把它和多边形的中心对齐。它应该适用于所有选定的多边形。多边形大小不同。

Guest kruuger 发表于 2022-7-6 09:04:39

你可以在开始时使用这个
(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
)
克鲁格

stephenjose 发表于 2022-7-6 09:15:59

我们有3dpolyline图纸,而不是LWDPolyline图纸。对于单个选定的多边形,显示为“1已找到”“1已过滤掉”的消息。

Lee Mac 发表于 2022-7-6 09:19:26

这将使用与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>)

BlackBox 发表于 2022-7-6 09:31:57

FWIW-我不久前添加了Gile的自定义OSNAPs程序,发现它非常有用。

stephenjose 发表于 2022-7-6 09:38:32

我附上了示例gif并突出显示了放置在多边形中的文本。我想将文本与所有单个多边形的多边形中心对齐。我尝试了更多的lisp和auto cad 2004工具,但仍然无法解决这个问题。谢谢

SLW210 发表于 2022-7-6 09:43:38

文本的理由是什么?AutoCAD 2004是否具有M2P?如果不是的话,以前也有Lisp程序的说法。

stephenjose 发表于 2022-7-6 09:56:26

它不起作用了。我有500多个多边形。请参见上图以供参考。。

pBe 发表于 2022-7-6 09:58:15

 
什么不起作用?
你使用了什么代码?你有将文本移动到多段线中心的实际程序吗?
 
如前所述,需要考虑的因素。
文本对齐
UCS
pline类型
页: [1]
查看完整版本: 如何将文本与文本中心对齐