明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1075|回复: 3

[提问] 各位大神这个单文字合并,能不能加一个距离,多少距离内的合并一起

[复制链接]
发表于 2021-11-21 11:15:27 | 显示全部楼层 |阅读模式
本帖最后由 664571221 于 2021-11-21 11:16 编辑

各位大神这个单文字合并,能不能加一个距离,多少距离内的合并一起,这个代码是同行的都合并到一起了,能不能加一个距离输入,多少距离内的合并

;;----------------------=={ Merge Text }==--------------------;;
;;                                                            ;;
;;  Converts a selection of single-character text objects     ;;
;;  into one or more text objects containing characters       ;;
;;  aligned by their insertion points & angle of rotation.    ;;
;;  Currently restricted to text containing no spaces.        ;;
;;------------------------------------------------------------;;
;;  Author: Lee Mac, Copyright &#169; 2012 - <a href=\"http://www.lee-mac.com\" target=\"_blank\">www.lee-mac.com</a>       ;;
;;------------------------------------------------------------;;

(defun c:mergetext ( / i l s )
    (if (setq s (ssget "_" '((0 . "TEXT"))))
        (progn
            (repeat (setq i (sslength s))
                (setq l (cons (entget (ssname s (setq i (1- i)))) l))
            )
            (foreach g
                (LM:GroupByFunction l
                    (lambda ( a b / n r z )
                        (and
                            (equal (setq r (cdr (assoc 050 a))) (cdr (assoc 050 b)) 0.001)
                            (equal (setq z (cdr (assoc 210 a))) (cdr (assoc 210 b)) 0.001)
                            (setq n (list (cos r) (sin r)))
                            (equal
                                (car (trans (cdr (assoc 10 a)) z n))
                                (car (trans (cdr (assoc 10 b)) z n))
                                0.001
                            )
                        )
                    )
                )
                (if (cdr g)
                    (progn
                        (setq g
                            (vl-sort g
                                (function
                                    (lambda ( a b / n r z )
                                        (setq r (cdr (assoc 050 a))
                                              z (cdr (assoc 210 a))
                                              n (list (cos r) (sin r))
                                        )
                                        (<  (last (trans (cdr (assoc 10 a)) z n))
                                            (last (trans (cdr (assoc 10 b)) z n))
                                        )
                                    )
                                )
                            )
                        )
                        (entmod
                            (subst
                                (cons  1 (apply 'strcat (mapcar '(lambda ( x ) (cdr (assoc 1 x))) g)))
                                (assoc 1 (car g))
                                (car g)
                            )
                        )
                        (foreach e (cdr g) (entdel (cdr (assoc -1 e))))
                    )
                )
            )                  
        )
    )
    (princ)
)

;; Group By Function  -  Lee Mac
;; Groups items considered equal by a given predicate function

(defun LM:GroupByFunction ( lst fun / tmp1 tmp2 x1 )
    (if (setq x1 (car lst))
        (progn
            (foreach x2 (cdr lst)
                (if (fun x1 x2)
                    (setq tmp1 (cons x2 tmp1))
                    (setq tmp2 (cons x2 tmp2))
                )
            )
            (cons (cons x1 (reverse tmp1)) (LM:GroupByFunction (reverse tmp2) fun))
        )
    )
)

(princ)

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-11-24 11:44:46 | 显示全部楼层
显示:mergetext Error: 参数太少
 楼主| 发表于 2021-12-24 11:10:04 | 显示全部楼层
leimw 发表于 2021-11-24 11:44
显示:mergetext Error: 参数太少

你好大神可以加下我qq吗3298554767
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 17:35 , Processed in 0.185204 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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