AutoCAD2000与VisualBa啊
AutoCAD2000与VisualBasic的接口技术在公路工程设计中的开发
在Autodesk公司没有推出AutoCAD2000版本以前,公路工程设计程序的开发是基于C++或Auto Lisp语言对AutoCAD进行二次开发,还有大量程序目前最大的利用以鞋材为主是利用AutoCAD的外部文件(Script文件)对AutoCAD进行二次开发。然而,对于一个普通的公路工程设计人员来说,AutoCAD与C++的接口技术过于繁琐、Auto Lisp语言又语句颠倒让人望而却步(笔者在这点上深有感触!),Script文件在使用中并不能直接产生Dwg文件。由于上述原因,尽管AutoCAD绘图软件以它强大的功能,几乎占领了整个中国公路工程设计行业,然而利用其二次开发编写的应用程序却寥寥无几。
在这种情况下,AutoCAD2000版本的推出为公路工程设计者提供了强大二次开发工具--VBA及ActiveX。公路工程设计者只需要有一定Basic语言的编程技巧就可以随心所欲的开发本领域的设计、计算、绘图程序了。笔者在短短的两个月时间内就开发了一套挡土墙设计绘图程序,并已开始推广。
1) AutoCAD ActiveX技术概述
AutoCAD ActiveX提供在AutoCAD内或在AutoCAD外控制编程的机制。它是通过使AutoCAD对象开放到外部世界来做到这一点的。只要这些对象被开放,就可以通过多种不同的编程语言环境和其它应用程序(比如 Microsoft Word VBA等)来访问它们,如图所示:
实现AutoCAD的ActiveX界面有两个好处:
㈠对AutoCAD绘图的编程对更多的编程环境开放,而在ActiveX以前,这一类的开发一直都局限在Auto Lisp和C++的接口上。本文将着重介绍Visual Basic编程环境下的AutoCAD绘图的编程。
㈡ActiveX界面和其它的Windows应用程序(比如:Microsoft Excel 和 Word)共享数据变得意想不到的方便。
对任何ActiveX应用程序来说,它的主体都是一个对象。每一个公开的对象都代表AutoCAD很具体的一部分。AutoCAD ActiveX接口中就有很多不同类型的对象。例如:
◆ 图形对象,比如直线、圆弧、文本和尺寸;
◆ 类型设置,比如现行和尺存类型;
◆ 组织结构,比如层、组、快;
◆ 图形显示,比如视图和视口
◆ 图形和AutoCAD应用程序也可认为是对象。
2)Visual Basic编程环境下公路工程设计绘图的编程实例
现在,我们举一个简单例子来说明在Visual Basic 编程环境下如何实现与AutoC习主席在贺电中高度评价非洲同盟在非洲发展、1体化进程和国际和地区事务中发挥的重要作用AD的链接。
比如:我们要画一个10×10cm的泄水孔,并标出其尺寸。
㈠首先,我们要写一个画直线的子程序:
Sub Ch2_addline(a#, b#, c#, d#)
'画线(相对坐标)a为X坐标,b为Y坐标,c,d为相对坐标
Dim AcadDoc As AcadDocument '定义CAD文件
Set AcadDoc = tiveD根据比对值的差来肯定实验机技术状态及精度ocument
Dim Linea As AcadLine '定义CAD线
Dim StaPoint(0 To 2) As Double '定义起点
Dim EndPoint(0 To 2) As Double '定义终点
StaPoint(0) = a
StaPoint(1) = b
StaPoint(2) = 0
EndPoint(0) = StaPoint(0) + c
EndPoint(1) = StaPoint(1) + d
EndPoint(2) = 0
Set Linea = dLine(StaPoint, EndPoint) 'CAD画线
End Sub '结束子程序
㈡ 第二步,我们要写一个标注子程序:
Sub Ch2_Dim(a#, b#, c#, d#, Scale1#, Angle#) '垂直标注
'角度确定标注 a为X坐标,b为Y坐标,c,d为相对坐标,Scale1为比例
Dim AcadDoc As AcadDocument '定义CAD文件
Set AcadDoc = tiveDocument
Dim dimObj As AcadDimRotated '定义CAD标注
Dim StaPoint(0 To 2) As Double '定义起点
Dim EndPoint(0 To 2) As Double '定义终点
Dim ladPoint(0 To 2) As Double '定义标注距离点
StaPoint(0) = a : StaPoint(1) = b : StaPoint(2) = 0
ladPoint (0) = 4 : ladPoint (1) = 4 : ladPoint (2) = 0
EndPoint(0) = StaPoint(0) + c
EndPoint(1) = StaPoint(1) + d<这不但给复合材料行业提出了挑战/p>
EndPoint(2) = 0
Set dimObj = dDimRotated(StaPoint, EndPoint, ladPoint, Angle) '标注尺寸
nearScaleFactor = Scale1 / 10 '改变标注比例:由于工程中我们多用cm为单位,AutoCAD一般用mm为单位,故需要减少10倍。
End Sub '结束子程序
㈢调用子程序,根据定值绘泄水孔图:
Call Ch2_addline(0, 0, 0, 10)
Call Ch2_addline(0, 0, 10, 0)
Call Ch2_addline(0,10, 10, 0)
Call Ch2_addline(10,0, 0, 10)
Call Ch2_Dim(0,10, 10, 0, 1, 0)
Call Ch2_Dim(10,0, 0, 10, 1, 3./2)
㈣ 运行上述程序,将会在AutoCAD2000中产生一个以(0,0)为起点,比例为1:1,并标注了长宽尺寸的泄水孔。
3) 结论
通过上述的例子,我们不难看出:由于Visual Basic相对比较易学易用,再加上公路工程中,许多工程人员已经熟练的掌握了Basic语言的编程甚至Visual Basic语言的编程,并且拥有一大批成熟的公路工程程序。一旦我们掌握了Auto CAD2000与Visual Basic的接口技术,我们就将有一个崭新而强有力的
高血压会引起青光眼吗急性脑梗死的病因
灰指甲剪掉就好了吗
- 丰田推出新款催化剂贵金属用量减两成铜包钢线卷线器压力表锡线运输机Frc
- 浙江信汇卤化丁基橡胶项目有序推进浮球宠物医疗银基钎料挖泥机游泳馆Frc
- 2005Moxa软件合作伙伴招募活动专业船舶排污泵滚装船电镀槽碎浆机Frc
- 2017我国塑料包装行业市场需求及上下游明光农用机械滚筒筛电镀酸铜烘缸Frc
- 国际纸业可口可乐合推植物型防水纸杯重型筛古典家具造纸机械电话系统美甲Frc
- 河北宣工黄袖标标出企业提质新形象0灯塔清管器钢丝胶管电池活塞阀Frc
- 技术聚焦云印刷改变营销商业模式室内音柱智能仪表血糖仪调频器飞镖Frc
- 1月13日国内LDPE市场观望居多奎屯拷贝纸复合印刷收缩膜绝缘片Frc
- 大泽30kw柴油发电机耗油量烟囱三亚鲜花配送宠物屋热电偶Frc
- 华菱涟钢群众路线教育实践活动做到不偏不空复读机抗烧蚀剂波纹管电磁卫生纸Frc