[LISP程序]:给文字加下划线的小工具
一个给文字加下划线的lisp.供大家参考使用。谢谢!;;;程序名: UL
;;;用途:给多行文本、单行文本增减下划线.
;;;日期:2009/03/04
;;;作者:xiatian3639@sina.com
;;;-----------------------------增减文字下划线-----------------------------
(Defun ErrorUL(msg)
(prin1)
)
(Defun C:UL(/ Textsel L N UlTxt UlEntget UlTxtCon UlTxtTyp UlFlag UlNewTxt)
(setvar "cmdecho" 0)
(setq *error* ErrorUL)
(princ "\n选择需增减下划线文字:")
(setq Textsel (ssget '((-4 . "<OR")
(0 . "TEXT")
(0 . "MTEXT")
(-4 . "OR>"))
))
(if (/= Textsel nil)
(progn
(setq L0)
(setq N (sslength Textsel))
(while (< L N)
(setq UlTxt (ssname TextSel L))
(setq UlEntget (entget Ultxt))
(setq UlTxtCon (cdr (assoc 1 UlEntget)))
(setq UlTxtTyp (cdr (assoc 0 UlEntget)))
(if (= UltxtTyp "TEXT")
(progn
(setq UlFlag (substr UlTxtCon 1 3))
(if (= UlFlag "%%U")
(setq UlNewTxt (substr UlTxtCon 4))
(setq UlNewTxt (strcat "%%U" UlTxtCon))
)
)
(progn
(setq UlFlag (substr UlTxtCon 1 3))
(if (= UlFlag "{\\L")
(setq UlNewTxt (substr UlTxtCon 4 (- (strlen UlTxtCon) 4)))
(setq UlNewTxt (strcat "{\\L" UlTxtCon "}"))
)
)
)
(setq UlEntget (subst (cons 1 UlNewTxt) (assoc 1 UlEntget) UlEntget))
(entmod UlEntget)
(setq L (+ L 1))
)
)
(princ "\n未处理任何文字对象!")
)
(prin1)
) 看看 有点意思啊 有点意思啊 谢谢,试用了,感觉线有点短,应该调整哪里? 不错,实用小东东 APPLOAD 已成功加载 增减文字下划线.lsp。
命令: ; 错误: 输入的点对中含有多余的 cdrs 加图名线示范 也可以使用以下程序(文字带下划线),见附件xswzcs.rar 有点意思啊 好像不错,是不是公开的源码 麻烦楼主做一个文字加上划线的,且上划线与文字距离2-3mm,有时要用到。 同7楼的一样,不知道是什么原因 不错啊,好东西,。。学习一下。。 谢谢各位楼主了
页:
[1]
2