`
peizhiinfo
  • 浏览: 1481687 次
文章分类
社区版块
存档分类
最新评论

适合任何CAD版本的CAD开发技巧

 
阅读更多

适合任何CAD版本的CAD开发

.Net开发CAD一般都需要添加引用CAD的库文件,但是由于不同版本的CAD,其库文件也有很多的差别。为了避免由于版本不同而引起各种问题,特别是要求软件使用者的CAD版本与软件开发者的CAD版本一致,这种要求比较苛刻,在现实生活中也很难实现,在此介绍一种方法。下面以在CAD中绘制线、坐标、输入文字等几种常用的操作为例:
1)启动Visual Studio,选择一个开发环境,在此以Visual Basic.net开发为例。
2)添加引用您的CAD库,如AutoCAD 2004版本的库,如下图所示:




3)添加一个按钮控件,该控件用于完成在CAD中操作,设计该按钮实现以下几个功能:(1)启动CAD对象;(2)保存CAD文件;(3)在CAD文件中绘制一条根据数组数据得到的PolyLine线;(4)在CAD文件中绘制坐标X轴、Y轴及它们的箭头;(5)在CAD文件中输入文字。
4)在全局变量中定义用于PolyLine线的数据数组,如下:
Public x() As Double
Public y() As Double
Public count As Integer
其中x,y为PolyLine线的xy坐标数组,countPolyLine线上节点的个数,即xy数组的长度。
为该按钮添加程序代码如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
On Error GoTo handle01
Dim AcadApp As AutoCAD.AcadApplication
On Error Resume Next
AcadApp = GetObject(, "AutoCAD.Application")
If Err.Number Then
Err.Clear()
AcadApp = CreateObject("AutoCAD.Application")

End If

Dim dg As New SaveFileDialog
dg.Filter = "CAD文件(*.dwg)|*.dwg"
dg.ShowDialog()
Dim savePathname As String
savePathname = dg.FileName

'====================================================================
Dim i As Integer
Dim points(2 * (count - 1) + 1) As Double
For i = 0 To count - 1
points(i * 2) = x(i)
points(i * 2 + 1) = y(i)
Next

Dim Ymax As Double = y(0)
For i = 0 To count - 1
If Ymax < y(i) Then
Ymax = y(i)
End If
Next

AcadApp.ActiveDocument.ModelSpace.AddLightWeightPolyline(points)

'绘制X轴
Dim pointsXAxis(3), XAxisTextCord(2), XAxisArrowCord(5) As Double
pointsXAxis(0) = 0 : pointsXAxis(1) = 0
pointsXAxis(2) = x(count - 1) + 10 : pointsXAxis(3) = 0
XAxisTextCord(0) = pointsXAxis(2) : XAxisTextCord(1) = pointsXAxis(3)
XAxisArrowCord(0) = x(count - 1) : XAxisArrowCord(1) = 5
XAxisArrowCord(2) = x(count - 1) + 10 : XAxisArrowCord(3) = 0
XAxisArrowCord(4) = x(count - 1) : XAxisArrowCord(5) = -5
AcadApp.ActiveDocument.ModelSpace.AddLightWeightPolyline(pointsXAxis)
AcadApp.ActiveDocument.ModelSpace.AddText("距离", XAxisTextCord, 6)
AcadApp.ActiveDocument.ModelSpace.AddLightWeightPolyline(XAxisArrowCord)

'绘制Y轴
Dim pointsYAxis(3), YAxisTextCord(2), YAxisArrowCord(5) As Double
pointsYAxis(0) = 0 : pointsYAxis(1) = 0
pointsYAxis(2) = 0 : pointsYAxis(3) = Ymax + 20
YAxisTextCord(0) = pointsYAxis(2) : YAxisTextCord(1) = Ymax + 20
YAxisArrowCord(0) = -5 : YAxisArrowCord(1) = Ymax + 10
YAxisArrowCord(2) = 0 : YAxisArrowCord(3) = Ymax + 20
YAxisArrowCord(4) = 5 : YAxisArrowCord(5) = Ymax + 10
AcadApp.ActiveDocument.ModelSpace.AddLightWeightPolyline(pointsYAxis)
AcadApp.ActiveDocument.ModelSpace.AddText("高程", YAxisTextCord, 6)
AcadApp.ActiveDocument.ModelSpace.AddLightWeightPolyline(YAxisArrowCord)

'绘制原点
Dim XYAxisTextCord(2) As Double
XYAxisTextCord(0) = -10 : XYAxisTextCord(1) = -10
AcadApp.ActiveDocument.ModelSpace.AddText("0,0", XYAxisTextCord, 6)
'====================================================================

AcadApp.ActiveDocument.SaveAs(savePathname)
AcadApp.Quit()
MsgBox("保存CAD文件成功!")
Exit Sub
handle01:
MsgBox(Err.Description)
End Sub
运行程序,点击按钮即保存了一个CAD图形文件,如下图所示:




由于没有为xycount赋值,所以图中没有出现Polyline线。但是这种方式只适合在本版本的CAD中使用,对于不是这个版本的CAD将无法使用。如现在使用的是AutoCAD 2004开发的,如果用户使用的是非2004版本的,他就无法使用这个程序。为了使这种开发变得通用,只需要将程序中凡是属于CAD对象的类名称全部更改为Object,使用模糊识别的方式。如将AutoCAD.AcadApplication更改为Object,则该程序就可以在AutoCAD其它版本中使用,包括其它对象也是一样。现将按钮Click事件中代码的代码AutoCAD.AcadApplication更改为Object,运行程序,同样可以实现相同的功能,而且还可以在AutoCAD其它版本中使用,如在AutoCAD 2007中就可以使用,如下图所示:




此外,在CAD开发中经常要来猜对象里面的结构,如3DPolyline的具有哪些属性?如何创建它?如何设置它的高程值?如何对它进行复制、删除等编辑操作?如果不去查专业的开发帮助文档,可能很难知道它里面的结构。在编程中,可以先定义一个3DPolyline的对象,如Dim p1 As AutoCAD.Acad3DPolyline,然后通过p1的属性或方法提示就可以知道它具有哪些属性和方法,如获取第一个点的Y值坐标为p1.Coordinate(0)(1),在对它实例化时只需要将是Acad3DPolyline类型的对象赋予给p1即可。当要这个程序通用时,就将AutoCAD.Acad3DPolyline改为Object即可。

分享到:
评论
1 楼 netkongjian 2014-07-09  
不错CAD控件知识,感谢分享[deyi]

相关推荐

    VB与AutoCAD二次开发入门技巧资料

    本篇将深入探讨VB与AutoCAD二次开发的基本概念、技术要点以及实用技巧。 一、CAD二次开发概述 CAD(Computer-Aided Design)二次开发是指对现成的CAD软件进行功能扩展或定制,以适应企业或个人的特殊需求。通过二次...

    AutoCAD二次开发文档(C++ C# 史上最全版本)

    ".NET CAD二次开发"标签意味着资源中包含使用C#进行AutoCAD开发的内容。".NET"让开发过程更为简便,"深入浅出AutoCAD.NET二次开发].李冠亿.扫描版.pdf"可能是本书的电子版,它深入讲解了如何使用C#和.NET Framework...

    清华大学cad二次开发

    2. **AutoCAD开发环境**:讲解如何在AutoCAD中设置开发环境,如加载LISP程序,使用AutoLISP API等。 3. **对象模型理解**:介绍CAD对象模型,包括图元、层、线型等,以及如何通过LISP操作这些对象。 4. **函数与命令...

    AutoCAD二次开发文档

    综上所述,这个压缩包中的文档将为AutoCAD二次开发者提供全面的指导,从基础概念到高级技巧,从编程语言到实战案例,都是深入理解和掌握AutoCAD定制开发的关键资源。无论是初学者还是经验丰富的开发者,都能从中...

    AutoCAD二次开发 ObjectARX侧边工具栏示例,在CAD2010上实现的屏幕菜单

    这个示例项目"AutoCAD二次开发 ObjectARX侧边工具栏示例"就是针对AutoCAD 2010版本,旨在教授如何在CAD界面中创建自定义的侧边工具栏和屏幕菜单。 在AutoCAD中,屏幕菜单通常是指那些悬浮在工作区边缘或者固定在...

    AutoCAD .NET开发指南(中文版)

    《AutoCAD .NET开发指南》是一本专门针对AutoCAD软件进行二次开发的技术手册,它不仅适合初学者快速上手,也适合有一定经验的开发者深入学习。本书由徐昌荣整理,基于AutoDesk公司网站上的AutoCAD.NET Developers ...

    AutoCAD 高级开发技巧.pdf

    AutoCAD 高级开发技巧,内容不错,希望和大家一起分享一下!

    AutoCAD VBA & VB.NET开发实例代码,非常完整,很棒很棒,拥有这套文档,足够掌握cad的开发了

    AutoCAD是一款广泛应用于工程设计领域的计算机辅助设计软件,它的强大功能和灵活性吸引了众多开发者进行二次开发,以满足特定的工作需求。...无论是初学者还是有经验的开发者,都能从中获益,提升AutoCAD开发技能。

    CAD二次开发自定义实体小案例

    在深入学习这个小案例时,你将逐步掌握ObjectARX的编程技巧,提高CAD二次开发能力。通过实践这样的案例,你可以将理论知识转化为实际技能,更好地应对实际工作中的CAD定制需求。同时,这也是一个良好的起点,为...

    AutoCAD 2000 ARX二次开发实例精粹

    《AutoCAD 2000 ARX二次开发实例精粹》是一本专门介绍如何使用ARX技术对AutoCAD进行二次开发的书籍,该书籍专注于AutoCAD 2000版本的ARX开发,虽然版本较旧,但书中提供的基础知识和开发思想仍然对学习和理解ARX开发...

    AutoCAD_VBA开发手册精典教程.pdf

    嵌入式VBA工程是直接嵌入到AutoCAD图形文件中的,能够随图形文件的打开而自动加载,非常适合于快速分发工程到用户。全局式VBA工程则保存为独立文件,不随AutoCAD图形文件自动加载,但在通用性和共享性方面更有优势。...

    AutoCAD.NET二次开发注意事项与开发技巧

    本文记录了在Autocad 开发过程中积累的经验和技巧,及容易出错的地方,如selectionfilter中关于type的对象“DBText”,只能写成“Text”等

    高清《AutoCAD VBA二次开发教程》附源码 卷I

    将所有的实例归人基础相关、控制AutoCAD环境、创建和编辑二维对象、对象特性、文字、标注和公差、块和属性、处理AutocAD中的事件、三维空间的操作、打印、高级绘图组织、使用组件扩展程序功能、和Excel交换数据、...

    AutoCAD VBA _ VB.NET开发基础与实例教程 第2版源码

    AutoCAD VBA与VB.NET是两种广泛用于AutoCAD二次开发的技术,它们允许用户根据特定需求定制和扩展AutoCAD的功能。...无论是初学者还是有经验的开发者,这套教程都能提供宝贵的学习资源,帮助你在CAD开发领域不断提升。

    AUTOCAD VBA开发精彩实例教程

    - 总结本书的核心内容,强调VBA在AutoCAD开发中的重要性和实用性。 - 展望未来发展趋势,探讨如何更好地利用VBA技术推动AutoCAD应用的发展。 通过以上知识点的学习,读者不仅能够掌握AutoCAD VBA开发的基本技能,还...

    Visual Basic与AutoCAD二次开发文档

    在IT行业中,Visual Basic(VB)与AutoCAD的二次开发是一项关键技能,它允许程序员和工程师扩展AutoCAD的功能,创建自定义工具,提高设计效率。本文档集合将深入探讨这一主题,提供宝贵的资源来帮助学习者掌握这项...

    VB与AUTOCAD二次开发教程及源代码包

    6. **高级功能**:随着章节的深入,教程将介绍更复杂的开发技巧,如动态块、图形单位转换、数据库集成以及错误处理等。这些内容对于开发专业级别的AutoCAD应用程序至关重要。 7. **用户界面设计**:VB的强大在于其...

    CAD二次开发

    ### CAD二次开发——C#语言入门基础教程 #### 一、引言 随着计算机辅助设计(CAD)在各个行业的广泛应用,对于CAD软件的定制化需求也日益增长。CAD二次开发是指利用CAD软件提供的开放接口,通过编程的方式扩展其...

    AutoCAD VBA _ VB.NET开发基础与实例教程 第2版.pdf

    综上所述,《AutoCAD VBA _ VB.NET开发基础与实例教程 第2版》这本书涵盖了AutoCAD编程的基础知识、开发环境搭建、基本编程技巧、API详解以及丰富的实例教程等内容,适合AutoCAD开发者和编程爱好者学习和参考。...

Global site tag (gtag.js) - Google Analytics