明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2475|回复: 4

如何选择块中的块,并让其高亮?

[复制链接]
发表于 2004-12-7 09:37:00 | 显示全部楼层 |阅读模式
我遇到一个难题,如何选择块中的块,并让其高亮?


并且不能采用炸开块的方法。


请高手指点
发表于 2004-12-7 11:28:00 | 显示全部楼层
只能获得块中块的子实体,块中的块没办法获得,高亮显示好像也不好办 Sub tt()
Dim obj As Object
ThisDrawing.Utility.GetSubEntity obj, pnt, tr, c
MsgBox obj.ObjectName End Sub
 楼主| 发表于 2004-12-7 14:52:00 | 显示全部楼层
那就难办了,程序编不下去了。
发表于 2004-12-7 17:22:00 | 显示全部楼层
把块中的块COPY出来再让其高亮即可!
发表于 2004-12-7 19:21:00 | 显示全部楼层
Sub tt()
On Error Resume Next
Dim obj As AcadEntity, pnt, tm, d

Dim oBigBlock As AcadBlock
Dim oBlock As AcadBlock
Dim ss As AcadSelectionSet
Dim i As AcadEntity

ThisDrawing.Utility.GetSubEntity obj, pnt, tm, d
Set oBlock = ThisDrawing.ObjectIdToObject(obj.OwnerID)

ThisDrawing.SelectionSets("Test").Delete
Set ss = ThisDrawing.SelectionSets.Add("Test")
Dim ft(0) As Integer, fd(0)
ft(0) = 0: fd(0) = "Insert"
ss.SelectAtPoint pnt, ft, fd
Set oBigBlock = ThisDrawing.Blocks(ss(0).Name)
p1 = ss(0).InsertionPoint
For Each i In oBigBlock

If i.Name = oBlock.Name Then
p2 = i.InsertionPoint
End If

Next i
p1(0) = p1(0) + p2(0)
p1(1) = p1(1) + p2(1)
p1(2) = p1(2) + p2(2)
ThisDrawing.ModelSpace.InsertBlock(p1, oBlock.Name, 1, 1, 1, 0).Highlight True

End Sub
没有考虑多层,三层或以上会出错,:) 块的缩放也没有考虑,自己改动一下吧 还有一种情况是如果该块包含两个同名块参照可能会错位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 23:53 , Processed in 0.174061 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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