明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: yaojing38

[经验] 多行文字 包围盒

[复制链接]
 楼主| 发表于 2024-8-30 12:18:55 | 显示全部楼层
kozmosovia 发表于 2024-8-28 18:07
直接获取文本框四点坐标
(Defun MTEXTBOX        (obj / B ENX H J N O R W)
  (if (and (= "MTEXT" (cdr ...

问下怎么得到世界坐标的包围盒?发现这个包围盒是0点附近的
 楼主| 发表于 2024-8-30 12:20:19 | 显示全部楼层
advksf 发表于 2024-8-29 23:33
楼上的代码要要怎样运行的?lisp吗

是的,,cad
发表于 2024-8-30 13:54:51 | 显示全部楼层
yaojing38 发表于 2024-8-30 12:18
问下怎么得到世界坐标的包围盒?发现这个包围盒是0点附近的

完整的函数
https://zhuanlan.zhihu.com/p/25228344
 楼主| 发表于 2024-8-30 14:11:28 | 显示全部楼层
本帖最后由 yaojing38 于 2024-8-30 14:44 编辑

谢谢您的代码!
  1. <div class="blockcode"><blockquote>;Example
  2. ;(AQX: GETMTEXTBOX (car(entsel)) 0.0)
  3. ;((97346.9291.883)(61132.620869.7)(56983.413567.6)(93197.6-7010.23))
  4. ;直接获取文本框四点坐标
  5. (Defun AQX:GETMTEXTBOX (obj off / MXV B ENX H J L M N O P R W)
  6.   (Defun mxv (m v)
  7.     (mapcar '(lambda (r) (apply '+ (mapcar '* r v))) m)
  8.   )
  9.   (setq enx (entget obj))
  10.   (if (null off)
  11.     (setq off 0.0)
  12.   )
  13.   (if
  14.     (setq l
  15.      (cond
  16.        ((= "TEXT" (cdr (assoc 0 enx)))
  17.         (setq b (cdr (assoc 10 enx))
  18.         r (cdr (assoc 50 enx))
  19.         l (textbox enx)
  20.         )
  21.         (list
  22.         (list (- (caar l) off) (- (cadar l) off))
  23.         (list (+ (caadr l) off) (- (cadar l) off))
  24.         (list (+ (caadr l) off) (+ (cadadr l) off))
  25.         (list (- (caar l) off) (+ (cadadr l) off))
  26.         )
  27.        )
  28.        ((= "MTEXT" (cdr (assoc 0 enx)))
  29.         (setq n (cdr (assoc 210 enx))
  30.         b (trans (cdr (assoc 10 enx)) 0 n)
  31.         r (angle '(0.0 0.0 0.0) (trans (cdr (assoc 11 enx)) 0 n))
  32.         w (cdr (assoc 42 enx))
  33.         h (cdr (assoc 43 enx))
  34.         j (cdr (assoc 71 enx))
  35.         o (list
  36.       (cond
  37.         ((member j '(2 5 8)) (/ w -2.0))
  38.         ((member j '(3 6 9)) (- w))
  39.         (0.0)
  40.       )
  41.       (cond
  42.         ((member j '(1 2 3)) (- h))
  43.         ((member j '(4 5 6)) (/ h -2.0))
  44.         (0.0)
  45.       )
  46.           )
  47.         )
  48.         (list
  49.         (list (- (car o) off) (- (cadr o) off))
  50.         (list (+ (car o) w off) (- (cadr o) off))
  51.         (list (+ (car o) w off) (+ (cadr o) h off))
  52.         (list (- (car o) off) (+ (cadr o) h off))
  53.         )
  54.        )
  55.      )
  56.     )
  57.   ((lambda (m)
  58.    (mapcar '(lambda (p) (mapcar '+ (mxv m p) b)) l))
  59.    (list
  60.    (list (cos r) (sin (- r)) 0.0)
  61.    (list (sin r) (cos r) 0.0)
  62.    '(0.0 0.0 1.0)
  63.    )
  64.   )
  65.   )
  66. )

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-23 00:44 , Processed in 0.137393 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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