首頁 > 文章中心 > 正文

      VB控制AutoCAD繪制三維分形圖案

      前言:本站為你精心整理了VB控制AutoCAD繪制三維分形圖案范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

      VB控制AutoCAD繪制三維分形圖案

      摘要:本文介紹autocad2000與vb以ActiveAutomation實現連接,實現可編程CAD設計在分形圖案設計領域的應用。

      關鍵詞:AutoCAD2000;OLEAutomation;

      1.引言

      大量分形例子是由數學方法,特別是迭代和遞歸算法產生出來的圖形或圖象。不論是自然界中的個體分形形態,還是數學方法產生的分形圖案,都有無窮嵌套、細分再細分的自相似的幾何結構,并是個動態過程[1]。在AutoCAD里使用手工繪圖無法實現這種復雜、動態、多向、結合數學運算的設計。

      在VB中利用ActiveAutomation技術可實現可編程設計,符合分形圖案的在三維空間的展現。AutoCAD有豐富的線,面,體的構筑功能,如B樣條曲線(在CAD里定為Spline),布爾運算,實體擠壓技術,在AutoCAD里可輕易實現,并突破傳統的二維空間分形,使分形圖案在三維世界里更加絢麗。

      2.AutoCAD與VB的ActiveXAutomation連接技術

      為使用AutoCAD的Auotomation對象,必須首先在VisualBasic6.0中引用該對象類型庫acad.tlb,并連接如下[1]:

      subMain()

      PublicacadAppAsObject‘AutoCAD的application對象

      PublicacadDocAsObject‘AutoCADdocument對象

      PublicmoSpaceAsObject‘Modelspace模型空間對象集合

      PublicpaSpaceAsObject‘PaperSace圖紙空間對象集合

      OnErrorResumeNext

      SetacadApp=GetObject(,”AutoCAD.Application”)

      IfErrThen

      Err.Clear

      SetacadApp=CreateObject(“AutoCAD.Application”)

      IfErrThen

      MsgboxErr.description

      ExitSub

      EndIf

      Endif

      Endsub

      在存儲及繪圖模板使用如下[3]:

      acadDoc.activedocument.SaveAs(′d:\capp\fractal.dwg′)

      ’執行ActiveDocument對象的SaveAs方法

      exportFile:=′d:\capp\fractal′

      將AutoCAD應用程序關閉使用Quit方法:acadApp.Quit.:SetacadApp=Nothing

      3.AutoCAD中圖形的創建

      各類線創建:1)AddLine;2)AddLightweightPolyline;3)AddMLine;4)AddPolyline;

      5)AddArc;6)AddCircle;7)AddEllipse;

      8)AddSpline:二,三次NURBS(nonuniformrationalB-spline)曲線.

      各類面創建:1)Add3Dface;2)AddPolyfaceMesh;3)AddPolygonMesh;4)AddSolid

      各類體創建:1)AddBox;2)AddCone;3)AddCylinder;4)AddEllipticalCone;5)AddSphere;

      6)AddTorus7)AddExtrudesolid;8)AddWedge;9)AddRevolveSolid;

      10)AddElliptcalCylinder;11)AddextrudeSolidAlongPath

      樣條曲線實例:SubCreateSpline()

      DimsplineObjAsAcadSpline

      DimnoOfPointsAsInteger

      DimstartTan(0To2)AsDouble

      DimendTan(0To2)AsDouble

      DimfitPoints(0To8)AsDouble

      noOfPoints=3

      startTan(0)=0.5:startTan(1)=0.5:startTan(2)=0

      endTan(0)=0.5:endTan(1)=0.5:endTan(2)=0

      fitPoints(0)=1:fitPoints(1)=1:fitPoints(2)=0

      fitPoints(3)=5:fitPoints(4)=5:fitPoints(5)=0

      fitPoints(6)=10:fitPoints(7)=0:fitPoints(8)=0

      SetsplineObj=moSpace.AddSpline(fitPoints,startTan,endTan)

      ZoomAll

      EndSub

      4.三維謝氏塔的自相似結構:

      三棱錐型的創建法:1)生成三維線(Add3Dpolyline);

      2)產生區域(AddRegion)后通過擠壓(AddExtrudedSolid)

      subCreatePyramid()

      DimpolyObjAsAcad3Dpolyline

      Dimpoints(0To11)AsDouble

      Point(0)=0:Point(1)=0:Point(2)=0

      Point(3)=255:Point(4)=0:Point(5)=0

      Point(6)=128:Point(7)=221.7025:Point(8)=0

      Point(9)=0:Point(10)=0:Point(11)=0

      SetpolyObj=moSpace.Add3Dpolyline(poits)

      DimregionObjAsVariant

      SetRegionObj=moSpace.AddRegion(polyObj)

      DimheightAsDouble

      DimtaperAngleAsDouble

      height=255:taperAngle=

      DimsolidObjAsAcad3Dsoild

      SetsolidObj=moSpace.AddExtrudeSolid(regionObj,height,taperAngle)

      Endsub

      布爾運算法語法為:solidObj1.BooleanacUnion,solidObj2(并運算)

      solidObj1.BooleanacIntersection,solidObj2(交運算)

      參考文獻

      [1]劉華杰.分形藝術,湖南電子音像出版社1997年

      [2]王玨.用VBA開發AutoCAD2000應用程序人民郵電出版社,1999

      [3]劉艷斌等.OLEAutomation技術在CAD/CAPP基成中的應用.計算機應用2000.Vol.4

      亚洲日本视频在线观看| 亚洲毛片av日韩av无码| 2048亚洲精品国产| 久久亚洲欧美国产精品| 亚洲一区AV无码少妇电影| 亚洲午夜精品一区二区公牛电影院| 亚洲AV成人一区二区三区AV| 亚洲成av人片在线观看无码不卡| 亚洲毛片αv无线播放一区| 亚洲一区二区三区无码影院| 亚洲国产综合精品一区在线播放| 国产亚洲Av综合人人澡精品| 亚洲AⅤ视频一区二区三区| 日韩亚洲国产二区| 亚洲国产高清在线一区二区三区| 亚洲国产成人精品无码久久久久久综合| 性色av极品无码专区亚洲| 国产精品亚洲片在线花蝴蝶| 国产亚洲福利精品一区二区| 亚洲国产精品无码久久青草| 亚洲色婷婷综合开心网| 久久亚洲国产精品123区| 亚洲综合无码AV一区二区| 国产aⅴ无码专区亚洲av| 久久久亚洲精品国产| 久久精品国产亚洲AV无码麻豆| 亚洲毛片在线免费观看| 亚洲an日韩专区在线| 亚洲日韩国产AV无码无码精品| 亚洲AV综合永久无码精品天堂| 一本久久综合亚洲鲁鲁五月天| 亚洲五月午夜免费在线视频| 亚洲一区二区女搞男| 亚洲第一精品在线视频| 亚洲精品电影在线| 在线精品亚洲一区二区| 亚洲国产成人AV网站| 伊人婷婷综合缴情亚洲五月| 久久国产精品亚洲一区二区| 亚洲精品美女久久久久9999| 亚洲色欲啪啪久久WWW综合网|