bamboo 发表于 2003-5-26 09:32:00

efan2000 求救

上次你说了 提取文档的对象属性是针对文档的所有层,那我怎么才能提取我要指定的层上对象属性呢?

efan2000 发表于 2003-5-26 12:40:00

使用选择集

使用选择集,指定过滤条件就可以。具体说明看帮助文件。

以下代码提示用户选择要包含在选择集中的对象,但仅当选择的对象是位于层 MyLayer 上时才将其添加到选择集中:

Sub Ch4_FilterMtext()
   Dim sstext As AcadSelectionSet
   Dim FilterType(0) As Integer
   Dim FilterData(0) As Variant
   Set sstext = ThisDrawing.SelectionSets.Add("SS2")
   FilterType(0) = 8
   FilterData(0) = "MyLayer"
   sstext.SelectOnScreen FilterType, FilterData
End Sub

bamboo 发表于 2003-5-26 21:21:00

就是这个问题,有个语句过不去

sstext.SelectOnScreen filtertype,filterdata
当执行此语句时,总是有错误:对象SelectOnscreen的方法IAcadSelectionSet失败。
谢谢!!!

efan2000 发表于 2003-5-26 21:45:00

Re: 就是这个问题,有个语句过不去

本帖最后由 efan2000 于 2003-5-26 21:45:53 编辑

执行到这里发生错误,并不等于是这个句子错误,可能的原因是sstext对象为空,即为Nothing,也可能是filtertype或者filterdata的类型不正确,就如不是数组的,或者filtertype的数组类型不是整型等等。与前面的代码结合起合,按F8进行单步调试,仔细检查一下,相信你很容易就会找到原因的。

bamboo 发表于 2003-5-27 09:48:00

您能给我具体解释一下 filtertype,filterdata,还有filtertype的不同取值结果怎样。

您能给我具体解释一下 filtertype,filterdata,还有filtertype的不同取值结果怎样。谢谢!!

bamboo 发表于 2003-5-27 11:49:00

第0层可以冻结吗?

efan2000 发表于 2003-5-27 12:52:00

到下载中心下载一个R2004版的中文帮助文件

R2004版的中文帮助文件中包含了一个中文的开发人员手册,仔细参考一下,会大有好处的,可以更好的掌握AutoCAD VBA的开发基础。

efan2000 发表于 2003-5-27 12:55:00

当然可以,不过记得在冻结之前将它设为非当前层

bamboo 发表于 2003-5-27 19:28:00

我的问题解决了,谢谢!就是要冻结的层设置为当前层了。

bamboo 发表于 2003-5-27 19:30:00

我会下载的,谢谢!

页: [1]
查看完整版本: efan2000 求救