分享好友 数控技术首页 数控技术分类 切换频道

在AutoCAD环境下与数据库间的互联技术

2020-04-20 00:001220

  摘要 本文阐述了在液压CAD系统中,针对AutoCAD R13 for Windows二次开发环境下,利用其内部ASI接口技术进行程序设计,实现与Visual Foxpro 3.0之间进行数据交换的方法。
  关键词:AutoCAD 二次开发 接口 数据交换

1 引言

  数据交换是CAD的核心技术,可以说没有数据的有效交换,就没有CAD优越性的充分发挥。在AutoCAD环境下进行CAD软件二次开发时,如何实现各模块间数据的有效交换,如何解决各类不同软件间的接口问题以及如何实现图形实体与非图形实体数据的联系,是二次开发CAD系统解决的关键问题。
  本文着重讨论了AutoCAD R13 C4 for Windows环境下与Visual Foxpro 3.0之间进行的数据交换的ASI (AutoCAD SQL Interface)程序设计方法,并具体应用于液压系统的CAD软件中。

2 AutoCAD的开发与数据库的访问

  象其他流行软件一样,Autodesk公司在AutoCAD R13内部提供了与外部数据库相互联系的机制。AutoCAD本身含有ASI(AutoCAD SQL Interface)、ASE(AutoCAD SQL Extension)和DBMS(Database Manager System)驱动程序几部分。AutoCAD与数据库文件之间进行数据交换的示意图如图所示。

AutoCAD与数据库文件之间数据交换示意图

  ASI遵循ANSI/ISOSQL标准,是用于从AutoCAD中访问外部数据库的函数集。用ASI建立的应用程序,均可通过AutoCAD的开发应用系统;C语言开发的ADS,Visual C++4.0开发的ARX或其内部所自带的AutoLISP语言连接到AutoCAD系统中,同时可以在不同的数据库驱动程序支持下对不同的数据库进行数据的存取交换。
  ASE是一组命令集,可将SQL连接到AtuoCAD系统中。其实质就是利用ASI建立的ADS/ARX的应用程序。使用ASE可以在AutoCAD内部对外部数据库中的数据文件的记录和字段进行查询和修改等操作,可以将数据关联到图形实体和非图形实体(如哑图中尺寸参数替换和明细表等)上,实现图形和数据间的双向查询,并可以实现在图形中动态跟踪显示数据。
  AutoCAD本身包含一组数据库驱动程序,其中每一个驱动程序都支持自己所连接的一种外部DBMS。其中用ADS/ARX或AutoLISP建立的应用程序,不必考虑DBMS专用的代码应用程序,是用ASI编程还是用ASE命令编程,其实质都是遵循通用SQL标准的。
  AutoCAD支持的开发语言有Turbo C,Visual Basic 5.0,Visual C/C++4.0和内部拥有AutoLISP语言,其中C,VB通过建立生成ADS的函数,VC生成的是ARX函数,与AutoCAD信息相联系。
  ASE作为AutoCAD内部的一组命令,可用编程方式执行。ASE作为AutoCAD访问数据库的核心具有更直接访问数据库的能力,允许应用程序对多种DBMS,DBMS内的多个数据库,库内的多张表进行数据访问。ASE和ASI可根据需要单独或同时使用。ASE方法在显示属性、编辑、列表框、基于查询等功能方面显得容易实现,但对于复杂的应用程序,就要使用ASI方式编程实现功能。

3 ASI方法的使用

3.1 ASI的支持文件与开发环境
  AutoCAD R13 for windows所支持的ASI编程的文件都存放在缺省的\ACAD\WIN\ASE目录中。
  有ASI目标库(文件后缀为.LIB)如asiatm80.lib;ASI头文件(asi.h含ASI的通用定义)、(asierr.h包含返回出错代码值的含义)、(asiappl.h含主要的AutoCAD SQL结构查询语言的头文件)、(asisdata.h含C++的用户接口定义)。
  用ASI编制的应用程序,可用的编译器有:Borland C/C++4.0、Microsoft C/C++7.0、Microsoft Visual C++4.0以上版本等。
