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

适合任何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开发CAD入门资料,让你能快速熟悉如何进行CAD二次开发,非常容易上手

    AutoCAD 高级开发技巧.pdf

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

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

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

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

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

    AUTOCAD VBA开发精彩实例教程

    本书以AutoCAD 2004中文版为开发平台,通过66个精彩的编程实例,介绍了AutoCAD VBA开发的方法和技巧。 全书共10章,将所有的实例归入基础相关、创建和编辑二维对象、绘图环境和对象特征、块和属性相关、创建三维对象...

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

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

    autocad .net开发注意事项

    AutoCAD.NET二次开发注意事项与开发技巧  1、如果要在Winform中打开DWG图形文件,这个Form必须用Application.ShowModelessDialog方式显示,不然会报错(执行环境无效)。  2、在非模态窗口中修改实体时,需要将...

    VB与autocad二次开发.rar

    使用vb开发autocad绘图功能,从vb的基本介绍开始,讲解了cad的各种接口。

    AutoCAD二次开发使用技巧

    优化AutoCAD系統的方法 一、优化Windows系统 二、优化AutoCAD系统 三、使用AutoCAD 2000 提高绘图效率的途径和技法 汉字转换为多义线

    AutoCAD VBA二次开发源代码

    本光盘上提供的文件可直接加载到AutoCAD 2005中运行,读者可对照着程序运行过程和结果来学习书中的程序设计技巧。 光盘中的文件按章进行分类,例如chap01文件夹中包括了第1章的所有程序源码,在 有素材的章节,...

    关于AUTOCAD二次开发的论文

    在cnki里下载的几篇关于关于AUTOCAD二次开发的论文,谈论了关于开发的方向和一些技巧的实现。

    85条高级AutoCAD工程师绘图技巧

    主要讲解CAD一些重要的方法,方便学习,领悟CAD软件开发的用途。有助于学者们快速学会CAD绘图技巧,能更好的提高绘图的准确性。

    用Visual Basic开发交互式CAD系统

    本书结合Visual Basic语言详细讲解了交互式CAD系统的开发技术。剖析了构造系统的思路和技巧,并结合实例给出了一套完整的代码

    AUTOCAD 2007 PPT格式教程(目前最完美的Auto CAD2007教程)

    在不断实践的过程中更好地掌握它的各种应用和开发技巧,从而不断提高工作效率。  AutoCAD具有广泛的适应性,它可以在各种操作系统支持的微型计算机和工作站上运行,并支持分辨率由320×200到2048×1024的各种图形...

    ObjectARX for AutoCAD 2008 (64-bit)

     ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。 与以往的 AutuCAD 二次开发工具 ...

    CAD高手是怎样炼成的

    很多书籍的教条化、讲师...在此,本人以开发《钢构CAD》程序的亲身经历和体会,讲述一个工作中很少用到CAD,在工地最基层的施工技术员,不具备任何英语知识,是如成为通透理解掌握、并开发出广受工程师欢迎的CAD程序。

    AutoCAD完全应用指南—AutoLISP DCL Visual LISP程序设计篇(随书光盘)

    《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》重点讲解autolisp、dcl、visual lisp三合一的autocad二次程序开发技术。《autocad完全应用指南.autolisp+dcl+visual lisp程序设计篇》分为4篇,共35章。...

    autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇(2011年4月第一版).part1.rar

    《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》非常适合autocad的初、中、高级读者使用。 《autocad完全应用指南.autolisp+dcl+visuallisp程序设计篇》 第一篇autolisp程序设计基础 第一章autolisp...

    AutoCAD 2007 实用教程(PDF)中文电子版.rar

    AutoCAD 2007 实用教程(PDF)中文电子版,本文主要介绍AutoCAD 2007 的使用及相关技巧。 AutoCAD 是由美国Autodesk 公司开发的通用计算机辅助设计(Computer Aided Design,CAD)软件,具有易于掌握、使用方便、体系...

Global site tag (gtag.js) - Google Analytics