autocad二次开发--曲线钢箱梁斜腹板放样展开

合集下载

CAD软件二次开发

CAD软件二次开发
• 举例: typedef unsigned int tag_t, *tag_p_t;
用户界面接口

• • • •
信息窗口: UF_UI_Open_Listing_Window(),…,write,save,cl ose,… 对象选择:UF_UI_select_with_class_dialog()按 类选择;UF_UI_select_with_single_dialog()选 择单个实体对话框 文件选择:UF_UI_create_part(), UF_UI_open_part(); 获得输入:uc1600()获得字符串,uc1608实数/整 形输入, uc1607()获得整数输入,uc1609()实数
AcRx类
AcEd类
AcDb类
AcGe类
AcGi类
3.开发实例与作业
• DrawCurve例子
作业:根据曲线曲面理论,在AutoCAD 下作: • 1)Bezier曲线与曲面; • 2)Spline曲线与曲面 • 3)NURBS曲线与曲面。
4.基于AutoCAD的InteCAD介绍 天喻CAD(AutoCAD版)
程序调试
程序格式
//入口 extern "C" void __declspec(dllexport) ufsta( char *name, int *rtcode, int rtlen) { tag_t root_part_occ = NULL_TAG; tag_t displayed_part = NULL_TAG; strcpy(TopPartName," "); strcpy(TopPartName,""); strcpy(PathName,""); //装载AVIDM接口函数-结束 UF_MB_add_actions( actionTable); strcpy(name, ""); displayed_part = UF_PART_ask_display_part(); UF_PART_ask_part_name(displayed_ part,TopPartName);

关于Autocad二次开发的研究

关于Autocad二次开发的研究

关于Autocad二次开发的研究,基于Activex科技在有轨运输铁路线上的应用摘要:本文介绍了在Autocad二次开发的中所使用的工具。

在对ActiveX自动科技和Visual Basic进行比较之后,展示了为什么两者被选为开发方法,并给出了源代码。

这些源代码与数据库、Visual Basic和AutoCad之间的通信、关于AutoCAD的主体特点的提取以及释义有关。

这些应用程序很好地用户界面并且具有功能像项目管理、定制以及数据库的操作等等。

项目管理采用了不同的数据结构,这些数据结构主要是建立在不同的线路设计的不同阶段之上的,例如如可行性研究和有线运输的设计研究。

用户化反映了AutoCAD绘图的不同要求。

数据库的操作正在改变、添加、删除、再生、分类以及数据表的统计和记录。

这种软件实现了AutoCAD操作和Access数据库之间的无缝连接。

这给AutoCAD的主体特点带来的改变将会实时地影响数据库的记录。

与之相反,如果数据库已经发生变化,那么对于手工劳动而进行的AutoCAD的有轨运输来说,绘制线条就毫无必要。

这一软件能够自动地根据跟新的数据进行提取,它也展示了一些前期工作,这些前期工作是协调紧接着要进行的工作的前提。

经过北京城市铁路的应用,证明了本研究的可行性。

它减少了由人工干预而产生的错误,节省了设计的时间、促进了以后的行业并且加速了整个交通运输项目的进程。

如果本研究在其他相似行业能得到应用,将会有更广泛的应用前景。

研究背景:随着城市的飞速发展,必须得解决城市的交通问题。

中国是一个发展中国家,人口众多。

随着私家车数量的愈发增多,由机动车所引起的污染问题也变得越来越糟糕。

城市轨道交通因为速度快,污染和噪音少等特点,发展成为一种解决污染问题有效方法。

在过去的几十年里,中国已经有超过三十城市计划发展城市轨道交通。

北京、上海、天津、广州、香港拥有超过193.3千米长的城市轨道交通。

城市轨道交通的前景大好。

1-AutoCAD VBA二次开发

