muck 发表于 2022-7-6 09:12:50

在VBA中缩放窗口点

如何在VBA中创建缩放窗口。在这种情况下,我想选择
屏幕上要缩放窗口的两点。我想参加五月份的vba项目
存储拾取的点以备将来使用。
非常感谢。

muck 发表于 2022-7-6 09:27:08

我试过这个代码,但我在命令发送方面有问题
我隐藏
pt1=本图纸。公用事业GetPoint(,vbCr和“选择点1:”)
pt2=本图纸。公用事业GetPoint(,vbCr和“选择点2:”)
'此绘图。窗口状态
此图纸。SendCommand(“zoom”&vbCr&“w”&pt1&pt2)
我显示

Lee Mac 发表于 2022-7-6 09:40:39

我对VBA一无所知,但我知道在LISP中有一个ZoomWindow方法-可能适用于VBA。。。
 
这是我的猜测。。。我从来没有用VBA写过任何东西。。。
 
此图纸。ZoomWindow(pt1、pt2)
 

John1951 发表于 2022-7-6 09:49:48

此代码适用于AutoCad 2007
 
pt1=本图纸。公用事业GetPoint(,vbCr和“选择点1:”)
pt2=本图纸。公用事业GetPoint(,vbCr和“选择点2:”)
y1$=pt1(0):x1$=pt1(1)
y2$=pt2(0):x2$=pt2(1)
此图纸。SendCommand“zoom”&vbCr&“window”&vbCr&y1$&“,”&x1$&vbCr&y2$&“,”&x2$&vbCr
 
约翰

dbroada 发表于 2022-7-6 10:03:18

啊,一个老thead!
 
为了让李放心,这是可行的。。。。。
 
Public Sub aTest()
Dim myPoint1 As Variant
Dim myPoint2 As Variant
myPoint1 = ThisDrawing.Utility.GetPoint(, "BL Corner")
myPoint2 = ThisDrawing.Utility.GetPoint(, "TR Corner")
ZoomWindow myPoint1, myPoint2
End Sub

John1951 发表于 2022-7-6 10:24:02

你好
我在Autocad中尝试编写zoom命令事件代码时发现了此线程。我想在图形上重新绘制标签,与图形范围相比,文本大小和位置取决于显示范围。这是事件驱动的代码(尚未完成)
 
#
私有子AcadDocument\u EndCommand(ByVal CommandName作为字符串)
'缩放
如果StrComp(CommandName,“Zoom”,vbTextCompare)=0,则
'获取显示范围
'在WCS中查看中心
ctr=此图纸。GetVariable(“VIEWCTR”)
'转换为DCS
ctr=此图纸。公用事业平移坐标(ctr、acWorld、acDisplayDCS、0)
'DCS中视口的高度
h=本图纸。GetVariable(“VIEWSIZE”)
minp=ctr:maxp=ctr
'计算DCS中视口的宽度
vph=此图纸。ActiveViewport。身高
vpw=此图纸。ActiveViewport。宽度
w=vpw*h/vph
'计算DCS中的边界视图边界
minp(0)=ctr(0)-w/2
maxp(0)=ctr(0)+w/2
minp(1)=ctr(1)-h/2
maxp(1)=ctr(1)+h/2
“证明这些点确实是我们正在寻找的
minp=此图纸。公用事业平移坐标(minp、acDisplayDCS、acWorld、0)
maxp=此图纸。公用事业平移坐标(maxp、acDisplayDCS、acWorld、0)
此图纸。模型空间。AddLine minp、maxp
MsgBox(“缩放命令已完成”)
如果结束
末端接头
#
 
当使用SendCommand进行缩放时,事件例程工作;当使用ZoomWindow时,事件例程不被调用,尽管会出现缩放窗口。我想摆脱SendCommand。
 
非常感谢。
约翰
页: [1]
查看完整版本: 在VBA中缩放窗口点