CAD/CAM软件 |
|
| 按行业筛选 |
|
|
| 按产品筛选 |
|
|
| |
查看本类全部文章 |
| |
|
|
|
基于网络环境的CAD系统的设计与实现 |
|
作者:刘萍 杨宏 赵春蕾 |
|
目前许多CAD软件厂商都注重于完善面向专业领域的具体设计的功能.以机械CAD软件为例,AutoCAD,Pro/E等注重于相应的二维、三维的设计,有些还集成了CAE、CAM等,但是对于网络协同的支持方面还比较薄弱.本文介绍的网络CAD系统利用网络技术,通过分布协同的工作方式使产品设计合理有序,设计资源广泛共享,从而保证CAD产品的低成本和短周期。
1 系统的构成
系统采用客户机/服务器模式(C/S模式).将各个用户的CAD部件设计以CAD文件(后缀为dwg)的形式传输到网络平台上,在网络平台上将各个CAD文件组合到一起,然后把组合后的CAD文件传输给各个用户,从而实现CAD设计的整体共享.图1为系统设计示意图。
图1 2 数据传输部分的实现
在网络平台与用户机上都建立起两种程序,即服务器程序和客户机程序.在CAD文件的传输过程中,利用W indows Sockets实现了文件在服务器和客户端之间的无差错快速传输,使用了MFC的CSocket类来实现两台机器之间的文件传输过程。
2.1 服务器程序的实现过程
图2是服务器程序的示意图。
图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是整体组合的实现过程。
图3 1)在AutoCAD中加载ObjectARX.在AutoCAD2000环境下打开一个空文件,在菜单中选择“Tools”,在其中选择“Load Applications.”项,弹出“Load/Unload Applications”对话框,在文件的选择框中选中ARX文件,单击Load按钮,在左下角的属性会出现载入成功的ARX文件路径名。
2)打开CAD文件.在命令提示行中键入open1命令,选择一个后缀名为dwg的文件,将其打开并显示在AutoCAD 2000的窗口中。 3)CAD文件的插入.在命令提示行中键入insert1命令,选择并打开待插入的dwg文件,通过调用acdbCurDwg()函数完成插入操作.在插入的过程中,通过调用AcGe库中的AcGeMatrix3d::kIdentity,来自动获取插入图形的坐标.只要将原来的图形坐标调整好,就能在组合的图形中保持原位置的不变.。
4)CAD文件的保存.以图形的方式完成两个CAD文件的整体组合后,需要对文件进行保存.在命令提示行中键入save命令,将文件保存为dwg的格式,以便以后的修改.然后通过打印的命令,将文件输出为dwg的格式。
插入文件并显示 5)文件的共享.整体组合后的CAD图形可以在网上发布,并用IE浏览器打开.也可以利用文件传输程序,将组合后的dwg文件传输到各个用户来实现文件的共享.在对AutoCAD的操作过程中采用命令行的方式,不调用AutoCAD的菜单命令,使操作更加简单,也更容易实现集成化的功能。
4结 论
本文针对CAD系统的特点和要求,提出了网络传输的设计模式,通过W indows Sockets传输文件,并使用ObjectARX编程,对文件进行整体组合.并通过文件传输的功能,实现组合后CAD文件的整体共享.目前在AutoCAD的操作中采用命令行的方式,为将来实现整体组合的半自动化、自动化奠定了基础。(end)
|
|
文章内容仅供参考
(投稿)
(如果您是本文作者,请点击此处)
(7/8/2008) |
对 CAD/CAM软件 有何见解?请到 CAD/CAM软件论坛 畅所欲言吧!
|