用BASIC畫個圖送給AutoCAD

機械系劉陳祥老師作



  AutoCAD的繪圖功能之強,實在是無話可說的了。

然而,要在AutoCAD中以現有的圖素與繪圖指令來畫出

精確的數學函數圖形,實在是很困難,若不借以外力,甚至根

本畫不出來。那麼,該怎麼辦呢?            

 

  還好,AutoCAD在交談式的繪圖環境中提供了一套

很強而有力的智慧型程式語言─AutoLisp,可以解決

上述的問題,但並不是每一位AutoCAD的使用者都會寫

AutoLisp程式。除此之外,還有別的方法嗎?這個答

案是肯定的,Script File外部輸入的腳本檔案正

是一個非常棒的idea。真巧,BASIC恰恰好又是最人

性化圖文雙能的高階電腦語言,人人都會用,它對Scrip

t File的製作可謂是易如反掌。且看下述二例:   



一.傳送2D函數圖形到AutoCAD         

  下面的第一個BASIC程式執行後,可得到一個Scr

ipt檔案─FPLT2D.SCR。將這個檔案在Auto

CAD的Command:下以SCript指令載入執行之

,即可在螢幕上自動畫出如圖一所示的2D函數圖形。   



二.傳送3D函數圖形到AutoCAD         

  下面的第二個BASIC程式執行後,可得到一個Scr

ipt檔案─FPLT3D.SCR。將這個檔案在Auto

CAD的Command:下以SCript指令載入執行之

,即可在螢幕上自動畫出如圖二所示的3DMesh網狀曲面

函數圖形。                      


'----------- The 2D Function Script File Maker ----------

CLS

DEF FNY (X) = X * EXP(2 * COS(A / 2) + SIN(3 * A)) / 4

K = 3.1415926# / 180

N = 200

  X1 = -400

  X2 = 400

  Y1 = -300

  Y2 = 300

DX = (X2 - X1) / N

OPEN "FPLT2D.SCR" FOR OUTPUT AS #1

        PRINT #1, "LIMITS"

        WRITE #1, X1, Y1

        WRITE #1, X2, Y2

        PRINT #1, "ZOOM"

        PRINT #1, "A"

        PRINT #1, "PLINE"

    FOR X = X1 TO X2 STEP DX

       A = X * K

       Y = FNY(X)

       PRINT "X="; X!, "Y="; Y!

       WRITE #1, X, Y

    NEXT X

       PRINT #1, ""

CLOSE #1

END

圖 一


'------------ The 3D Function Script File Maker ---------------------

CLS

    DEF FNZ (X, Y) = R * EXP(COS(K * X) * SIN(K * Y))

    K = 3.1415926# / 180

    M = 50

    N = 40

    X1 = -300

    X2 = 300

    Y1 = -200

    Y2 = 200

    DX = (X2 - X1) / M

    DY = (Y2 - Y1) / N

OPEN "FPLT3D.SCR" FOR OUTPUT AS #1

    PRINT #1, "LIMITS"

    WRITE #1, X1, Y1

    WRITE #1, X2, Y2

    PRINT #1, "VPOINT"

    PRINT #1, "2,-1,3"

    PRINT #1, "ZOOM"

    PRINT #1, "A"

    PRINT #1, "3DMESH"

    WRITE #1, M + 1

    WRITE #1, N + 1

FOR I = 0 TO M

FOR J = 0 TO N

    X = I * DX + X1

    Y = J * DY + Y1

    R = 100 * SIN(SQR(X * X + Y * Y) * K)

    Z = FNZ(X, Y)

    PRINT "("; I; ","; J; ") =";

    WRITE X, Y, Z

    WRITE #1, X, Y, Z

NEXT J

NEXT I

CLOSE #1

END

圖 二


  諸位讀友們,看到這兒,酷斃了吧!只要您會用BASI

C撰寫數學函數,幾乎可在AutoCAD中畫出所有的函數

圖形,不論是2D或是3D的,其精密度可是會嚇死老百姓的

喲!若您藉此一隅而以三隅反之,還可以發展出很多不同的應

用與畫法喔!                     


[下載QBASIC程式(194k)]