hustlei 发表于 2008-12-10 21:57:00

后期绑定中用ActiveLayer对象出错

本帖最后由 作者 于 2008-12-10 23:09:17 编辑 <br /><br /> <p>请教</p><p>Dim AcadApp, AcadDoc, gridLayer As Object</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcadApp = GetObject(, "AutoCAD.Application")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Err.Number &lt;&gt; 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Err.Clear()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcadApp = CreateObject("AutoCAD.Application")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If Err.Number &lt;&gt; 0 Then End<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcadApp.Visible = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcadDoc = AcadApp.ActiveDocument<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gridLayer = AcadDoc.Layers.Add("网格")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ’在CAD里这个层已经建出来了<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcadDoc.ActiveLayer = gridLayer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ‘这儿出错了 </p><p>错在那儿了呢</p><p>AcadDoc.ActiveLayer.color = 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也是对的就不是能给activelayer对象赋值</p>

mccad 发表于 2008-12-10 22:22:00

注意当前有没有文档,如果没有打开的文档,就会出错我。

hustlei 发表于 2008-12-10 22:27:00

本帖最后由 作者 于 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("网格")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这个没问题 声明过了的Private Shared gridLayer As Object</p><p>AcadDoc.ActiveLayer = gridLayer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这一行总是出错 说什么找不到成员</p><p>我改了一下问题</p>

gyl 发表于 2008-12-10 23:21:00

在出错行前加上 SET 试一下。

hustlei 发表于 2008-12-11 08:27:00

<p>谢谢</p><p>vb.net好像不以用set </p><p>加上后 vs2008会自动把set删掉</p>

mccad 发表于 2008-12-11 16:41:00

<p>gridLayer = AcadDoc.Layers.Add("网格")&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>之前有没有确认过该名称的图层是否存在,如果存在,则会出错,出错后,gridLayer就不能赋值,也就会导致后续调用该变量的程序出错。</p>

hustlei 发表于 2008-12-13 21:30:00

hustlei发表于2008-12-11 8:27:00static/image/common/back.gif谢谢vb.net好像不以用set 加上后 vs2008会自动把set删掉

<p>这一句应该是没有问题的,</p><p>我每一次调试的时候都是新开的文档</p>

wang_qiang 发表于 2008-12-20 16:14:00

<p>我试了试,在.net中是有这个问题,可以用别的方法来实现当层的设置,如用sendcommand</p>

lwd899 发表于 2011-7-17 13:52:26

不知道这个问题解决了没有,我也遇到了!

s305040093 发表于 2011-12-5 21:55:01

我刚刚遇到这个问题 可惜还没有答案,我是把vb6.0下的程序转为.net遇到的问题 ,还有一个是getboundingbox,那个好歹还可以变通,这个不知道怎么办
页: [1] 2
查看完整版本: 后期绑定中用ActiveLayer对象出错