精华内容
下载资源
问答
  • 中望CAD二次开发环境配置及使用

    千次阅读 2019-06-12 21:02:36
    今天第一次接触中望CAD的二次开发,首先就需要搭建开发环境,网上的资料太少了,试着自己做了一下,现将整个过程记录下来,...(2)下载中望CAD二次开发的sdk,ZWCAD_2018_ZRXSDK.exe,直接安装。(我放在了中望CAD...

    今天第一次接触中望CAD的二次开发,首先就需要搭建开发环境,网上的资料太少了,试着自己做了一下,现将整个过程记录下来,备查。

    (1)下载中望CAD2018,我在官网下的,试用30天,没去找破解版。我用的64位的

    ZWCAD_2018_CHS_Win_64bit.exe,直接安装。

    (2)下载中望CAD二次开发的sdk,ZWCAD_2018_ZRXSDK.exe,直接安装。(我放在了中望CAD2018的安装路径下)。安装完后,里面有个doc文件夹,所有的帮助就在里面了。

    (3)我使用visual studio 2010做开发平台。打开VS2010,具体过程如下:(来自doc目录下的ZRXDev.chm)

     

      

    a) Create a new project in Visual Studio 2010


    b) Click Next to next step


    c) Click Finished to end the wizard

    (4)进入工程后,对项目属性进行配置

     

     

     

     

     

    输入附加依赖项: ZwRx.lib; ZwZrx.lib; ZwDatabase.lib; ZwGeometry.lib; ZWCAD.lib; ZdUI.lib; ZwUI.lib

    按确定,至此配置结束。

    自带demo,直接编译,注意:选择平台,你是32位的,就编成32位,64位就用64位。

     找到:

     

    打开中望CAD,在管理-扩展工具

     

     最后一步了,根据程序命令输入指令,如下图,

    回车,弹出对话框

     

    至此,整个配置和运行第一个demo完成

    展开全文
  • 中望CAD二次开发自定义菜单(C++)

    千次阅读 2019-07-10 14:52:04
    中望CAD中添加自定义菜单,一步一步来: 1.新建zrxobject项目,我命名为menuTest2。 2.引入菜单所需要的头文件,这一步很重要。我也是刚开始接触,查了很久,找到的代码都无法使用。后来在同事的帮助下搞定了,...

    在中望CAD中添加自定义菜单,一步一步来:

    1.新建zrxobject项目,我命名为menuTest2。

    2.引入菜单所需要的头文件,这一步很重要。我也是刚开始接触,查了很久,找到的代码都无法使用。后来在同事的帮助下搞定了,在此特别感谢邹建同学。记一下,分享给大家,也留个记录。

    (1)右键单击项目,找到属性.

    (2)点击打开属性,找到VC++目录,在包含目录和引用目录中加入中望CAD的安装目录,中望SDK目录下的inc文件夹以及目录下的lib-64文件夹,确定。

    (3)在菜单栏上找到项目,添加类->MFC->TypeLib中的MFC类,点击添加。

    (4)在打开的对话框中->可用的类型库,点击下拉列表,找到红箭头所指(最下面了哈),

    从接口中选择和menu有关的接口,点红圈所示的地方,在右边就会看到相应的生成类,依次添加就好。点击完成

     

    至此,准备工作就做完了。现在加代码,完整代码如下,读者可自行修改和添加。

    
    
    #include "stdafx.h"
    
    #include "SampleDlg.h"
    #include "AcExtensionModule.h"
    #include "CZcadApplication.h"
    #include "CZcadMenuBar.h"
    #include "CZcadMenuGroup.h"
    #include "CZcadMenuGroups.h"
    #include "CZcadPopupMenu.h"
    #include "CZcadPopupMenus.h"
    #import "ZwAuto.dll"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    
    extern HWND adsw_acadMainWnd();
    
    AC_IMPLEMENT_EXTENSION_MODULE(theArxDLL);
    
    void dialogCreate()
    {
    
    	// Modal
    	SampleDlg dlg(CWnd::FromHandle(adsw_acadMainWnd()));
    	int nReturnValue = dlg.DoModal();
    	zcutPrintf(_T("hello world"));
    
    }
    
    
    void initApp()
    { 
    	// register a command with the AutoCAD command mechanism
    	CAcModuleResourceOverride resOverride;
    
    	acedRegCmds->addCommand(_T("ZRX_DLG_SAMPLE"), 
    		_T("ZRXDLGSAMPLE"), 
    		_T("DLGSAMPLE"), 
    		ACRX_CMD_MODAL, 
    		dialogCreate,
    		NULL,
    		-1,
    		theArxDLL.ModuleResourceInstance());
    }
    
    void unloadApp()
    { 
    	acedRegCmds->removeGroup(_T("ZRX_DLG_SAMPLE"));  
    }
    
    //
    //
    // Entry points
    //
    //
    
    extern "C" int APIENTRY
    	DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
    {
    	// Remove this if you use lpReserved
    	UNREFERENCED_PARAMETER(lpReserved);
    
    	if (dwReason == DLL_PROCESS_ATTACH)
    	{
    		theArxDLL.AttachInstance(hInstance);
    	}
    	else if (dwReason == DLL_PROCESS_DETACH)
    	{
    		theArxDLL.DetachInstance();  
    	}
    	return 1;   // ok
    }
    
    void addMenuThroughMfcCom()
    {
    	TRY
    	{
    		//CZcadApplication IAcad(acedGetIDispatch ()->GetIDispatch(TRUE));
    		CZcadApplication IAcad(acedGetIDispatch(TRUE));
    		CZcadMenuBar IMenuBar(IAcad.get_MenuBar());
    
    		long numberOfMenus;
    		numberOfMenus = IMenuBar.get_Count();
    
    		CZcadMenuGroups IMenuGroups(IAcad.get_MenuGroups());
    
    		VARIANT index;
    		VariantInit(&index);
    		V_VT(&index) = VT_I4;
    		V_I4(&index) = 0;
    		CZcadMenuGroup IMenuGroup(IMenuGroups.Item(index));
    		CZcadPopupMenus IPopUpMenus(IMenuGroup.get_Menus());
    
    		CString cstrMenuName = _T("我的菜单1(&L)");
    
    		VariantInit(&index);
    		V_VT(&index) = VT_BSTR;
    		V_BSTR(&index) = cstrMenuName.AllocSysString();
    
    		IDispatch* pDisp=NULL;
    
    		//see if the menu is already there
    		TRY{pDisp = IPopUpMenus.Item(index); pDisp->AddRef();} CATCH(COleDispatchException,e){}END_CATCH;
    		VariantClear(&index);
    
    		if (pDisp==NULL) {
    			//create it
    			CZcadPopupMenu IPopUpMenu(IPopUpMenus.Add(cstrMenuName));
    
    			VariantInit(&index);
    			V_VT(&index) = VT_I4;
    			V_I4(&index) = 0;
    			IPopUpMenu.AddMenuItem(index, _T("横断面成图(&H)"), _T("HDM "));
    
    			VariantInit(&index);
    			V_VT(&index) = VT_I4;
    			V_I4(&index) = 1;
    			IPopUpMenu.AddMenuItem(index, _T("纵断面成图(&Z)"),_T( "ZDM "));
    
    			VariantInit(&index);
    			V_VT(&index) = VT_I4;
    			V_I4(&index) = 2;
    			IPopUpMenu.AddSeparator(index);
    
    			VariantInit(&index);
    			V_VT(&index) = VT_I4;
    			V_I4(&index) = 3;
    			IPopUpMenu.AddMenuItem(index, _T("灵宇断面帮助(&B)"), _T("DMHELP "));
    
    			pDisp = IPopUpMenu.m_lpDispatch;
    			pDisp->AddRef();
    
    		}
    
    
    		CZcadPopupMenu IPopUpMenu(pDisp);
    		if (!IPopUpMenu.get_OnMenuBar())
    		{
    			VariantInit(&index);
    			V_VT(&index) = VT_I4;
    			V_I4(&index) = numberOfMenus - 2;;
    			IPopUpMenu.InsertInMenuBar(index);
    		}
    		else
    		{
    			VariantInit(&index);
    			V_VT(&index) = VT_BSTR;
    			V_BSTR(&index) = cstrMenuName.AllocSysString();
    			IPopUpMenus.RemoveMenuFromMenuBar(index);
    			VariantClear(&index);
    		}
    		pDisp->Release();
    	}
    	CATCH(COleDispatchException,e)
    	{
    		e->ReportError();
    		e->Delete();
    	}
    	END_CATCH;
    }
    //去掉菜单
    void removeMenu()
    {
    	TRY{
    		CZcadApplication IAcad(acedGetIDispatch(TRUE));
    		CZcadMenuBar IMenuBar(IAcad.get_MenuBar());
    
    		long numberOfMenus;
    		numberOfMenus = IMenuBar.get_Count();
    
    		CZcadMenuGroups IMenuGroups(IAcad.get_MenuGroups());
    
    		VARIANT index;
    		VariantInit(&index);
    		V_VT(&index) = VT_I4;
    		V_I4(&index) = 0;
    		CZcadMenuGroup IMenuGroup(IMenuGroups.Item(index));
    		CZcadPopupMenus IPopUpMenus(IMenuGroup.get_Menus());
    
    		CString cstrMenuName1 = _T("我的菜单(&L)");
    
    		VariantInit(&index);
    		V_VT(&index) = VT_BSTR;
    		V_BSTR(&index) = cstrMenuName1.AllocSysString();
    		IPopUpMenus.RemoveMenuFromMenuBar(index);
    		VariantClear(&index);
    	}
    	CATCH(COleDispatchException,e){}END_CATCH
    }
    
    
    extern "C" AcRx::AppRetCode zcrxEntryPoint( AcRx::AppMsgCode msg, void* appId)
    {
    	switch( msg ) 
    	{
    	case AcRx::kInitAppMsg: 
    		acrxDynamicLinker->unlockApplication(appId);
    		acrxDynamicLinker->registerAppMDIAware(appId);
    
    		initApp(); 
    		addMenuThroughMfcCom();
    		break;
    	case AcRx::kUnloadAppMsg: 
    		removeMenu();
    		unloadApp(); 
    		break;
    	case AcRx::kInitDialogMsg:
    
    		break;
    	default:
    		break;
    	}
    	return AcRx::kRetOK;
    }
    

    生成,注意平台哈,32位还是64位,我是64的位。

    找到menutest2.zrx。在中望CAD中加载,命令行输入DLGSAMPLE,ok,菜单出来了。注意:中望CAD要切换到经典模式,不然菜单出不来。这个问题折磨了我一早上,最后邹同学远程才搞定。

     

    展开全文
  • 基于中望CAD平台的二次开发技术.pdf
  • 中望CAD2020 .NET二次开发(C#)

    千次阅读 2020-09-27 13:12:30
    中望CAD2020 .NET二次开发(C#) 安装ZWCAD_2020_SP2_ZRXSDK 资源下载地址: 安装ZWCAD_2020_SP2_ZRXSDK到自定义目录。 可能安装会提示失败,是与vs有关,这个不重要,有图片上的目录文件即可,我们采用手动添加的...

    中望CAD2020 .NET二次开发(C#)

    1. 安装ZWCAD_2020_SP2_ZRXSDK
      资源下载地址:https://download.csdn.net/download/qq_36000703/12890174
      安装ZWCAD_2020_SP2_ZRXSDK到自定义目录。
      资源解压到指定目录
      可能安装会提示失败,是与vs有关,这个不重要,有图片上的目录文件即可,我们采用手动添加的方式。
    2. 创建C# 类库项目
      创建C#类库项目
      创建C#类库项目,完成后将自定义目录下的.\ZWCAD_2020_ZRXSDK\inc下的ZwDatabaseMgd.dll,ZwDatabaseMgdBrep.dll,ZwManaged.dll。三个文件添加到引用。
    3. 编写hello代码
    using System;
    using ZwSoft.ZwCAD.Runtime;
    using ZwSoft.ZwCAD.DatabaseServices;
    using ZwSoft.ZwCAD.EditorInput;
    using ZwSoft.ZwCAD.ApplicationServices;
    
    namespace ClassLibrary1
    {
        public class Class1
        {
            [CommandMethod("Hello")]
            public void Hello()
            {
                Editor ed = ZwSoft.ZwCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
                ed.WriteMessage("欢迎进入.NET开发中望CAD的世界!");
            }
        }
    }
    
    1. 中望CAD加载dll
      运行中望CAD,netload加载刚刚项目生成的dll。CAD命令栏输入hello命令。CAD中打印一行"欢迎进入.NET开发中望CAD的世界!"
    展开全文
  • 中望CAD版本:2020 VS版本:2013 一、创建类库项目 、添加应用 添加对ZwDatabaseMgd.dll和ZwManaged.dll的应用 (这两个DLL位于中望CAD安装目录下的) 三、导入命名空间 using ZwSoft.ZwCAD.Runtime; using ZwSoft...

    中望CAD版本:2020
    VS版本:2013

    一、创建类库项目

    二、添加引用
    添加对ZwDatabaseMgd.dll和ZwManaged.dll的引用
    (这两个DLL位于中望CAD安装目录下)

    三、导入命名空间

    using ZwSoft.ZwCAD.Runtime;
    using ZwSoft.ZwCAD.DatabaseServices;
    using ZwSoft.ZwCAD.EditorInput;
    using ZwSoft.ZwCAD.ApplicationServices;
    

    四、在默认类Class1中添加如下代码

    [CommandMethod("Hello")]
    public void Hello()
    {
        Editor ed = ZwSoft.ZwCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
        ed.WriteMessage("欢迎进入.NET开发中望CAD的世界!");
    }
    

    五、编译程序。
    六、启动中望CAD,在命令行中输入netload,加载编译生成的ClassLibrary1.dll
    七、在命令行中输入Hello,命令行中会显示“欢迎进入.NET开发中望CAD的世界!”
    在这里插入图片描述
    完整代码如下

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using ZwSoft.ZwCAD.Runtime;
    using ZwSoft.ZwCAD.DatabaseServices;
    using ZwSoft.ZwCAD.EditorInput;
    using ZwSoft.ZwCAD.ApplicationServices;
    
    namespace ClassLibrary1
    {
        public class Class1
        {
            [CommandMethod("Hello")]
            public void Hello()
            {
                Editor ed = ZwSoft.ZwCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
                ed.WriteMessage("欢迎进入.NET开发中望CAD的世界!");
            }
        }
    }
    

    小编QQ:3088489873

    展开全文
  • 中望cad开发

    2018-10-29 14:19:37
    中望cad开发包!
  • 中望CAD2010开发讲解

    2014-05-09 00:28:31
    中望2010 ZRX开发说明不包含其SDK
  • c#Cad二次开发文档

    2018-05-31 16:10:48
    基于.NET平台对AutoCAD进行二次开发,可充分利用.NET 的各种优势,在保证功能强大的前提下大大提高开发速度。
  • C++、ObjectARX CAD二次开发下拉菜单制作案例,包含菜单制作框架,数据库,excel,GridCtrl和基本绘图函数
  • CAD二次开发SDK

    2018-12-19 11:05:38
    cad二次开发接口,支持浩辰CAD最新版V2019,也可以获取企业的技术支持和指导!
  • 支持望cad全系列产品使用,而中望CAD2019也是广州中望龙腾软件股份有限公司自主研发的一款领先国际的二维CAD平台软件,软件拥有非常灵活的二次开发,可以让它更有针对性,而且还有夹点编辑功能,让设计更加的简单。...
  • 小伙伴们在使用Cad二次开发时,使用NetLoad加载命令之后,再输入对应命令时,却出现未知命令,这是什么原因呢? 二、解决思路 很有可能是因为类前没有用public 修饰 源代码 class Class1 { [CommandMethod(...
  • 我也是刚开始接触中望CAD二次开发,感觉好艰难啊。走一步都很困难。今天修改例程,根据用户输入实现了画线。源代码如下: void InputLine() { ads_point startPt,endPt; acedInitGet(RSG_NONULL,NULL); int ...
  • 中望CAD2011破解补丁

    2011-01-02 16:59:29
    中望CAD 2011版本对中望CAD性能进行了全面提升。中望CAD 2011版本从提升用户设计感受入手,引入参数化,表格和字段,多重引线,标注等多种新功能。...ZRX接口和文档的完善,将会使二次开发用户得到更为全面的接口支持。
  • 这篇文章主要讲一下AutoCAD加载用户控件和自动加载dll文件。首先说一下添加用户控件,在CAD中添加用户控件,这样我们就可以通过面板进行一些画图操作了。主要的核心代码如下: UserControl1 control1 = new User...
  • AutoCAD二次开发的好处

    千次阅读 2018-04-02 13:37:51
    AutoCAD二次开发的好处首先,AutoCAD自身的功能就很强大,对于一般的平面制图(比如建筑、结构方面),不使用任何第三方的软件,仅凭AutoCAD自带的基本命令,就可以完成。但如果这样的话,CAD制图就是一件很枯燥乏味...
  • 我用VBA二次开发了应用程序,保存为zwcad.dvb后将其保存于安装目录下,这样可以实现每次启动cad时均可将zwcad.zvb载入,但一运行就出现 run time error: method "xxxx" of object "xxxxx" failed. 因为程序本身是...
  • cad二次开发的准备工作:需要在cad的安装文件中加载红色框中的dll文件。 然后就是一堆Using: 接着注意版本的问题,因为visual studio2015用的是新的程序集,所以最好cad也用比较高的版本,我这里直接用的2016版的...
  • 文章目录创建C#工程创建工程书写代码注册菜单书写配置菜单xml文件书写...创建C#工程 创建工程 1、创建C#的控制台应用程序工程 2、设置工程适用x64或x86 ... 3、选择代码优化 4、引入ZwmPEBridgePluginsLib 依赖库 ......
  • 利用C#进行CAD二次开发时,遇到 eLockViolation 的问题,这个网上说是因为“非模态窗口,要锁定文档”具体解决方法如下:1DocumentLockm_DocumentLock=Autodesk.AutoCAD.ApplicationServices.Application.Document...
  • 中望CAD+2014 14.0.3.1237 破解补丁

    热门讨论 2013-12-03 01:01:09
    API接口功能持续增强,新增支持.NET二次开发,平台拓展性更全面 关于中望CAD+ 中望CAD+是中望软件自主研发的全新一代二维CAD平台软件,采用自主研发的内核,通过独创的内存管理机制和高效的运算逻辑技术,保证软件...
  • 中望cad2014 专业破解版

    千次阅读 2018-03-20 17:52:22
    中望cad2014是中望cad中的老版本,它依旧是以CAD制图功能为主要功能,另外还有释与标注、创建与编辑、输出与打印、高级工具等等功能。虽然让是老版本了,但是它相对于以前的版本来讲还是有一定的提神的,比如:新增...
  • 1、问:中望CAD与中望建筑CAD有何区别?答:中望建筑CAD是在中望CAD基础上二次开发的建筑类软件,其中软件特有的370余个建筑功能可以帮助用户从平面图绘制、生成立剖面、三维模型到进...
  • CAD2009版本以后就开始使用上了Ribbon界面,更早的版本使用的界面相对较为简单,对比一下就知道啥是Ribbon界面了 这是CAD2006界面,经典的菜单工具栏,略low 这是CAD2018的Ribbon界面 Ofiice从07版本开始...
  • 这里有关中望CAD使用的全部命令及功能解释,请大家多多指教。
  • 中望cad的使用教程

    2010-04-09 16:22:48
    cad的入门,详细的介绍了如何用cad做图,适合初学者,更快的学会cad

空空如也

空空如也

1 2 3 4 5 6
收藏数 108
精华内容 43
关键字:

中望cad二次开发