End If
Exit For '結(jié)束尋找
End If
Next lay0
If findlay = 0 Then '沒有找到圖層
Set lay1 = ThisDrawing.Layers.Add("新建圖層") '增加一個名為“臨時圖層”的圖層
lay1.Color = 2 '圖層設(shè)置為黃色
ltfind = 0 '找到線型的標志,0沒有找到,1找到
For Each entry In ThisDrawing.Linetypes '在現(xiàn)有的線型中進行循環(huán)
If StrComp(entry.Name, "HIDDEN") = 0 Then '如果線型名為"HIDDEN"
ltfind = 1 '標志為已找到線型
Exit For '退出循環(huán)
End If
Next entry '結(jié)束循環(huán)
If ltfind = 0 Then '沒有找到線型
ThisDrawing.Linetypes.Load "HIDDEN", "acadiso.lin" '加載線型
End If
lay1.Linetype = "HIDDEN" '設(shè)置線型
ThisDrawing.ActiveLayer = lay1 '將當前圖層設(shè)置為新建圖層
End If
End Sub
在尋找圖時時我們用到for each……next 語句
它的語法是這樣的:
For Each 變量 In 數(shù)組或集合對象
……
exit for
……
next 變量
它的作用是在數(shù)組或集合對象中進行循環(huán),每循環(huán)一次,變量就成為數(shù)組或集合對象中的一個元素。本例在所有的圖層對象中進行循環(huán),每循環(huán)一次layo變量就代表一個圖層
在循環(huán)體中遇到exit for 語句則退出循環(huán),如果沒有 exit for,循環(huán)將在所有的元素都操作一遍后結(jié)束。
If lay0.Name = "新建圖層" Then
lay0.name代表這處圖層的圖層名
IIf(lay0.LayerOn = True, "打開", "關(guān)閉")
這是一個簡單判斷語句,語法如下:
iif(判斷表達式,返回值1,返回值2)
當判斷表達式成立,函數(shù)值=返回值1,如果表達式不成立,函數(shù)值=2
MsgBox(msgstr, 1)
Mgbox顯示一個對話框,第一個參數(shù)是對話框顯示的內(nèi)容
第二個參數(shù)可以控制對話框上的按鈕。
0 只有確認按鈕
1 確認、取消
2 終止、重試、忽略
3 是、否、取消
4 是、否
MsgBox獲得值如下:
確認:1
取消:2
終止:3
重試:4
忽略:5
是:6
否7
初學(xué)者不需要死記硬背,能有所了解就行了
ACAD圖層中最麻煩的就是線型問題了,本例先尋找一個HIDDEN線型,如果找不到就加載這個線型,用這條語句:
ThisDrawing.Linetypes.Load "HIDDEN", "acadiso.lin"
ThisDrawing.Linetypes.Load后需要兩個參數(shù),一個是線型的名稱,另外一個是線型文件的名稱。