明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 538|回复: 9

[讨论] 求优化-文本获取坐标lisp

[复制链接]
发表于 2023-9-8 08:09 | 显示全部楼层 |阅读模式
麻烦请各位老师,帮我看下怎么获取文本中心点的坐标值,现有的lisp文件获取的是文字左下角的坐标值,请各位老师帮我优化下

本帖子中包含更多资源

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

x
发表于 2023-9-8 09:16 | 显示全部楼层
(defun entm(ent);返回对象外包框的中点坐标BY:Dea25
(vl-load-com)
(if (= (type ent) 'ENAME)
        (mapcar '* '(0.5 0.5 0.5) (apply '(lambda (x1 x2)(mapcar '+ x1 x2)) (acet-ent-geomextents ent)))
        nil
)
)
回复 支持 1 反对 0

使用道具 举报

发表于 2023-9-8 08:26 | 显示全部楼层
改了的       顺便改了下ssget函数

本帖子中包含更多资源

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

x
发表于 2023-9-8 08:40 | 显示全部楼层
(setq zb(cdr(assoc 11 ent)))
发表于 2023-9-8 09:35 | 显示全部楼层
测试了一下,存成dat
只能捉取text
无法捉法mtext
 楼主| 发表于 2023-9-8 10:25 | 显示全部楼层
jun353835273 发表于 2023-9-8 08:26
改了的       顺便改了下ssget函数

感谢老师!
 楼主| 发表于 2023-9-8 10:28 | 显示全部楼层
Dea25 发表于 2023-9-8 09:16
(defun entm(ent);返回对象外包框的中点坐标BY:Dea25
(vl-load-com)
(if (= (type ent) 'ENAME)

好的,感谢老师,我试试
发表于 2023-9-8 15:42 | 显示全部楼层
本帖最后由 lzspain 于 2023-9-8 15:46 编辑

要是能按照一定的顺序提取就更好了
 楼主| 发表于 2023-9-9 09:04 | 显示全部楼层
lzspain 发表于 2023-9-8 15:42
要是能按照一定的顺序提取就更好了

在优化中,还没弄好。
发表于 2023-9-9 09:47 | 显示全部楼层
本帖最后由 xyp1964 于 2023-9-9 09:49 编辑

  1. (defun c:wb ()
  2.   (defun mid (s1 / p1 p9)
  3.     (vla-getboundingbox (vlax-ename->vla-object s1) 'p1 'p9)
  4.     (list (vlax-safearray->list p1) (vlax-safearray->list p9))
  5.     (mapcar '(lambda (x y) (* (+ x y) 0.5))
  6.             (vlax-safearray->list p1)
  7.             (vlax-safearray->list p9)
  8.     )
  9.   )
  10.   "将文本及坐标导出dat文件"
  11.   (princ "\n选择需要导出的文本")
  12.   (if (setq ss (ssget '((0 . "text"))))
  13.     (progn
  14.       (setq ff (OPEN (getfiled "文件保存到" "d:/" "dat" 1) "W")
  15.             i  -1
  16.       )
  17.       (while (setq s1 (ssname ss (setq i (1+ i))))
  18.         (setq nr (cdr (assoc 1 s1))
  19.               zb (mid s1)
  20.               x (rtos (car zb) 2 3)
  21.               y (rtos (cadr zb) 2 3)
  22.               z (rtos (caddr zb) 2 3)
  23.         )
  24.         (princ (strcat nr "," y "," x) ff)
  25.         (princ "\n" ff)
  26.       )
  27.       (close ff)
  28.       (prompt (strcat "\n共添加了" (itoa (sslength ss)) "个文本及坐标"))
  29.     )
  30.   )
  31.   (princ)
  32. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-14 02:46 , Processed in 0.146350 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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