好吧,
有了这个代码,我几乎拥有了我需要的东西
- 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。
最后,我想把观点恢复到以前的水平。
谁能帮我克服这最后的蜷缩?
谢谢
M |