函数: 屏幕动态显示信息 动态信息查询---重温经典学习代码
本帖最后由 wzg356 于 2023-12-23 17:15 编辑本站 有李麦可写的,套路太深 1000多行--还不支持中文
这里发一个简单的---完整的在 下载文件 一楼提醒的变量名已校核
完整函数在下载文件,里面包含动态信息查询---重写
下面有适用范例
;屏幕动态显示指定信息displayinfo
;示例1(displayinfo '("信息第1行""信息第2行"))
;示例2(displayinfo "信息第1行\n信息第2行")
;示例3(displayinfo (list 555 666))
(defun displayinfo(strs / p e1e2)
(while (not(or(member(car p)'(3 25))(member p '((2 13)(2 32)))))
;左右键或回车结束
(setq p(grread t 8))
(mapcar 'entdel e1e2)
(if(= (car p) 5)(setq e1e2(display00(cadr p) strs)))
)
(cond((=(car p) 3)"点击了左键"));返回举例
)
;例显示动态坐标(displayXYZ)
(defun displayXYZ( / p e1e2)
(while (not(or(member(car p)'(3 25))(member p '((2 13)(2 32)))))
(setq p(grread t 8))
(mapcar 'entdel e1e2)
(if(= (car p) 5)
(setq e1e2(display00(cadr p)
(mapcar 'strcat' ("X=" "Y=" "Z=")
(mapcar'(lambda(x)(rtos x 2 2))(cadr p))
)
))
)
)
)
display00里面可以取消底框,直接启用用多行文字填充背景,7楼有多行文字填充背景entmakex组码
(setq e(entmakemtext p hzt txsty strs))中这个txsty改下才能运行吧
非常感谢大神分享有趣的源码 谢谢分享 大佬又在默默发新作了,感谢热心分享 请教下,用grread函数,生成了一个文字,然后定义了个错误函数,如果错误就删掉这个文字。运行命令后,按esc,正常应该能删掉这个文字,如果不动鼠标没问题,移动着鼠标点取消的时候就删不掉,能解决吗?如图所示
可以取消底框
直接启用用多行文字填充背景
(entmakex (list
'(0 . "MTEXT")'(100 . "AcDbEntity")'(100 . "AcDbMText")
'(7 . "STANDARD");样式
'(62 . 250);文字颜色
(cons 10 p);点p
(cons 40 hzt);字高
(cons 1 strs);内容
'(90 . 1);使用填充背景
'(63 . 9);背景颜色
'(45 . 1.5);超出宽度比例
));生成文字 本帖最后由 wzg356 于 2023-12-23 17:18 编辑
sandyvs 发表于 2023-12-20 19:47
请教下,用grread函数,生成了一个文字,然后定义了个错误函数,如果错误就删掉这个文字。运行命令后,按es ...
一般地循环执行时(setq e(entmakex ...))....(entsel e)===严密成对出现
如循环中间如有其他动作没有(setq e(entmakex ...))
有可能出现(setq e(entmakex ...))(entsel e)(entsel e),e又重新生成了
我原贴就是利用(entsel e)(entsel e)重生文字盖在底框上
为避免这种情况,尽量检查好代码,或这样(setq e(entmakex ...))...(if e(progn(entsel e)(setq e nil)))
wzg356 发表于 2023-12-23 17:07
一般地循环执行时(setq e(entmakex ...))....(entsel e)===严密成对出现
如循环中间如有其他动作没有(se ...
不是这个问题,出现删不掉的情况时,会提示错误处理函数出错,但如果用空格退出grread并执行同样的错误处理函数,就不会有问题,所以我研究了许久,最终写个arx,在进行grread时把esc替换成空格,结束时再恢复,才得以解决。如果不用arx,只能把生成的文字选择集记录成全局变量,每次执行命令时检查这个选择集是否还存在,如果存在则删除,也基本可解决。 本帖最后由 sandyvs 于 2023-12-23 21:32 编辑
小菜123 发表于 2023-12-23 20:06
不是这个问题,出现删不掉的情况时,会提示错误处理函数出错,但如果用空格退出grread并执行同样的错误处 ...
是不是entdel函数的问题,我以为它是删除图元呢,原来还可以恢复,我用erase删除,好像就没问题了
页:
[1]
2