泽维尔,
您好。
这当然可以做到,下面的代码可以做到,但只是证明,而不是一个完成的例程。你需要稍微了解VBA才能完成它!
- Public Sub GetLayer()
- Dim i As Integer
- Dim mySelSet As AcadSelectionSet
- Dim gpCode(0) As Integer
- Dim dataValue(0) As Variant
- Dim groupCode As Variant
- Dim dataCode As Variant
- Dim SaveName As String
- For i = 0 To ThisDrawing.Layers.Count - 1
- Set mySelSet = ThisDrawing.SelectionSets.Add("TextOnLayer")
- gpCode(0) = 8 'layer
- groupCode = gpCode
- dataValue(0) = ThisDrawing.Layers(i).Name 'layer name
- dataCode = dataValue
- mySelSet.Select acSelectionSetAll, , , groupCode, dataCode
- Debug.Print mySelSet.Count
- ThisDrawing.Wblock "C:\Fred_" & ThisDrawing.Layers(i).Name, mySelSet
- Set mySelSet = Nothing
- ThisDrawing.SelectionSets.Item("TextOnLayer").Delete
- Next
- End Sub
WBLOCK(写块)用于从现有图形的部分中创建新图形。可以选择图形中定义的单个项目或块。 |