找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1437|回复: 3

[求助] [求助]:如何得到文字的四个角点坐标呢?

[复制链接]
发表于 2009-8-24 22:04:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如图,我想求一段程序可以计算出文字所在范围的四个角点坐标
因为文字的字高不同,字体不同,文字还有不同的角度,文字的长度也不一样,怎样才能得到一串字符串所覆盖的四个角点坐标呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 2个

财富等级: 恭喜发财

发表于 2009-8-25 08:00:46 | 显示全部楼层

  1.   [FONT=courier new]
  2. (defun tt-text-corners (ename / ang dx dy key p1 p2 p3 p4)
  3.   (if (is-ename ename)
  4.     (progn
  5.       (setq key (th-get-dxf 0 ename)
  6.             ang (th-get-dxf 50 ename)
  7.       )
  8.       (cond
  9.         ((= key "TEXT")
  10.           (txt-text-corners ename)
  11.         )
  12.         ((= key "MTEXT")
  13.           (setq p4 (th-get-dxf 10 ename)
  14.                 dx (th-get-dxf 42 ename)
  15.                 dy (th-get-dxf 43 ename)
  16.                 p3 (polar p4 ang dx)
  17.                 p1 (polar p4 (- ang (/ pi 2)) dy)
  18.                 p2 (polar p1 ang dx)
  19.           )
  20.           (list p1 p2 p3 p4)
  21.         )
  22.         (t
  23.           nil
  24.         )
  25.       )
  26.     )
  27.   )
  28. )
  29. (defun txt-text-corners (ent / ang p0 p1 p2 tb)
  30.   (if (and
  31.         (is-ename ent)
  32.         (= (th-get-dxf 0 ent) "TEXT")
  33.       )
  34.     (progn
  35.       (setq p0 (th-get-dxf 10 ent)
  36.             ang (th-get-dxf 50 ent)
  37.       )
  38.       (setq tb (textbox (entget ent))
  39.             p1 (car tb)
  40.             p2 (cadr tb)
  41.             tb (list p1 (list (car p2) (cadr p1)) p2 (list (car p1)
  42.                                                            (cadr p2)
  43.                                                      )
  44.                )
  45.       )
  46.       (mapcar
  47.         '(lambda (x)
  48.            (polar p0 (+ ang (angle '(0. 0. 0.) x)) (distance '(0. 0. 0.) x))
  49.          )
  50.         tb
  51.       )
  52.     )
  53.   )
  54. )
  55. (defun th-get-dxf (g e)
  56.   (cond
  57.     ((= 'ename (type e))
  58.       (cdr (assoc g (entget e)))
  59.     )
  60.     ((= 'list (type e))
  61.       (cdr (assoc g e))
  62.     )
  63.   )
  64. )
  65. (defun is-ename        (arg)
  66.   (equal (type arg) 'ename)
  67. )
  68.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2009-8-25 13:31:19 | 显示全部楼层
好东西,顶
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2024-1-10 11:30:37 | 显示全部楼层
这有什么用处呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-3-29 14:08 , Processed in 0.502222 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表