VB与AutoCAD二次开发入门技巧资料_13061-aVBDDEAutoCADforWindows
用VB对AutoC进行二次开发
用V B对A u t o C进行二次开发The Standardization Office was revised on the afternoon of December 13, 2020用VB对AutoCAD进行二次开发|用VB对AutoCAD进行二次开发A utoCAD一直是CAD市场中的主流产品。
随着AutoCAD的日益普及,在其上进行二次开发的工具也不断更新。
从早期的Auto Lisp、ADS、 DCL到现在流行的 Object ARX、ActiveX Automation、Visual Lisp,均可十分方便地对AutoCAD进行二次开发。
本文主要讨论关于运用Visual Basic对AutoCAD基于ActiveX Automation的二次开发技术。
选用 ActiveX 有两个原因,一是因为Visual Basic的普及性与易用性,二是采用这种方法进行二次开发可方便地实现与其它图形软件的接口,如与Solid Works实现实体造型与二维绘图的结合,以及根据用户的特殊需要开发出一定功能的软件。
二、ActiveX Automation技术AutoCAD中的ActiveX Automation是微软公司ActiveX规范的具体应用。
它通过基于ActiveX的自动化对象,为其他应用程序提供了访问AutoCAD内部功能的方法,是AutoCAD 最新的开发接口。
在运行时,AutoCAD与其他应用程序之间的关系是服务器与客户的关系,开发人员使用支持ActiveX规范的编程语言(如VB、Dephi等)能通过访问AutoCAD的对象模型,把AutoCAD的强大功能集成到应用程序中.AutoCAD的对象模型是一种树型结构模型,根为"AutoCAD Application",AutoCAD中的所有对象都是AutoCAD Application的子对象。
图1所示为AutoCAD对象模型的层次结构树,其中父对象与子对象之间的关系并不是对象继承关系,而是包含关系。
关于VB对AutoCAD二次开发学习笔记
关于VB对AutoCAD二次开发学习笔记□By OYLS基于VB对AutoCAD的二次开发,主要是通过运用VB编程对AutoCAD软件中的基本绘图操作进行控制,了解AutoCAD软件中的常用命令。
在编程过程中我们要借助AutoCAD软件中的“帮助文件”,即“AutoCAD开发人员帮助”文档。
一、获取VB对AutoCAD的控制权:先定义变量acadApp,acadDoc:Public acadApp As AcadApplicationPublic acadDoc As AcadDocumentFunction boot_CAD() As BooleanOn Error Resume NextSet acadApp = GetObject(, "AutoCAD.Application")If Err ThenErr.ClearSet acadApp = CreateObject("AutoCAD.Application")If Err ThenMsgBox "您没有安装AutoCAD ,或安装版本错误!", vbOKOnly + vbInformation, "CAD简易绘图系统"boot_CAD = FalseBtOK = FalseExit FunctionEnd IfEnd IfSet acadDoc = acadApp.ActiveDocumentacadApp.Visible = Trueboot_CAD = TrueEnd Function需要说明的是,我们只有先对CAD获取了控制权以后才能有效地运用VB编程方式进行CAD的基本绘图操作。
不然,以后的各种对CAD的操作将无法得以实现。
二、基本绘图思路:先了解所绘对象的基本属性,可以说,也正是由于对象的各种属性才构成了一个特性为一而标准的实体。
对象的属性特点我们可以事先通过CAD帮助文件查找得出。
VB与AutoCAD二次开发入门技巧资料_13062-ARX
ARX 程序的装载和卸载---- 1. ARX 程序的装载---- ARX 应用程序的装载有以下几种方法:---- (1)在AutoCAD 启动文件acad.rx 中指定待装入的ARX 应用程序名。
acad.rx 是ASCII 文本文件,每个ARX 应用程序必须单独占一行,AutoCAD 启动时会自动装载该文件中的ARX 应用程序。
另外,应确保$ACAD 路径定义中包括文件acad.rx 的存放目录。
---- (2)用acrxLoadModule() 或AcRxDynamicLinker::loadModule() 函数,在一个ARX 应用程序里装载另一个ARX 应用程序。
这两个函数的原型是:---- int acrxLoadModule(char *moduleName, int printit);---- virtual Adesk::Boolean AcRxDynamicLinker::loadModule (char *fileName, int printIt) = 0;---- 其中各参数含义如下:---- moduleName:待装载的ARX 应用程序名;ARX 应用程序扩展名默认为.ARX,如果不是.ARX,则此处char *moduleName 参数必须包括应用程序扩展名。
---- fileName:含义与上述moduleName 相同。
但是fileName 必须包括待装载的ARX 应用程序的路径和扩展名。
---- printit:取0 则不显示装载结果,取非0 值则显示。
当printit 取非0 值时,如装载成功,则在AutoCAD 命令窗口显示“Runtime Extension is already loaded.",否则,显示“AcRxDynamicLinker failed to load "。
"---- acrxLoadModule() 与AcRxDynamicLinker::loadModule 不同的是:acrxLoadModule() 从$ACAD 定义的AutoCAD 搜索路径自动搜索待装载的ARX 应用程序,并默认ARX 应用程序扩展名为.ARX。
VB与AutoCAD二次开发入门技巧资料_13064-AutoCAD2000
AutoCAD 2000定制开发技术简介及在工程制图中的应用周荣军(辽宁省国土资源规划院遥感所沈阳110031)摘要本文介绍AutoCAD 2000定制开发的必要性、开发工具、定制开发内容和方法,使AutoCAD用户能够定制开发自己的AutoCAD系统,从而使系统更高效,举例说明其在工程制图中的应用。
关键词AutoCAD 2000 定制开发应用0 引言在工程CAD领域中,各种商用CAD系统层出不穷,如Autodesk公司的AutoCAD 系统、Computervision公司的CADDS系统、Dassault公司的Catia系统、EDS公司的Unigraphics系统、HP公司的PE系统、Intergraph公司的I/EMS系统、Matra Datavision公司的Euclid系统、PTC公司的PRO/Engineer系统和SDRC公司的I桪eas系统等等。
由Autodesk公司开发的AutoCAD自20世纪80年代以来一直独领风骚。
成为各工程领域首选的CAD系统,是市场上最流行的PC桟AD系统。
全世界有80个国家的200万人在使用AutoCAD绘制各种各样的图形。
1998年AutoCAD在市场上的占有率达79%,成为事实上的世界范围内的计算机制图标准。
AutoCAD的巨大成功,首先得益于它的开放性,使得第三方很容易开发各种适用的专用软件,给用户带来标准、廉价、方便、高效等益处,从而进一步占领了市场。
用户通过对AutoCAD系统的定制开发,可以结合自己的专业特点,开发属于自己的专用型CAD 系统。
目前,国内开发的工程制图软件大多采用AutoCAD作为其软件支撑平台,进行二次开发而成,为工程设计和制图行业创造了巨大的经济效益和社会效益。
1 定制开发的必要性AutoCAD是目前Windows95/98/nt/2000环境下应用最广泛、使用人数最多的CAD 软件。
但是AutoCAD所提供的只是一般的通用的CAD功能,如造型、编辑、注释等。
VB对AutoCAD的二次开
实验VB对AutoCAD的二次开发一、实验目的了解CAD二次开发的几种形式,掌握VB对AutoCAD进行二次开发,实现参数化绘图的技巧。
二、实验要求1、了解AutoCAD二次开发的基本原理2、掌握运用VB开发界面的方法3、掌握运用VB调用AutoCAD库函数,完成相关功能的方法三、实验步骤1、建立AutoCAD和VB之间的连接启动VB,建立“标准exe”程序,选择菜单“工程”——“引用”,选择“AutoCAD 2004 Type Library”。
2、创建界面3、程序编码1)定义全局变量Dim AcadApp As AcadApplication 'AutoCAD应用程序变量Dim AcadDoc As AcadDocument 'AutoCAD文档变量2)引用AutoCAD应用程序Private Sub Command1_Click()On Error Resume NextIf Err ThenErr.ClearEnd IfSet AcadApp = New AcadApplicationIf Err ThenMsgBox Err.DescriptionExit SubEnd If'设置AutoCAD应用程序参数AcadApp.WindowTop = 0AcadApp.WindowLeft = 400AcadApp.Width = 600AcadApp.Height = 800AcadApp.Visible = TrueAcadApp.Documents.AddSet AcadDoc = AcadApp.ActiveDocumentAcadDoc.WindowState = acMaxCommand4.Enabled = TrueEnd Sub3)参数化绘图Private Sub Command4_Click()'设置新图层Dim layer1 As AcadLayerDim layer2 As AcadLayerSet layer0 = yers.Item(0)Set layer1 = yers.Add("粗实线层")Set layer2 = yers.Add("中心线层")layer1.Lineweight = acLnWt080 '粗实线的线宽layer1.Color = acWhitelayer2.Color = acRedAcadDoc.Linetypes.Load "centerx2", "acad.lin"layer2.Linetype = "centerx2"'输入原始参数Dim Center(0 To 2) As DoubleDim Vert(0 To 7) As DoubleDim L04 As DoubleDim L01 As DoubleDim b As DoubleDim r As Doubleb = Val(Text2.Text): r = Val(Text1.Text) / 2: L01 = r - Val(Text3.Text) L04 = Sqr(r * r - (b / 2) ^ 2)Center(0) = 100: Center(1) = 100: Center(2) = 0'画中心线AcadDoc.ActiveLayer = layer2Dim line1 As AcadLineDim line2 As AcadLine'定义两直线的端点Dim pl1s(0 To 2) As DoubleDim pl1e(0 To 2) As DoubleDim pl2s(0 To 2) As DoubleDim pl2e(0 To 2) As Doublepl1s(0) = Center(0) - r - 1.5: pl1s(1) = Center(1): pl1s(2) = 0pl1e(0) = Center(0) + r + 1.5: pl1e(1) = Center(1): pl1e(2) = 0pl2s(0) = Center(0): pl2s(1) = Center(1) + r + 1.5: pl2s(2) = 0pl2e(0) = Center(0): pl2e(1) = Center(1) - r - 1.5: pl2e(2) = 0Set line1 = AcadDoc.ModelSpace.AddLine(pl1s, pl1e)Set line2 = AcadDoc.ModelSpace.AddLine(pl2s, pl2e)'创建辅助的优化多段线AcadDoc.ActiveLayer = layer1'定义键槽直线端点Dim p1(0 To 2) As DoubleDim p2(0 To 2) As DoubleDim p3(0 To 2) As DoubleDim p4(0 To 2) As DoubleDim angVal As DoubleDim pLine1 As AcadLineDim pLine2 As AcadLineDim pLine3 As AcadLineDim pArc As AcadArcDim pi As Double '定义圆周率p1(0) = Center(0) - b / 2: p1(1) = Center(1) + L01: p1(2) = 0p2(0) = p1(0): p2(1) = Center(1) + L04: p2(2) = 0p3(0) = p1(0) + b: p3(1) = p1(1): p3(2) = 0p4(0) = p1(0) + b: p4(1) = p2(1): p4(2) = 0Set pLine1 = AcadDoc.ModelSpace.AddLine(p1, p2)Set pLine2 = AcadDoc.ModelSpace.AddLine(p1, p3)Set pLine3 = AcadDoc.ModelSpace.AddLine(p3, p4)angVal = Atn((b / 2) / L04)pi = 3.1415Set pArc = AcadDoc.ModelSpace.AddArc(Center, r, pi / 2 + angVal, 2 * pi + pi / 2 - angVal)AcadApp.ZoomExtentsAcadDoc.ActiveLayer = layer0End Sub'查询Private Sub CmdSeek_Click() Dim aVal As Integer 'A值 aVal = CInt(Text1.Text) Text2.Text = GetVal(aVal)End Sub。
关于VB对AutoCAD二次开发学习笔记
关于VB对AutoCAD二次开发学习笔记关于VB对AutoCAD二次开发学习笔记□By OYLS基于VB对AutoCAD的二次开发,主要是通过运用VB编程对AutoCAD软件中的基本绘图操作进行控制,了解AutoCAD软件中的常用命令。
在编程过程中我们要借助AutoCAD软件中的“帮助文件”,即“AutoCAD开发人员帮助”文档。
一、获取VB对AutoCAD的控制权:先定义变量acadApp,acadDoc:Public acadApp As AcadApplicationPublic acadDoc As AcadDocumentFunction boot_CAD() As BooleanOn Error Resume NextSet acadApp = GetObject(, "AutoCAD.Application")If Err ThenErr.ClearSet acadApp = CreateObject("AutoCAD.Application")If Err ThenMsgBox "您没有安装AutoCAD ,或安装版本错误!", vbOKOnly + vbInformation, "CAD简易绘图系统"boot_CAD = FalseBtOK = FalseExit FunctionEnd IfEnd IfSet acadDoc = acadApp.ActiveDocumentacadApp.Visible = Trueboot_CAD = TrueEnd Function需要说明的是,我们只有先对CAD获取了控制权以后才能有效地运用VB编程方式进行CAD的基本绘图操作。
不然,以后的各种对CAD的操作将无法得以实现。
二、基本绘图思路:先了解所绘对象的基本属性,可以说,也正是由于对象的各种属性才构成了一个特性为一而标准的实体。
基于VB的AutoCAD二次开发
基于VB的AutoCAD二次开发摘要:Visual Basic是当今世界上最流行的编程语言之一,CAD是目前使用最广泛的绘图软件,本文将在测绘领域,探讨基于Visual Basic对AutoCAD进行二次开发,对外业获取的数据内业进行自动绘图,提高工作效率。
关键词:Visual basic;AutoCAD;ActiveX;CAD二次开发1.引言在使用全站仪的外业测图,如果我们对采集的数据赋予遵循特定规则的简码,用成图软件导入外业数据,然后利用二次开发的软件完成自动绘图,更能提高作业效率。
本文将基于Visual Basic对AutoCAD二次开发一个自动绘图的程序。
2.需求分析需求分析:该程序可以实现“外业测图,内业自动绘图”的功能。
具体是通过导出外业数据,对数据进行读取、分析识别,然后实现在AutoCAD画布上展点,自动绘图。
3.程序的设计程序的设计包括界面和功能设计和数据格式的设计。
3.1界面和功能设计程序Frmbase窗体由一个菜单栏、一个状态栏、一个公共对话框组成。
该程序主窗体frmbase设计如图3.1所示。
图3.1 frmbase窗体设计效果图菜单栏“文件”菜单下有创建新图形文件、打开、保存图形文件、导入DXF文件、导出DXF和BMP文件、关闭图形文件和退出程序这些子菜单。
如图3.2所示。
图3.2 “文件”菜单及其子菜单菜单栏“绘图”菜单下有展点和自动绘图子菜单,而展点可以通过两种数据文件来读取数据,所以展点子菜单下还有两个子菜单。
如图3.3所示。
图3.3 “绘图”菜单及其子菜单3.2数据格式的设计数据格式的设计:文件后缀为*.dat或者*.xls。
第一列是点名,第二列是简码,第三列是AutoCAD中的Y坐标,也是测量坐标系中的X坐标,第四列是测量坐标系中的Y坐标,第五列是高程。
编码规则:以地物名字的中文拼音首字母进行命名,例如井盖的简码为“JG”,平房的简码为“pf”。
图上的地物都是由点状地物、线状地物和面状地物这三种的抽象。
用VB对AutoCAD进行二次开发
用VB对AutoCAD进行二次开发|用VB对AutoCAD进行二次开发AutoCAD一直是CAD市场中的主流产品。
随着AutoCAD的日益普及,在其上进行二次开发的工具也不断更新。
从早期的AutoLisp、ADS、DCL到现在流行的ObjectARX、ActiveXAutomation、VisualLisp,均可十分方便地对AutoCAD进行二次开发。
本文主要讨论关于运用VisualBasic对AutoCAD基于ActiveXAutomation的二次开发技术。
选用ActiveX有两个原因,一是因为VisualBasic的普及性与易用性,二是采用这种方法进行二次开发可方便地实现与其它图形软件的接口,如与SolidWorks实现实体造型与二维绘图的结合,以及根据用户的特殊需要开发出一定功能的软件。
的自动(如VB的图在启动对象。
EndIf2.Preferences与Document对象与AutoCAD中的Preferences对话框的作用相同,通过Preferences对象可以读取或设置AutoCAD的一些基本设置。
Preferences对象通过Application的Preferences属性返回。
DimAcadPrefasObjectSetAcadPref=AcadApp.Preferences比如,用户可通过Preferences对象进行如下的设置AcadPref.Cursorsize=100AcadPref.DisplayScreenMenu=acTrueAcadPref.DisplayScrollBars=Check1.valueDocument对象表示AutoCAD中中当前打开的文档,对AutoCAD中的任何其它操作都需用到Document对象,该对象可以通过ActiveDocument属性返回。
DimAcadDocasObjectSetAcadDoc=AcadApp.ActiveDocumentAutoDesk公司使用了集合的概念。
基于VB环境下的AutoCAD二次开发技术
收稿日期:2002209219作者简介:李 超(1977-),男,安徽望江人,在读硕士生. 文章编号:100522895(2003)0320081203基于VB 环境下的A utoCAD 二次开发技术李 超,董继先 (陕西科技大学机电学院,陕西咸阳712081) 摘 要:介绍了用流行的W indow s 应用程序开发工具V isual Basic 语言进行A utoCAD 二次开发的三种技术,以实例详细地阐述了在VB 的环境下开发A utoCAD 的方法。
关 键 词:动态数据交换;对象链接与嵌入;A ctiveX A utom ati on ;A utoCAD ;VB 中图分类号:TH 126.2 文献标识码:B1 引 言作为目前世界上主流的计算机辅助设计软件,A u toCAD 以其强大的通用图形功能广泛地应用于机械、电子、建筑、化工等各个领域。
但是由于其通用性强,从而造成针对某一具体应用的特殊功能较弱,为了克服这一缺点,A u toCAD 为O E M 厂商和最终用户提供了多种二次开发接口,以便用户能随时扩充该软件的功能。
近年来,各行业的工程技术人员都在以A u toCAD 为平台,结合自己的需要,进行CAD 的二次开发。
就目前而言,A u toCAD 二次开发人员大都利用C 语言和A u toL ISP 语言对A uo tCAD 软件包进行开发,而利用VB 语言作为A u toCAD 二次开发工具的并不多,究其原因,主要是因为人们对VB 的强大功能认识不足。
V isual B asic (以下简称VB )是M icro soft 公司推出的面向对象的可视化编程工具。
VB 的特点非常突出,那就是具有快速的程序开发环境,编制程序界面简单,代码的编写量小,用户可以很方便的直接改动界面,所见即所得。
VB 作为二次开发工具,具有语法简单,功能强大,调试方便等特点。
此外,A uo toCAD 自R 14版本起,加入了A ctiveX 自动化服务功能,而VB又是最为常用的支持A ctiveX 技术的开发工具,以它作为开发工具,使A u toCAD 与其他W indow s 程序的数据共享变得非常容易。
VB与AutoCAD二次开发入门技巧资料_13065-AutoCAD
AutoCAD中表格自动化彭德华 工程图纸中经常遇到大量表格填写,例如工程勘察中的成果表、设计的材料表,在AutoCAD中文字处理比较差,用TEXT、DTEXT命令在表格中定位也不方便,填写的表格既不美观,还容易出错。
在一些杂志中有关表格填写程序介绍,但是使用不方便,也不能连续填写多个表格,长距离线路勘察中线转点少则几十个,多则上千,中线数据可由计算直接生成,能否利用中线数据直接填表出图。
利用AutoCAD二次开发,编写中线成果填写程序(zxcg.lsp),改变以往出图工序(填写、校对),大大提高工作效率。
一、程序功能与编写说明 1、本程序具有下列功能: (1)直接在文本编辑器(EDIT、QE、WPS等等)编辑、修改数据,免去AutoCAD文字编辑、修改之不便; (2)可以自动分页,自动填写工程名称、档案号、日期等等; (3)可以自动处理中线成果数据前后的空格,例如: “123123.123”将自动转化为“123123.123”; (4)可以自动识别两种工程名称数据文件; (5)文本状态下数据正确无误,出图前无需在AutoCAD中修改,调图速度和重新成图速度相差无几,可直接保存数据文件,节省磁盘空间。
2、程序说明: 程序利用AutoLISP的计算、判断、字符处理、循环结构以及调用Text命令等功能对读入的数据进行处理后填写,与本程序对应的Zxcg.dwg图形文件含四个表格图块,程序中的有关参数均取决于四个图块。
二、使用说明 1、关于中线成果数据格式: (1)无曲线 第一行,总点数(N) 第二至七行,点名(NAME)、里程(K)、高程(H)、坐标X、Y、转角(B)……重复二至七行(没有数据项用空行代替) (2)有曲线 第一行,总点数(N) 第二至十一行,点名(NAME)、里程(K)、高程(H)、坐标X、Y、转角B,半径R,切线长T、曲线长L、外矢矩E……重复二至十一行(没有数据项用空行代替) 2、关于工程名称数据格式: (1)单标题 第一行,工程名称 第二行,档案号(如测-3777/表,只需输入3777) 第三行,日期(可省略,取当前日期) (2)双标题 第一行,工程名称大标题 第二行,工程名称小标题 第三行,档案号(如测-3777/表,只需输入3777) 第四行,日期(可省略,取当前日期)三、加载及运行{{婓AutoCADR12ㄗ么AutoCADforWindowsㄘ笢ㄛ参Zxcgㄝlsp睿Zxcg ㄝdwg萧探善SUPPORT赽醴翘狟ㄛ蚚扷梓萸恅璃ㄗFileㄘ狟茼蚚最唗ㄗApplicationsㄘㄛ么婓Com珏mandㄩ狟??Appload楼婥Zxcgㄝlspㄛ么婓Commandㄩ狟??ㄗLoad※Zxcg§ㄘ捞褫〔?缀婓Commandㄩ狟??ZX堍俴最唗ㄛ挂最唗蔚笢恅枑尨〔四、结束语 该应用程序提供了两种形式的表格,有兴趣的AutoCAD用户不妨增加几种表格,修改程序中对应的参数即可。
AUTO cad二次开发论文(键 VB开发)
摘要本说明书主要是关于AutoCAD 2000的用VB语言二次开发的说明和利用VB 语言开发船舶标准件的源程序。
说明书中主要涉及到了,AutoCAD软件的使用、VB语言简介、船舶标准件的结构特点和技术要求和利用VB编制的船舶标准件程序。
论文中介绍了设计人员的设计思路。
船舶标准零件主要包括:螺栓、螺母、垫圈、键、销、滚动轴、承弹簧等。
船舶标准件的结构特点、图形画法及技术要求是本次设计的基础,熟练掌握并用AutoCAD VBA(Visual Basic for Application)语言对AutoCAD进行船舶标准零件二次开发,以达到下述目的:调用程序时出现对话框,输入要求的零件主要参数后能够自动生成零件图形。
并且图形要符合国家标准件的技术要求。
AutoCAD VBA(Visual Basic for Application)语言的任务是对AutoCAD 进行二次开发促使AutoCAD更高效的工作。
关键词:标准零件、AutoCAD VBA语言、AutoCAD的二次开发- Ⅰ-ABSTRACTManual this about 2000 AutoCAD with VB explanation and utilize VB language develop source program , shipping of standard component, language of secondary development mainly. Have involved mainly in the manual , use, VB, AutoCAD of software language brief introduction of, structure characteristic and specification requirement , shipping of standard component utilize shipping standard component procedure that VB work out. Have introduced the designer's mentality of designing in the thesis.Whether shipping standard part include mainly. Bolt , nut , washer , key , axis , bearing the spring of selling , rolling ,etc.. Structure characteristic , the technique of painting of the figure and specification requirement for the shipping standard component are foundations designed this time, know and language carry on shipping standard part secondary development to AutoCAD with AutoCAD VBA (Visual Basic for Application ) skillfully, in order to achieve the following purposes:Appear communication frame at the procedure of transfering, part required to input can produce the part figure automatically behind the main parameter. And the figure should accord with the specification requirement for the national standard component .AutoCAD VBA (Visual Basic for Application) task of language to carry on secondary development impel AutoCAD high-efficient work to AutoCADKEY WORDS: standard part、AutoCAD VBA language、Secondary development of AutoCAD- Ⅱ -前言计算机辅助制图是现代企业生产和设计的重要工具,AutoCAD是计算机辅助设计工具的一种,VB 是AutoCAD软件的重要组成部分。
VB与AutoCAD二次开发入门技巧资料_13051-VBAutoCADR14TEXT
用VB 在AutoCAD R14 中写TEXT 的方法AutoCAD 可以写不同高宽比、不同角度、不同颜色的TEXT。
无论是用AutoCAD的TEXT 命令,还是用AutoLISP,都是很容易做到的,用VB 是否也很容易哪?我们来看下面一段示例:Public objAcad As ObjectPublic objDoc As ObjectDim ent As ObjectDim startPoint(0 To 2) As DoubleDim Point1(0 To 2) As DoubleSet objAcad = GetObject(, "AutoCAD.Application") ' 获得AutoCAD R14对象Set objDoc = objAcad.ActiveDocument' 初始化TEXT 的起点startPoint(0) = 10#startPoint(1) = 10#startPoint(2) = 0#' 写一串TEXT, 其中字高为5Set ent = objDoc.ModelSpace.AddText("textString", startPoint, 5#)' 初始化TEXT 的调整点Point1(0) = 20#Point1(1) = 10#Point1(2) = 0#With ent.Color = 1 ' 改用红色.ObliqueAngle = 0.174444 ' 改倾斜角度.VerticalAlignment = 0 ' 设垂直位置为0.ScaleFactor = 1# ' 设文字高宽比,当需要两端对齐时,必须任意给一个值.HorizontalAlignment = 5 ' 设文字为两端对齐.TextAlignmentPoint = Point1 ' 设对齐点End WithSet objAcad = Nothinga VB应用程序中用DDE功能开发AutoCAD for Windows目前,许多工程CAD系统是以AutoCAD作为支撑软件,在其基础上进行二次开发而形成的。
AutoCAD_VBA二次开发初级教程(选做)
AutoCAD VBA二次开发初级教程第一课:入门1.什么是Autocad VBA?VBA是Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,学好VBA可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用ACAD命令不可能完成的,只要学好VBA就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。
2、VBA有多难?相信大家都知道Basic是的含义。
应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。
3、怎样学习VBA?介绍大家一个学习公式:信心+恒心=开心。
仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。
本教程将陆续发布在CAD 世界论坛上,您不需要付费就可以学习。
本作者在此郑重承诺:关于本教程中有任何疑问,可以跟贴提问,只要有时间,本人一定会耐心解答。
我不会发到任何人的邮箱中,您自己在论坛上找就可以了,请不要再向我索要这份教程。
4、现在我们开始编写第一个程序:画一百个同心圆第一步:复制下面的红色代码第二步:在模型空间按快捷键Alt+F8,出现宏窗口第三步:在宏名称中填写C100,点“创建”、“确定”第四步:在Sub c100()和End Sub之间粘贴代码第五步:回到模型空间,再次按Alt+F8,点击“运行”Sub c100()Dim cc(0 To 2) As Double '声明坐标变量cc(0) = 1000 '定义圆心座标cc(1) = 1000cc(2) = 0For i = 1 To 1000 Step 10 '开始循环Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆Next iEnd Sub也许您还看不懂上面的代码,这没有关系,只要能把同心画出来就可以了,祝您成功。
CAD应用二次开发---VB和VBA开发CAD的知识
CAD应⽤⼆次开发---VB和VBA开发CAD的知识1、如何在 VB 中连接 AutoCAD。
启动 VB ,引⽤ AutoCAD 类型库。
操作步骤:从“⼯程”菜单中选择“引⽤”选项,启动“引⽤”对话框。
在“引⽤”对话框中,选择AutoCAD 类型库,然后单击“确定”。
定义模块级变量 AutoCAD 应⽤程序 (acadApp) 和当前的⽂档 (acadDoc)。
如果 AutoCAD 正在运⾏,使⽤ GetObject 函数将检索 AutoCAD Application 对象。
如果 AutoCAD 没有运⾏,使⽤CreateObject 函数试图创建⼀个 AutoCAD Application 对象。
如果创建成功,会启动 AutoCAD;如果失败,则会发⽣错误。
同时运⾏多个 AutoCAD 任务时,GetObject 函数会返回 Windows 运⾏对象表中的第⼀个 AutoCAD 实例。
要显⽰ AutoCAD 图形窗⼝,需要将 AutoCAD 应⽤程序的 Visible 特性设置为 TRUE。
使⽤ acadDoc 变量引⽤当前的 AutoCAD 图形。
⽰例:Dim acadApp As AcadApplicationDim acadDoc as AcadDocumentSub ConnectToAcad()On Error Resume NextSet acadApp = GetObject(, "AutoCAD.Application")If Err ThenErr.ClearSet acadApp = CreateObject("AutoCAD.Application")If Err Then EndEnd IfacadApp.Visible = TrueSet acadDoc = acadApp.ActiveDocumentEnd Sub2、如何使 VB 开发的程序不依赖于 AutoCAD 的版本。
毕业设计说明书用vb进行autocad二次开发[管理资料]
1 引言AutoCAD工程图形处理软件,自1982年由美国Autodesk公司开发面世以来,以其完善的绘图功能、良好的用户界面、易学易用的特点,受到了广大工程技术人员的普遍欢迎目前遍布150个国家和地区。
AutoCAD 是目前微机上应用最为广泛的通用的交互式计算机辅助绘图与设计软件包。
AutoCAD的强大生命力在于它的通用性、多种工业标准和开放的体系结构。
其通用性使得它在机械、电子、航空、轮船、建筑、服装等领域得到了极为广泛的应用,是CAD工业的旗帜产品。
AutoCAD及其图形格式已经成为一种事实上的国际工业标准。
AutoCAD之所以得到广泛应用,一个重要原因还在于它开放的结构体系,即用户根据自己的需要,对其进行二次开发。
VB(Visual Basic)是目前开发windows应用程序最为迅速、简捷的程序设计语言,具有功能强大、易于掌握的特点,能够直接用它进行Word、Excel和AutoCAD 二次开发。
全世界近千万的专业和非专业程序设计人员正在用VB开发各种类型的软件。
我国高校已经把VB列入高等教育教学计划。
用VB进行AutoCAD二次开发,是AutoCAD R14以后的一种新技术,我们可以用VB语言编程,将AutoCAD当成自己VB程序中的一个图形窗口,对其进行打开、绘图、编辑、打印、关闭等操作,十分方便。
用VB进行AutoCAD二次开发,不仅简单易学、功能强大,还能实现仅用AutoCAD不能或不易实现的功能和效果,例如进行三维动画模拟、图形参数化设计等。
用VB进行AutoCAD二次开发,不论是用于理论研究,实现自己的梦想,还是用于程序设计,开发面向实际工程呢问题的软件,均是十分有效的手段和方法。
2008进行二次开发,将AutoCAD2008窗口当成VB程序中的一个图形窗口,以平面机构-三轮式齿轮连杆机构为例,根据机构参数对其运动进行动态演示,并分析该机构的运动特性。
由于本人的水平有限,本说明书中的疏漏和错误之处在所难免,恳请老师和同学们批评指正。
VB对AutoCAD二次开发案例-编辑版-创建菜单栏
对二次开发VBAAutoCAD开发背景因为公司电脑的layout设计部门人员不能将元器件转换为3D,故而每次需要结构工程师自行将元器件的2D图处理后导入三位软件进行3D绘制,在处理二维工程图时,出现很多小圆弧,小圆弧处于不同的层,依次删除小圆弧很繁琐造成工作效率低下。
故而通过创建一个菜单栏,将删除小圆弧的程序全部放入一个菜单之下,实现自动化操作操作的流程如下:连接AutoCAD→获取AutoCAD的菜单组链接→创建菜单→创建菜单项→将菜单显示到AutoCAD中→编辑圆弧删除程序。
详尽代码一、在VB中连接AutoCAD的。
在VBA中则可以跳过此步Application 对象是VB 应用程序与AutoCAD 之间链接的关键。
将Application 对象与AutoCAD 链接是为AutoCAD 二次开发应用程序的第一步工作。
当AutoCAD 运行时,GetObject 函数返回Application 对象,否则发生一个错误,这时Err对象的基础属性就会被赋值为一个非零值,可以利用一个错误陷井进行处理。
如果AutoCAD 没有运行,可以使用CreateObject 函数强迫AutoCAD 启动。
Dim myapp As ObjectOn Error Resume Next如果已有CAD程序打开,则Set myapp = GetObject(, AutoCAD.Application)的控制句柄CAD直接获得myapp.Visible = True则如果没有程序打开,CADIf Err <> 0 ThenCADcad通过开启软件获得的控制句柄Set myapp = CreateObject(Autocad.Application) myapp.Visible = TrueEnd If程序帮助里VB注意:GetObject(, AutoCAD.Application)里面的那个逗号的来源请仔细阅读面的解释二、创建菜单(在VBA环境下)代码如下:的菜单组的取得AutoCAD 链接Public Sub menu()As AcadMenuGroupDim my_菜单组= ThisDrawing.Application.MenuGroups.Item(0) Set my_ 菜单组As AcadPopupMenuDim my_弹出式菜单创建一个名为乾康工具) Set my_弹出式菜单乾康工具集= my_菜单组?湥獵?摤尨集的新菜单As AcadPopupMenuItem 弹出式菜单项Dim my_Dim openMacro As StringSet my_?尠?摤敍畮瑉浥〨?弹出式菜单= my_弹出式菜单项删除圆及圆弧-VBARUN)DEL_ACR + chr(13), 6乾康工具集?湥獵?獮牥?湥??湥?牡尠菜单组my_创建一个名为删除圆是还方法注:无论是使用InsertMenuInMenuBar及圆弧的下拉菜单项被加载菜单都必须要有菜单InsertInMenuBar方法来加载菜单,End Sub在宏名称之前添加-VBARUN DEL_ACR + chr(13)-VBARUN是因为从AutoCAD 工具栏或菜VBA 宏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a VB应用程序中用DDE功能开发AutoCAD for Windows目前,许多工程CAD系统是以AutoCAD作为支撑软件,在其基础上进行二次开发而形成的。
AutoCAD R12 for Windows 以AutoLISP和ADS作为二次开发工具,但它们都有不足之处,AutoLISP速度慢,没有友好的开发环境,ADS是基于C语言的开发环境,而C语言面向Windows编程本身难以掌握,因此AutoLISP和ADS的使用都受到一定的限制。
VB是Windows下主要的开发工具之一,它的“可视性”和“事件驱动性”简化了面向Windows 的编程,深受广大用户的青睐。
Windows下,VB和AutoCAD都支持强有力的DDE(动态数据交换)功能,用VB编写具有DDE功能的程序来控制AutoCAD,既能与AutoCAD交换各种复杂的数据结构,又能向AutoCAD发送命令,由此开发出的应用程序能满足用户的需要,同时又缩短了开发周期。
本文结合实例介绍了用VB开发AutoCAD的途径与方法。
一、直接利用DDE功能开发DDE是Windows的强大功能之一,它可以使应用程序自动地接收由其它应用程序发送来的数据,当传送端的数据有变化时,接收端的数据也会随之改变,也可将命令或键盘输入传递给其它程序,实现远程控制。
在VB编程环境中,创建应用程序的方法很简单,首先是设计用户界面,也就是在空白窗体中放入所需要的控件,如命令按钮,单选钮,文本框,标签,图片框等,然后针对各控件上要发生的事件(如鼠标单击,鼠标移动等)书写事件过程,最后将编写的应用程序运行,调试,生成执行文件即可。
VB中能和其它Window应用程序建立DDE通道的控件有文本框,标签和图片框。
下面结合简单实例,说明VB应用程序与AutoCAD间建立DDE通道和交换数据的方法。
在VB中启动一个新项目,参见图(1)建立窗体,其中“建立链接”,“直线”,“标注”,“退出”为命令按钮,标有“Text1”的为文本框,用于建立DDE通道,并输入下面的事件代码。
Option ExplicitPrivate Sub cmdLine_Click() '画直线Text1.LinkExecute " [^3^3line 3,3 8,8 ^3]"End SubPrivate Sub cmdText_Click() '标注文字Text1.LinkExecute " [^3^3text 10,10 1 90 AUTOCAD!^10]"End SubPrivate Sub cmdLink_click() '建立链接Text1.LinkMode = 0Text1.LinkTopic = "autocad.dde|system"Text1.LinkMode = 2End SubPrivate Sub cmdExit_click() '退出EndEnd Sub运行此应用程序,注意在运行前,一定要先加载AutoCAD。
单击“建立链接”按扭,cmdLink_Click()过程被执行,执行时设置文本框Text1的LinkTopic和LinkMode的属性,完成VB应用程序与AutoCAD间DDE通道的建立。
LinkTopic属性用于通知AutoCAD由谁来提供数据,它被管道符“|”分成两部分,第一部分“AutoCAD.DDE”为应用程序名,第二部分“System”是通讯的主题。
LinkMode属性用于切实建立链接,在LinkMode=0时,表示关闭以前的DDE通道,在LinkMode=2时,表示以手动模式激活DDE通道。
在完成DDE链接后,VB应用程序就可以与AutoCAD间进行数据交换或命令传送了。
单击“直线”按扭,cmdLine_Click()过程被执行,应用程序通过LinkExecute方法向AutoCAD 发送命令,在AutoCAD中以点(3,3)和(8,8)为端心,画一条直线。
语句中的^3相当于AutoCAD 中的取消键Ctrl+C,空格相当于AutoCAD中的回车键。
单击“标注”按扭,执行cmdText_Click()过程,可在AutoCAD中显示以(10,10)为基点,高为1,旋转角度为90的字符串“AutoCAD!”。
语句中的^10相当于AutoCAD中的回车键,在标注文字时不能用空格代替回车键。
根据需要,可用上面的方法传送AutoCAD的其它命令,实现对AutoCAD的开发。
二、通过调用VB ADS开发上面介绍了在VB应用程序中直接利用DDE与AutoCAD作用实现开发的方法,此方法要求用户自己建立与AutoCAD间的DDE通道,此外,我们还可以通过调用VB ADS函数对AutoCAD进行开发。
在VB ADS函数库中已有专门的函数负责建立应用程序与AutoCAD间的DDE通道,而不需用户亲自建立,较为方便。
另外,VB应用程序还可以通过VB ADS函数向AutoCAD发送数据和命令,同时也可以利用VB ADS函数的返回值来获得AutoCAD的数据,实现对AutoCAD更深入的开发。
为了利用AutoCAD的VB ADS函数建立VB的应用程序,AutoCAD提供了几个VB ADS 支撑文件,这些文件除DDEBAS.EXE和ACADVB.DLL存放在C:\ACADWIN子目录外,其余都存放在C:\ACADWIN\VB\NEW子目录中。
文件如下:1. DDEBAS.EXE-ADS/DDE服务者,为保证VB于AutoCAD 间正常通信,此命令必须首先在AutoCAD中用XLOAD命令加载运行。
2. ACADVB.DLL-VB ADS动态连接库,在运行VB应用程序前,应将其拷到C:\WINDOWS\SYSTEM\子目录下。
3. GLOBAL.BAS-VB ADS应用程序中所需要使用的全局变量定义文件。
4. ADSFUNCS.BAS-VB ADS函数库,可以在VB应用程序中直接调用。
5. ADSFUNCS.FRM-包含有应用程序和AutoCAD间建立DDE链接的窗体文件。
下面结合具体的例子,说明利用VB ADS函数开发应用程序的方法。
[HJ] 启动VB,打开C:\ACADWIN\VB\NEW\NEWPROJ.MAK项目文件,参见图[2]建立新窗体,并输入如下的事件代码。
Option ExplicitPrivate Sub Form_Load()DDE_TIMEOUT = -1 '等待DDE事件txtX.Text = 5 '圆心,半径的隐含值txtY.Text = 5txtRadius = 3End SubPrivate Sub cmdCircle_Click() '画圆过程Dim ret As IntegerDim pt As ads_point '定义Ads点类型Dim Radius As DoubleDim Apndll As ApndLLType '定义增加链表类型Dim Resbuf As ResbufType '定义结果缓冲器pt.X = val(Trim(txtX.Text))'给圆心,半径赋值pt.Y = val(Trim(txtY.Text))Radius = val(Trim(txtRadius.Text))ret% = ads_newrb(10, Resbuf)'建立新的结果缓冲器Resbuf.hResbuf = 0Apndll.apType = RTSTR'说明链表类型为字符串Apndll.apString = "circle" + Chr$(0)'链表赋值ret% = ApndLLNode(Resbuf, Apndll) '增加链表到结果缓冲器Apndll.apType = RTPOINTApndll.apPoint = ptret% = ApndLLNode(Resbuf, Apndll)Apndll.apType = RTREALApndll.apReal = Radiusret% = ApndLLNode(Resbuf, Apndll)Apndll.apType = RTNONE '链表结束值类型ret% = ApndLLNode(Resbuf, Apndll)ret% = ads_cmd(Resbuf) '执行结果缓冲器的命令ret% = ads_relrb(Resbuf) '释放结果缓冲器End SubPrivate Sub cmdExit_Click() '退出过程EndEnd Sub在应用程序运行前,必须首先运行AutoCAD,并用命令(XLOAD "DDEBAS")加载DDEBAS. EXE。
在上面的应用程序中,除语句DDE_TimeOut=-1外,没有其它涉及建立DDE通道的语句,因为应用程序与AutoCAD间建立DDE通道所需要的代码已保存在VB ADS 函数库中,打开支撑文件adsfuncs.bas,可以发现Sub OPENDDE()过程,它负责VB应用程序与AutoCAD间DDE通道的建立,所以用户在开发应用程序时,只管调用VB ADS 函数即可。
例子中的cmdCircle_Click()过程,是在VB 4.0编程环境通过调用VB ADS函数开发的,运行程序后在文本框中输入半径和圆心的值,单击“画图”按扭,即可在AutoCAD 中得到所需的圆。
--------------------------------------------------------------------------------参考文献1.《Visual Basic For Windows语言参考详解》.北京航空航天大学出版社.周民光王复康等编.1995.12.2.《AutoCAD for Windows 技巧与应用》.人民邮电出版社.卢师德编著.1995.5.b VB应用程序访问SQL Server方法探讨摘要本文讨论了Visual Basic应用程序访问SQL Server数据的几中常用的方法,分别说明了每种方法的内部机理并给出了每种方法的一个简单的实例,最后比较了每种方法的性能和优缺点。
引言Microsoft Visual Basic(简称VB)作为一种面向对象的可视化编程工具,具有简单易学的,灵活方便和易于扩充的特点。
而且Microsoft为其提供了与SQL Server通信的API函数集及工具集。
因此它越来越多地用作大型公司数据和客户机—服务器应用程序的前端。
与后端的Microsoft SQL Server相结合,VB能够提供一个鲁棒的、高性能的客户机—服务器方案。