明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: nyistjz

[提问] 判断视口是否最大化

[复制链接]
 楼主| 发表于 2021-12-27 11:33:29 | 显示全部楼层
您这个办法,理论上应该是可以实现的,但依我的水平,不太能写的出来。
呵呵
发表于 2021-12-27 11:34:24 | 显示全部楼层
或者  进入布局1  以后 就提取该布局下的所有视口图元名及其相应的高度值存储起来  然后 用户双击最大化某个视口后   获取当前编辑使用的视口图元名   再获取视口高度    与前存储的值对比   这样不用反应器了  就好判断了  
 楼主| 发表于 2021-12-27 11:41:54 | 显示全部楼层
guosheyang 发表于 2021-12-27 11:34
或者  进入布局1  以后 就提取该布局下的所有视口图元名及其相应的高度值存储起来  然后 用户双击最大化某 ...


我先按您的思路,试试一下,看能不能写出来,感谢您。
发表于 2021-12-27 21:38:09 | 显示全部楼层
本帖最后由 masterlong 于 2021-12-27 21:55 编辑

如果有两个以上视口
倒是有个简单办法
n=(getvar "CVPORT")
(setvar "cvport" 非1非n)
上面这句要用vl-catch-all-apply
m=(getvar "CVPORT")
判断n=m


这个方法有个小问题
如果不是vpmax状态
非1非n的视口需要在屏幕内可见
会不会有影响
要看楼主的程序是怎么写的

按说完全可以用程序控制是否进入vpmax
vpmax本身也肉眼可见
所以楼主的需求感觉有点多余
发表于 2021-12-27 21:41:20 | 显示全部楼层
一个的话
ssget当前布局视口图元
再用guosheyang的求宽高方法
 楼主| 发表于 2021-12-28 09:08:06 | 显示全部楼层
本帖最后由 nyistjz 于 2021-12-28 09:16 编辑
masterlong 发表于 2021-12-27 21:38
如果有两个以上视口
倒是有个简单办法
n=(getvar "CVPORT")

虽然没有看的懂,但还是要感谢您的回复。
我看看,消化一下,试试能不能写成功。

其实我的根本就需求,就是在不需要考虑怎么视口最大化的前提下,能确认目前激活的视口是否为最大化,因为我的有些命令,需要只能在最大化的视口中使用,其它视口情况下无效。

由于本人水平有限,还处于比较初级的阶段,理解上很多时候还是不行的,让望大家见谅。

发表于 2021-12-28 09:24:25 | 显示全部楼层
这不就是程序直接控制vpmax么
(if (and (/= "Model" (getvar "ctab")) (/= 1 (car (car (vports)))))
   (command "vpmax")
)
 楼主| 发表于 2021-12-28 09:59:25 | 显示全部楼层
本帖最后由 nyistjz 于 2021-12-28 11:16 编辑
masterlong 发表于 2021-12-28 09:24
这不就是程序直接控制vpmax么
(if (and (/= "Model" (getvar "ctab")) (/= 1 (car (car (vports)))))
    ...

不是您的这意思。
对于视口的进入,有两种方法,分别是“MS”和“VPMAX”,进入后是不同的两种形式。
我现在的目的,就是想判断是否是VPmax进入后的样子,如果是,我需要运行特定的命令。
其实关键就是怎么判断目前是否处于vpmax后的视口最大化状态。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 14:29 , Processed in 0.347650 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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