找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 614|回复: 3

[VBA函数]:转层问题

[复制链接]
发表于 2003-1-23 19:16:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我刚刚在学习 VBA开发CAD。我的工作主要是用CAD处理地图,其中很多工作是把某一层的图形转到另一个层。举例来说 如 在A层中线宽为1,颜色为红的直线需转到B层(如果B层不存在则,新建一个B层),请问用VBA程序如何实现 不胜感激
(我用CAD2000)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-1-23 19:33:27 | 显示全部楼层
给你个例子,如果不明白的地方可以看看帮助文件。

  1.   [FONT=courier new]

  2. Private Sub Test()
  3.     On Error Resume Next
  4.     '引用选择集,如不存在则创建
  5.     Dim SSetObj As AcadSelectionSet
  6.     Set SSetObj = ThisDrawing.SelectionSets("ChangeLayer")
  7.     If Err Then
  8.         Err.Clear
  9.         Set SSetObj = ThisDrawing.SelectionSets.Add("ChangeLayer")
  10.     End If
  11.     SSetObj.Clear
  12.     Dim fType(0 To 3) As Integer
  13.     Dim fData(0 To 3) As Variant
  14.     fType(0) = 0
  15.     fData(0) = "LWPOLYLINE" '实体类型
  16.     fType(1) = 8
  17.     fData(1) = "A" '层
  18.     fType(2) = 62
  19.     fData(2) = acRed '颜色
  20.     fType(3) = 43
  21.     fData(3) = 1 '线宽
  22.     SSetObj.Select acSelectionSetAll, , , fType, fData
  23.     If SSetObj.Count = 0 Then Exit Sub
  24.     '引用层,如不存在则创建
  25.     Dim LayerObj As AcadLayer
  26.     Set LayerObj = ThisDrawing.Layers("B")
  27.     If Err Then
  28.         Err.Clear
  29.         Set LayerObj = ThisDrawing.Layers.Add("B")
  30.     End If
  31.     Dim i As Integer
  32.     For i = 0 To SSetObj.Count - 1
  33.         SSetObj(i).Layer = LayerObj.Name '更改层名
  34.     Next
  35.     Set LayerObj = Nothing
  36.     Set SSetObj = Nothing
  37. End Sub

  38.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-1-25 22:34:01 | 显示全部楼层

有问题

楼上仁兄的程序
    SSetObj.Select acSelectionSetAll, , , fType, fData
    调试不通。我只好去掉acselectionsetall 后面所有参数,结果把所有层的内容都转到指定层,有没有其他方式过滤数据请赐教
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-1-27 17:36:39 | 显示全部楼层
我机器上安装的也是AutoCAD R2000,调试成功。如果运行有错的话,可以参照一下帮助文件或者相关资料,了解一下选择集和过滤机制的用法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 07:09 , Processed in 0.352276 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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