电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 操作系统-> 经验技巧
vb应用程序中用dde功能开发autocadforwindows_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
目前,许多工程CAD系统是以AutoCAD作为支撑软件,在其基础上进行二次开发而形成的。AutoCADR12forWindows以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通道,并输入下面的事件代码。

 OptionExplicit

 PrivateSubcmdLine_Click()画直线

  Text1.LinkExecute"[^3^3line3,38,8^3]"

 EndSub

 PrivateSubcmdText_Click()标注文字

  Text1.LinkExecute"[^3^3text10,10190AUTOCAD!^10]"

 EndSub

 PrivateSubcmdLink_click()建立链接

  Text1.LinkMode=0

  Text1.LinkTopic="autocad.dde|system"

  Text1.LinkMode=2

 EndSub

 PrivateSubcmdExit_click()退出

  End

 EndSub

  运行此应用程序,注意在运行前,一定要先加载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的开发。

二、通过调用VBADS开发

  上面介绍了在VB应用程序中直接利用DDE与AutoCAD作用实现开发的方法,此方法要求用户自己建立与AutoCAD间的DDE通道,此外,我们还可以通过调用VBADS函数对AutoCAD进行开发。在VBADS函数库中已有专门的函数负责建立应用程序与AutoCAD间的DDE通道,而不需用户亲自建立,较为方便。另外,VB应用程序还可以通过VBADS函数向AutoCAD发送数据和命令,同时也可以利用VBADS函数的返回值来获得AutoCAD的数据,实现对AutoCAD更深入的开发。

  为了利用AutoCAD的VBADS函数建立VB的应用程序,AutoCAD提供了几个VBADS支撑文件,这些文件除DDEBAS.EXE和ACADVB.DLL存放在C:\ACADWIN子目录外,其余都存放在C:\ACADWIN\VB\NEW子目录中。文件如下:

  1.DDEBAS.EXE-ADS/DDE服务者,为保证VB于AutoCAD间正常通信,此命令必须首先在AutoCAD中用XLOAD命令加载运行。

  2.ACADVB.DLL-VBADS动态连接库,在运行VB应用程序前,应将其拷到C:\WINDOWS\SYSTEM\子目录下。

  3.GLOBAL.BAS-VBADS应用程序中所需要使用的全局变量定义文件。

  4.ADSFUNCS.BAS-VBADS函数库,可以在VB应用程序中直接调用。

  5.ADSFUNCS.FRM-包含有应用程序和AutoCAD间建立DDE链接的窗体文件。下面结合具体的例子,说明利用VBADS函数开发应用程序的方法。[HJ]   启动VB,打开C:\ACADWIN\VB\NEW\NEWPROJ.MAK项目文件,参见图[2]建立新窗体,并输入如下的事件代码。

 OptionExplicit

 PrivateSubForm_Load()

  DDE_TIMEOUT=-1 等待DDE事件

  txtX.Text=5 圆心,半径的隐含值

  txtY.Text=5

  txtRadius=3

 EndSub

 PrivateSubcmdCircle_Click() 画圆过程

  DimretAsInteger

  DimptAsads_point 定义Ads点类型

  DimRadiusAsDouble

  DimApndllAsApndLLType 定义增加链表类型

  DimResbufAsResbufType 定义结果缓冲器

  pt.X=val(Trim(txtX.Text)) 给圆心,半径赋值

  pt.Y=val(Trim(txtY.Text))

  Radius=val(Trim(txtRadius.Text))

  ret=ads_newrb(10,Resbuf) 建立新的结果缓冲器

  Resbuf.hResbuf=0

  Apndll.apType=RTSTR 说明链表类型为字符串

  Apndll.apString="circle" Chr$(0) 链表赋值

  ret=ApndLLNode(Resbuf,Apndll) 增加链表到结果缓冲器

  Apndll.apType=RTPOINT

  Apndll.apPoint=pt

  ret=ApndLLNode(Resbuf,Apndll)

  Apndll.apType=RTREAL

  Apndll.apReal=Radius

  ret=ApndLLNode(Resbuf,Apndll)

  Apndll.apType=RTNONE 链表结束值类型

  ret=ApndLLNode(Resbuf,Apndll)

  ret=ads_cmd(Resbuf) 执行结果缓冲器的命令

  ret=ads_relrb(Resbuf) 释放结果缓冲器

  EndSub

PrivateSubcmdExit_Click() 退出过程

  End

 EndSub

  在应用程序运行前,必须首先运行AutoCAD,并用命令(XLOAD"DDEBAS")加载DDEBAS.EXE。在上面的应用程序中,除语句DDE_TimeOut=-1外,没有其它涉及建立DDE通道的语句,因为应用程序与AutoCAD间建立DDE通道所需要的代码已保存在VBADS函数库中,打开支撑文件adsfuncs.bas,可以发现SubOPENDDE()过程,它负责VB应用程序与AutoCAD间DDE通道的建立,所以用户在开发应用程序时,只管调用VBADS函数即可。例子中的cmdCircle_Click()过程,是在VB4.0编程环境通过调用VBADS函数开发的,运行程序后在文本框中输入半径和圆心的值,单击“画图”按扭,即可在AutoCAD中得到所需的圆。->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·巧设虚拟内存让系统更流畅_经验技巧
·提高windows系统速度的八大绝招_经验技巧
·windows操作系统网络管理技巧_经验技巧
·让系统安全无忧—硬盘分区表损坏解决方案_经验技巧
·更改windows系统中dos命令行的默认路径_经验技巧
·各取所需 浅析磁盘配额设置方法_经验技巧
·网络故障导致无法开机问题的解决_经验技巧
·十二招windows操作系统的网络管理技巧_经验技巧
·在windows中提高内存使用效能的几种好方法_经验技巧
·windows系统会自行关闭硬盘dma模式_经验技巧

最新文章
·别浪费你的大内存 如何给windows提速_经验技巧
·windows vista sp1新增创建恢复盘功能_windows vista
·有效管理系统字体的七种绝技_经验技巧
·c盘空间再小也能安装字体_经验技巧
·不破坏硬盘数据将fat32转为ntfs分区的方法_经验技巧
·服务器变慢的两种非常规解决办法_经验技巧
·教你快速释放windows系统资源的小绝招_经验技巧
·紧急救护受损的windows系统_经验技巧
·找回硬盘丢失数据全攻略_经验技巧
·regsvr32解决系统疑难杂症利器_经验技巧


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号