你當(dāng)前的位置>>主頁(yè)>>AutoCAD知識(shí)>>專題教程
 

Autocad VBA初級(jí)教程 (第五課 畫(huà)函數(shù)曲線)

    先畫(huà)一組下圖拋物線。


下面是源碼:
Sub myl()
Dim p(0 To 49) As Double '定義點(diǎn)坐標(biāo)
Dim myl As Object '定義引用曲線對(duì)象變量
co = 15 '定義顏色
For a = 0.01 To 1 Step 0.02 '開(kāi)始循環(huán)畫(huà)拋物線
  For i = -24 To 24 Step 2 '開(kāi)始畫(huà)多段線
    j = i + 24  '確定數(shù)組元素
    p(j) = i '橫坐標(biāo)
    p(j + 1) = a * p(j) * p(j) / 10 '縱坐標(biāo)
  Next i '至此p(0)-p(40)所有元素已定義,結(jié)束循環(huán)
  Set myl = ThisDrawing.ModelSpace.AddLightWeightPolyline(p) '畫(huà)多段線
  myl.Color = co '設(shè)置顏色屬性
  co = co + 1 '改變顏色,供下次定義曲線顏色
Next a
End sub

為了鼓勵(lì)大家積極思考,從本課開(kāi)始,我不再解釋每一條語(yǔ)句的作用,只對(duì)以前沒(méi)有提過(guò)的語(yǔ)句進(jìn)行一些解釋,也許你一時(shí)很難明白,建議用上一課提到的跟蹤變量、添加斷點(diǎn)的辦法領(lǐng)悟每一條語(yǔ)句的作用,如果有問(wèn)題不懂請(qǐng)跟貼提問(wèn)。
在跟蹤變量p時(shí)請(qǐng)?jiān)诟櫞翱谥袉螕糇兞縫前的+號(hào),這樣可以看清數(shù)組p中每一個(gè)元素的變化。

ACAD沒(méi)有現(xiàn)成的畫(huà)拋物線命令,我們只能用程序編寫(xiě)多段線畫(huà)近似拋物線。理論上,拋物線的X值可以是無(wú)限小、無(wú)限大,這里取值范圍在正負(fù)24之間。

程序第二行:Dim myl As Object '定義引用曲線對(duì)象變量
Object也是一種變量類型,它可以把變量定義為對(duì)象,本例中myl變量將引用多段線,所以要定義為Objet類型。

看畫(huà)多段線命令:
Set myl = ThisDrawing.ModelSpace.AddLightWeightPolyline(p) '畫(huà)多段線
其中括號(hào)中的p是一個(gè)數(shù)組,這個(gè)數(shù)組的元素?cái)?shù)必須是偶數(shù),每?jī)蓚(gè)元數(shù)作為一個(gè)點(diǎn)坐標(biāo)。
等號(hào)前面部分“Set myl”的作用就將myl變量去引用畫(huà)好的多段線。
myl.Color = co '設(shè)置顏色屬性。在ACAD中,顏色可以用數(shù)字表示,本例中co會(huì)增值,這樣就會(huì)有五彩繽紛的效果。

本課第二張圖:正弦曲線,下面是源碼:
Sub sinl()
Dim p(0 To 719) As Double '定義點(diǎn)坐標(biāo)
For i = 0 To 718 Step 2 '開(kāi)始畫(huà)多段線
    p(i) = i * 2 * 3.1415926535897 / 360 '橫坐標(biāo)
    p(i + 1) = 2 * Sin(p(i)) '縱坐標(biāo)
Next i
ThisDrawing.ModelSpace.AddLightWeightPolyline (p) '畫(huà)多段線
ZoomExtents '顯示整個(gè)圖形
End Sub


p(i) = i * 2 * 3.1415926535897 / 360 '橫坐標(biāo)
橫坐標(biāo)表示角度,后面表達(dá)式的作用是把角度轉(zhuǎn)化弧度
ZoomExtents語(yǔ)句是縮放命令,它的作用是顯示整個(gè)圖形,消除圖形以外的區(qū)域

本課思考題:畫(huà)一條拋物線:y=0.5*x*x+3,其中X取值范圍在正負(fù)50之間.

本教程共13頁(yè)    第  [1]  [2] [3] [4]  5  [6] [7] [8] [9] [10] [11]  [12]  [13] 頁(yè)
民眾工作室.制作      版權(quán)所有