- 积分
- 262
- 明经币
- 个
- 注册时间
- 2004-4-2
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
![](static/image/common/ico_lz.png)
楼主 |
发表于 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 |
|