首页 > 方案案例 > 正文

基于网络环境的CAD系统的设计与实现

2008-07-17 10:45:04  来源:万方数据

摘要:介绍基于网络环境的CAD系统的设计与实现方法.在网络环境中,把各个用户的CAD部件设计通过网络传输到网络平台上,利用AutoCAD提供的二次开发工具ObjectARX,把各个设计方案组合到同一个CAD文件
关键词: CAD 网络

    目前许多CAD软件厂商都注重于完善面向专业领域的具体设计的功能.以机械CAD软件为例,AutoCAD,Pro/E等注重于相应的二维、三维的设计,有些还集成了CAE、CAM等,但是对于网络协同的支持方面还比较薄弱.本文介绍的网络CAD系统利用网络技术,通过分布协同的工作方式使产品设计合理有序,设计资源广泛共享,从而保证CAD产品的低成本和短周期。

    1 系统的构成

    系统采用客户机/服务器模式(C/S模式).将各个用户的CAD部件设计以CAD文件(后缀为dwg)的形式传输到网络平台上,在网络平台上将各个CAD文件组合到一起,然后把组合后的CAD文件传输给各个用户,从而实现CAD设计的整体共享.图1为系统设计示意图。

CAD

    2 数据传输部分的实现

    在网络平台与用户机上都建立起两种程序,即服务器程序和客户机程序.在CAD文件的传输过程中,利用W indows Sockets实现了文件在服务器和客户端之间的无差错快速传输,使用了MFC的CSocket类来实现两台机器之间的文件传输过程。

    2.1 服务器程序的实现过程

CAD

    图2是服务器程序的示意图。

    1)创建套接字.首先调用CSocket的构造函数来创建一个CSocket的对象;其次调用Create()函数来创建底层套接字.Create函数的调用方法如下:

    BOOL C reate(U INT nSocketPort=0,int nSocket Type=SOCK_STREAM,

    long lEvent=FD_READ|FD_WR ITE|FD_OOB|FD_ACCEPT|FD_CONNECT|FD_CLOSE,

    LPCTSTR lp szSocketAddress=NULL);

    2)套接字的监听与连接.对于服务器应用程序,为了能够获得客户机的请求,必须创建一个专门的服务器套接字来监听是否有连接请求.在创建了套接字对象后,可以调用listen()成员函数来监听是否有连接请求。

    当服务器监听到客户机的请求时,服务器可以调用Accept()成员函数来接受客户机的请求,建立服务器与客户机之间的连接。

    virtual BOOL Accep t(CA syncSocket&rConnectedSocket,SOCKADDR* lpSockAddr=NULL,

    int* lpSockAddrLen=NULL);

    3)接收数据.当服务器和客户机之间建立起连接后,数据就可以通过套接字传递了.服务器接收数据时使用CAsynSocket类的Receive()成员函数:

    virtual int Receive(void* lpBuf,int nB ufLen,int nFlags=0);

    4)关闭套接字.数据传输结束后,在关闭应用程序之前,调用Close()成员函数来释放与套接字有关的系统资源。

    2.2 客户端程序的实现过程
 
    1)创建套接字.首先调用CSocket的构造函数来创建一个CSocket的对象;其次调用Create()函数来创建底层套接字,为该套接字绑定一个地址。

    2)套接字请求连接.客户机应用程序的流式套接字使用Connect()成员函数向服务器发出连接请求.如果被服务器接受,则建立连接;如果连接请求得不到响应,那么连接就无法建立.如果在发出连接请求后服务器接受了请求,即调用函数成功,它将返回TRUE。

    3)发送数据.服务器和客户机之间建立连接后,数据就可以通过套接字传递了.发送数据使用CA synSocket类的Send()成员函数:

    virtual int Send(const vo id*lpBuf,int nB ufLen,int nFlags=0);

    4)关闭套接字.数据传输结束后,应该调用Close()成员函数来释放与套接字有关的系统资源。

    3 整体组合部分的实现

    网络平台接收到用户传输过来的CAD部件文件,利用AutoCAD软件加载ObjectARX程序,实现CAD文件的整体组合.AutoCAD提供的二次开发平台ObjectARX,是以VC++为开发语言,采用了面向对象的编程方法,并支持MFC编程的强有力的开发工具[7].利用ObjectARX编程可以将面向对象的程序设计方法引入到CAD软件的二次开发中,实现网络平台上CAD部件的整体组合.图3是整体组合的实现过程。

CAD

   1)在AutoCAD中加载ObjectARX.在AutoCAD2000环境下打开一个空文件,在菜单中选择“Tools”,在其中选择“Load Applications.”项,弹出“Load/Unload Applications”对话框,在文件的选择框中选中ARX文件,单击Load按钮,在左下角的属性会出现载入成功的ARX文件路径名。

    2)打开CAD文件.在命令提示行中键入open1命令,选择一个后缀名为dwg的文件,将其打开并显示在AutoCAD 2000的窗口中。

CAD

    3)CAD文件的插入.在命令提示行中键入insert1命令,选择并打开待插入的dwg文件,通过调用acdbCurDwg()函数完成插入操作.在插入的过程中,通过调用AcGe库中的AcGeMatrix3d::kIdentity,来自动获取插入图形的坐标.只要将原来的图形坐标调整好,就能在组合的图形中保持原位置的不变.。

    4)CAD文件的保存.以图形的方式完成两个CAD文件的整体组合后,需要对文件进行保存.在命令提示行中键入save命令,将文件保存为dwg的格式,以便以后的修改.然后通过打印的命令,将文件输出为dwg的格式。

CAD

    5)文件的共享.整体组合后的CAD图形可以在网上发布,并用IE浏览器打开.也可以利用文件传输程序,将组合后的dwg文件传输到各个用户来实现文件的共享.在对AutoCAD的操作过程中采用命令行的方式,不调用AutoCAD的菜单命令,使操作更加简单,也更容易实现集成化的功能。

    4 结 论

    本文针对CAD系统的特点和要求,提出了网络传输的设计模式,通过W indows Sockets传输文件,并使用ObjectARX编程,对文件进行整体组合.并通过文件传输的功能,实现组合后CAD文件的整体共享.目前在AutoCAD的操作中采用命令行的方式,为将来实现整体组合的半自动化、自动化奠定了基础。


第三十八届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。