Autocad二次開發vba教程第五課

2021-06-16 01:47:37 字數 1628 閱讀 9524

第五課 畫函式曲線

下面是原始碼:

sub myl()

dim p(0 to 49) as double '定義點座標

dim myl as object '定義引用曲線物件變數

co = 15 '定義顏色

for a = 0.01 to 1 step 0.02 '開始迴圈畫拋物線

for i = -24 to 24 step 2 '開始畫多段線

j = i + 24 '確定陣列元素

p(j) = i '橫座標

p(j + 1) = a * p(j) * p(j) / 10 '縱座標

next i '至此p(0)-p(40)所有元素已定義,結束迴圈

set myl = thisdrawing.modelspace.addlightweightpolyline(p) '畫多段線

myl.color = co '設定顏色屬性

co = co + 1 '改變顏色,供下次定義曲線顏色

next a

end sub

為了鼓勵大家積極思考,從本課開始,我不再解釋每一條語句的作用,只對以前沒有提過的語句進行一些解釋,也許你一時很難明白,建議用上一課提到的跟蹤變數、新增斷點的辦法領悟每一條語句的作用,如果有問題不懂請跟貼提問。

在跟蹤變數p時請在跟蹤視窗中單擊變數p前的+號,這樣可以看清陣列p中每乙個元素的變化。

acad沒有現成的畫拋物線命令,我們只能用程式編寫多段線畫近似拋物線。理論上,拋物線的x值可以是無限小、無限大,這裡取值範圍在正負24之間。

程式第二行:dim myl as object '定義引用曲線物件變數

object也是一種變數型別,它可以把變數定義為物件,本例中myl變數將引用多段線,所以要定義為objet型別。

看畫多段線命令:

set myl = thisdrawing.modelspace.addlightweightpolyline(p) '畫多段線

其中括號中的p是乙個陣列,這個陣列的元素數必須是偶數,每兩個元數作為乙個點座標。

等號前面部分「set myl」的作用就將myl變數去引用畫好的多段線。

myl.color = co '設定顏色屬性。在acad中,顏色可以用數字表示,本例中co會增值,這樣就會有五彩繽紛的效果。

本課第二張圖:正弦曲線,下面是原始碼:

sub sinl()

dim p(0 to 719) as double '定義點座標

for i = 0 to 718 step 2 '開始畫多段線

p(i) = i * 2 * 3.1415926535897 / 360 '橫座標

p(i + 1) = 2 * sin(p(i)) '縱座標

next i

thisdrawing.modelspace.addlightweightpolyline (p) '畫多段線

zoomextents '顯示整個圖形

end sub

p(i) = i * 2 * 3.1415926535897 / 360 '橫座標

橫座標表示角度,後面表示式的作用是把角度轉化弧度

zoomextents語句是縮放命令,它的作用是顯示整個圖形,消除圖形以外的區域

本課思考題:畫一條拋物線:y=0.5*x*x+3,其中x取值範圍在正負50之間

AutoCAD進行二次開發

本文基於autocad 2006新推出的.net api為工具,介紹了在.net平台下對autocad進行二次開發的技術,並與目前常用的vba objectarx作了對比。同時討論了如何彌補.net api某些不足的功能。當前autocad的二次開發工具主要有 visuallisp vba和obje...

AutoCAD二次開發的好處

autocad二次開發的好處 首先,autocad自身的功能就很強大,對於一般的平面製圖 比如建築 結構方面 不使用任何第三方的軟體,僅憑 autocad 自帶的基本命令,就可以完成。但如果這樣的話,cad製圖就是一件很枯燥乏味 效率低下的事情,比手工製圖強不到 去。autocad 的高明之處就在於...

二次開發vba 二次開發在尺寸優化中的應用

在進行靈敏度分析及尺寸引數優化分析過程中,需要對車身多達幾百個部件進行建立設計變數 design variable 並將設計變數與屬性進行關聯 design variable property relationship 同時,對於對稱的零部件還需要建立設計變數的關聯 design variable ...