1-AutoCAD VBA二次开发
Dim startPoint(0 To 2) As Double, endPoint(0 To 2) As Double Dim LineObj as AcadLine startPoint(0) = 0: startPoint(1) = 0: startPoint(2) = 0 endPoint(0) = 30: endPoint(1) = 20: endPoint(2) = 0 Set LineObj = ThisDrawing.ModelSpace.AddLine(startPoint,endPoint)
AutoCAD VBA的语法
控制语句(判断语句、循环语句……) if\else\end if for…next 函数(function) 过程(sub) 参数传递 地址传递(byref) 值传递(byval)
AutoCAD宏的定制与调用
VBA工程的建立与加载 Load、unload、embed 宏 run、edit、run into
AutoCAD二次开发
Visual Basic for Application 二次开发技术
VBA简介
Visual Basic for Applications(VBA)是一 种Visual Basic的一种宏语言,主要能用来扩 展Windows的应用程式功能。 VBA是VB语言的子集,是寄生于VB和应用程 序的版本 AutoCAD的VBA开发以VB 6.0的语法为基础
VBA的代码示例
7、数据单位转换
jd = ThisDrawing.Utility.AngleToReal(30, 0) ’30度转换为弧度
பைடு நூலகம்
VBA的代码示例
8、用户交互
Dim retVal As String retVal = ThisDrawing.Utility.GetString(1, vbCrLf & "Enter your name: ") Dim startPnt As Variant, endPnt As Variant Dim prompt1 As String, prompt2 As String prompt1 = vbCrLf & "Enter the start point of the line: " prompt2 = vbCrLf & "Enter the end point of the line: " startPnt = ThisDrawing.Utility.GetPoint(, prompt1) endPnt = ThisDrawing.Utility.GetPoint(startPnt, prompt2) ThisDrawing.ModelSpace.AddLine startPnt, endPnt ThisDrawing.Application.ZoomAll

关于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的操作将无法得以实现。

二、基本绘图思路:先了解所绘对象的基本属性,可以说,也正是由于对象的各种属性才构成了一个特性为一而标准的实体。

AutoCAD二次开发教程复习总结

AutoCAD二次开发教程复习总结

AutoCAD二次开发教程复习总结第一篇:AutoCAD二次开发教程复习总结红色部分为答案空白或不确定CAD复习题及答案1、AutoLISP2、VisualLISP3、VBA4、ADS5、ObjectARX红色部分为答案空白或不确定6、.NET 托管API7、ActiveX Automation红色部分为答案空白或不确定8、Visual Java1、AutoCAD二次开发方式有哪些?各自优缺点?2、AutoCAD 中实现 API 的有哪些优点?3、 API 的三个主要的DLL文件是?4、简述 API所对应的版本。

5、简述AutoCAD数据库的组成。

AutoCAD数据库是用来管理当前图形中的图元实体和其他非几何信息的容器对象,一个AutoCAD数据库包含一套固定的符号表和命名的对象词典,每一个符号表包含一个特定符号红色部分为答案空白或不确定表记录类的实例,例如层表(AcDbLayerTable)中包含层表的记录,块表(AcDbBlockTable)中包含块表记录,所有的AutoCAD实体均包含于块表记录中。

词典提供了一种通用容器来存储对象,它可以保存AcDbObject对象以及其它对象,也可以创建新的对象词典,将新的数据库元素加入其中。

AutoCAD数据库的组成如图所示,从图中我们可以看出数据库主要由一下内容组成:1)层表AcDbLayerTable和层表记录AcDbLayerTableRecord。

2)块表AcDbBlockTable和块表记录AcDbBlockTableRecord。

AutoCAD中所有可见实体均存储在块表记录。

块表中包含有两条特殊的记录*MODEL_SPACE(模型空间)和*PAPER_SPACE(图纸空间)。

3)其他符号表和符号表记录。

4)命名对象词典。

缺省情况下当AutoCAD数据库被建立以后,词典中就包括了组词典以及MILINE样式词典。

