sz961 发表于 2002-8-14 13:51:55

[LISP程序]:我的LSP程式,很好用的。

; 创作说明 文字排版程式。对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)
)

hulinong 发表于 2002-8-31 08:58:00

請問這是什么功能?

xzg_hello 发表于 2002-9-19 17:15:22

我要好好参考一下

nt8011 发表于 2002-10-12 21:34:56

我也用用看

lucy 发表于 2002-10-16 11:38:49

请问sz961此lisp程序的功能是什么,试用了一下只有第一步能用,以后cad就不认命令ts了,原因何在,请指教!谢谢!

sz961 发表于 2002-12-5 18:18:33

文字排版程式。对DTXT有用!文字对齐及行间距设定.对作表格很有用(如图纸目录)
lucy 你要把它保存成LISP文件.以后每次就可以调用了.

ligee 发表于 2003-5-17 19:43:48

试用一下,不知排版功能有多强?

li809 发表于 2005-2-17 23:45:05

大家用过了,觉得如何

hjmhjm 发表于 2005-8-10 23:09:10

该命令ssget '((0 . "text"))可以只选择单行文本,其他图元均不选,版主可以采用并改进程序.

wym01lu 发表于 2005-8-12 19:18:28

我也要来呀

1028882406@qq.c 发表于 2017-4-26 00:22:31

谢谢楼主,支持下

1049955085ssd 发表于 2018-4-27 15:57:06

你好,能帮我这一个小程序吗

xxpotential 发表于 2018-5-1 20:06:17

好东西{:1_9:}{:1_9:}

sunkiller 发表于 2025-12-27 10:52:41

谢谢楼主,支持下{:1_1:}{:1_1:}
页: [1]
查看完整版本: [LISP程序]:我的LSP文字排版程式,很好用的。