kucha007
发表于 2022-9-21 15:13:48
本帖最后由 kucha007 于 2022-9-21 15:23 编辑
删除图层太卡了。改为:图层为空时创建视口比例,不为空时清空图层内的对象(若图层不存在则创建图层)
比例显示在视口左下角,在模型空间时不执行命令。
疑问:当前视口也会显示比例,不知道怎么消除,期待各位大佬的调整。
cq4920
发表于 2022-9-21 19:15:54
kucha007 发表于 2022-9-21 15:13
删除图层太卡了。改为:图层为空时创建视口比例,不为空时清空图层内的对象(若图层不存在则创建图层)
比 ...
你这个图层删除会卡的问题,原因你最好研究一下!我觉得可能是你图层太多的问题!
然后关于当前视口的也会显示的问题,我在21楼已经告诉你该怎么弄了,也说明了原理,我觉得你可以做到的!
kucha007
发表于 2022-9-21 23:39:00
本帖最后由 kucha007 于 2022-9-30 09:45 编辑
多谢楼主回复。我又根据自己的思路改了一下:1-我的图层较多,删除图层容易卡,所以还是维持之前的思路:只清空图层。视口比例图层默认为不打印图层。
----(当前布局中存放视口比例的图层为空时,创建视口的比例。不为空时则清空图层)
2-我加了一些判断,只有当图层、字体样式等不存在时才新建或执行相应的命令。具体见源码
----(例如:新建图层时如果图层存在,则检查图层的颜色和打印状态是否一致,不一致则调整,避免之前存在但颜色和打印状态不对)
3-增加子程序:将非视口图层的视口对象移动到视口图层
----(相当于自动规整视口对象到视口图层,根据自己的情况启用)
4-用了另外一种办法忽略当前视口,并选择当前布局的所有视口。部分lisp节选:
(setq SS (ssget "_x" (list '(0 . "VIEWPORT")(cons 410 (getvar 'ctab));当前布局
'(-4 . "<NOT")
'(69 . 1);忽略当前视口
'(-4 . "NOT>")
))
)
5-如果当前布局不存在视口对象则在命令行打印警告。
6-在模型空间中输入命令同样在命令行打印警告。
7-视口比例大于等于100时,字体大小为20。小于100字体大小为10。位置显示在右下角
KO你
发表于 2022-9-30 00:12:39
kucha007 发表于 2022-9-21 23:39
多谢楼主回复。我又根据自己的思路改了一下:1-我的图层较多,删除图层容易卡,所以还是维持之前的思路:只 ...
能不能不改变视口图层,只为查询视口比例,有些视口我是需要打印视口框的情况就不通用了
kucha007
发表于 2022-9-30 00:39:37
KO你 发表于 2022-9-30 00:12
能不能不改变视口图层,只为查询视口比例,有些视口我是需要打印视口框的情况就不通用了
(K:M2VPL "PUB_WINDW")找到这行,删掉或者注释掉就行了
chenry676
发表于 2022-11-6 08:26:17
kucha007 发表于 2022-9-21 23:39
多谢楼主回复。我又根据自己的思路改了一下:1-我的图层较多,删除图层容易卡,所以还是维持之前的思路:只 ...
你好,目前只有一个比例值,别人看了误解,以为干么多谢一个数字,我还是想显示比例之前的“1:”内容,请问如何显示?
kucha007
发表于 2022-11-6 15:46:01
chenry676 发表于 2022-11-6 08:26
你好,目前只有一个比例值,别人看了误解,以为干么多谢一个数字,我还是想显示比例之前的“1:”内容, ...
我保留在源码里了,你打开lsp找到这两行。上面这行就是你想要的,取消注释,然后再注释掉下面这行(或者删掉)
;(setq scale (strcat "SC = 1:"(rtos scale 2 0)"" ))
(setq scale (rtos scale 2 0))
chenry676
发表于 2022-11-6 17:09:23
kucha007 发表于 2022-11-6 15:46
我保留在源码里了,你打开lsp找到这两行。上面这行就是你想要的,取消注释,然后再注释掉下面这行(或者删 ...
谢谢,请问我想写在如图所示的每个视口的右下角外侧,如何改写?
kucha007
发表于 2022-11-7 14:17:48
本帖最后由 kucha007 于 2022-11-7 14:18 编辑
chenry676 发表于 2022-11-6 17:09
谢谢,请问我想写在如图所示的每个视口的右下角外侧,如何改写?
上一句控制位置,下一句控制文字(大小、对齐方式等等)。自己改改玩一下吧
(setq PT1 (list (- 5 (car pmax)) (+ 5(cadr pmin))));插入点在右下角。左移5上移5
(K:NewText "K-视口比例" scale(if (>= 100(atoi scale )) 20 10)0 2 PT1);插入单行文字
chenry676
发表于 2022-11-7 15:46:49
谢谢!目前使用发现遇到一个问题,比例不整数的时候,是四舍五入,是否能做到是整数的时候保留整数,不是整数的时候,后面备注提醒(此比例不为整数)