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