我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網(wǎng)站首頁 > CAD新聞

AutoCAD VBA經(jīng)驗(yàn)談(二) 簡(jiǎn)單的例子

時(shí)間:2009-12-21 22:06:28 來源:

三、 從一個(gè)簡(jiǎn)單的例子開始: HELLO WORLD
Public Sub HelloWorld()
Dim insPoint(0 To 2) As Double '聲明插入點(diǎn)
Dim textHeight As Double       '聲明文字高度
Dim textStr As String          '聲明字符串
Dim textObj As AcadText        '聲明文字對(duì)象
insPoint(0) = 2      '設(shè)置插入點(diǎn)的 x 坐標(biāo)
insPoint(1) = 4      '設(shè)置插入點(diǎn)的 y 坐標(biāo)
insPoint(2) = 0      '設(shè)置插入點(diǎn)的 z 坐標(biāo)

textHeight = 1                  '強(qiáng)文字高度設(shè)置為 1.0
textStr = "Hello World!"        '設(shè)置字符串

   '創(chuàng)建 Text 對(duì)象
Set textObj = ThisDrawing.ModelSpace.AddText _
                           (textStr, insPoint, textHeight)

'根據(jù)文字的邊界框縮放視圖
Dim ptLeftBottom As Variant
Dim ptRightUp As Variant
textObj.GetBoundingBox ptLeftBottom, ptRightUp
ZoomWindow ptLeftBottom, ptRightUp
End Sub

     這是幫助里的一個(gè)例子,我略作修改。這段代碼在當(dāng)前文件的模型空間創(chuàng)建文字,并按文字的邊界框縮放視圖。本例在模型空間創(chuàng)建文字對(duì)象,把ThisDrawing.ModelSpace.AddText 改為ThisDrawing.PaperSpace.AddText , 可以在激活的圖紙空間中創(chuàng)建文字;而靈活的做法是改為:ThisDrawing.ActiveSpace.AddText,在當(dāng)前激活的空間中創(chuàng)建文字,一般建議在當(dāng)前激活空間中創(chuàng)建對(duì)象,把選擇權(quán)給用戶。Addxxx類的方法用于模型空間MSPACE、圖紙空間paperspace、塊block。
   VBA中的點(diǎn)用double型數(shù)組表示,需要點(diǎn)參數(shù)的方法傳入數(shù)組名就可以了。從VBA返回的點(diǎn)是variant變量,可以直接當(dāng)數(shù)組應(yīng)用。


   把代碼粘貼到VBA工程的公共模塊,就可以從工具--宏-選擇運(yùn)行它。 只有是公共模塊中的無參數(shù)的公共過程sub才能從宏菜單運(yùn)行,這個(gè)過程就是宏,用戶界面。

    工程開始前進(jìn)行模塊規(guī)劃重要,下面是一些建議:
1、每個(gè)功能比如自動(dòng)中心線粗糙度等各設(shè)一個(gè)實(shí)現(xiàn)模塊,模塊設(shè)置為私有;設(shè)置一個(gè)公共模塊作為界面,界面過程宏調(diào)用實(shí)現(xiàn)模塊中的過程)通用的過程或函數(shù)放入私有模塊。
2、盡量少用全局變量,盡可能縮小變量的作用范圍。

如果初學(xué)編程,學(xué)會(huì)調(diào)試程序,這個(gè)很重要??梢杂眠@個(gè)簡(jiǎn)單的例子學(xué)習(xí)怎么調(diào)試程序。在VBA集成環(huán)境中可設(shè)置變量表達(dá)式監(jiān)視、設(shè)置斷點(diǎn)、單步運(yùn)行、運(yùn)行至光標(biāo)處等。表達(dá)式監(jiān)視窗口可以顯示表達(dá)式的類型、值等,結(jié)合斷點(diǎn),可以順藤摸瓜找出錯(cuò)誤。除了邏輯錯(cuò)誤,由于VBA的類型檢查不嚴(yán)格,如果把某個(gè)方法的返回值賦值給錯(cuò)誤類型的接收者、引用不存在的屬性等,都可能出現(xiàn)可以運(yùn)行,但結(jié)果不對(duì)。