试过了,完全可能实现。
以下是VBA的方法,你可以把它改到VL中:
 - Sub Add_layout()
- Dim LayName As String
- LayName = "明经"
- Dim NewLayout As AcadLayout
- Set NewLayout = ThisDrawing.Layouts.Add(LayName)
- NewLayout.CopyFrom ThisDrawing.ActiveLayout
- Dim ActLayBlk As AcadBlock
- Dim NewLayBLk As AcadBlock
- Set ActLayBlk = ThisDrawing.ActiveLayout.Block
- Set NewLayBLk = NewLayout.Block
- Dim EntCount As Integer
- EntCount = ActLayBlk.Count
- Dim Ent() As AcadObject
- ReDim Ent(EntCount - 1) As AcadObject
- Dim i As Integer
- For i = 0 To EntCount - 1
- Set Ent(i) = ActLayBlk(i)
- Next
- ThisDrawing.CopyObjects Ent, NewLayBLk
- ThisDrawing.ActiveLayout = NewLayout
- End Sub
|