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