基于VB.NET二次开发AutoCAD的动态模拟
用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对象模型的层次结构树,其中父对象与子对象之间的关系并不是对象继承关系,而是包含关系。
基于VBA的AUTOCAD二次开发及应用实例
基于VBA的AutoCAD二次开发及应用实例时间:2011-10-0318:25:09来源:作者:1引言AutOCAD2005是AutOdesk公司的系列产品,该软件从其使用和设计思路上都秉承了工程制图人员的绘图习惯,能够非常轻松地绘制出带有平面视图和三维渲染效果的工程图纸,是绘图人员的一个理想工具。
随着CAD基础理论和应用技术的不断发展,对CAD系统的功能要求也越来越高。
因而AutoCAD 不可能完全满足每个用户的具体而特定的要求。
设计人员希望它能从本质上减轻大量简单烦琐的工作量,使他们能集中精力于那些富有创造性的高层次思维活动中。
AutoCAD提供的开放式体系结构允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求,更方便、更规范、更专业的实现设计和绘图中的应用。
VBA最早是建立在0ffice97中的标准宏语言,由于它在开发方面的易用性及具有的强大功能,许多软件开发商都将其嵌入自己的应用程序中,作为一种开发工具提供给用户使用。
AutOdeSk公司自从Aut0CADRl4.0l版开始,内置了VBA开发工具。
新一代程序开发工具ViSual BaSic,不仅继承了面向对象方法的特性,同时具备可视化程序语言及程序产生器的概念。
VBA(visual Basic For Apphcation)是AutoCAD R12以后推出的一种新的编程环境,提供了以Visual Basic为基础的面向对象的开发特征及程序接口,能真正快速地访问AutOCAD图形数据库,能明显提高软件开发和维护的效率。
2VBA的技术特性2.1VBA开发AUTOCAD的技术特点VBA是微软开发出来的应用程序共享一种通用的自动化语言,它可以使常用的程序自动化,并可以创建自定义的解决方案。
VBA被集成到AutoCAD中,VBA和AutoCAD中强大的Activex自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。
基于VB.NET的AutoCAD二次开发实例
基于的AutoCAD二次开发实例作者:李永钢来源:《电脑知识与技术》2014年第26期摘要:使用AutoCAD绘图在各行各业已经十分普遍,二次开发可以增强其功能并使其更加符合专业需求。
首先介绍各种AutoCAD二次开发方式的优缺点,其后给出了使用 开发AutoCAD的一般过程,并通过一个实例在AutoCAD中绘制了一个正六边形。
关键词:;AutoCAD;二次开发中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)26-6072-04Abstract: AutoCAD has been widely for 2D and 3D computer-aided design (CAD) and drafting across a wide range of industries, and the secondary development can enhance its functionality and make it more in line with the professional needs. In this paper, we first introduce various existing secondary development techniques of AutoCAD. Then, based on the framework, a general procedure is proposed for developing the tailor-made AutoCAD. At last, we illustrate the usage of our procedure by an example of drawing the regular hexagon in AutoCAD.Key words: ; AutoCAD; secondary development1 概述AutoCAD是使用最为普遍的自动计算机辅助设计软件,广泛用于二维绘图、详细绘制、设计文档和基本三维设计,可以用于土木建筑、装饰装潢、工业制图、工程制图、电子工业、服装加工等多方面领域。
基于VB_NET的AutoCAD二次开发
Secondary D evelopm en t of AutoCAD Using VB. NET CHEN L i2x in, ZHAO Hong2m e i
Abstract: This paper firstly introduces the new character of VB. N ET by comparing w ith VB6. 0 especially on how to successfully app ly A utoCAD to some p rofessional fields based on the VB. N ET secondary development p latform. The details of the develop ing through an examp le of Gear structure parametrization three2dimensional modeling.
类型系统 ) ,它使得数据类型在用不同. NET语言编写的程 序之间保持一致 ,因此 , VB. NET对数据类型进行了大量 的变化 。例如 Short数据类型代替了 Integer, Integer类型 现在变为 32位 , Long变为 64位 。Variant类型也由 Object (对象 )数据类型所替代 , String数据类型产生自. NET系 统类库 ,被设计为不可改变的文本字符串 。同时还增加了 Char数据类型 ,用来处理单个字符值或创建字符值的数组 等等 。随着数据类型的变化 , VB. NET还增强了声明和使 用变量的方法 ,可以在一个语句中声明一个类型的多个变 量 ,且在声明变量的同时 ,完成对变量初始值的设置 。此 外 , VB. NET在数组和过程的语法方面 ,也有一定的变化 和调整 。
关于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的二次开
实验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二次开发摘要: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”。
图上的地物都是由点状地物、线状地物和面状地物这三种的抽象。
基于_NET的AutoCAD二次开发实例
Serial No .488Dece mber .2009现 代 矿 业MORDE N M I N I N G总第488期2009年12月第12期 刘 彬(1986-),男,四川宜宾人,221008江苏省徐州市。
基于.NET 的Aut oC AD 二次开发实例刘 彬(中国矿业大学矿业工程学院) 摘 要:通过半圆拱形巷道断面自动绘制程序实例,详细地介绍了基于.NET 环境下Aut oCAD二次开发的全过程。
利用Aut oCAD 二次开发的软件制图,减少绘图的工作量,可大大提高绘图效率和质量。
关键词:二次开发;巷道断面;.NET 中图分类号:T D679 文献标识码:B 文章编号:167426082(2009)12201202031 引 言当Aut oCAD 首次被V isual Stido .NET 编译生成的时候(开始于Aut o CAD2004),.NET 开发Aut o 2CAD 的大门就被打开了[1]。
.NET 结合了VC ++和L is p 的优点,利用.NET 框架提供的很多优点进行Aut o CAD 的二次开发。
Aut oCAD 是使用最广泛的工程绘图软件之一,Aut oCAD 制图软件以其免费获得、功能强大、输入输出方便等优点,已成为制图的主要软件[2,3]。
随着信息化技术不断深入,计算机绘图技术越来越受到重视。
2 准备工作首先安装Aut odesk 公司开发的CAD2008简体中文版和微软公司开发的V isual Stido2005,使用C#作为开发语言。
在程序开发前要对Aut oCAD 进行托管,即在V isual Stido2005中添加引用(acdb mgd .dll 和ac mgd .dll ),这两个最基本的程序集在Aut o 2CAD 安装目录下,程序中还要使用视图操作命令,引用ac mgdinternal .dll,从Aut oCAD 2007开始,Au 2t odesk 公司把有关视图的操作放在这个程序集里面,此外还要在程序的开头引用命名空间。
用VB对AutoCAD进行二次开发
用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对象模型的层次结构树,其中父对象与子对象之间的关系并不是对象继承关系,而是包含关系。
图1 AutoCAD中ActiveX对象的总结构图三、ActiveX Automation的使用方法1. Application对象如果在计算机系统上安装了AutoCAD,则Windows会自动将其所有的信息注册到系统注册表里。
cad二次开发中VB或VBA的应用问题
cad二次开发中VB或VBA的应用问题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 应用程序(acadApp) 和当前的文档(acadDoc)。
基于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 程序的数据共享变得非常容易。
基于CAD利用VB.NET二次开发自动化绘图应用研究
基于CAD利用二次开发自动化绘图应用研究作者:罗碧君来源:《科技创新与应用》2013年第09期摘要:从CAD支持点NET以来,给开发人员带来了很大的便利。
在建筑绘图领域,利用点NET在CAD下面进行二次开发成为主流,开发自动化绘图应用提高了建筑领域数据处理和绘图工作的效率,减轻了工作的劳动强度。
本文主要介绍利用开发自动化绘图的步骤及要点。
关键词:CAD二次开发;;自动化绘图;地形图1 前言随着在开发领域的利用越来越广,CAD的最新版本已经支持点NET进行二次开发。
CAD以前只有LISP、VBA等进行二次开发,这几种开发方式都有自己的优点和缺点。
CAD支持点NET后,可以充分发挥点NET的综合开发的功能,让开发人员更便捷快速的利用CAD的各项功能。
下面主要介绍利用在CAD下面进行开发,并以实例:开发自动化绘图应用简单介绍开发步骤和要点。
2 CAD二次开发的需求在建设绘图领域工作中,时常需要利用CAD制图工具进行绘图及数据内业处理。
但是由于建筑测绘专业工作的特殊性,有时候处理的数据比较繁多,利用CAD直接一个个的人工进行数据处理绘制图形,需要花费的时间和人力是比较多的。
这样就需要有一个可以处理大批量数据的程序应用,利用CAD自动的绘制数据所代表的图形元素(包括点、线、圆、符号、文字等),需要处理的数据有时几百、几千,甚至上万个数据,给我们在野外完成测绘调查后处理数据绘制图形工作带来很大的压力。
这个就需要我们有一个在CAD下面可以处理和绘制大批量数据的应用提供使用,满足内业处理数据和图形绘制工作,提高工作的效率和降低劳动的强度。
在CAD支持点NET进行开发后,我们可以方便的利用它来进行这方面的工作。
我们利用在CAD下面实现绘制测绘地形图的部分元素方法来认识利用在CAD下面进行的二次开发方法。
3 开发工具准备利用点NET在CAD下进行二次开发主要利用工具包括:开发工具(本文利用VS2008)、AutoCAD(支持点NET版本)本文利用CAD2008版。
基于VB.NET的Terrasolid和AutoCAD接口的二次开发
基于的Terrasolid和AutoCAD接口的二次开发本文主要介绍在Terrasolid环境下的正射影像成果利用进行二次开发,形成与AutoCAD对接的特点、原理及方法。
通过实例验证图形自动生成技术,测试该软件在实际工作中的作业效率,达到提高生产效率的目的。
标签:Terrasolid 正射影像AutoCAD 图形自动生成0引言作为一种通用计算机辅助设计软件,AutoCAD由于其强大的设计功能,已被应用于各行各业。
然而,在实际应用中仍存在较多不足之处,如对重复工作的自动化程度较差等。
因此,对AutoCAD软件进行二次开发是更有效地应用该软件的最佳途径之一。
.NET结合了VC++功能强大与VBA易学易用的特点,可以快速的开发出实用的程序。
本论文最终设计并实现了一个基于VB编程语言的AutoCAD二次开发软件。
1程序开发1.1程序设计本软件可以根据用户设定,生成带有坐标的截图框,并在图框中自动标注左下角坐标。
用户在Terrasolid软件中可利用该图框对正射影像图进行截图和分图,得到的分幅图将自动以图框中的标注作为文件名。
方便用户对正射影像图的后处理以及和数字地形图的坐标追踪。
并可以运用到其他在面状地形图中截取线型地形图的工作中。
本程序使用VS2005开发,运行于CAD2009。
1.2程序啟动首先启动Visual Studio 2005,选择【文件】|【新建】|【项目】菜单,在项目类型中选择Visual Basic语言,然后在模板列表中选择【类库】项目,在下面的【名称】,【位置】等文本框中输入相应的内容,单击确定完成项目创建。
其次在项目解决方案浏览器中右键单击项目,选择【添加引用】菜单,在CAD2009安装目录下找到acdbmgd.dll和acdmgd.dll,点击确定即自动添加。
1.3核心设计Public Class Class1‘创建四边形Public Sub CreatSquare()‘接收用户键盘输入起始x,yDim db As Database = HostApplicationServices.WorkingDatabaseDim ed As Editor = Application.DocumentManager.MdiActiveDocument.EditorDim user_col As Double:Dim user_row As DoubleDim optPoint As New PromptPointOptions(vbCrLf & “请捕捉,或手工输入左下角坐标!”)optPoint.AllowNone = TrueDim resPoint As PromptPointResult = ed.GetPoint(optPoint)If resPoint.Status = PromptStatus.Cancel Then ReturnDim ptStart As Point3dIf resPoint.Status = PromptStatus.None ThenptStart = New Point3d(100,200,0)ElseptStart = resPoint.ValueEnd IfDim ptPrevious As Point3d = ptStartDim pt1 As New Point2d(ptPrevious(0),ptPrevious(1))user_row = ModelSpace.GetUserInputRow()Ⅰuser_col = ModelSpace.GetUserInputCol()下面我定义了一个边长为1km为单位坐标增加量(dx = 1000,dy = 1000),用户也可以利用Input语句与用户动态的交互,得到dx,dy,以便得到不同需求四边形,从而增加程序的灵活及使用性,本文中此数值确定为1km.之后利用For语句进行双重循环,先对列循环,完成每个图形单元(本文中为四边形)的绘制,与此同时,将提取到的左下角坐标(x_txt,y_txt)以特定长度(x值取4位长度,y值取3为长度)字符串拼接形式,呈现在图形单元的(Position_x,Position_y)点. 后对行循环,完成行数方向上的图形绘制.Dim x,y As Double:Dim dx,dy As Integerdx = 1000:dy = 1000x = ptPrevious(0):y = ptPrevious(1)Dim pt(4)As Point2dDim i_col As Integer:Dim set_txt As StringDim Position_x As Integer:Dim Position_y As IntegerFor i_Row As Integer = 0 To user_row - 1For i_col = 0 To user_col - 1pt(0)= New Point2d(x + i_col * dx,y + i_Row * dy)Dim y_txt As Integer = Left(x + i_col * dx,3)Dim x_txt As Integer = Left(y + i_Row * dy,4)set_txt = x_txt & “+” & y_txtPosition_x = x + i_col * dx + 200:Position_y = y + i_Row * dy + 500Dim textId As ObjectId = ModelSpace.AddText(New Point3d(Position_x,Position_y,0),set_txt,75,0)pt(1)= New Point2d(x + (i_col + 1)* dx,y + i_Row * dy)pt(2)= New Point2d(x + (i_col + 1)* dx,y + (i_Row + 1)* dy)pt(3)= New Point2d(x + i_col * dx,y + (i_Row + 1)* dy)pt(4)= New Point2d(x + i_col * dx,y + i_Row * dy)Dim pts As New Point2dCollection(pt)Dim plineId As ObjectId = ModelSpace.AddSquare(pts,0)NextNextEnd Sub以下两段代码位于另一个类ModelSpace中,主要功能是完成与用户交互和在模型空间中绘制单个的图形(本文中为1km*1km正方形)。
VB_NET进行AutoCAD二次开发_插入外部图块
Public Sub InserBlock()Dim acDoc As Document = Application.DocumentManager.MdiActiveDocumentDim acDatabase As Database = acDoc.DatabaseDim acEditor As Editor = acDoc.EditorDim pPtRes As PromptPointResultDim pPtOpts As PromptPointOptions = New PromptPointOptions("")pPtOpts.Message = vbLf & "Insert Point of Block:"pPtRes = acEditor.GetPoint(pPtOpts)Dim InsertPt As Point3d = pPtRes.ValueIf pPtRes.Status = PromptStatus.Cancel ThenExit SubEnd IfUsing (acDoc.LockDocument)Using trans As Transaction = acDatabase.TransactionManager.StartTransactionDim acBlockTable As BlockTable = trans.GetObject(acDatabase.BlockTableId, OpenMode.ForWrite)Dim FilePath As String = "G:\BlockFile.dwg"Dim FileName As String = " BlockFile.dwg"Dim BlockName As String = "BlockName"If acBlockTable.Has(BlockName) = True ThenDim Block As BlockReference = New BlockReference(InsertPt, acBlockTable(BlockName))Block.ScaleFactors = New Scale3d(1, 1, 1)Block.Rotation = 0Dim ModelSpace As BlockTableRecord = trans.GetObject(acDatabase.CurrentSpaceId, OpenMode.ForWrite) ModelSpace.AppendEntity(Block)trans.AddNewlyCreatedDBObject(Block, True)mit()ElseDim db As New Database(False, False)db.ReadDwgFile(FilePath, IO.FileShare.Read, False, "")Dim id As ObjectId = acDatabase.Insert(FileName, db, False)If id.IsValid = False ThenExit SubEnd IfDim Block As BlockReference = New BlockReference(InsertPt, acBlockTable(BlockName))Block.ScaleFactors = New Scale3d(1, 1, 1)Block.Rotation = 0Dim ModelSpace As BlockTableRecord = trans.GetObject(acDatabase.CurrentSpaceId, OpenMode.ForWrite) ModelSpace.AppendEntity(Block)trans.AddNewlyCreatedDBObject(Block, True)mit()。
基于VB.NET二次开发AutoCAD的动态模拟
基于二次开发AutoCAD的动态模拟
张伟;胡国清;吴碧金
【期刊名称】《机械制造与自动化》
【年(卷),期】2008(037)006
【摘要】以参数化设计为指导思想,以Visual ()为编程语言和开发工具,对AutoCAD软件进行二次开发,并给出实例.实例中借助AutoCAD强大的图形功能和语言界面友好、功能强大的特点,建立了相应的数学模型,通过自动化界面技术控制AutoCAD应用程序对象来完成零件加工的简化动态模拟.对AutoCAD动态仿真功能进行了研究,并且为语言对AutoCAD进行二次开发提供了借鉴.
【总页数】4页(P123-125,132)
【作者】张伟;胡国清;吴碧金
【作者单位】厦门大学,物理与机电工程学院,福建,厦门,361005;集美大学,机械工程学院,福建,厦门,361021;集美大学,机械工程学院,福建,厦门,361021
【正文语种】中文
【中图分类】TH126;TP391.9
【相关文献】
1.基于的AutoCAD二次开发 [J], 陈立新;赵红梅
2.基于 与 AutoCAD 的二次开发在双曲率钣金件展开中的应用 [J], 陶晓环
3.基于的Autocad二次开发在有线电视网络设计中应用初探 [J], 励江一
4.基于的AutoCAD二次开发实例 [J], 李永钢
5.基于的AutoCAD二次开发在土地勘测定界中的应用 [J], 石彦强;舒晓军;李永桥;杨德生
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
・
信息技术 ・
张伟 , ・ 于 V . E 等 基 B N T二 次 开 发 A tC D 的动 态模 拟 uo A
基于 V . E B N T二 次 开 发 A tC D 的动 态模 拟 uo A
张伟 胡 国 清 院 , 建 厦 门 3 10 1 福 60 5; 2 .集 美 大 学 机 械 工 程 学 院 , 建 厦 f 6 0 1 福 -3 12 ) 1
下 的 应 用 。应 用 V . E B N T语 言 对 A tC D进 行 二 次 开 发 uo A
型 。因此 , 到可行准确 的曲面建立方法是前提 。关于 曲 找 面的创建 , 以下 两种 方案 。 有 a )离散点创建 曲面 : 其基 本原 理 即先 将构 成空 间顶
点 的离散 坐标输 入一个文本文件 , 然后通 过程 序读入离散
语言界面友好 、 功能强大的特点 , 建立 了相应 的数学模 型 , 通过 自动化界 面技 术控 制 A tC D uo A
应用程序对象来完成零件加工 的简化 动态模拟 。对 A t A uo D动态 仿真 功能进行 了研究 , 且 C 并 为 V .E B N T语 言对 A t A uo D进行二次开发提供 了借鉴 。 C
Ba i sc.
Ke r s VB NE y wo d : . T;A t C uo AD;te s c n a d v l me t y a c smua in h e o d  ̄ e eo p n ;d n mi i l o t
程进行简化 的模 拟 , 先应 当建 立 刀具及 工 件 毛坯 的模 首
i tfr d.An a tala plat n i ien t n rdu e h w o d veop Auo spu o war cu p i i s gv o ito c o t e l tCAD y Viu l asc. Dep n n he ex el nt c o b s a B i e dig on t c l e g a his fn t tCAD ,at nat g c p it fViu sc NE ,a f sbe ma h m aial o el n h e n lg fa - r p c u c i of on Auo l er i a ably o s al n i Ba i. T ea il t e t d d t e tch oo y o c c m a
Z N i.H u . ig .WU B - n HA G We U G oqn ii j
( .Xa nUn es y Xa n3 10 , i 2 i i n esy Jme 3 12 , i ) 1 i me i ri , ime 6 0 5 Chn v t a; .J i ri , i i6 0 1 Chn me U v t a
0 引 言
A tC D是具有 强大 图形功能的计算机辅助软件 。虽 uo A 然其绘图建模 功能 十分强大 , 但在某 些方 面 ( 如参 数化 绘 图、 动态模拟等) 存在局限。因此 , 在很 多实际使用和特 殊
情况下 , 必须对 A tC D进行二 次开发以满足特殊体条件 uo A
摘
要: 以参数 化设计为指导思想 , Vsa Bsc N T( B N T 为编 程语 言和开发 工具 , 以 i l ai. E V . E ) u 对
A tC D软件进行二次 开发 , uo A 并给 出实例 。实 例中借 助 A tC D强大 的 图形 功能 和 V . E uo A B NT
关键词 : B N T A tC D; V . E ; uo A 二次开发 ; 动态模 拟 中图分类号 :H16 T 3 19 T 2 ; P 9 . 文献标识码 : B 文章编号 :6 1 26 2 0 )602 -3 17 - 7 (0 8 0 -130 5
Dy m i m u a i n o na c Si l to fAut CAD c nd De e o m e s d OlVB. o Se o v l p ntBa e i NET
t t i auomain it fc Me t ner e,asmpl y ami i lt fprc s a r d o t n c n u in,t s p p epy rs r e h y o a i ed n csmua i o o e s i c ri u .I o clso on s e hi a er de l e each st e d - n m i i lt n o tCAD d prvd s s a c smuai fAuo o an o ie ome v u l p r c fte s c d alabe ex e i e o h e on a ̄ d v op en e el men t CAD a e n Viu tofAu o b s d o s al
点 坐标 , 创建 曲面 。离散点坐标在文本 文件中的排列是任 意 的 , 曲面 的生成与 离散点 的坐标 排列顺 序无关 , 样 即 这 便 于空 间数据 的采集 、 管理和编辑 。但是这种 曲面生成 方 法也具有局 限性 。因为 由离 散点促创 建 的曲面类 型在一