明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1339|回复: 6

斑竹啊 救救我吧!!!!!!!!!

[复制链接]
发表于 2003-7-12 19:01:00 | 显示全部楼层 |阅读模式
能不能 把CAD中块的名称删除啊   ???怎么用程序实现呢?
发表于 2003-7-12 20:01:00 | 显示全部楼层
没明白,块的名称删除,那块呢,是否保留?
 楼主| 发表于 2003-7-12 22:16:00 | 显示全部楼层
哦 应该是把知道名称的块删除  
但是我不是用INSERT 插入的
是CAD 中可以查到的
但我用CAD查询查出是ACDBBLOCKREFENCE
对不起 我的问题是太菜了
发表于 2003-7-13 07:10:00 | 显示全部楼层
你是想将图面上某个名称的图块全部删除,是吗?
 楼主| 发表于 2003-7-13 15:40:00 | 显示全部楼层
是的 斑竹
有什么办法吗?
发表于 2003-7-13 19:08:00 | 显示全部楼层
  1. Sub DelBlkByName()
  2.     Dim BlockName As String
  3.     BlockName = "11"  '这里保存着要删除的图块名称
  4.     Dim ss As AcadSelectionSet
  5.     Set ss = CreateSelectionSet()
  6.     Dim fType As Variant
  7.     Dim fDate As Variant
  8.     BuildFilter fType, fData, 0, "INSERT", 2, BlockName
  9.     ss.Select acSelectionSetAll, , , fType, fData
  10.     Dim Ent As AcadEntity
  11.     Dim i As Integer
  12.     i = ss.Count
  13.     If i > 0 Then
  14.         For Each Ent In ss
  15.             Ent.Delete
  16.         Next
  17.         Update
  18.         MsgBox "图形中共有" & i & "个名称为“" & BlockName & "”的图块,都已经被删除了。", , _
  19.                 "明经通道VBA示例"
  20.     Else
  21.         MsgBox "图形中没有名称为“" & BlockName & "”的图块存在。", , _
  22.                 "明经通道VBA示例"
  23.     End If
  24. End Sub

  25. Public Function CreateSelectionSet(Optional ssName As String = "ss") As AcadSelectionSet

  26.     Dim ss As AcadSelectionSet
  27.    
  28.     On Error Resume Next
  29.     Set ss = ThisDrawing.SelectionSets(ssName)
  30.     If Err Then Set ss = ThisDrawing.SelectionSets.Add(ssName)
  31.     ss.Clear
  32.     Set CreateSelectionSet = ss

  33. End Function

  34. Public Sub BuildFilter(typeArray, dataArray, ParamArray gCodes())
  35.     Dim fType() As Integer, fData()
  36.     Dim index As Long, i As Long
  37.    
  38.     index = LBound(gCodes) - 1
  39.         
  40.     For i = LBound(gCodes) To UBound(gCodes) Step 2
  41.         index = index + 1
  42.         ReDim Preserve fType(0 To index)
  43.         ReDim Preserve fData(0 To index)
  44.         fType(index) = CInt(gCodes(i))
  45.         fData(index) = gCodes(i + 1)
  46.     Next
  47.     typeArray = fType: dataArray = fData
  48. End Sub
 楼主| 发表于 2003-7-14 11:07:00 | 显示全部楼层
谢谢斑竹!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 14:30 , Processed in 0.191444 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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