浅析VB控制AutoCAD绘制三维分形图案

时间:2024-04-26 03:39:19 5A范文网 浏览: 论文范文 我要投稿

摘   要: 本文介绍AutoCAD2000与VB以Active Automation实现连接,实现可编程CAD设计在分形图案设计领域的应用。
关键词: AutoCAD2000;OLE Automation;
 
1. 引言
大量分形例子是由数学方法,特别是迭代和递归算法产生出来的图形或图象。不论是自然界中的个体分形形态,还是数学方法产生的分形图案,都有无穷嵌套、细分再细分的自相似的几何结构,并是个动态过程[1]。在AutoCAD里使用手工绘图无法实现这种复杂、动态、多向、结合数学运算的设计。
在VB中利用Active Automation技术可实现可编程设计,符合分形图案的在三维空间的展现。AutoCAD有丰富的线,面,体的构筑功能,如B样条曲线(在CAD里定为Spline),布尔运算,实体挤压技术,在AutoCAD里可轻易实现,并突破传统的二维空间分形,使分形图案在三维世界里更加绚丽。
 
 
 


2.       AutoCAD与VB的ActiveX Automation 连接技术
   为使用AutoCAD的Auotomation对象,必须首先在Visual Basic 6.0中引用该对象类型库acad.tlb  ,并连接如下[1]:
sub Main()
     Public acadApp As Object   ‘AutoCAD 的application对象
     Public acadDoc As Object   ‘AutoCAD document对象
     Public moSpace As Object   ‘Modelspace 模型空间对象集合
     Public paSpace As Object    ‘PaperSace 图纸空间对象集合
     On Error Resume Next
     Set acadApp = GetObject(,” AutoCAD.Application”)
     If  Err Then
            Err.Clear
            Set acadApp = CreateObject(“AutoCAD.Application”)
            If Err Then
                 Msgbox Err.description
                 Exit Sub
            End If
End if
  End sub
在存储及绘图模板使用如下[3]:
acadDoc.activedocument.SaveAs(′d:/capp/fractal.dwg′)
 ’执行ActiveDocument对象的SaveAs方法
exportFile := ′d:/capp/fractal′
将AutoCAD应用程序关闭使用Quit方法:acadApp.Quit. :Set acadApp =Nothing
 
3.       AutoCAD中图形的创建
各类线创建:1)AddLine;2)AddLightweightPolyline;3)AddMLine;4)AddPolyline;
5) AddArc;6) AddCircle;7) AddEllipse;
8)AddSpline:二,三次 NURBS (nonuniform rational B-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


  [8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />样条曲线实例:Sub CreateSpline()
                 Dim splineObj As AcadSpline
                 Dim noOfPoints As Integer
     Dim startTan(0 To 2) As Double
                 Dim endTan(0 To 2) As Double
   Dim fitPoints(0 To 8) As Double
               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
                Set splineObj =moSpace.AddSpline (fitPoints, startTan, endTan)
                ZoomAll
End Sub
4.三维谢氏塔的自相似结构:
   三棱锥型的创建法: 1)生成三维线(Add3Dpolyline);
2)产生区域(AddRegion)后通过挤压(AddExtrudedSolid)
sub CreatePyramid()
Dim polyObj As Acad3Dpolyline
Dim points(0 To 11) As Double
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
Set polyObj=moSpace.Add3Dpolyline(poits)
Dim regionObj As Variant
Set RegionObj=moSpace.AddRegion(polyObj)
Dim height As Double
Dim taperAngle As Double
height=255:taperAngle=
Dim solidObj As Acad3Dsoild
Set solidObj=moSpace.AddExtrudeSolid(regionObj,height,taperAngle)
End sub
布尔运算法语法为:solidObj1.Boolean acUnion,solidObj2(并运算)
                  solidObj1.Boolean acIntersection,solidObj2(交运算)
参考文献
[1]刘华杰.   分形艺术, 湖南电子音像出版社1997年
[2]王珏.  用VBA开发AutoCAD2000应用程序  人民邮电出版社,1999
[3]刘艳斌等.OLE Automation技术在CAD/CAPP基成中的应用.计算机应用 2000.Vol.4
  [8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr /> 

相关文章:

论数据备份与容灾系统04-26

试析信息素质与计算机应用能力04-26

化工行业无线通讯系统的应用04-26

国际金融体系改革:中国的选择04-26

论维护ASP应用程序的安全性04-26

浅析计算机病毒的危害及防范04-26

当前我国证券公司的风险及其管理04-26

香港保险市场的创新与分析04-26

我国证券公司的发展现状及其未来发展趋势研究分析04-26

探析证券公司信息化发展与对策04-26

热搜文章
最新文章