VB程序中如何调用用ZoomExtents 事件?
<p>使用GetObject 函数得到当前的 AutoCAD Application 对象后,无法对当前文档缩放。</p><p>执行 acadDoc.ZoomExtents时报错,各位指点。</p><p>代码如下:</p><p>===============================================<br/> Dim AcadApp As Object <br/> Dim acadDoc As Object</p><p> Set AcadApp = GetObject(, "AutoCAD.Application")<br/> If Err Then '如果没有一个AutoCAD副本在运行<br/> Err.Clear<br/> Set AcadApp = CreateObject("AutoCAD.Application")<br/> AcadApp.Visible = False '启动一个AutoCAD副本并设为不可见 <br/> End If</p><p> Set acadDoc = AcadApp.ActiveDocument<br/> acadDoc.Open "C:\000.dwg"</p><p>'=============================================================<br/> ' 按图中实体的最大范围缩放<br/> acadDoc.ZoomExtents</p> Dim App As AcadApplication<br/> App.Application.ZoomExtents<br/> App.ZoomExtents<br/> <p>版主辛苦了,五一没有假期呢啊?</p><p>你的代码是在vba里面使用的吧?</p><p>我是在VB调用CAD的application啊。</p><p>那样写不行。</p> <p>唉.这个好简单啊..稍微看下帮助就明白了...</p><p>dim cadApp as AcadApplication或者 DIM cadapp as object</p><p>Set cadApp = CreateObject("AutoCAD.Application.16")</p><p>cadApp.ZoomExtents</p> <p><strong><font face="Verdana" color="#61b713">votasee,我最开始的想法和你一样,但是这样写代码也是执行不过去。报错!</font></strong></p><p></p> <p>晕.这怎么会事..你是VB6开发还是其它什么的..我用的VB6没问题的.库文件当然也是要引用的.最重要的就是连接时的对象管理了.</p><p>你要随时测试.用DEBUG.PRINT来了解对象存在于否.</p><p>看你上面的代码.不知道为什么要将Visible设为False.按理应该是TRUE的.</p><p><strong>另外这二句.会有问题的</strong></p><p><strong>Set acadDoc = AcadApp.ActiveDocument<br/> acadDoc.Open "C:\000.dwg"</strong></p><p>你这个acaddoc是一个文档对象.它不能用OPEN方法来打开 DWG文件的.</p><p>必需要使用<strong>aCADAPP对象.文档对象的.方法</strong>才能打开..这是里面规定的.</p><p>你应该这个写 <br/> <font color="#ff0000">Set acadDoc = <strong>acadApp.Documents</strong>.Open("C:\000.dwg")</font></p><p>才能打开DWG文件.至于说</p><p>acadApp.ZoomExtents这个肯定是对的.可能是其它地方出错了.照你的代码是错的acaddoc是没有ZoomExtents方法的.</p><p>只有ACADAPP对象才有..也就是CAD系统本身的.文档对象没有这个方法.</p> <p>很奇怪啊,按照你说的改了。我的代码执行到 AcadApp.ZoomExtents 时报错,提示“对象不支持该属性或方法”!</p><p>我是vb6 调用的是acad r14,以下为完整代码</p><p>Private Sub conntractCAD()</p><p> On Error Resume Next<br/> Dim ent As Object<br/> Set AcadApp = GetObject(, "AutoCAD.Application")<br/> If Err Then '如果没有一个AutoCAD副本在运行<br/> Err.Clear<br/> Set AcadApp = CreateObject("AutoCAD.Application")<br/> AcadApp.Visible = True</p><p> End If<br/>End Sub</p><p>Private Sub Form_Load()<br/> Dim moSpace As Object<br/> Dim paSpace As Object<br/> '调用CAD进程<br/> conntractCAD<br/> '连接CAD<br/> Set acadDoc = AcadApp.ActiveDocument<br/> acadDoc.Open "C:\1\000.dwg"<br/> <br/> ' 按图中实体的最大范围缩放<br/> AcadApp.ZoomExtents</p><p>end sub</p> <p>我晕了.我不知道R14版本,是不是支持这个ZoomEXTENTS</p><p>但是.<strong>我的16版本.</strong>明确告诉你啊..这二句不对.</p><p> Set acadDoc = AcadApp.ActiveDocument<br/> acadDoc.Open "C:\1\000.dwg"</p><p>不能这样用..</p><p>R16,你得用下面的语句才正确:</p><p>Set acadDoc = acadApp.Documents.Open("C:\1\000.dwg")</p><p>如果你还出错..我也不知了.</p> <p>谢谢<strong><font face="Verdana" color="#61b713">votasee 了!</font></strong></p><p><font face="Verdana" color="#61b713"><strong>R14里面,打开文档的代码没问题。</strong><font color="#000000"> </font></font></p><p><font face="Verdana" color="#61b713"><font color="#000000">Set acadDoc = AcadApp.ActiveDocument<br/>acadDoc.Open "C:\1\000.dwg"</font></font></p><p><font face="Verdana">但是ZoomEXTENTS不知道怎么使用,即使是不支持这个方法。</font></p><p><font face="Verdana">也应该有其他可以实现这个功能的代码,但是现在没有R14的帮助文件啊,都是明经通道2004版的。</font></p><p><font face="Verdana"></font></p><p><font face="Verdana"></font></p> suntenlin 发表于 2010-5-7 08:17 static/image/common/back.gif谢谢votasee 了!R14里面,打开文档的代码没问题。 Set acadDoc = AcadApp.ActiveDocumentacadDoc.Op ...
用sendkeys ".zoom" ''" "e"
页:
[1]
2