明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3515|回复: 7

[分享]在AutoCAD中可以用VBA创建匿名块

[复制链接]
发表于 2002-11-16 21:21:00 | 显示全部楼层 |阅读模式
最新发现,在AutoCAD中可以用VBA创建匿名块。
 楼主| 发表于 2002-11-16 21:24:00 | 显示全部楼层

在AutoCAD中可以用VBA创建匿名块...

本人将陆续研究用VBA创建匿名块的问题,并把结果及时发布,欢迎有志者一同探讨。
 楼主| 发表于 2002-11-16 21:26:00 | 显示全部楼层

在AutoCAD中可以用VBA创建匿名块(一)

获取块集合中匿名块的数量
Function GetUNBlockCount() As Integer
    Dim BlockObj As AcadBlock
    Dim n As Integer
    For Each BlockObj In ThisDrawing.Blocks
        If Left(BlockObj.Name, 1) = "*" Then
            If BlockObj.Name <> "*Model_Space" And Left(BlockObj.Name, 12) <> "*Paper_Space" Then
                n = n + 1
            End If
        End If
    Next
    GetUNBlockCount = n
    Set BlockObj = Nothing
End Function
发表于 2002-11-17 09:37:00 | 显示全部楼层

多多指教啊

多多指教啊
发表于 2002-11-17 18:21:00 | 显示全部楼层

欢迎EFan2000兄常来

 楼主| 发表于 2002-11-18 17:05:00 | 显示全部楼层

在AutoCAD中可以用VBA创建匿名块(二)

本帖最后由 作者 于 2002-11-18 17:05:13 编辑

其实制作匿名块的方法和制作普通块的方法是一样的。例如:
    Dim iPt(0 To 2) As Double
    iPt(0) = 0: iPt(1) = 0: iPt(2) = 0
    Dim BlockObj As AcadBlock
    Set BlockObj = ThisDrawing.Blocks.Add(iPt, "*U")
    Set BlockObj = Nothing
上面的代码中在块集合生成了一个U开头的匿名块。注意:匿名块的名称只能是*+字母,即第一个为*号,接下来跟一个字母,大小写均可。
然而创建匿名块简单,但如何引用匿名块或者获取匿名块就相对复杂,但匿名块后的数字从是从1开始递增的,可以根据这一点来判断,而不必理会前面的字母是什么。
下例的函数用来获取最新创建的匿名块。

Public Function GetUNBlock() As AcadBlock
    Dim BlockObj As AcadBlock
    Dim n As Integer
    For Each BlockObj In ThisDrawing.Blocks
        If Left(BlockObj.Name, 1) = "*" Then
            If BlockObj.Name <> "*Model_Space" And Left(BlockObj.Name, 12) <> "*Paper_Space" Then
                If Mid(BlockObj.Name, 3) >= n Then
                    n = Mid(BlockObj.Name, 3)
                    Set GetUNBlock = BlockObj
                End If
            End If
        End If
    Next
    Set BlockObj = Nothing
End Function

在块集合中,匿名块的名称从第三位后必为数字,最新创建的匿名块必为最大的数字,但要保证创建后没有删除该块,否则返回的就是以前创建的了。
发表于 2002-12-14 20:34:00 | 显示全部楼层

匿名块的作用是什么呀

我曾看到书上介绍了匿名块,但是不知道它的用处呀,肯否指教指教
 楼主| 发表于 2002-12-15 18:05:00 | 显示全部楼层

Re:匿名块的作用是什么呀

匿名块在CAD中是自动管理的,就是图纸保存退出后,下次加载时,如果该匿名块没有使用,即没有插入到图纸中,那么系统自动清除掉。
再有,对于标注,没有固定的形状,但又不想分解成单个的实体,而能够对其整体进行处理,那么匿名块就正好派上用场了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 20:59 , Processed in 0.173731 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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