明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 357785513

那位有此程序不,能赐与在下不,

  [复制链接]
发表于 2012-11-2 13:33:13 | 显示全部楼层
感谢高手!!!!!!!!!!!
发表于 2012-11-2 15:23:50 | 显示全部楼层
谢谢分享,好用
发表于 2012-11-6 08:29:54 | 显示全部楼层
我就看看,谢谢分享
发表于 2012-11-6 08:34:52 | 显示全部楼层
zyj0063 发表于 2012-11-1 07:10
文本连接lsp代码:声明:本代码为本人多年收集珍藏,并非原创。

程序结束; 错误: quit / exit abort

退出的时候怎么显示错误
发表于 2012-11-6 18:35:44 | 显示全部楼层
来武影 发表于 2012-11-6 08:34
程序结束; 错误: quit / exit abort

退出的时候怎么显示错误

代码修改如下:
   (defun c:str(/ sset1 ename1 elist1 str1 ename2 elist2 str2 nstr)  
        (setq  sset1 (entsel (strcat "\n选择首文字段:"))
              ename1 (car sset1)
              elist1 (entget ename1)
                str1 (cdr (assoc 1 elist1))
        )
        (redraw ename1 3)
        (setq sset2 T)
        (while
           (setq  sset2 (entsel (strcat "\n选择尾文字段:")))
             (if (null sset2)
               (progn
                 (princ "程序结束")
                 (exit)
               )
             )
           (setq ename2 (car sset2)
                 elist2 (entget ename2)
                   str2 (cdr (assoc 1 elist2))
                   nstr (strcat str1 str2)
           )
           (redraw ename1 4)
           (entmod (append elist1 (list (cons 1 nstr))))
           (command "_erase" ename2 "")
           (setq ename1 (cdr (assoc -1 elist1))
                 elist1 (entget ename1)
                   str1 (cdr (assoc 1 elist1))
           )
        )
        (princ)
     );End Defun
发表于 2013-3-27 20:32:26 | 显示全部楼层
本帖最后由 hnfsf 于 2013-3-27 21:03 编辑

打断那个修改了一下,对72,73码加个判断
(defun c:fh ( / box ent ent2 h i n name num pt pt0 pt10 str str1 str2 tpt)
  (while (and
           (setq pt (cadr (setq name (entsel "\n选择文字于打断点:"))))
           (setq ent (entget (car name)))
           ;(setq tpt 10)
           (if (= 0 (cdr (assoc 72 ent))(cdr (assoc 73 ent)))(setq tpt 10)(setq tpt 11))
           (if (= (cdr (assoc 0 ent)) "TEXT")
             (progn
               (setq str (cdr (assoc 1 ent))
                     pt0 (cdr (assoc tpt 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 0  i 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 tpt (list (car pt0) (- (cadr pt0) (* 1.4 h)))) (assoc tpt ent2) ent2))
             )
             nil
           )
         )
  )
  (princ)
)
发表于 2014-3-18 15:22:59 | 显示全部楼层
要打断文字后文字位置不变就好了。
发表于 2016-4-13 10:10:54 | 显示全部楼层
现在有用到多行文字的打断,参考下,自己编写吧
发表于 2016-4-13 11:18:55 | 显示全部楼层
有点看不懂哦。但还是要学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-17 21:22 , Processed in 0.173917 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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