找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 441|回复: 8

[求助]:怎样将Block里面的Hatch改变颜色?

[复制链接]
发表于 2004-11-19 12:27:31 | 显示全部楼层 |阅读模式

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

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

×
主要问题是怎样能够浏览block里面的东西,然后挑选出Hatch

Public function ChangeHatchColorInBlock(Block As AcadBlock)
Dim elem As Object
        ?

        For each elem in Block //这是会产生错误的。

       ?
            
End Function
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-11-19 14:38:47 | 显示全部楼层
贴上完整点的代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-19 15:30:41 | 显示全部楼层
我就是因为写不出完整的代码才发问的。
block的item函数可以访问block里面的东西,但没有count属性,不知道一共有多少个。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-19 15:44:33 | 显示全部楼层
Sub tt1()
For Each i In ThisDrawing.Blocks("1")
i.Color = acWhite
Next i
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-19 16:35:26 | 显示全部楼层
为什么我想只改变块内的hatch但把所有的包括块外的hatch的颜色也变了。
Public Function ChangeHatchColorInBlock()
Dim elem As Object
Dim block As AcadBlock
For Each block In ThisDrawing.Blocks
    For Each elem In ThisDrawing.Blocks(block.Name)
        If elem.ObjectName = "AcDbHatch" Then elem.Color = 3
    Next
Next
End Function
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-19 17:18:03 | 显示全部楼层
模型空间也在ThisDrawing.Blocks集合里
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-20 09:23:53 | 显示全部楼层
哦,那怎么避免把模型空间的都改了?
还有就是声明的对象的释放内存的问题,是不是for each这种语句不用释放内存,我在最后加上elem=nothing 会出现错误。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-11-20 09:26:59 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-11-20 11:34:44 | 显示全部楼层
看过了,多谢飞狐斑竹,有几个新问题:
1。Public Function GetBlock(ByVal BlockName As String) As AcadBlock 是不是没用上?

2。Set pObj(0) = objDbx.ModelSpace.InsertBlock(pnt, BlockName, 1, 1, 1, 0)
objDbx.CopyObjects pObj, ThisDrawing.ModelSpace

好象没有在原来的文件InserBlock,为什么?不能直接从objdbx中找出对应的块吗?为什么要通过这样insert一下?
Set pObj(0) 以后要不要通过pObj(0)=nothing 来释放内存?

3。pObj(0).GetBoundingBox d1, d2

  ThisDrawing.Application.ZoomWindow d1, d2

  我只预览到了block的其中一部分,是什么原因?是我做块的时候有问题吗?
附上我的dwg文件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 07:31 , Processed in 0.372541 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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