明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 512|回复: 5

[讨论] 给文字加圆加点,但是参数太少,源码龙龙仔

[复制链接]
发表于 2023-6-3 11:17 | 显示全部楼层 |阅读模式
找了半天也没找出来,有人指教一下不?
  1. ;;By 龙龙仔(LUCAS),Modified by meflying
  2. ;;在TEXT和MTEXT实体的几何中心点画点
  3. ;;参数:sname - 文字对象名
  4. (vl-load-com)
  5. (defun c:TT (sname / CENTPT N)
  6. (defun AX:GETBOUNDINGBOX (ENT / LL  UR  ents  ents2)
  7. (setq ents (entget ent))
  8. (if (= (cdr (assoc 0 ents)) "MTEXT")
  9. (progn
  10. (setq ents2 ents)
  11. (setq ents2 (subst (cons 41 0) (assoc 41 ents2) ents2))
  12. (entmod ents2)
  13. )
  14. )
  15. (vla-getboundingbox (vlax-ename->vla-object ENT) 'LL 'UR)
  16. (entmod ents)
  17. (MIDPOINT (vlax-safearray->list LL)
  18. (vlax-safearray->list UR)
  19. )
  20. )
  21. (defun MIDPOINT (/ PT1 PT2)
  22. (mapcar
  23. '(lambda (X Y)
  24. (* 0.5 (+ X Y))
  25. )
  26. PT1 PT2
  27. )
  28. )
  29. (setq CENTPT (AX:GETBOUNDINGBOX sname))
  30. (command "_.point" centpt)                                       ; 生成点
  31. ;(entmakex (list '(0 . "CIRCLE") (cons 10 centpt) (cons 40 1) ))           ; 生成圆
  32. (princ)
  33. )


发表于 2023-6-3 11:59 | 显示全部楼层

  1. (defun TT (sname / CENTPT N)
  2.         (defun AX:GETBOUNDINGBOX (ENT / LL  UR  ents  ents2)
  3.                 (setq ents (entget ent))
  4.                 (if (= (cdr (assoc 0 ents)) "MTEXT")
  5.                         (progn
  6.                                 (setq ents2 ents)
  7.                                 (setq ents2 (subst (cons 41 0) (assoc 41 ents2) ents2))
  8.                                 (entmod ents2)
  9.                         )
  10.                 )
  11.                 (vla-getboundingbox (vlax-ename->vla-object ENT) 'LL 'UR)
  12.                 (entmod ents)
  13.                 (MIDPOINT (vlax-safearray->list LL)(vlax-safearray->list UR))
  14.         )
  15.         (defun MIDPOINT (PT1 PT2 / PT1 PT2)
  16.                 (mapcar
  17.                         '(lambda (X Y)
  18.                                  (* 0.5 (+ X Y))
  19.                          )
  20.                         PT1 PT2
  21.                 )
  22.         )
  23.         (setq CENTPT (AX:GETBOUNDINGBOX sname))
  24.         (entmakex (list '(0 . "POINT") (cons 10 centpt) ))                                       ; 生成点
  25.         (entmakex (list '(0 . "CIRCLE") (cons 10 centpt) (cons 40 1) ))           ; 生成圆
  26.         (princ)
  27. )
  28. (TT (car(entsel)))
 楼主| 发表于 2023-6-3 12:50 | 显示全部楼层

谢谢,可以使用了!
发表于 2023-6-3 21:14 | 显示全部楼层
不错的帖子 顶一下
发表于 2023-6-5 10:31 | 显示全部楼层

不錯的帖子頂一下 學習
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 17:31 , Processed in 0.226693 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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