5)符号表和命名对象词典都是存储数据库对象的容器,用于组织和管理数据库对象。

C#ObjectArxAutoCAD二次开发(转帖)

C#ObjectArxAutoCAD二次开发(转帖)

C#ObjectArxAutoCAD⼆次开发(转帖)1.开发基本资料准备⽤Vs2010进⾏Autocad 2010开发,⾸先下载ObjectArx 2010 SDK。

2.使⽤Visual Studio .NET来创建⼀个新的类库⼯程(1)建⽴类库项⽬启动Visual ,选择”⽂件>新建>⼯程”(File> New> Project)。

在新建⼯程对话框中选择⼯程类型为”Visual C#⼯程”,然后选择“windows”>”类库”模板,点击确定按钮来创建⼯程。

(2)添加引⽤在项⽬引⽤中添加acdbmgd.dll和acmgd.dll,默认位置在c:/ObjectARX 2010/inc-win32下。

添加引⽤后,展开引⽤,单击AcDbMgd和AcMgd,将其属性复制到本地分别改为False,否则可能会出现编译错误。

AutoCAD 2010 采⽤ .Net Framework 3.5 版本,Vs 2010 创建默认⼯程采⽤.Net Framework 4.0 版本,必须将⽬标框架改为Net Framework 3.5 。

修改⽅法:菜单项⽬>ClassLibrary1属性>应⽤程序>框架属性,选择 .Net Framework 3.5 就可以了。

(3)导⼊命名空间。

如:using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.EditorInput;using Autodesk.AutoCAD.Runtime;(4)加⼊⾃定义命令新建HelloWorld的⾃定义AutoCAD 命令,可以这么做:[c-sharp]1. using System;2. using System.Collections.Generic;3. using System.Linq;4. using System.Text;5. using Autodesk.AutoCAD.ApplicationServices;6. using Autodesk.AutoCAD.EditorInput;7. using Autodesk.AutoCAD.Runtime;8. namespace ClassLibrary19. {10. public class Class111. {12. [CommandMethod("HelloWorld")]13. public void HelloWorld()14. {15. Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;16. ed.WriteMessage("Hello World");17. }18. }19. }该命令在当前命令⾏显⽰ Hello World。

AutoCAD在工程绘图中的二次开发运用

AutoCAD在工程绘图中的二次开发运用

AutoCAD在工程绘图中的二次开发运用作者:杨义强来源:《山东工业技术》2018年第21期摘要:通过对AutoCAD的二次开发运用探讨学习,掌握工程绘图中复杂制图的基本要领,主要从思路分析过程着手进行阐述。

关键词:工程绘图;AutoCAD;开发运用;AutoLISP语言DOI:10.16640/ki.37-1222/t.2018.21.1291 前言随着计算机运用的普及,AutoCAD制图在工程制图中占有重要地位,已经被全面运用在工程施工中的各个环节,代替了传统的手工制图。

但是在实际使用过程中,AutoCAD制图在绘制复杂曲线、曲面及三维造型方面就显得有些力不从心了,比如在技术交底及幻灯片制作等过程中需要用到更加详细的图例,如线路中线的圆曲线、缓和曲线,隧道主洞与车行横洞的曲面直观图,桩基螺纹钢筋的三维造型等,本文就工程中常见的桩基钢筋笼通过编写AutoCAD 的AutoLISP语言绘图进行简单分析、介绍,以期交流。

2 AutoLISP语言简介及Visual LISP工具AutoLISP语言是嵌于AutoCAD内部的计算机语言,它是AutoCAD开放式体系结构的具体表现,它是LISP语言和AutoCAD有机结合的产物。

使用AutoLISP可直接调用几乎全部的AutoCAD命令。

AutoLISP语言既具备一般高级语言的基本结构和功能,又具有一般高级语言所没有的强大图形处理功能,是当今世界上CAD软件中被广泛采用的语言之一。

