呵呵 或者进入布局1以后 就提取该布局下的所有视口图元名及其相应的高度值存储起来然后 用户双击最大化某个视口后 获取当前编辑使用的视口图元名 再获取视口高度 与前存储的值对比 这样不用反应器了就好判断了 guosheyang 发表于 2021-12-27 11:34
或者进入布局1以后 就提取该布局下的所有视口图元名及其相应的高度值存储起来然后 用户双击最大化某 ...
我先按您的思路,试试一下,看能不能写出来,感谢您。 本帖最后由 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本身也肉眼可见
所以楼主的需求感觉有点多余
一个的话
ssget当前布局视口图元
再用guosheyang的求宽高方法 本帖最后由 nyistjz 于 2021-12-28 09:16 编辑
masterlong 发表于 2021-12-27 21:38
如果有两个以上视口
倒是有个简单办法
n=(getvar "CVPORT")
虽然没有看的懂,但还是要感谢您的回复。
我看看,消化一下,试试能不能写成功。
其实我的根本就需求,就是在不需要考虑怎么视口最大化的前提下,能确认目前激活的视口是否为最大化,因为我的有些命令,需要只能在最大化的视口中使用,其它视口情况下无效。
由于本人水平有限,还处于比较初级的阶段,理解上很多时候还是不行的,让望大家见谅。
这不就是程序直接控制vpmax么
(if (and (/= "Model" (getvar "ctab")) (/= 1 (car (car (vports)))))
(command "vpmax")
)
本帖最后由 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后的视口最大化状态。
页:
1
[2]