明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2508|回复: 7

那位老大能解释解释着程序中的代码啊

[复制链接]
发表于 2004-5-14 11:01:00 | 显示全部楼层 |阅读模式
更改标注尺寸值的<>为真实值 不少地方看不懂................. Public Sub SelfOverRide(objDim As AcadDimension)
Dim objBlk As AcadBlock
Dim objEnt As AcadEntity
Dim varPos As Variant
Dim varInsPnt As Variant
Dim objDimText As AcadMText
Dim objBlocks As AcadBlocks
Dim blnDone As Boolean
Set objBlocks = ThisDrawing.Blocks
varPos = objDim.TextPosition
For Each objBlk In objBlocks
If Not blnDone Then
If Left(objBlk.Name, 2) = "*D" Then
For Each objEnt In objBlk
If TypeOf objEnt Is AcadMText Then
Set objDimText = objEnt
varInsPnt = objDimText.InsertionPoint
If varInsPnt(0) = varPos(0) Then
If varInsPnt(1) = varPos(1) Then
objDim.TextOverride = objDimText.TextString
blnDone = True
Exit For
End If
End If
End If
Next objEnt
End If
Else
Exit For
End If
Next objBlk
End Sub Sub TEST_SelfOverRide()
Dim strPrmt As String
Dim objEnt As AcadEntity
Dim varPnt As Variant
Dim IsDimension As Boolean
Dim objDim As AcadDimension

On Error GoTo Err_Handler
strPrmt = vbCr & "选择标注对象:"
ThisDrawing.Utility.GetEntity objEnt, varPnt, strPrmt

Set objDim = objEnt
SelfOverRide objDim Exit Sub
Err_Handler:
MsgBox Err.Number & vbCrLf & Err.Description
End Sub
发表于 2004-5-14 11:15:00 | 显示全部楼层
If Left(objBlk.Name, 2) = "*D" Then 标注实际上是一个无名块,以 "*D" 开头 If TypeOf objEnt Is AcadMText Then 取得标注中的标注文字 Set objDim = objEnt
将获得的标注对象类型转换为标注,因为SelfOverRide的参数为AcadDimension
 楼主| 发表于 2004-5-14 11:23:00 | 显示全部楼层
谢谢呵呵 这个 Set objDim = objEnt 我还不太明白 Dim objEnt As AcadEntity
Dim objDim As AcadDimension 不一样的东西啊 怎么就=了。 有什么特别的作用是吧? 第一个子程序中还有这个类似的 Set objDimText = objEnt
发表于 2004-5-14 11:32:00 | 显示全部楼层
因为SelfOverRide的入口参数为AcadDimension 如果定义为Public Sub SelfOverRide(objDim As AcadEntity)
可以不要这一句
 楼主| 发表于 2004-5-14 12:36:00 | 显示全部楼层
那这段代码中哪里能体现出:更改标注尺寸值的&lt;&gt;为真实值


真实值??
发表于 2004-5-14 12:39:00 | 显示全部楼层
这里:


objDim.TextOverride = objDimText.TextString
发表于 2004-5-14 21:06:00 | 显示全部楼层
Set objDim = objEnt
这样做是一种正规的作法,对于编程者可以利用VBA的智能提示来显示标注对象特有的智能提示。对于使用者看程序时也好明白。
发表于 2010-12-14 11:25:15 | 显示全部楼层
很久的帖子啊,不过学了很多~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 20:31 , Processed in 0.203756 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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