AutoLISP是一种简便易学的解释性语言,具有很强的数据表处理功能,是开发AutoCAD的一种重要手段。

AutoCAD中大多数参数化程序都是针对二维平面图编制的。

实际上,立体图同样可以实现参数化绘图,在AutoCAD中编制实体的立体图参数化程序比其平面三视图程序更简单,而且立体图生成后,可以很方便地生成三视图、剖面图和轴侧图等。

Visual LISP为AutoCAD软件自带的AutoLISP程序开发的可视化软件工具,虽然Visual LISP是与Auto CAD软件结合在一起的,但是它其实是在独立于AutoCAD的另一个窗口运行的。

AutoCAD二次开发及应用研究

AutoCAD二次开发及应用研究

《商场现代化》2012年4月(上旬刊)总第679期目前AutoCAD 是应用最为广泛的通用交互式计算机辅助绘图与设计软件包,AutoCAD 的强大生命力在于它的通用性、多种工业标准和开放的体系结构,其通用性使得它在机械、电子、航空、船舶、建筑、包装、服装等领域得到了极为广泛的应用。

但是由于Au-toCAD 软件都不可能解决某行业用户在产品设计与制造中的全部问题,所以在AutoCAD 应用领域,更多的用户和技术人员要在基于AUTOCAD 的基础上,针对企业或行业的特殊需要进行二次开发,以满足本企业或某行业在产品设计、制造上的特殊要求,或者针对AutoCAD 的某个应用领域进行专门软件开发,以完成特殊的造型、计算、分析等专业应用要求。

一、AutoCAD VBA 简介Microsoft VBA 是一个面向对象的编程环境,可提供类似Visu-al Basic(VB)的丰富开发功能。

VBA 和VB 的主要差别是VBA 和AutoCAD 在同一进程空间中运行,提供的是具有AutoCAD 智能的、非常快速的编程环境。

VBA 可提供强大的窗体创建功能,为应用程序建立对话框及其他屏幕界面,可建立功能强大的模块级宏指令,提供类模块创建功能,利于组件重用,具备完善的数据访问与管理能力。

在AutoCAD 中实现VBA 有四大优点:1.Visual Basic 编程环境易于学习和使用。

2.VBA 可与AutoCAD 在同一进程空间中运行,这使程序执行得非常快。

3.对话框的构造快速而有效。

这使开发人员可以构造原型应用程序并迅速收到设计的反馈。

4.工程可以是独立的,也可以嵌入到图形中。

这样就为开发人员提供了非常灵活的方式来发布他们的应用程序。

二、获取VB 对AutoCAD 的控制权首先要获取对AutoCAD 的控制权,然后才能有效地运用VB 编程方式进行AutoCAD 的基本绘图操作,否则,接下来的各种对AutoCAD 的操作将无法得以实现。

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

