明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1268|回复: 3

为什么我求快参考的范围的时候出错

[复制链接]
发表于 2004-4-11 00:53:00 | 显示全部楼层 |阅读模式
我通过老大教的方法求到某个块参考的时, 用getboundingbox 求块参考的范围总出错为什么?


谢谢
发表于 2004-4-11 07:18:00 | 显示全部楼层
代码在哪?拿出来看一下才知道哪出错。
 楼主| 发表于 2004-4-12 14:52:00 | 显示全部楼层

代码如下],请老大指教,谢谢

Dim caddoc As AcadDocument
Private Sub Command1_Click()
Dim cadobj As AcadApplication Dim cadplot As AcadPlot
Dim papersize As String
Dim count As Integer
Dim i As Integer
Dim max As Variant
Dim min As Variant
Dim cadlayout As AcadLayout
Dim Name As String
Dim point1(0 To 2) As Double
Dim point2(0 To 2) As Double
point1(0) = 0: point1(1) = 1000: point1(2) = 0
point2(0) = 2800: point2(1) = 0: point2(2) = 0 Set cadobj = CreateObject("AutoCAD.Application")
'Set caddoc = cadobj.ActiveDocument
cadobj.Visible = True Set caddoc = cadobj.Documents.Open("D:\111111111b6p114-0142.dwg", False)
'cadobj.ZoomWindow point1, point2


GetBlkRef


End Sub
Sub GetBlkRef()
Dim ss As AcadSelectionSet
Set ss = CreateSelectionSet
Dim tFilter As Variant
Dim dFilter As Variant
Dim count As Integer
Dim i As Integer
Dim j As Integer
Dim z As Integer
Dim minvalue, maxvalue As Variant
Dim point1(3) As Double
Dim point2(3) As Double

BuildFilter tFilter, dFilter, 0, "Insert"
ss.Select acSelectionSetAll, , , tFilter, dFilter
count = ss.count
Dim ref As AcadBlockReference
ReDim obj(count) As AcadEntity
For i = 0 To 1
Set obj(i) = ss.Item(i)
Set ref = ss.Item(i)
ref.GetBoundingBox maxvalue, minvalue
For j = LBound(max) To UBound(max)
point1(j) = max(j)

Next
For z = LBound(min) To UBound(min)
point2(z) = min(z)
Next
MsgBox point2(0) - point1(0)
MsgBox point2(1) - point1(1)

Next
End Sub Public Function CreateSelectionSet(Optional ssName As String = "ss") As AcadSelectionSet Dim ss As AcadSelectionSet

On Error Resume Next
Set ss = caddoc.SelectionSets(ssName)
If Err Then Set ss = caddoc.SelectionSets.Add(ssName)
ss.Clear
Set CreateSelectionSet = ss End Function Public Sub BuildFilter(typeArray, dataArray, ParamArray gCodes())
Dim fType() As Integer, fData()
Dim index As Long, i As Long

index = LBound(gCodes) - 1

For i = LBound(gCodes) To UBound(gCodes) Step 2
index = index + 1
ReDim Preserve fType(0 To index)
ReDim Preserve fData(0 To index)
fType(index) = CInt(gCodes(i))
fData(index) = gCodes(i + 1)
Next
typeArray = fType: dataArray = fData
End Sub
发表于 2004-4-14 20:11:00 | 显示全部楼层
getboundingbox不可求射线、构造线的范围,因为它们本身就没有范围。
你的程序中max和min是怎样得到的,与getboundingbox的返回值不一致的变量名称。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-21 03:48 , Processed in 0.170043 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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