小弟初次使用VC++进行CAD二次开发,不知道看那个方面的资料,有什么好 一点的网址吗,该如何开发,望各位高手教我,万分感激

解决方案 »

  1.   

    CAD二次开发的书现在不是很多了吗?
    至于网站,最好的是google
      

  2.   

    autocad么?用objectarx2000开发包,2004以上就不知到了
    arx的书很多,不过e文好的话看arx的帮助就行了,搜索一下object arx
    UG好像有自带的开发包
      

  3.   

    直接看UG的API就很清楚。
    使用VC来开发UG的话,可以参考西北工业大学张军波博士的文章。MFC在开发UG18.0微机版中的应用  
    Proe-China ( 日期:2003-11-10 ) 
    【编者按】 鉴于目前UG二次开发中存在的问题,本文提出了一种如何应用MFC开发UG的方法,同使用UIStyler相比,使用MFC开发UG具有速度快,方法简单的特点。本文详细叙述了使用MFC开发UG的过程并给出了一个详细的例程。  
       
       1. 概述    UG一直是高端CAD市场中的主流产品之一。随着基于三维设计的日益普及,UG在国内的用户也越来越多,为了更好的使用UG所提供的功能,很多用户提出了在UG上进行二次开发的要求。UG目前已经推出了第18版本,但是其开发工具没有太多的变化,还是GRIP和UG/Open,GRIP是一种宏语言开发工具,UG/Open是一种采用C/C++对UG进行二次开发的工具。利用这两个开发工具均可对UG进行二次开发。
        鉴于目前C/C++在微机上十分流行,采用UG/Open对UG进行二次开发依然是用户的首选。UG/Open包含了三部分内容:UG/Open API、UG/Open C++和UI Styler,UG/Open API和UG/Open C++包含了一组访问UG图形数据的函数,其中UG/Open API是标准C的方式,UG/Open C++是C++的方式。UI Styler是应用程序界面的工具,主要用于对话框的定制。我们使用的是微机版的UG18.0,在开发时主要使用的是UG/Open,开发过程中发现UG/Open使用起来很不方便,主要表现在下面几个方面:
        1) 字符串处理,UG/Open基本上采用的是标准C的字符串函数,使用起来非常麻烦,很容易出现错误。由于在开发过程中需要大量使用字符串,无形中增加了开发的周期,如果能使用一个C++的类来处理字符串,例如MFC中提供的CString,将会大大降低开发的周期。
        2) 数据结构的实现,目前很多Windows开发工具都提供了链表、映射、数组等类,对于实现复杂的数据结构非常有用。但是UG/Open中相关的内容很少,想实现复杂的数据结构很困难。
        3) 用户界面的开发,同目前流行的Windows应用程序开发工具相比, UI Styler中包含的控件较少,功能有限,受到的局限太大,使用起来很不方便,有的功能甚至难以实现。
    以上问题不仅是我们也是众多UG开发者面临的难题,如何利用Microsoft Fundament Class(MFC)来开发UG的应用程序是许多UG爱好者的梦想。尽管UG 从15.0推出微机版以来,UG/Open应用程序一直采用Microsoft Visual C++ (VC)作为编译器,但是由于UG/Open API中没有直接提供对MFC的支持,所以在UG开发中还不能直接调用MFC。我们通过摸索和大量的实践,提出了一种能够在UG/Open中直接使用MFC的方法,下面将对该方法作详细介绍。    2. 实现原理    在实践中,我们发现目前的UG应用程序不能很好的支持MFC的原因在于:我们所创建的UG应用程序基本上都是采用的UG提供的应用程序向导UG/Open AppWizard创建的,该向导创建的应用程序本身不支持MFC。为了让我们的应用程序支持MFC必须抛弃这种应用程序创建方式,在实践中我们按照下面的步骤来创建应用程序:
        1) 在VC的应用程序创建向导中选择MFC AppWizard(dll);
        2) 选择应用程序类型为:Regular DLL using shared MFC DLL;
        3) 结束创建应用程序的过程;
        4) 将UG库文件(libugopenint.lib,libufun.lib)加入所创建的项目。
        5) 结束
        熟悉UG开发的人都知道UG应用程序的入口函数是ufsta,所以下一步的工作就是在应用程序中添加UG/Open函数入口ufsta。这个过程很简单,可以把UG所提供的例子程序中的主函数直接复制过来,或者采用UG/Open AppWizard创建一个项目,然后把主函数复制过来就可以了。    3. 一个例子的源程序    以下是我们做的一个在UG中显示模态对话框的例子,为了方便起见,删除了所有的注释语句。CMyDialog是采用MFC创建的一个对话框类,函数DisplayDialog的功能是显示显示模态对话框。其他的代码基本上都是由MFC AppWizard或者UG/Open AppWizard创建的,十分简单。由此可以看出,UG应用程序经过这样改造之后,调用其它的MFC类已经不成问题。因此就实现了利用MFC来开发UG的应用程序的功能。
     #include stdafx.h#include ccc.h//以下代码与UG有关#include #include #include #include resource.h#include MyDialog.hvoid DisplayDialog(){       AFX_MANAGE_STATE(AfxGetStaticModuleState());       CMyDialog dlg;       dlg.DoModal();}extern C DllExport void ufsta( char *param, int *returnCode, int rlen ){    int errorCode = UF_initialize();     DisplayDialog ();    if ( 0 == errorCode )    {        errorCode = UF_terminate();    }}extern C void ufusr_cleanup(void){}extern C  int ufusr_ask_unload( void ){    return( UF_UNLOAD_UG_TERMINATE );}//以下代码由MFC AppWizard创建BEGIN_MESSAGE_MAP(CCccApp, CWinApp)//{{AFX_MSG_MAP(CCccApp)        // NOTE - the ClassWizard will add and remove mapping macros here.        //    DO NOT EDIT what you see in these blocks of generated code!//}}AFX_MSG_MAPEND_MESSAGE_MAP()CCccApp::CCccApp(){}CCccApp theApp;
        4. 结束语    本文中提出的应用程序在下列环境下运行通过: 
        操作系统:Windows 2000 Server (Service Pack 2),
        UG版本:UG 18.0微机版
        编译环境:Microsoft Visual C++ 6.0
      
       
    作者: 张军波 夏 禹 莫蓉
    来源:西北工业大学现代设计与集成制造技术教育部重点实验室