明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: cq4920

[源码] 一键显示视口比例

  [复制链接]
发表于 2022-9-21 15:13:48 | 显示全部楼层
本帖最后由 kucha007 于 2022-9-21 15:23 编辑

删除图层太卡了。改为:图层为空时创建视口比例,不为空时清空图层内的对象(若图层不存在则创建图层)
比例显示在视口左下角,在模型空间时不执行命令。
疑问:当前视口也会显示比例,不知道怎么消除,期待各位大佬的调整。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2022-9-21 19:15:54 | 显示全部楼层
kucha007 发表于 2022-9-21 15:13
删除图层太卡了。改为:图层为空时创建视口比例,不为空时清空图层内的对象(若图层不存在则创建图层)
比 ...

你这个图层删除会卡的问题,原因你最好研究一下!我觉得可能是你图层太多的问题!
然后关于当前视口的也会显示的问题,我在21楼已经告诉你该怎么弄了,也说明了原理,我觉得你可以做到的!

评分

参与人数 1明经币 +1 收起 理由
tfanghui + 1

查看全部评分

回复 支持 1 反对 1

使用道具 举报

发表于 2022-9-21 23:39:00 | 显示全部楼层
本帖最后由 kucha007 于 2022-9-30 09:45 编辑

多谢楼主回复。我又根据自己的思路改了一下:
1-我的图层较多,删除图层容易卡,所以还是维持之前的思路:只清空图层。视口比例图层默认为不打印图层。
----(当前布局中存放视口比例的图层为空时,创建视口的比例。不为空时则清空图层)

2-我加了一些判断,只有当图层、字体样式等不存在时才新建或执行相应的命令。具体见源码
----(例如:新建图层时如果图层存在,则检查图层的颜色和打印状态是否一致,不一致则调整,避免之前存在但颜色和打印状态不对)

3-增加子程序:将非视口图层的视口对象移动到视口图层
----(相当于自动规整视口对象到视口图层,根据自己的情况启用)

4-用了另外一种办法忽略当前视口,并选择当前布局的所有视口。部分lisp节选:
  1. (setq SS (ssget "_x" (list '(0 . "VIEWPORT")(cons 410 (getvar 'ctab));当前布局
  2.                       '(-4 . "<NOT")
  3.                       '(69 . 1);忽略当前视口
  4.                       '(-4 . "NOT>")
  5.                       ))
  6. )


5-如果当前布局不存在视口对象则在命令行打印警告。
6-在模型空间中输入命令同样在命令行打印警告。
7-视口比例大于等于100时,字体大小为20。小于100字体大小为10。位置显示在右下角


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

点评

给力  发表于 2022-9-22 00:32
不会,已经忽略当前视口了。你试一下就知道了。  发表于 2022-9-22 00:28
请问这个是不是不会显示视口外1:1那个比例?  发表于 2022-9-22 00:24
跟楼主的思路一样的。加载以后输入SV。如果布局中有视口,则在右下角显示每个视口的比例。再输入SV清空视口比例。  发表于 2022-9-22 00:12
老大,有没有动画演示一下。  发表于 2022-9-22 00:10

评分

参与人数 1明经币 +1 收起 理由
tfanghui + 1 很给力!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2022-9-30 00:12:39 | 显示全部楼层
kucha007 发表于 2022-9-21 23:39
多谢楼主回复。我又根据自己的思路改了一下:1-我的图层较多,删除图层容易卡,所以还是维持之前的思路:只 ...

能不能不改变视口图层,只为查询视口比例,有些视口我是需要打印视口框的情况就不通用了
发表于 2022-9-30 00:39:37 | 显示全部楼层
KO你 发表于 2022-9-30 00:12
能不能不改变视口图层,只为查询视口比例,有些视口我是需要打印视口框的情况就不通用了

(K:M2VPL "PUB_WINDW")找到这行,删掉或者注释掉就行了
发表于 2022-11-6 08:26:17 | 显示全部楼层
kucha007 发表于 2022-9-21 23:39
多谢楼主回复。我又根据自己的思路改了一下:1-我的图层较多,删除图层容易卡,所以还是维持之前的思路:只 ...

你好,目前只有一个比例值,别人看了误解,以为干么多谢一个数字,我还是想显示比例之前的“1:”内容,请问如何显示?
发表于 2022-11-6 15:46:01 | 显示全部楼层
chenry676 发表于 2022-11-6 08:26
你好,目前只有一个比例值,别人看了误解,以为干么多谢一个数字,我还是想显示比例之前的“1:”内容, ...

我保留在源码里了,你打开lsp找到这两行。上面这行就是你想要的,取消注释,然后再注释掉下面这行(或者删掉)
  1. ;(setq scale (strcat "SC = 1:"(rtos scale 2 0)"" ))
  2. (setq scale (rtos scale 2 0))
发表于 2022-11-6 17:09:23 | 显示全部楼层
kucha007 发表于 2022-11-6 15:46
我保留在源码里了,你打开lsp找到这两行。上面这行就是你想要的,取消注释,然后再注释掉下面这行(或者删 ...

谢谢,请问我想写在如图所示的每个视口的右下角外侧,如何改写?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2022-11-7 14:17:48 | 显示全部楼层
本帖最后由 kucha007 于 2022-11-7 14:18 编辑
chenry676 发表于 2022-11-6 17:09
谢谢,请问我想写在如图所示的每个视口的右下角外侧,如何改写?

上一句控制位置,下一句控制文字(大小、对齐方式等等)。自己改改玩一下吧
  1. (setq PT1 (list (- 5 (car pmax)) (+ 5  (cadr pmin))));插入点在右下角。左移5上移5
  2. (K:NewText "K-视口比例" scale  (if (>= 100  (atoi scale )) 20 10)  0 2 PT1);插入单行文字

发表于 2022-11-7 15:46:49 | 显示全部楼层
谢谢!目前使用发现遇到一个问题,比例不整数的时候,是四舍五入,是否能做到是整数的时候保留整数,不是整数的时候,后面备注提醒(此比例不为整数)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 05:25 , Processed in 0.158583 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表