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