23
68
12
初露锋芒
' Author: Wellington Gomes - Darby Anderson Option Explicit Sub CreateRunAutoNamedView() ThisDrawing.SendCommand ("(defun C:RunAutoNamedView () (setvar ""filedia"" 0) (command ""_VBARUN"" ""CreateNamedViews"") (setvar ""filedia"" 1) )" & vbCr) End Sub Sub CreateNamedViews() Dim mspace As AcadModelSpace Dim mviews As AcadViews Dim elem As Variant Dim elemBl As Variant Dim Incview As AcadView Dim iIndex As Integer Dim sName As String Const XValue1 = 15.5 ' associated constant to XScale Const YValue1 = 9.8125 ' associated constant to YScale Const XValue2 = 11 ' associated constant to XScale Const YValue2 = 8.5 ' associated constant to YScale Const XValue3 = 8.5 ' associated constant to XScale Const YValue3 = 11 ' associated constant to YScale Dim point1 As Variant Dim point2(0 To 1) As Double On Error Resume Next Set mspace = ThisDrawing.ModelSpace Set mviews = ThisDrawing.Views For Each elem In mviews elem.Delete Next iIndex = 0 For Each elemBl In mspace If elemBl.EntityName = "AcDbBlockReference" Then ''''''''''''' If (elemBl.Name = "DWGATTRIBUTES" Or elemBl.Name = "dwgattributes" Or elemBl.Name = "DWGATTRIBUTES2") Then point1 = elemBl.InsertionPoint point2(0) = elemBl.XScaleFactor * XValue1 + point1(0) point2(1) = elemBl.YScaleFactor * YValue1 + point1(1) iIndex = nGetAttributes(elemBl) 'Get attribute TagString = PG If Err.Number 0 Then MsgBox "Error - Block without PG: " & elemBl.Name Exit Sub End If If iIndex = 0 Then MsgBox "Error - Block without PG: " & elemBl.Name Exit Sub End If Set Incview = ThisDrawing.Views.Add(iIndex) If Err.Number 0 Then MsgBox "Error - Block already exists: " & iIndex Exit For End If Incview.Width = elemBl.XScaleFactor * XValue1 Incview.Height = elemBl.YScaleFactor * YValue1 point2(0) = Incview.Width / 2 + point1(0) point2(1) = Incview.Height / 2 + point1(1) Incview.Center = point2 ' Incview.Update End If ''''''''''''''''''''''' If (elemBl.Name = "IITITLEHA") Then point1 = elemBl.InsertionPoint point2(0) = elemBl.XScaleFactor * XValue2 + point1(0) point2(1) = elemBl.YScaleFactor * YValue2 + point1(1) iIndex = nGetAttributes(elemBl) 'Get attribute TagString = PG If Err.Number 0 Then MsgBox "Error - Block without PG: " & elemBl.Name Exit Sub End If If iIndex = 0 Then MsgBox "Error - Block without PG: " & elemBl.Name Exit Sub End If Set Incview = ThisDrawing.Views.Add(iIndex) If Err.Number 0 Then MsgBox "Error - Block already exists: " & iIndex Exit For End If Incview.Width = elemBl.XScaleFactor * XValue2 Incview.Height = elemBl.YScaleFactor * YValue2 point2(0) = Incview.Width / 2 + point1(0) point2(1) = Incview.Height / 2 + point1(1) Incview.Center = point2 ' Incview.Update End If ''''''''''''''''''''''' If (elemBl.Name = "IITITLEVA") Then point1 = elemBl.InsertionPoint point2(0) = elemBl.XScaleFactor * XValue3 + point1(0) point2(1) = elemBl.YScaleFactor * YValue3 + point1(1) iIndex = nGetAttributes(elemBl) 'Get attribute TagString = PG If Err.Number 0 Then MsgBox "Error - Block without PG: " & elemBl.Name Exit Sub End If If iIndex = 0 Then MsgBox "Error - Block without PG: " & elemBl.Name Exit Sub End If Set Incview = ThisDrawing.Views.Add(iIndex) If Err.Number 0 Then MsgBox "Error - Block already exists: " & iIndex Exit For End If Incview.Width = elemBl.XScaleFactor * XValue3 Incview.Height = elemBl.YScaleFactor * YValue3 point2(0) = Incview.Width / 2 + point1(0)