写好了两个程序,一个是加下划线,另个是删除下划线,请试用...

- [FONT=courier new]
- ;|
- 命令:txt_setuline
-
- 功能:给选取的TEXT文字加下滑线(过滤掉前后空格)
-
- 说明:1、下划线到文字底距离是字高的八分之一
- 2、下划线所在层是LAYERDEF.DAT中定义的“公共文字”对应的英文层名。
- 程序配合XDRX_API build 20630+版本使用,朋友们可以把这个LISP拷贝到“晓东工具箱”的安装的
- LISP目录,自己加入到菜单里面就可以非常方便的使用了。
- 关于程序的建议请到“晓东CAD空间-编程申请”论坛
- [url]http://www.xdcad.net/forum留言[/url]
- |;
- (defun c:txt_setuline (/ ss e ang basept box thigh lyr)
- (xdrx_begin)
- (xdrx_ucson)
- (setq lyr (xdrx_getlyrname "公共文字"))
- (while (progn
- (prompt "\n请选取要加下划线的文字<退出>:")
- (setq ss (ssget '((0 . "text"))))
- )
- (xdrx_setsstodb ss 0)
- (while (setq e (xdrx_getentdata 0))
- (setq ang (xdrx_getentdxf 50)
- basept (xdrx_getentdxf 10)
- thigh (xdrx_getentdxf 40)
- )
- (if (not (equal ang 0.0 1e-5))
- (progn
- (command "._rotate" e "" basept (angtos (- ang)))
- (setq box (xdrx_entity_box e)
- box (apply
- 'xdrx_pointsoffset
- (cons (/ thigh 8) box)
- )
- box (apply
- 'xdrx_pointsrotate
- (cons basept (cons ang box))
- )
- )
- (command "._rotate" e "" basept (angtos ang))
- )
- (progn
- (setq box (xdrx_entity_box e)
- box (apply
- 'xdrx_pointsoffset
- (cons (/ thigh 8) box)
- )
- )
- )
- )
- (xdrx_line1 (car box) (cadr box))
- (xdrx_setenttodb (entlast))
- (xdrx_modent 8 lyr 62 9)
- )
- )
- (xdrx_ucsoff)
- (xdrx_end)
- (princ)
- )
- ;|
- 命令:txt_ruline
-
- 功能:删除选择的文字下划线
- 程序配合XDRX_API build 20630+版本使用,朋友们可以把这个LISP拷贝到“晓东工具箱”的安装的
- LISP目录,自己加入到菜单里面就可以非常方便的使用了。
- 关于程序的建议请到“晓东CAD空间-编程申请”论坛
- [url]http://www.xdcad.net/forum留言[/url]
-
- |;
- (defun c:txt_ruline (/ ss lyr)
- (xdrx_begin)
- (setq lyr (xdrx_getlyrname "公共文字"))
- (prompt "\n请选取要删除的文字下划线<所有>:")
- (if (not (setq ss (ssget (list '(0 . "line") '(62 . 9) (cons 8 lyr
- )
- )
- )
- )
- )
- (setq ss (ssget "x" (list '(0 . "line") '(62 . 9) (cons 8 lyr))))
- )
- (command "._erase" ss "")
- (xdrx_end)
- (princ)
- )
- [/FONT]
|