- UID
- 65986
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2003-7-19
- 最后登录
- 1970-1-1
|
发表于 2003-12-7 00:13:30
|
显示全部楼层
用这个程序:
Sub wtblk() '批量写块
On Error Resume Next
Dim Ftype(0) As Integer
Dim Fdata(0) As Variant
Dim Fname As String
Dim i As Integer
Dim minpnt As Variant
Dim maxpnt As Variant
Dim cenpnt(0 To 2) As Double
Dim basepnt As String
Dim sset As AcadSelectionSet
ThisDrawing.SetVariable "filedia", 0
For i = 0 To ThisDrawing.SelectionSets.Count - 1
ThisDrawing.SelectionSets.Item(i).Clear
ThisDrawing.SelectionSets.Item(i).Delete
Next
Ftype(0) = 0
Fdata(0) = "INSERT"
'1:
Do While ThisDrawing.ModelSpace.Count > 0
Set sset = ThisDrawing.SelectionSets.Item("sset_blk")
If Err Then
Set sset = ThisDrawing.SelectionSets.Add("sset_blk")
End If
sset.Select acSelectionSetLast, , , Ftype, Fdata
sset.Item(0).GetBoundingBox minpnt, maxpnt
cenpnt(0) = (maxpnt(0) + minpnt(0)) / 2
cenpnt(1) = (maxpnt(1) + minpnt(1)) / 2
cenpnt(2) = 0
basepnt = cenpnt(0) & "," & cenpnt(1)
Fname = "k:\abc\" & sset.Item(0).Name & ".dwg"
ThisDrawing.SendCommand "-wblock " & Fname & vbCr & vbCr & basepnt & vbCr & "p" & vbCr & vbCr
sset.Item(0).Delete
sset.Clear
sset.Delete
Loop
End Sub |
|