修改單行文本的每行間隔小程序
本帖最后由 作者 于 2003-11-18 11:06:26 编辑這個小程序是用來修改dt打出文字的間隔. 要程序主要是運用move循環方式來做的. 有些地方不夠完善. 望有空的大俠指點指點.
今天修改了點小小的錯誤. 歡迎大家使用. 呵呵:D
;; The program make by BDYCAD
;;DATA: 2003-11-18
;;
(DEFUN C:ted(/ ss id ssl tep n os tow top newp )
(PRINC "\n請選擇單行文本進行間隔修改:")
(SETQ ss (SSGET '((0 . "TEXT"))))
(setq id (getdist "\n輸入每行的距離:"))
(SETQ SSL (sslength ss))(setq n 1)
(setq tep (cdr (assoc 10 (entget (ssname ss 0)))))
(SETQ OS (GETVAR "osmode"))
(SETVAR "osmode" 0)(SETVAR "cmdecho"0)
(SETVAR "PICKSTYLE" 0) (setvar "pickauto" 0)
(command "_.undo" "_group")
(setq top (cdr (assoc 10 (entget (ssname ss n)))))
(command "line" tep top "")
(command "LENGTHEN" "t" id TOP "" )
(repeat (- SSL 1)
(setq tow (ssname ss n))
(setq top (cdr (assoc 10 (entget (ssname ss n)))))
(setq newp (cdr (assoc 11 (entget (entlast)))))
(command "move" (entlast) "" tep newp)
(command "move" tow "" top newp)
(setq tep newp )
(setq n (+ n 1)))
(command "erase" (entlast) "")
(command "_.undo" "_end")(setvar "pickauto" 1)
(SETVAR "OSMODE" OS) (SETVAR "cmdecho" 1)(SETVAR "PICKSTYLE" 1)
(princ))
(princ "程序加載完成. 在命令行輸入 ted 執行.....") 提个建议:
1.最好能分水平和竖直方向,
2.选择文字的先后顺序很重要,不然会出现2楼说的那种情况,应给予提示
另外运行时有时是框选模式,有时是点选模式
没有出错处理代码 三樓提的好. "有时选中的单行文字的顺序会颠倒"
這個原因是因為文字每行的生成順序以颠倒了. 所以程序發生上面所說的情況. 不错不错,鼓励一下楼主:) 现在看以前的回复咋都成QQ图标了哦
页:
[1]