明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3225|回复: 11

后期绑定中用ActiveLayer对象出错

  [复制链接]
发表于 2008-12-10 21:57:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-12-10 23:09:17 编辑

请教

Dim AcadApp, AcadDoc, gridLayer As Object

        On Error Resume Next
        AcadApp = GetObject(, "AutoCAD.Application")
        If Err.Number <> 0 Then
            Err.Clear()
            AcadApp = CreateObject("AutoCAD.Application")
            If Err.Number <> 0 Then End
        End If
        AcadApp.Visible = True
        AcadDoc = AcadApp.ActiveDocument
        gridLayer = AcadDoc.Layers.Add("网格")           ’在CAD里这个层已经建出来了
        AcadDoc.ActiveLayer = gridLayer                   ‘这儿出错了

错在那儿了呢

AcadDoc.ActiveLayer.color = 5            也是对的就不是能给activelayer对象赋值

发表于 2008-12-10 22:22:00 | 显示全部楼层
注意当前有没有文档,如果没有打开的文档,就会出错我。
 楼主| 发表于 2008-12-10 22:27:00 | 显示全部楼层
本帖最后由 作者 于 2008-12-10 22:44:26 编辑

mccad发表于2008-12-10 22:22:00注意当前有没有文档,如果没有打开的文档,就会出错我。

主要是

gridLayer = AcadDoc.Layers.Add("网格")           这个没问题 声明过了的Private Shared gridLayer As Object

AcadDoc.ActiveLayer = gridLayer                       这一行总是出错 说什么找不到成员

我改了一下问题

发表于 2008-12-10 23:21:00 | 显示全部楼层
在出错行前加上 SET 试一下。
 楼主| 发表于 2008-12-11 08:27:00 | 显示全部楼层

谢谢

vb.net好像不以用set

加上后 vs2008会自动把set删掉

发表于 2008-12-11 16:41:00 | 显示全部楼层

gridLayer = AcadDoc.Layers.Add("网格")          

之前有没有确认过该名称的图层是否存在,如果存在,则会出错,出错后,gridLayer就不能赋值,也就会导致后续调用该变量的程序出错。

 楼主| 发表于 2008-12-13 21:30:00 | 显示全部楼层
hustlei发表于2008-12-11 8:27:00谢谢vb.net好像不以用set 加上后 vs2008会自动把set删掉

这一句应该是没有问题的,

我每一次调试的时候都是新开的文档

发表于 2008-12-20 16:14:00 | 显示全部楼层

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

发表于 2011-7-17 13:52:26 | 显示全部楼层
不知道这个问题解决了没有,我也遇到了!
发表于 2011-12-5 21:55:01 | 显示全部楼层
我刚刚遇到这个问题 可惜还没有答案,我是把vb6.0下的程序转为.net遇到的问题 ,还有一个是getboundingbox,那个好歹还可以变通,这个不知道怎么办
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 12:58 , Processed in 0.163965 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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