tranney 发表于 2013-7-19 22:09:14

关于狼版主的文字打断与连接的小bug,请求修改

关于狼版主的文字打断与连接的小bug
先贴出原版

打断基本上没问题,就是连接,发现,后选择的居然在前面去了,呵呵,比如123456789在5这里打断,第一段1234,第二段56789,连接的时候,选择56789,然后选择1234,结果是原来56789消失,原来的1234变成了567891234,呵呵,不符合实际工作需要啊,比如写说明,断开后,又要连上,这样就多了好几部要做的了,希望高手改改改成能接着后面就好了,写谢谢了

(princ"\n打断文字by:langjs   命令:aa")
(defun c:aa (/ b box ent ent2 h i n name num pt pt10 str str1 str2)
(while (and
         (setq pt (cadr (setq name (entsel "\n选择文字:"))))
         (setq ent (entget (car name)))
         (IF (= (cdr (assoc 0 ent)) "TEXT")
             (progn
               (setq str (cdr (assoc 1 ent))   pt10 (cdr (assoc 10 ent))h (cdr (assoc 40 ent))
                     ent2 (cdr ent) box (textbox ent2)
                     n (fix (/ (- (car pt) (car pt10)) (/ (- (car (cadr box)) (car (car box))) (strlen str))))
                     num 0i 1
               )
               (repeat n
               (if (> (ascii (substr str i i)) 160) (setq num (1+ num)) )
               (setq i (1+ i))
               )
               (if (= (rem num 2) 1) (setq n (1- n)))
               (setq str1 (substr str 1 n)    str2 (substr str (1+ n)))
               (entmod (subst (cons 1 str1) (assoc 1 ent) ent ))
               (setq ent2 (subst(cons 1 str2)(assoc 1 ent2) ent2 ))
               (entmake (subst (cons 10 (list (car pt10) (- (cadr pt10) (* 1.4 h)))) (assoc 10 ent2) ent2))
             )
             nil
         )
         )
)
(princ)
)



(princ"\n文字合并by:langjs   命令:qq")
(defun c:qq (/ ent name name2 str)
(setq str "")
(while (and
    (setq name (car (entsel "\n选择文字:")))
    (setq ent (entget name))
    (wcmatch (cdr (assoc 0 ent)) "*TEXT")
)
    (if name2 (entdel name2))
    (setq str (strcat str (cdr (assoc 1 ent))) name2 name )
    (entmod (subst (cons 1 str) (assoc 1 ent)ent ))
    (redraw name 3)
)
(if name2 (redraw name2 4))
(princ)
)

jxncxu 发表于 2022-10-7 21:12:46

字体旋转90度后。打断功能失效,需要修改
页: [1]
查看完整版本: 关于狼版主的文字打断与连接的小bug,请求修改