3.2 利用ASI与数据库交互处理的实现过程步骤
  ● 连通数据库:通过asiinitsql,adsinitdrv,asiconnect分别对ASI指定的DBMS驱动程序进行初始化,登录到所指定的数据库。
  ● 打开一个通讯句柄:这可通过调用asicompile函数来实现。在ASI程序中,每条SQL语句都通过一个通讯句柄来进行处理。
  ● 编译SQL语句:通过调用asicompile函数来实现。
  ● 执行SQL语句:用asiiexecute函数执行SQL语句。
  ● 查询和处理数据:逐行查询结果,选取当前行,进行数据处理。所需的函数有:asifetch获得光标所在的当前行;asicoldsc获得一列的说明;asidelete删除当前行;asiupdate更换当前行,等函数。
  ● 关闭通讯句柄:用asichandle函数关闭语句处理的句柄,并释放句柄。
  ● 断开与数据库的连接:调用asidisconnect函数,断开登录的数据库;调用asitemdrv函数,终止驱动程序;调用asitemrsql函数,终止程序接口。
  上述每一过程可用ASI的出错代码处理函数进行错误信息处理,用asierr获得一条出错代码,用asierrmsg函数获得一条出错信息。

4 实例说明

  本例给出一个由Visual Foxpro3.0环境下,建立起来的液压系统软件包设计中的顺序阀数据库文件SXFLIB.DBF,其数据结构如下表所示。

Name TypeDiameterPressureFluxScale顺序阀X-F*10D3-P-*10.020.040.00.5顺序阀2X-F*10D3-AB/BA-*10.020.040.01.0单向顺序阀XA-F*10D3-B-*10.020.040.00.7单向顺序阀XA-F*10D3-B(A)-*10.020.040.00.5


  编制ASI应用程序,实现所需功能:
  (1)编制insrowvalue命令,实现将AutoCAD图形上的数据和名称做一标记插入到数据库的记录中。
  (2)编制getrowvalue命令,实现从数据库选定行中读取数据,在软件的对话框中显示出来,并按数据所提供的比例画出图形。
  (3)编制fetchdallue命令,实现从数据库中读取所有记录,在对话框的列表框内显示出来,以便用户调用,插入图形中。
  由于AutoCAD可通过ASI/ASE、DBMS访问数据库,所以使许多应用项目的设计思路大为开阔,节省了设计者的工作时间,提高了工作效率,降低了投入成本,有利于集成系统的实现。

举报
收藏 0
打赏 0
轻松提高数控机床精度
随着我国经济的飞速发展,数控机床作为新一代工作母机,在机械制造中已得到广泛的应用,精密加工技术的迅速发展和零件加工精度的

0评论2025-01-04265

加工中心刀具长度补偿怎么用?
在数控加工中,刀具长度补偿是一种重要的措施,用于消除机床变形、热变形等因素引起的误差,保证加工精度,从而提高培训效率,减

0评论2024-12-18354

加工中心主轴定位角度怎么调?
  在数控加工领域,加工中心主轴的定位角度是影响加工精度和效率的重要因素之一。正确调整主轴的定位角度可以提高加工质量,减

0评论2024-12-11449

简述机器人加装电主轴就选Kasite 4060ER-S的理由
  近年来,随着科技的不断发展,机器人作业已经渗透到各个领域,尤其在工业制造领域,更加随处可见。高精密切割、铣削、雕刻、

0评论2024-05-20666

机器人主轴怎么选?Kasite高速电主轴满足你的需求
  机器人发展到现在越来越受到人们的欢迎和重视,现在很多传统行业都在生产作业中引入了工业机器人,随着机器人的改进和优化,

0评论2023-10-231173

机械臂加装2.2KW大力矩电主轴,就选MSIY-80电主轴
机械臂想加装大力矩电主轴,用于铸钢等硬质材料去毛刺,铣削等加工,可以考虑MSIY-80电主轴,外径80mm,重量4.8公斤,可搭配轴向或径向浮动刀柄配套使用。

0评论2023-08-261167

每天早上打开数控机床时有没有必要热机?
工厂使用精密数控机床(加工中心、电火花、慢走丝等机床)进行高精密加工,你是否有这样的经验:每天早上开机进行加工,首件的加

0评论2023-08-151063