zwcad二次开发文档简易指南.docx
《zwcad二次开发文档简易指南.docx》由会员分享,可在线阅读,更多相关《zwcad二次开发文档简易指南.docx(12页珍藏版)》请在三一办公上搜索。
1、2二.使用SDS进行二次开发2.2SDS和ADS接口的主要差异2编译SDS应用程序4三. 使用AUTOLISP进行开发4四. 使用VBA/VB进行开发5五. ZWCAD的定制5.5屏幕菜单及其定制5Image菜单(图标菜单)的定制7PROFILE的定制 9ZWCAD-LSP和 ZWCAD-SDS文件的作用和定制10别名的定制11其他定制11(内部参考)一.概述在zwcad上可以通过二次开发来定制和扩展zwcad的功能.当前的zwcad提供 AutoLISP,SDS 以及 Visual Basic for Applications (VBA,COM开发包进行二次 开发.在zwcad上,你也可以使
2、用许多原来在autocad平台上开发的应用程序.例 如使用autolisp编制的程序可以在几乎不用修改的情况下移植到zwcad平 台.Zwcad还完整支持AutoCAD Dialog Control (DCL)语言,不需修改.目前的 zwcad 还不支持 Object ARX,DBX.二. 使用SDS进行二次开发SDS 是一个和 ADS (AutoCAD Development System)开发包相兼容的C/C+ 语言接口.大部分ads应用程序经过再编译可以直接应用于zwcad。中望建筑就 是用sds sdk开发的。下面所述内容均以ads开发包为比较对象,以ads开发程 序员为讲解对象.具体
3、的sds函数说明请参考帮助文档.SDS和ADS接口的主要差异SDS和ADS的接口差异可以直接从sds.h和ads.h这两个头文件的比较得出. 主要差异如下.1.Sds开发包的接口函数以sds_为前缀.Ads开发包的接口函数主要以ads_, acad_, and acrx等为前缀.在sds.h中提供了移植ads用的宏例如 #define adsentdelsdsentdel这样只需要在ads应用程序源代码中将#include “ads.h”以#include“sds.h”替换,并将要链接的库文件改为sds.lib编译链接即可完成从ads到 sds的移植.2. sds开发包主要扩展的函数#if d
4、efined(_WINDOWS_)HDC *sds_getviewhdc(void);int sds_getrgbvalue(int nColor); RGBHPALETTE sds_getpalette(void);HWND sds_getviewhwnd(void);HWND sds_getmainhwnd(void);int sds_drawLinePattern(HDC h_dc, RECT rect, struct sds_resbuf *lineParam);#endif int sds_setcallbackfunc(int (*cbfnptr)(int flag,void *a
5、rg1,void *arg2,void *arg3);/ Command Start/End.#define SDS_CBCMDBEGIN 0/ arg1=command name cast as (char *)/ Callback return RTERROR will cause command to not be called.#define SDS_CBCMDEND1/ arg1=command name cast as (char *) / Return code does not matter./ Mouse movements and Mouse buttons.#define
6、 SDS_CBMOUSEMOVE#define SDS_CBLBUTTONDN#define SDS_CBLBUTTONUP#define SDS_CBLBUTTONDBLCLK#define SDS_CBRBUTTONDN#define SDS_CBRBUTTONUP234567/ arg1=X pixel/ arg1=X pixel/ arg1=X pixel/ arg1=X pixel/ arg1=X pixel/ arg1=X pixelarg2=Y pixelarg2=Y pixelarg2=Y pixelarg2=Y pixelarg2=Y pixelarg2=Y pixeletc
7、.进度条的控制.int sds_progresspercent(int iPercentDone);int sds_progressstart(void);int sds_progressstop(void);加载别名文件-pgp文件int sds_readaliasfile(char *szAliasFile);不同于sds_printf,这个函数可以发送命令,例如”LINE” int sds_sendmessage(char *szCommandMsg);/在绘制窗口和命令历史窗口间切换焦点.int sds_swapscreen();组操作int sds_createGroup(const
8、 char* pName, const char* pDescription, int selectable, int unnamed, sds_name sdsGroupName);int sds_modifyGroup(const char* pNewName, const char* pNewDescription, int selectable, sds_name sdsGroupName);int sds_addSSToGroup(sds_name ss, sds_name sdsGroupName);int sds_removeSSFromGroup(sds_name ss, sd
9、s_name sdsGroupName);int sds_getSSFromGroup(sds_name ss, sds_name sdsGroupName);int sds_findGroup(const char* pName, sds_name sdsGroupName);int sds_findGroupByEnt(sds_name entity, sds_name ssGroups);/求实体交点int sds_intersect(sds_name entFirst, sds_name entSecond, struct sds_resbuf *ptList);实体所占矩形空间voi
10、d sds_entextent(sds_name ename, sds_point minPoint, sds_point maxPoint);SDS不支持的ads函数主要有以下几个intads_ssGetKwordCallbackPtr(struct resbuf* (*pFunc)(const char*);intads_ssSetKwordCallbackPtr(struct resbuf* (*pFunc)(const char*);intads_ssGetOtherCallbackPtr(struct resbuf* (*pFunc)(const char*);intads_ssSe
11、tOtherCallbackPtr(struct resbuf* (*pFunc)(const char*);adsw_acadMainWnd,/sds 中使用 HWND sds_getmainhwnd(void);and adsw_acadDocWnd./sds 中使用 HWND sds_getviewhwnd(void);注意一个函数SDS: int sds_dictdel(const sds_name nmDict, const char *szDelThis);ADS: int ads_dictremove (const ads_name dictname, const char* s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- zwcad 二次开发 文档 简易 指南
链接地址:https://www.31ppt.com/p-4926944.html