乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 56|回复: 8

[编程交流] 如何将文本与文本中心对齐

[复制链接]

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:56:41 | 显示全部楼层 |阅读模式
使用autolisp程序或autocad 2004中的任何工具。我想将文本与多边形的中心对齐。我已经在每个多边形的末尾粘贴了文本。但是现在我想把它和多边形的中心对齐。它应该适用于所有选定的多边形。多边形大小不同。
回复

使用道具 举报

8

主题

159

帖子

153

银币

初来乍到

Rank: 1

铜币
40
发表于 2022-7-6 09:04:39 | 显示全部楼层
你可以在开始时使用这个
  1. (defun c:CEN (/ SS C CEN)
  2. (princ "\nSelect polygones: ")
  3. (if (setq SS (ssget '((0 . "LWPOLYLINE"))))
  4.    (progn
  5.      (setq C 0)
  6.      (repeat (sslength SS)
  7.        (setq CEN
  8.          (kr:GOE_GetCentroidCoordinates
  9.            (vlax-Ename->vla-Object (ssname SS C))
  10.          )
  11.        )
  12.        (entmakex
  13.          (list
  14.            (cons 0 "CIRCLE")
  15.            (cons 10 (trans CEN 1 0))
  16.            (cons 40 2)
  17.          )
  18.        )
  19.        (setq C (1+ C))
  20.      )
  21.    )
  22.    (princ "\n** Nothing selected **")
  23. )
  24. (princ)
  25. )
  26. ; ============================================================ ;
  27. ; Get centroid coordinates                                     ;
  28. ;  Obj - VLA object                                            ;
  29. ; ============================================================ ;
  30. (defun kr:GOE_GetCentroidCoordinates (Obj / RA PT TEMP)
  31. (if
  32.    (not
  33.      (vl-catch-all-error-p
  34.        (setq RA
  35.          (vl-catch-all-apply
  36.           'vlax-invoke
  37.           (list
  38.             (vla-get-modelspace
  39.               (vla-get-document Obj)
  40.             )
  41.             'AddRegion
  42.             (list Obj)
  43.           )
  44.          )
  45.        )
  46.      )
  47.    )
  48.    (progn
  49.      (setq PT
  50.        (vlax-get
  51.          (setq TEMP (car RA))
  52.          'Centroid
  53.        )
  54.      )
  55.      (vla-delete TEMP)
  56.    )
  57. )
  58. PT
  59. )

克鲁格
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:15:59 | 显示全部楼层
我们有3dpolyline图纸,而不是LWDPolyline图纸。对于单个选定的多边形,显示为“1已找到”“1已过滤掉”的消息。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:19:26 | 显示全部楼层
这将使用与Kruuger类似的方法返回对象质心的坐标:
 
  1. (defun _centroid ( obj / reg cen )
  2.    (setq reg (car (vlax-invoke (vla-objectidtoobject (vla-get-document obj) (vla-get-ownerid obj)) 'addregion (list obj)))
  3.          cen (vlax-get reg 'centroid)
  4.    )
  5.    (vla-delete reg)
  6.    cen
  7. )

 
致电:
 
  1. (_centroid <VLA-Object>)
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 09:31:57 | 显示全部楼层
FWIW-我不久前添加了Gile的自定义OSNAPs程序,发现它非常有用。
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:38:32 | 显示全部楼层
我附上了示例gif并突出显示了放置在多边形中的文本。我想将文本与所有单个多边形的多边形中心对齐。我尝试了更多的lisp和auto cad 2004工具,但仍然无法解决这个问题。谢谢
095642nhp9dshwwvzdkdwh.jpg
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 09:43:38 | 显示全部楼层
文本的理由是什么?AutoCAD 2004是否具有M2P?如果不是的话,以前也有Lisp程序的说法。
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:56:26 | 显示全部楼层
它不起作用了。我有500多个多边形。请参见上图以供参考。。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 09:58:15 | 显示全部楼层
 
什么不起作用?
你使用了什么代码?你有将文本移动到多段线中心的实际程序吗?
 
如前所述,需要考虑的因素。
文本对齐
UCS
pline类型
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 06:10 , Processed in 0.703490 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表