明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 560|回复: 4

[提问] 各位大佬看一下。有圆圈围成的文字,能不能框选这些,合并圆圈内的文字,原来的文...

[复制链接]
发表于 2024-10-12 11:41:07 | 显示全部楼层 |阅读模式
本帖最后由 664571221 于 2024-10-12 11:43 编辑

各位大佬看一下。有圆圈围成的文字,能不能框选这些,合并圆圈内的文字,原来的文字不变,在边上生成一个新的合并的文字  比如P  1这个文字,在边上生成一个P*1这样的文字,批量选择这些圆和文字

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-10-12 12:20:30 | 显示全部楼层
本帖最后由 vitalgg 于 2024-10-12 14:58 编辑



能。
步骤:
1、批量选圆
2、生成圆上8点。ssget 围栏选文字。
3、文字从上到下排序,合并文字


  1. (setq ents-circle (pickset:to-list (ssget '((0 . "circle")))))
  2. (foreach
  3. circle% ents-circle
  4. ;;  生成8分围栏点
  5. (setq pts (curve:circle2pts circle% 8))
  6. ;; 合并文字
  7. (if (setq txts(pickset:to-list (ssget "cp" pts '((0 . "text")))))
  8.      (progn
  9.        (entity:make-text
  10.   (string:from-list
  11.    (mapcar '(lambda(x)
  12.        (entity:getdxf x 1))
  13.      (pickset:sort
  14.       txts
  15.       "Yx"
  16.       0))
  17.    "-")
  18.   (polar
  19.    (entity:getdxf circle% 10)
  20.    0
  21.    (entity:getdxf circle% 40))
  22.   (* 0.3  (entity:getdxf circle% 40))
  23.   0 0.72 0 "lb")
  24.   )))


运行以上代码,需@lisp函数库支持,扫码了解更多。

发表于 2024-10-12 18:21:20 | 显示全部楼层
本帖最后由 韩飞翔 于 2024-10-12 18:32 编辑

嗯,你说的是圆结果是多段线并非真的圆
发表于 2024-10-12 18:32:21 | 显示全部楼层
(defun c:tt(/ a1 a2 a3 i lst lst1 s1 ss ssa)
        (xyp-start)
        (setq
                ss (ssget '((0 . "CIRCLE,LWPOLYLINE")))
                lst (xyp-ss2list ss)
                i -1
        )
        (while (< (setq i (1+ i)) (length lst))
                (setq
                        s1 (nth i lst)
                        p (polar (xyp-9pt s1 6) 0 200)
                        ssa (ssget "c" (xyp-9pt s1 1) (xyp-9pt s1 9) '((0 . "TEXT")))
                )
                (cond
                        ((and (= 2 (sslength ssa)) (= "CIRCLE" (xyp-dxf 0 s1)))
                                (setq
                                        lst1 (xyp-ss2list ssa)
                                        lst1 (vl-sort lst1 '(lambda(x y) (> (cadr (xyp-dxf 10 x)) (cadr (xyp-dxf 10 y)))))
                                        a1 (xyp-dxf 1 (car lst1))
                                        a2 (xyp-dxf 1 (cadr lst1))
                                        a3 (strcat a1 "-" a2)
                                )
                                (xyp-Add-Text a3 p (xyp-dxf 40 (car lst1)))
                        )       
                        ((and (= 2 (sslength ssa)) (= "LWPOLYLINE" (xyp-dxf 0 s1)) (= 1 (xyp-dxf 70 s1)))
                                (setq
                                        lst1 (xyp-ss2list ssa)
                                        lst1 (vl-sort lst1 '(lambda(x y) (> (cadr (xyp-dxf 10 x)) (cadr (xyp-dxf 10 y)))))
                                        a1 (xyp-dxf 1 (car lst1))
                                        a2 (xyp-dxf 1 (cadr lst1))
                                        a3 (strcat a1 "-" a2)
                                )
                                (xyp-Add-Text a3 p (xyp-dxf 40 (car lst1)))
                        )
                )
        )
        (xyp-end)
)
发表于 2024-10-12 18:37:52 | 显示全部楼层
用院长函数,给院长宣传一下
没有最好,只有更好;
E派工具群号:24942984

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-22 19:20 , Processed in 0.151936 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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