后期绑定中用ActiveLayer对象出错
本帖最后由 作者 于 2008-12-10 23:09:17 编辑 <br /><br /> <p>请教</p><p>Dim AcadApp, AcadDoc, gridLayer As Object</p><p> On Error Resume Next<br/> AcadApp = GetObject(, "AutoCAD.Application")<br/> If Err.Number <> 0 Then<br/> Err.Clear()<br/> AcadApp = CreateObject("AutoCAD.Application")<br/> If Err.Number <> 0 Then End<br/> End If<br/> AcadApp.Visible = True<br/> AcadDoc = AcadApp.ActiveDocument<br/> gridLayer = AcadDoc.Layers.Add("网格") ’在CAD里这个层已经建出来了<br/> AcadDoc.ActiveLayer = gridLayer ‘这儿出错了 </p><p>错在那儿了呢</p><p>AcadDoc.ActiveLayer.color = 5 也是对的就不是能给activelayer对象赋值</p> 注意当前有没有文档,如果没有打开的文档,就会出错我。 本帖最后由 作者 于 2008-12-10 22:44:26 编辑 <br /><br /> mccad发表于2008-12-10 22:22:00static/image/common/back.gif注意当前有没有文档,如果没有打开的文档,就会出错我。<p>主要是</p><p>gridLayer = AcadDoc.Layers.Add("网格") 这个没问题 声明过了的Private Shared gridLayer As Object</p><p>AcadDoc.ActiveLayer = gridLayer 这一行总是出错 说什么找不到成员</p><p>我改了一下问题</p> 在出错行前加上 SET 试一下。 <p>谢谢</p><p>vb.net好像不以用set </p><p>加上后 vs2008会自动把set删掉</p> <p>gridLayer = AcadDoc.Layers.Add("网格") </p><p>之前有没有确认过该名称的图层是否存在,如果存在,则会出错,出错后,gridLayer就不能赋值,也就会导致后续调用该变量的程序出错。</p> hustlei发表于2008-12-11 8:27:00static/image/common/back.gif谢谢vb.net好像不以用set 加上后 vs2008会自动把set删掉
<p>这一句应该是没有问题的,</p><p>我每一次调试的时候都是新开的文档</p> <p>我试了试,在.net中是有这个问题,可以用别的方法来实现当层的设置,如用sendcommand</p> 不知道这个问题解决了没有,我也遇到了! 我刚刚遇到这个问题 可惜还没有答案,我是把vb6.0下的程序转为.net遇到的问题 ,还有一个是getboundingbox,那个好歹还可以变通,这个不知道怎么办
页:
[1]
2