马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - ; 创作说明 文字排版程式。对DTXT有用!
- ;此程序由seaon编写!
- ;seaon@eyou.com
- (defun c:Ts (/ pp2 startpts ss l ll fal th pt1 pty);start1
- (if (not (setq SS (ssget "i")))
- (progn
- (prompt "选择文字实体。\n")
- (setq SS (ssget))
- )
- )
- (if (ssname ss 0)
- (if (/= (cdr (assoc 0 (entget (ssname ss 0)))) "TEXT")
- (progn
- (alert " 所选实体中并非都是文字.ho-o! ")
- (quit)
- )))
- (COMMAND "UNDO" "MARK")
- (command "ucs" "w" )
- (setvar "texteval" 1)(setq oldos (getvar "osmode"))
- (setvar "osmode" 0)
- (setq startpts (getpoint "输入起点位置:"))
- (print)
- (if (= nil startpts);start2
- (setq startpts (cdr (assoc 10 (entget (ssname ss 0)))))
- );end2
- (setq th (cdr (assoc 40 (entget (ssname ss 0)) )))
- (setq startpts (list (car startpts) (- (car (cdr startpts)) (/ th 2))))
- (if (= nil r )(setq r 0.67) (setq r (/ r (cdr (assoc 40 (entget (ssname ss 0)))) )))
- (setq rr (getreal (strcat "输入行间距与字高的比例<" (rtos r 2 2) ">:")))
- (if (/= nil rr)(setq r rr))
- (if (or (= nil r) (= r 0.67))
- (setq r (* 0.67 (cdr (assoc 40 (entget (ssname ss 0)))) ))
- (setq r (* r (cdr (assoc 40 (entget (ssname ss 0))))))
- )
- (setq l (sslength ss))
- (setq ii 0
- ooo t
- highy nil highent nil)
- (setq endss (ssadd))
- (repeat l
- (repeat l
- (if (ssname ss ii)
- (setq en (ssname ss ii))(setq ooo Nil)
- )
- (if (ssname ss ii)
- (if (/= (cdr (assoc 0 (entget (ssname ss ii)))) "TEXT")
- (progn
- (alert " 所选实体中并非都是文字.ho-o! ")
- (quit)
- )))
- (if (and ooo (= (cdr (assoc 0 (entget (ssname ss ii)))) "TEXT"))
- (progn
- (setq pt1 (car (cdr(cdr (assoc 10 (entget en))))))
- (if (> pt1 highy);start5
- (progn;start6
- (setq highy pt1)
- (setq highent en)
- ));end65
- ))
- (setq ii (1+ ii)
- ooo t
- )
- );end repeat1
- (setq ii 0 ooo t en nil)
- (ssdel highent ss)
- (ssadd highent endss)
- (setq highy nil highent nil)
- );end repeat2
- (setq i 0)
- (setq ll (sslength endss))
- (repeat ll
- (setq enn (ssname endss i))
- (setq pp2 (cdr (assoc 10 (entget enn))))
- (command "move" enn "" pp2 startpts)
- (setq startpts (list (car startpts) (- (car (cdr startpts)) th r)))
- (setq i (1+ i))
- );end3 1
- (command "ucs" "prev""")
- (setvar "osmode" oldos)
- )
|