曲线钢箱梁斜腹板展开放样程序开发 摘要:高架桥曲线钢箱梁外斜腹板的展开放样是工厂制造的难点,一般采用钣金软件如Pro/E、autoPol钣金专家等进行放样,需三维建模后由实体展开,对技术人员综合素质要求较高,研究一种简单易行的展开放样方法可大大降低工艺设计放样的门槛。 关键词:曲线钢箱梁 展开 钣金 Program development for unfolding the inclined web setting-out of curved steel box girder ABSTRACT It is a manufacturing difficulty for unfolding the inclined web of curved steel box girder in work yard, generally, sheet-metal software such as Pro/E and autoPo1 are used to set out, which should be modeled by 3D solid modeling before unfolded and have strict technical demands for technicians, so research a simply way for the inclined web setting-out can reduce the difficulty of technological Design. KEY WORDS Curved steel box girder, unfolding, sheet-metal 1、概况 随着国内城市现代化的进程和城市容量的扩大,城市公路以及高速公路交通正处于高速发展阶段,尤其是大、中型城市的发展尤为迅猛。曲线高架钢箱梁以及匝道钢箱梁需求量越来越大。 曲线钢箱梁为空间曲线,特别是匝道梁,平面投影采用缓和曲线,同时还有立面线形(含预拱度),因此对于钢箱梁斜腹板的放样展开是曲线钢箱梁制造的一大难点。 如何采用先进的放样方法,特别是计算机迅速发展的时代,如何利用计算机这一现代工具,实现放样数字化,减少人为因素影响,做到放样程式化,是需要研究的课题目标。 目前国内曲线钢箱梁主要采用传统手工放样展开的方式进行制造以及钣金展开软件如PRO/E、AutoPOL钣金展开专家等。前者放样劳动强度大。对于缓和曲线钢箱梁腹板传统放样采用三角形法进行放样,放样难度大,精度低,可操作性不强,对放样工素质要求高;后者需要三维建模,通过三维实体模型进行展开,对技术人员要求有较全面的素质。 如何降低曲面展开放样的门槛,关键在于开发一种方便使用,易操作的软件,实现全程数字化,AutoCAD提供了开放的VBA编程界面,可便捷地实现此功能。 2、线形 以桥梁中心线为缓和曲线钢箱梁为例,对桥梁边缘以及斜腹板边缘的曲线方程推导。立面线形及预拱度采用分段函数进行计算Z坐标。 2.1 边缘曲线坐标参数方程推导 边缘曲线坐标参数方程推导首先从中心缓和曲线平面坐标参数方程推导出边缘点平面坐标参数方程,再通过立面线形Z1、横坡(超高渐变段)Z2及预拱度Z3叠加出边缘点高程坐标参数方程,即可获取边缘点的三维坐标参数方程X、Y、Z。 缓和曲线要素:A(Ls)、R 2LAr当在缓圆点时r=R,L=Ls,即:2LsAR

缓和曲线中心点ci的x、y坐标参数方程: 592244()40**3456**llxllRLsRLs ; 37113355()6**336**42240**lllylRLsRLsRLs

图1为缓和曲线平面图,已知中心c(li)各点坐标参数方程x(li)、y(li)求边缘坐标参数方程,首先必须根据c(li)点法线来求,法线斜率为: ()dxdyKldldl,简化后为:53484226103840(*)480(*)10(*)()1920(*)80(*)RLsRLslRLslKlRLslRLsll 法线倾角()tan(())larcKl

W1

W1

bcbb

cc

bb

ccW2

W2

aaaaabbbbbbbbbbaaaaaaaaaa

θ(l)

图 1 缓和曲线平面图 b(li)点坐标参数方程为liliXb(li)=-Δx(li)+x,Yb(li)=-Δy(li)+y 即liliXb(li)=-W1cos(θ(li))+x,Yb(li)=-W1sin(θ(li))+y a(li)点坐标参数方程为liliXa(li)=-W2cos(θ(li))+x,Ya(li)=-W2sin(θ(li))+y bb(li)点坐标参数方程为liliXbb(li)=W1cos(θ(li))+x,Ybb(li)=W1sin(θ(li))+y aa(li)点坐标参数方程为liliXaa(li)=W2cos(θ(li))+x,Yaa(li)=W2sin(θ(li))+y 与之相接的圆曲线: 圆心坐标(x,y)为x(Ls) - R * Cos(Atn(K(Ls))),y(Ls) - R * Sin(Atn(K (Ls))) 起止角度分别为:Atn(K(Ls)), Atn(K(Ls)) + Lhc / R,其中Lhc为圆弧长度。 边缘圆弧为此同心圆,仅R变化,起止角度与中心线同。 高程坐标由于立面线形、横坡各不相同,可根据实际情况推导Z1、Z2(仅超高渐变段考虑Z2)坐标参数方程(分段函数),对于预拱度Z3坐标参数方程可根据设计给定坐标点,再通过软件TableCurve2D对数据进行拟合成VBA程序识别且精度达到要求的方程。 以无超高渐变段钢箱梁为例,高程坐标公式推导过程: 立面线形一般采用纵坡+圆弧+纵坡,如图2所示

