明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索

[讨论]如何快速获得当前所有图元的左下角和右上角

  [复制链接]
发表于 2004-5-6 19:40:00 | 显示全部楼层
晕,那你自己早点用 vba 写个不就得了


何必绕这么大的一个圈
 楼主| 发表于 2004-5-6 19:42:00 | 显示全部楼层
是呀,我是想找一个尽量快一点的办法
发表于 2004-5-6 20:51:00 | 显示全部楼层
可能是更快的方法:
先把图形进行范围缩放,这样所有的图形都充满在图形中,然后使用窗口选的方法选择最上面的图形求其范围,再窗口选的方法选择最下面的图形求其范围,就这样再求最左边和最右边的对象的范围,最后就可以得到最大的范围。
这样如果图形中对象非常多的话,则会快很多,因为中间的图形没有进行计算。
 楼主| 发表于 2004-5-6 21:06:00 | 显示全部楼层
要用窗口选的办法选择四个方向的对象才行吧


明总,窗口选的办法如何实现?
发表于 2004-5-6 21:16:00 | 显示全部楼层
目前发现一种最快的方法了: EXTMAX 系统变量 存储图形范围右上角点的值。
EXTMIN 系统变量 存储图形范围左下角点的值。

如果有新的对象绘制到界限之外,则仅当使用ZOOM 命令的“全部”或“范围”选项时,对象才会收缩至新范围内。本系统变量的值表示为当前空间中的世界坐标值。 经过试验,这两个变量储存着就是实际的图形范围。
发表于 2004-5-6 21:20:00 | 显示全部楼层
根据明总的思路写的 (defun c:hh()
(command "zoom" "e")
(command "_.UCS" "V")
(setq CTR (getvar "VIEWCTR"))
(setq SIZE (getvar "VIEWSIZE"))
(setq SCREEN (getvar "SCREENSIZE"))
(setq SCALE (/ (car SCREEN) (cadr SCREEN)))
(setq XSIZE (* SCALE SIZE))
(setq RT (list (+ (car CTR) (/ XSIZE 2)) (+ (cadr CTR) (/ SIZE 2))))
(setq LB (list (- (car CTR) (/ XSIZE 2)) (- (cadr CTR) (/ SIZE 2))))
(command "_.RECTANGLE" RT LB)
(command "_.UCS" "P")
(princ)
) ;;;以前王晓光斑竹写的
 楼主| 发表于 2004-5-6 21:35:00 | 显示全部楼层
多谢各位鼎力襄助
发表于 2004-5-6 22:06:00 | 显示全部楼层
mccad发表于2004-5-6 21:16:00目前发现一种最快的方法了: EXTMAX 系统变量 存储图形范围右上角点的值。EXTMIN 系统变量 存储图形范围左下角点的值。如果有新的对象绘制到界...
还不是实际的图形范围,有点误差.而显是选择全部图形的.
 楼主| 发表于 2004-5-6 22:23:00 | 显示全部楼层
VBA的办法 Public Sub test1()
ThisDrawing.Application.ZoomExtents
pmax = ThisDrawing.GetVariable("EXTMAX")
pmin = ThisDrawing.GetVariable("EXTMIN")
ThisDrawing.SendCommand "_.RECTANG " & pmin(0) & "," & pmin(1) & vbCr & pmax(0) & "," & pmax(1) & vbCr
ThisDrawing.Application.ZoomPrevious
End Sub
不过屏幕会有闪动,效果不是很好
发表于 2004-5-7 08:01:00 | 显示全部楼层
mccad发表于2004-5-6 20:51:00可能是更快的方法:先把图形进行范围缩放,这样所有的图形都充满在图形中,然后使用窗口选的方法选择最上面的图形求其范围,再窗口选的方法选择最下面的图形...

關閉圖層的物件也會在zoom的範圍,你這方法的bug
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 08:41 , Processed in 0.166715 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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