基于VB语言的EXCEL和CST以及AutoCAD与ANSYS等的二次开发

合集下载

基于VB_NET的AutoCAD二次开发

基于VB_NET的AutoCAD二次开发
与 VB6. 0相比 , VB. NET不但具备了任何面向对象编 程语言所具有的抽象性 、封装性 、多态性 ,而且在继承性上 是第一个支持完全继承的 VB 版本 。[ 5 ] 通过完全继承 ,类 可以获得现有类的现有接口和行为 。这是通过一个叫作 Subclassing(再细分类 )的过程 ,继承现有类的这些行为完 成的 。引入完全继承后 , VB. NET是真正的面向对象语 言 。在保证功能强大的前提下大大提高开发速度 。
由于 VB与 AutoCAD运行在不同的内存空间 ,所以进 行二次开发时首先必须将其与 AutoCAD 进行链接 ,即引 用 AutoCAD 的对象 、属性和方法的库文件 : Acad. tld,该库 文件位于 AutoCAD程序的目录下 ,它并不保存对象本身 , 只保存创建对象的相关信息 。AutoCAD 应用程序对外暴 露的对象按树状层次结构顺次展开 ,依次为 App lication对 象 、Document对象 、Model Space对象和 Paper Space对象等 深层次对象 ,其顶层为 AutoCAD App lication,是引用其他 对象的基础 。链接的具体方法是 :运行 V isual Basic. NET, 创建一个 V isual Basic. NET项目 。打开项目菜单 ,选择添 加引用 ,再选择 COM ,复选 AutoCAD2002 Type L ibrary,再 编写 VB 程序代码 , 创建 AutoCAD 对象 , 启动运行 Auto2 CAD[ 7 ] 。
AddL ightW eightPolyline (points) 然后做 1到 10点所围成的剖面
轮廓的镜象 , 镜象轴为 Y, 得到齿轮 上半部分轮廓的左边部分 。如图 2 所示 。
3) 将齿轮上半部分轮廓的左、 右部分 创建 面 域 , 并 进 行 布 尔和 运 算 。其规则是 :对象 A 与对象 B 进行 布尔运算结果返回给对象 A ,然后将 上半部分轮廓绕齿轮轴线旋转 ,旋转 angle为 360°,得到齿轮结构旋转体 , 其方法为 :

用VB对AutoC进行二次开发

用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二次开发学习笔记

关于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与ANSYS的二次开发的冲压成形参数化设计

基于VB与ANSYS的二次开发的冲压成形参数化设计

基于VB与ANSYS的二次开发的冲压成形参数化设计
孙佳楠;吕永锋;范建蓓
【期刊名称】《轻工机械》
【年(卷),期】2016(034)002
【摘要】针对基于ANSYS在进行冲压成形分析时界面操作可视化差,难以形成参数化分析的问题,对VB封装ANSYS设计编程的可视化、参数式操作界面进行研究.设计了冲压参数化设计分析流程与主要程序界面;提出VB对ANSYS封装调用以及生成APDL参数化分析语言的基本方法和关键编程语句,并以V形件弯曲成形参数化分析模块为例,介绍了界面程序的使用与功能.该方法能让设计人员快速、高效地对冲压成形工艺进行分析,并根据结果指导相关模具的设计开发,提高设计效率,减低ANSYS使用难度.该研究已投入企业实际应用,取得了良好效果.
【总页数】4页(P77-80)
【作者】孙佳楠;吕永锋;范建蓓
【作者单位】浙江机电职业技术学院机械工程学院,浙江杭州310053;浙江机电职业技术学院机械工程学院,浙江杭州310053;浙江机电职业技术学院机械工程学院,浙江杭州310053
【正文语种】中文
【中图分类】TG386.3
【相关文献】
1.基于ANSYS参数化设计语言门式刚架分析程序的二次开发 [J], 徐其功;孙业华
2.基于ANSYS二次开发的自卸车货厢参数化设计 [J], 杜媛媛;马力
3.基于VB的ANSYS二次开发在液压缸参数化设计中的应用 [J], 黄洲;李龙华
4.基于Ansys Workbench二次开发的门座起重机参数化设计 [J], 张鹏; 肖汉斌; 祝锋; 刘敏
5.基于Pro/E二次开发的冲压模具参数化设计系统 [J], 纪莲清;谢欢
因版权原因,仅展示原文概要,查看原文内容请购买。

