先簡單介紹兩條命令:
1、這條語句可以建立圖層:
ThisDrawing.Layers.Add("新建圖層")
在括號中填寫圖層的名稱。
2、設置為當前的圖層
ThisDrawing.ActiveLayer=圖層對象
注意,等號右邊的變量不能用圖層名稱,必須使用一個有效的圖層變量
以下一些屬性在圖層比較常用:
LayerOn 打開關閉
Freeze 凍結
Lock鎖定
Color 顏色
Linetype 線型
看一個例題:
1、先在已有的圖層中尋找一個名為“新建圖層”的圖層
2、如果找到這個圖層,顯示該圖層的信息,并提示用戶是否需要設置為當前圖層,如果用戶確認,則設置為當前圖層。
3、如果圖層沒有找到,新建一個名為“新建圖層”的圖層,設置為黃色,HIDDEN線型,并把這個圖層設置為當前圖層
Sub mylay()
Dim lay0 As AcadLayer '定義作為圖層的變量
Dim lay1 As AcadLayer
findlay = 0 '尋找圖層的結果的變量,0沒有找到,1找到
For Each lay0 In ThisDrawing.Layers '在所有的圖層中進行循環
If lay0.Name = "新建圖層" Then '如果找到圖層名
findlay = 1 '把變量改為1標志著圖層已經找到
msgstr = lay0.Name + "已經存在" + vbCrLf
msgstr = msgstr + "圖層狀態:" + IIf(lay0.LayerOn = True, "打開", "關閉") + vbCrLf
msgstr = msgstr + "圖層" + IIf(lay0.Freeze = True, "已經", "沒有") + "凍結" + vbCrLf
msgstr = msgstr + "圖層" + IIf(lay0.Lock = True, "已經", "沒有") + "鎖定" + vbCrLf
msgstr = msgstr + "圖層顏色號:" + CStr(lay0.Color) + vbCrLf
msgstr = msgstr + "圖層線型:" + lay0.Linetype + vbCrLf
msgstr = msgstr + "圖層線寬:" + CStr(lay0.Lineweight) + vbCrLf
msgstr = msgstr + "打印開關" + IIf(lay0.Plottable = False, "關閉", "打開") + vbCrLf + vbCrLf
msgstr = msgstr + "是否設置為當前圖層?"
If MsgBox(msgstr, 1) = 1 Then '如果用戶點擊確定
If Not lay0.LayerOn Then lay0.LayerOn = True '打開
ThisDrawing.ActiveLayer = lay0 '把當前圖層設為已經存在的圖層