绘制文字矢量
;;;函数名称:cs-GrText;;;函数功能:显示文字矢量
;;;调用方法:(cs-GrText lst)
;;;参数说明:lst为nil时,如(cs-GrText ?),显示使用方法
;;; lst为表时,如(cs-GrText (list point str1 str2 str3 ...))
(defun cs-GrText(lst / A ASC OSTR PT SCL STR VEC XCO YCO)
(defun cs-get-txt(filename / FILE OUT TEMP)
(if (setq filename (findfile filename))
(progn
(setq out '())
(setq file (open filename "r"))
(while (setq temp (read-line file))
(setq out (cons temp out))
)
(close file)
(setq out (reverse out))
)
)
)
(or *cszk*
(and (princ "\n正在初始化字库")
(setq *cszk* (mapcar 'read (CS-GET-TXT "hztxt.txt")))
(princ "\r初始化字库成功\n")
)
)
(if lst
(progn
(setq pt(car lst)
str (apply 'strcat (cons (cadr lst) (mapcar '(lambda (x) (strcat "\n" x)) (cddr lst))))
)
(setq scl (/ (getvar 'viewsize) (cadr (getvar 'screensize)))
scl (* 0.12 scl)
pt(trans pt 1 2)
)
(if (/= str (car *cs_strvec*))
(progn
(setq xco0
yco0
ostr str)
(while (> (strlen str) 0)
(cond
((member (substr str 1 3) '("%%d" "%%D"))
(setq asc "%%d"
str (substr str 4))
)
((member (substr str 1 3) '("%%c" "%%C"))
(setq asc "%%c"
str (substr str 4))
)
((member (substr str 1 3) '("%%p" "%%P"))
(setq asc "%%p"
str (substr str 4))
)
((> (ascii (substr str 1 1)) 126)
(setq asc (substr str 1 2)
str (substr str 3)
)
)
(t
(setq asc (substr str 1 1)
str (substr str 2)
)
)
)
(cond
((= " " asc)
(setq xco (+ xco 127.0))
)
((= "\t" asc)
(setq xco (+ xco 16000.0))
)
((= "\n" asc)
(setq xco 0
yco (- yco 180.0)
)
)
((setq vec
(cons
(mapcar
'(lambda (a)
(list (+ (car a) xco) (+ (cadr a) yco))
)
(cdr (assoc asc *cszk*))
)
vec
)
)
(setq xco (+ xco 127.0))
)
)
)
(setq vec (apply 'append vec))
(setq *cs_strvec* (append (list ostr 2) vec))
)
)
(grvecs (cdr *cs_strvec*)
(list
(list scl 0.0 0.0 (+ (car pt) (* 50.0 scl)))
(list 0.0 scl 0.0 (+ (cadr pt) (* -200.0 scl)))
(list 0.0 0.0 scl 0.0)
'(0.0 0.0 0.0 1.0)
)
)
)
(xslist '("(cs-grtext (list pt str))"
"pt 参考点"
"str 文本")
)
)
(princ)
);;;以下为示例程序
(defun c:cstest(/ pt)
(while (member (car (setq pt (grread t 4 2))) '(2 25 5))
(if (= 5 (car pt))
(progn
(redraw)
(cs-grtext (list (cadr pt) "测试信息提示" "选择实体" "点击鼠标左键退出"))
)
)
)
(redraw)
(princ)
)说明,字库文件须放在acad的搜索路径中
ynhh 发表于 2020-12-25 11:46
原来是在屏幕上显示文字
不知能不能有空画图应用提示之类的实例?
谢谢
测试成功,对啊,不怎么画图的时候怎么运用~ 大佬 这个程序能不能和entsel或者ssget结合呢,比如说我选择对象的时候 就这样提示,而不是命令行提示选择对象 原来是在屏幕上显示文字
不知能不能有空画图应用提示之类的实例?
谢谢 楼主:函数xslist没有定义 USER2128 发表于 2016-5-17 13:55 static/image/common/back.gif
楼主:函数xslist没有定义
(defun xslist (lst / )
(mapcar '(lambda(x)
(princ "\n")
(vl-princ1-to-string x)
)
lst)
(princ)
) 应用???? 本帖最后由 ps122hb 于 2016-5-23 12:13 编辑
好像没反应,单行多行都试了
没看出来有什么反应啊 测试成功了,很好用,必须吧字库群文件放到搜索路径内才能显示 上个图看看就好了。
页:
[1]
2