基于VBA的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对AutoCAD的二次开

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二次开发学习笔记关于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进行二次开发

用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公司使用了集合的概念。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于VB语言的EXCEL、CST以及HFSS等的二次开发
代码1:vb创建xls表,并写入内容
Set ExcelApp = CreateObject("Excel.Application") '创建EXCEL对象Set ExcelBook = ExcelApp.Workbooks.Add
Set ExcelSheet = ExcelBook.Worksheets(1) '添加工作页ExcelSheet.Activate '激活工作页
ExcelApp.DisplayAlerts = False
="sheet1"
ExcelSheet.Range("A1").Value = 100 '设置A1的值为100
ExcelBook.SaveAs "d:\test.xls" '保存工作表
msgbox "d:\test.xls创建成功!"
ExcelBook.close
set excelApp=nothing
set ExcelBook=nothing
set ExcelSheet=nothing
将以上代码copy到记事本存为"writexls.vbs"文件,可运行测试
代码2:读execel文件
Set ExcelApp = CreateObject("Excel.Application") '创建EXCEL对象Set ExcelBook = ExcelApp.Workbooks.open("d:\test.xls")
Set ExcelSheet = ExcelBook.Worksheets(1)
msgbox ExcelSheet.Range("A1").Value
将以上代码copy到记事本存为"readxls.vbs"文件,可运行测试
代码3:上述代码联合调试
Dim ExcelApp,ExcelBook,ExcelSheet
Set ExcelApp = CreateObject("Excel.Application") '创建EXCEL对象Set ExcelBook = ExcelApp.Workbooks.Add
Set ExcelSheet = ExcelBook.Worksheets(1) '添加工作页ExcelSheet.Activate '激活工作页
ExcelApp.DisplayAlerts = False
="sheet1"
ExcelSheet.Range("A1").Value = 100 '设置A1的值为100
ExcelBook.SaveAs "D:\Study\VBS\Book1.xls" '保存工作表
msgbox "d:\Book1.xls创建成功!"
ExcelBook.close
set excelApp=nothing
set ExcelBook=nothing
set ExcelSheet=nothing
'ExcelApp.WorkBooks.Close
'ExcelApp.Quit
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = True
'创建EXCEL对象
Set ExcelBook = ExcelApp.Workbooks.open("D:\Study\VBS\Book1.xls")
Set ExcelSheet = ExcelBook.Worksheets(1)
msgbox ExcelSheet.Range("A1").Value
ExcelApp.WorkBooks.Close
ExcelApp.Quit
若对支持VB脚本的软件进行二次开发,上述描述有借鉴意义。

例如CST,HFSS 等电磁软件(以及AutoCAD,ANSYS等)就可如此外部调用。

代码4:VBS调用CST进行运算
Dim app
Set app = CreateObject("CSTStudio.Application")
Dim mws
Set mws = app.OpenFile("D:\VBS\1.cst")
'mws.Visible = False
With mws
.DeleteResults
.Rebuild
.Solver.Start
.Save
End With
mws.Quit
代码5:VBS调用CST进行运算
Dim fs
Set fs =createobject("scripting.filesystemobject")
Dim ts
Set ts=fs.opentextfile("opt.txt",1,true)
Dim path
path=ts.readall
ts.close
'msgbox path
Dim app
Set app = CreateObject("CSTStudio.Application")
Dim mws
Set mws = app.OpenFile(path)
Dim chang
Dim kuan
Dim gao
'Dim result(30)
Set ts=fs.opentextfile("chang1.txt",1,true)
chang=ts.readline
'msgbox chang
ts.close
Set ts=fs.opentextfile("kuan1.txt",1,true)
kuan=ts.readline
'msgbox kuan
ts.close
Set ts=fs.opentextfile("gao1.txt",1,true)
gao=ts.readline
'msgbox gao
ts.close
With mws
.DeleteResults
.StoreParameter "Lg", chang
.StoreParameter "Ls", kuan .StoreParameter "Lcross",
gao
.Rebuild
.Solver.Start
.Save
End With
mws.Quit
Window系统下,C++调用VBS的参考方法:WinExec(" wscript.exe
D:\Study\VBS\Book.vbs", SW_SHOWNORMAL);。

相关文档
最新文档