i1%-i2%

TERyLstZ

Y

Le

YZ

JD

1%-i2%

RyL0Z

Y

L3

YZ

Lcφ0

ψ

0

图 2 立面线形示意图 Z1分段函数已知JD 坐标点,i1%、i2%及Ry,由此可求出ZY(直圆点)、YZ(圆直点)坐标,直圆点Lzy=Ljd-Rytan((φ0+ψ0)/2)cos(φ0),Zzy= Zjd-Rytan((φ0+ψ0)/2)sin(φ0),其中Ljd、Zjd为交点JD纵、横坐标(YZ点计算略),φ0=atan(i1%),ψ0=atan(i2%);圆心Lc坐标为LLc=Lzy+Rysin(φ0),ZLc=Zzy- Rycos(φ0)),圆弧段坐标参数方程:LYH=LLc+Ry cos(φ),ZYH=ZLc+ Ry sin(φ),φ取值为π/2+φ0~π/2-ψ0;Lst侧直线段Z1=aL+b,L取值为Lst~Lzy;Le侧直线段公式略。 Z3预拱度一般为二次抛物线,可设为Z3=a1L2+b1L+c1。 Z= Z1+ Z3 2.2 平面展开方程推导 根据已求各点三维坐标,推导平面展开参数方程,其原理是通过各相邻三角形绕邻边转动至同一平面,通过三角形的稳定性原理,可简化成依次对齐排列各三角形实现空间点的展开,如图3为斜腹板展开图,ai’为展开点坐标,Ai~Di为线段实长,α角为下边缘倾角。

α0

β0γ

0

b0'

a0'

a2'bi-1'b2'

ai-1'A1D1

B1C0bi'

ai'BiAi

a1'

b1'A2

A3

D2D3DiCi

Ci-1

C2C1

B2B3

图 3 斜腹板展开图 已知ai点坐标(Xai,Yai,Zai),bi点坐标(Xbi,Ybi,Zbi) 由此可求出Ai(ai-1ai)、Bi(bi-1bi)、Ci(aibi)、Di(aibi-1)的实长:

222111()()()1~iiiiiiiXaXaYaYaZaZaii

222111()()()1~iiiiiiBiXbXbYbYbZbZbii

2220000000()()()CXaXbYaYbZaZb

222()()()1~iiiiiiCiXaXbYaYbZaZbii

222111()()()1~iiiiiiDiXbXaYbYaZbZaii

iii00b0'b1'a0'a1'bi'ai'b0'b1'B1如图3各角度、、均可求令,确定、、、坐标,以此为基准逐段确定其余各点、坐标

即令(0,0),则(,0) 2221cos()2*iiiiiiBDCaBD 222111cos()2*iiiiiiDCAaDC



a''tan()''iiiiiiiYYbaXaXb

b1’点坐标参数方程:1010''*cos()XbXbB 1010''*sin()YbYbB bi’点坐标参数方程:11''*cos()iiiiXbXbB 11''*sin()iiiiYbYbB a0’点坐标参数方程:000000''*cos()XaXbC 000000''*sin()YaYbC a1’点坐标参数方程:10100''*cos()XaXbD 10100''*sin()YaYbD ai’点坐标参数方程:111''*cos()iiiiiXaXbD 111''*sin()iiiiiYaYbD 3、程序开发 程序编写采用AutoCAD内置的VBA进行二次开发编程,程序分为主程序和子程序。子程序主要解决平面曲线边缘点的计算、高程坐标的计算以及平面立面线形补充扩展,主程序解决子程序输出的三维坐标点转化成平面点并绘制出平面线形及腹板展开线形。

相关文档
最新文档