好的,有了这段代码,我几乎可以得到我需要的了- Sub CreateSlides()
- On Error Resume Next
- ThisDrawing.SelectionSets.Item("Sset").Delete
-
- Dim Sset As AcadSelectionSet
- Dim Ent As AcadEntity
- Dim BlkRef As AcadBlockReference
- Dim NView As AcadView
-
- Dim strName As String
- Dim VName As String
- Dim sysFileDia As Integer
-
- Dim Pnt1 As Variant
- Dim Pnt2 As Variant
-
- Pnt1 = ThisDrawing.Utility.GetPoint(, "Pick First Point")
- Pnt2 = ThisDrawing.Utility.GetPoint(, "Pick Second Point")
-
- Set Sset = ThisDrawing.SelectionSets.Add("Sset")
- Sset.Select acSelectionSetWindow, Pnt1, Pnt2
- ZoomWindow Pnt1, Pnt2
-
- sysFileDia = ThisDrawing.GetVariable("FILEDIA")
- ThisDrawing.SetVariable "FILEDIA", 0
-
- For Each Ent In Sset
- If TypeOf Ent Is AcadView Then
- VName = NView.Name
- GoTo Continue
- End If
- Next Ent
-
- Continue:
- For Each Ent In Sset
- If TypeOf Ent Is AcadBlockReference Then
- Set BlkRef = Ent
- strName = BlkRef.Name
- ThisDrawing.SendCommand "-view" & vbCr & "r" & vbCr & VName & vbCr
- ThisDrawing.SendCommand "MSLIDE c:\tempslide" & strName & vbCr
- '*****MAKE SURE THE ABOVE FOLDER EXISTS*****
- End If
- Next Ent
- ThisDrawing.SetVariable "FILEDIA", sysFileDia
- End Sub
除了它还在问我想恢复什么视图之外;我不知道如何传递,所以当我做vslide时,幻灯片仍然显示视图和构造线,我只想看到blkref
最后,我想将视图恢复到上一个
有人能帮我克服这最后的困境吗
谢谢 |