请问您有lisp写的文字下划线程序么

我想要的功能是选择一个文字后,自动给它加上双下划线,文字改变时,这两个下划线就自动调整长度(下划线距文字的间距以及两条下划线间的距离根据字高计算吧,1:1的字高按3.5计算)!

第1个回答  2013-10-05

单划线的话文字代码(%%U),不知道双划线代码是多少?如果你知道的话,就把这个文字代码替换了即可。

(defun C:MJL ( / &kw i &kw1 %k %k1 ff)
 (setvar "cmdecho" 0)
 (setvar "blipmode" 0)
 (princ "\n请选择文字")
 (setq &kw (ssget '((0 . "TEXT"))));;选择文字
 (if (/= &kw nil)
  (progn
   (setq i 0)
   (repeat (sslength &kw)
    (setq &kw1 (entget (ssname &kw i)))
    (setq i (+ i 1))
    (setq %k (cdr (assoc 1 &kw1)))
    (setq %k1 (substr %k 1 3));;检查文字是不是有下划线
    (if (/= %k1 "%%U")        ;;如果没有的话就加上下划线
     (progn
      (setq %k (strcat "%%U" %k))
      (setq %k (cons 1 %k))
      (setq %k1 (assoc 1 &kw1))
      (setq &kw1 (subst %k %k1 &kw1))
      (entmod &kw1)
     )
    )
   )
  )
 )
 (prin1)
)
(prompt "\n文字加下划线《C:MJL》")
(prin1)

 

追问

这个不是我想要的,我想要就是用line画的线,然后他可以随文字移动和变化长短

追答

你没有用Lisp之前,怎么实现这个功能?如果你不能够做到的话,Lisp也不可能实现。

相似回答