ZWCAD二次开发文档简易指南

合集下载

cad二次开发

cad二次开发

大家知道什么是宏吗?说白它就是VBA过程。

看下面的代码:Public Sub MacroDemo()MsgBox "Hello,Welcome to AutoCAD VBA!"End Sub这就是宏。

打开CAD输入命令vbaide回车会出现VBA的编辑界面,双击ThisDrawing在右侧的代码区输入上面的代码。

如下图:然后按F5键会出现宏窗口,如下图:点击运行,大家看到什么?这就是一个最简单的一个用VBA对CAD进行二次开发的程序,也就是宏那什么是VBA呢?VBA就是VB的一个子集它的全称是Visual Basic For Application,它具有VB的大部分功能。

既然我们选择了VBA,我们首先要知道VBA能操作CAD里的哪些对象呢?打开VBAIDE窗口按下F2键会出现对象浏览器。

如下图库选择AutoCAD,这时下面显示的就是CAD为VBA提供的可操作的对象的类了。

这时有的人因没有基础,所以还是一头雾水,别怕,选中一个类图标后按F1,这时会弹出AutoCAD ActiveX and VBA Reference,选择最上面的一个子项Object Model(对象模型),这个就是在CAD里那些对象的关系,如下图:如果英文不好的话,可以安装CAD2000,它的这个部分是中文的。

为想学好VBA二次开发这个是必需的,而且VBA对Office的二次开发也是这样的。

这个在编程界叫做Active X,包括Active X控件、Active X DLL、和Active X EXE就好比一个程序为其它程序提供的一个后门一样下面我就给大家讲一下菜单吧。

因为我们用到的其它公司做CAD二次开发的插件,从直观上首先接触的就是它的菜单,刚开始用的时候就是从它的菜单开始接触的。

我经常用到的做菜单的方法有两种,一种是用CAD的菜单文件,另一种就是用VBA代码直接长成菜单。

我先介绍第一种,CAD的菜单文件它是文本文件,我们用记事本就可打开并编辑它,或者再重新创建一个说到这里有的人可能要问了,我应该从何处开始入手呢,要怎样做呢?别急,CAD本身就有现成的供我们参考,就放在CAD的安装文件夹下的Support文件夹内,或者其它插件的文件夹内,找不到可以按F3搜一下,扩展名分别为.mnu .mns ,mnc默认的菜单文件是acad.mnu。

cad二次开发基础教程和实例档

cad二次开发基础教程和实例档

大家知道什么是宏吗?说白它就是VBA过程。

看下面的代码:Public Sub MacroDemo()MsgBox "Hello,Welcome to AutoCAD VBA!"End Sub这就是宏。

打开CAD输入命令vbaide回车会出现VBA的编辑界面,双击ThisDrawing在右侧的代码区输入上面的代码。

如下图:然后按F5键会出现宏窗口,如下图:点击运行,大家看到什么?这就是一个最简单的一个用VBA对CAD进行二次开发的程序,也就是宏那什么是VBA呢?VBA就是VB的一个子集它的全称是Visual Basic For Application,它具有VB的大部分功能。

既然我们选择了VBA,我们首先要知道VBA能操作CAD里的哪些对象呢?打开VBAIDE窗口按下F2键会出现对象浏览器。

如下图库选择AutoCAD,这时下面显示的就是CAD为VBA提供的可操作的对象的类了。

这时有的人因没有基础,所以还是一头雾水,别怕,选中一个类图标后按F1,这时会弹出AutoCAD ActiveX and VBA Reference,选择最上面的一个子项Object Model(对象模型),这个就是在CAD里那些对象的关系,如下图:如果英文不好的话,可以安装CAD2000,它的这个部分是中文的。

为想学好VBA二次开发这个是必需的,而且VBA对Office的二次开发也是这样的。

这个在编程界叫做Active X,包括Active X控件、Active X DLL、和Active X EXE就好比一个程序为其它程序提供的一个后门一样下面我就给大家讲一下菜单吧。

因为我们用到的其它公司做CAD二次开发的插件,从直观上首先接触的就是它的菜单,刚开始用的时候就是从它的菜单开始接触的。

我经常用到的做菜单的方法有两种,一种是用CAD的菜单文件,另一种就是用VBA代码直接长成菜单。

我先介绍第一种,CAD的菜单文件它是文本文件,我们用记事本就可打开并编辑它,或者再重新创建一个说到这里有的人可能要问了,我应该从何处开始入手呢,要怎样做呢?别急,CAD本身就有现成的供我们参考,就放在CAD的安装文件夹下的Support文件夹内,或者其它插件的文件夹内,找不到可以按F3搜一下,扩展名分别为.mnu .mns ,mnc默认的菜单文件是acad.mnu。

cad二次开发教程

cad二次开发教程

cad二次开发教程
当办公软件无法满足特定需求时,我们通常需要进行CAD软件的二次开发。

CAD软件的二次开发可以帮助我们定制各种功能,以提高工作效率和满足特定需求。

以下是一个简单的CAD二次开发教程,让我们开始吧。

第一步:了解CAD软件的API
每个CAD软件都有自己的应用程序编程接口(API)。

通过研究CAD软件的API文档,我们可以了解到CAD软件提供的各种功能和接口。

第二步:编写代码
根据我们的需求,在CAD软件的API基础上编写代码。

我们可以使用各种编程语言,如C++,C#或Python。

编写的代码可以实现特定的功能,如自动绘制特定类型的图形,自动计算尺寸等等。

第三步:测试和调试
完成代码编写后,我们需要对其进行测试和调试。

通过在CAD软件中运行我们的代码,并观察其行为和效果,我们可以检查是否达到了我们的预期结果。

如果出现错误或异常,我们需要对代码进行调试,找出问题所在并进行修复。

第四步:部署和使用
在代码完全测试并修复所有错误后,我们可以将其部署到CAD软件中使用。

根据不同的CAD软件,部署方式可能会有所不同。

通常,我们需要将代码文件放置在特定的文件夹中,
并将其与CAD软件进行关联。

总结
CAD二次开发是为了满足特定需求而对CAD软件进行编程的过程。

通过了解CAD软件的API,编写代码,测试和调试,以及部署和使用,我们可以成功实现自定义功能和特定需求,提高工作效率。

希望以上教程对你有所帮助!。

CAD二次开发毕业设计说明书

CAD二次开发毕业设计说明书

CAD⼆次开发毕业设计说明书⼀序⾔1、参数化绘图及⼆次开发参数化绘图就是通过设计参数来驱动⽣成所需的图形。

⼀般通过编程实现。

因此要求设计者具备编程能⼒,存在⼯作量⼤,修改图形不⽅便等问题。

但它应⽤灵活,适应⾯⼴。

对某些应⽤参数化设计系统解决不了的问题,通常可采⽤参数化绘图的⽅法加以解决,例如在开发某些机器的CAD系统时,要求设计、计算、查表、绘图⼀体化时,显然适合采⽤参数化绘图的⽅法加以解决。

通过编程实现参数化绘图,其程序设计的总体思路是:将设计计算的关系式融⼊程序中,在程序的控制下,执⾏计算及交互输⼊主要参数,程序应能对参数输⼊进⾏有效性检验,根据⽤户的交互输⼊完成视图的绘制。

AutoCAD作为⼀种具有⾼度开放结构的CAD平台软件,它提供了强⼤的⼆次开发环境。

它允许⽤户和开发者采⽤⾼级编程语⾔对其进⾏扩充和修改,即⼆次开发,能最⼤限度地满⾜⽤户的特殊要求。

带有参数化设计功能的CAD系统固然在设计绘图上有某些显著特点,如不需要编程就可实现图形的参数化,修改图形及其⽅便,⼯作量⼩,且可由草图⽣成正式图。

然⽽,当零件结构⾮常复杂及形状极不规则时,参数化设计就显得⼒不从⼼。

为了区别于参数化设计,把应⽤⾼级语⾔编程使具体图形实现参数化称为参数化绘图(Parameric Drawing),在参数化绘图中,图中的部分尺⼨(或全部尺⼨)被事项定义为参数尺⼨,当交互输⼊参数值后,即可画出图形。

2、⼆次开发⼯具介绍(1)AutoLISPAutoLISP的全名是LIST Processing Language,她出现于1985年推出的AutoCAD R2。

18中,是⼀种嵌⼊在AutoCAD内部的编程语⾔,是LISP原版的⼀个⼦集,她⼀直是低版本AutoCAD的⾸选编程语⾔。

它是⼀种表处理语⾔,是被解释执⾏的,任何⼀个语句键⼊后就能马上执⾏,它对于交互式的程序开发⾮常⽅便。

其缺点是继承了LISP语⾔的编程规则⽽导致繁多的括号。

CAD软件二次开发方法及应用

CAD软件二次开发方法及应用

40 •电子技术与软件工程 Electronic Technology & Software Engineering软件开发• Software Development【关键词】CAD 软件 二次开发CAD 软件在很多工程项目中都扮演着非常重要的角色,对国家的发展与建设有着重要的意义和影响。

在近几年的发展中,一些科研团队逐渐提高了对CAD 软件二次开发与应用的重视。

一方面是由于CAD 软件的开发具有一定的科技性和专业性,需要相关科研团队对软件开发的理念、原则和目的进行明确与了解。

另一方面是由于CAD 软件在一些工程项目应用中,会受到某些因素的影响而出现问题,需要工程团队以及科研部门能够对问题进行及时的分析与处理。

1 CAD软件二次开发的方法CAD 软件二次开发的方法多种多样,通常情况下,一些工程团队会采用参数化、成组化或者交互式的方法进行相应的工作,以此来为软件的高效应用提供有利条件。

所以要想让CAD 软件二次开发的方法发挥出真正的价值,那么相关科研团队就要对具体方法的应用原则、要点和注意事项等进行全方位的研究。

1.1 参数化方法在对CAD 软件进行二次开发的过程中,使用最多的一种方法就是参数化的方法,在这种方法中,主要是根据软件在二次开发的过程中所产生的不同的需求来制定不同的软件管家。

在进行CAD 软件二次开发的过程中,应该在开发之前对CAD 软件来进行一个比较整体的规划,在这个规划当中将人们对软件的不同需求转化为参数。

这样才能够使CAD 软件在进行二次开发的过程中具有更高的效率以及更准确的数据。

1.2 成组化方法CAD 软件二次开发方法及应用文/崔丹丹由于CAD 软件在进行二次开发的过程中是要适应不同的需求的,所以相对有一些复杂性。

因此在对CAD 软件进行二次开发的过程中就能够将这些不同的需求来进行组队,使用这种成组化方法来进行CAD 软件的二次开发,就能够这些被集合的图像存入到CAD 软件的数据库当中,将其收集到数据库当中就能够使人们在进行使用的时候能够比较简便的将数据查找出来供人们使用。

CAD二次开发安装说明

CAD二次开发安装说明

CAD二次开发安装说明
CAD二次开发安装说明
1.将CAD二次开发3个文件夹复制到电脑C盘。

2.打开CAD程序,
㈠打开界面(工具栏--------选项---------文件--------支持文件搜索路径(将C盘的三个CAD二次开发文添加到该项内)---------确认。

加载标准样板:工具栏--------选项---------文件----快速新建的默认样板文件名----选择C:\EngCAD\set\acadiso.dwt
㈡加载菜单:输入MENULOAD (分别将C盘的ENGCAD文件夹内的,《ENGCAD 编译菜单》)和(将C盘的jxyomm-lisp文件夹内的,《jxyadd 编译菜单》打开加载到该项内)---------关闭。

㈢将C盘的C:\EngCAD\set文件内的acad.pgp,文件打开将该文件夹内的所有字母复制到(CAD界面内工具-----自定义-------编辑自定义文件-------程序参数,替换原有的程序参数)。

CAD二次开发

CAD二次开发

道路横断面绘图CAD 系统一.系统的建立1.1系统结构系统采用模块化设计,由道路横横断面数据定义与输入、道路横断面数据计算、道路横断面绘图与打印3大模块组成,各模块下又有相应的子模块,总体结构如下图所示:1.2系统各结构之间的关系横断面数据定义与输入模块为横断面的数据计算提供了原始数据,是道路横断面绘图的基础;同时利用横断面图库可以方便地存储标准横断面图或者自定义道路横断面尺寸,有效地管理各种道路横断面断面形式为以后的横断面定义域绘图提供方便;横断面的数据计算是系统的核心,为横断面绘图提供了数据,计算的正确与否直接影响横断面绘图的结果;横断面绘图与打印是系统的最终输出结果。

这3个模块相互联系,构成了一个有机的整体。

1.3系统的开发环境道路横断面绘图CAD 系统横断面计算结果查看修改与保存横断面绘图设置横断面图形打印设置与打印横断面CAD绘图新建横断面数据文件横断面图库与数据定义横断面数据修改横断面超高定义与计算横断面加宽定义与计算横断面计算结果检查横断面数据定义与输入 横断面数据计算 横断面绘图与打印由文件导入数据文件硬件:计算机主机、显示器、鼠标、键盘、打印机软件:简体中文windos xp及以上操作系统;AutoCAD2008及以上软件1.4系统功能和特点1.4.1系统功能(1)实现了道路横断面的综合定义;(2)提供了常见的道路横断面形式;(3)为用户提供了自定义道路横断面功能,且可以保存为模板方便以后直接应用;(4)提供了道路横断面超高定义与计算功能,可对超高部分进行定义,并能查看与修改;(5)提供了道路横断面加宽定义与计算功能,可对加宽部分进行定义,并能查看与修改;(6)提供了道路横断面超高加宽规范检查功能,可对设计结果进行检查;(7)提供了道路横断面超高加宽计算结果查看与修改功能;(8)提供了道路横断面CAD绘图功能。

1.4.2系统特点(1)系统是在AutoCAD上应用的windos应用程序,采用全中文界面,操作简便;(2)系统具有较强的排错功能,运行平稳;(3)系统具有完善的文件管理模块,每次设计中的原始资料、成果资料都可以方便地存储和调用;(4)系统具有较强的交互功能,特别是在道路横断面图库中,用户可以随时保存自定义的道路横断面图;(5)系统设计中充分考虑到不同设计者的使用习惯,处处以人为本,方便用户。

CAD软件二次开发平台实现技术word精品文档5页

CAD软件二次开发平台实现技术word精品文档5页

CAD软件二次开发平台实现技术1 前言在进行建筑工程的设计过程中,通过CAD软件能够实现在较短的时间内进行设计方案的设计,并且将之前的图纸设计过程中存在的主要的问题进行了避免。

在进行CAD软件应用的过程中进行二次开发是能够保证软件正常应用的基础,同时对软件进行的二次开发也是对软件质量进行衡量的主要标准。

所以对于CAD软件的二次开发应该进行更多的关注。

2 CAD软件二次开发的基本理论在对CAD软件进行应用的领域内,对其进行二次开发已经成为了一个发展的趋势,同时对于第四代的CAD软件进行二次开发是一个重要的特色,所以需要进行单独的关注。

并且随着科学的发展以及CAD技术的广泛应用,用户对CAD软件的需求是逐渐的提高的,很多时候CAD软件都已经无法有效的满足用户的需求了。

所以对CAD软件进行二次开发是亟待解决的问题。

2.1 CAD软件二次开发的基本含义所谓进行的二次开发就是对于增值的开发商以及用户在软件的开发方所提供的软件应用以及开发的环境下以及数据编程的接口的基础上,并且与软件自身的需求相结合,对软件的新功能进行开发或者是对软件的使用以及开发环境进行定制的过程。

对于软件本身而言,进行二次开发就是对软件进行创新。

2.2 CAD软件的二次开发平台质量标准对CAD软件进行二次开发主要就是想要使得软件的性能更加的优越,功能更加的丰富,能够满足更多人的需求。

对于一个CAD软件进行二次开发的过程中主要就是通过以下方面进行质量的衡量。

2.2.1 易用性对软件进行的软件二次开发要保证软件能够简单容易的进行使用,对于技术水平较低的用户也能够适用,同时与其进行工程设计过程中的习惯能够相适应。

这是对CAD软件进行二次开发的质量衡量的主要内容。

2.2.2 技术先进性进行软件的二次开发主要就是需要将软件的技术进行提高,如果做不到对技术进行革新,最为基础的也要保证二次开发的技术与软件本身的技术是相同的,如果软件在经过二次开发之后技术仍然是处于落后的状态,那么这个技术是会被淘汰的。

CAD二次开发与自动化操作技巧

CAD二次开发与自动化操作技巧

CAD二次开发与自动化操作技巧CAD(Computer-Aided Design)是一种常用的计算机辅助设计软件,广泛应用于工业设计、建筑设计等领域。

对于需要频繁使用CAD软件的设计师或工程师来说,了解CAD的二次开发与自动化操作技巧,将能大大提高工作效率。

本文将介绍一些常用的CAD二次开发和自动化操作技巧。

1. 自动计算CAD软件提供了很多自动计算的功能,可以帮助我们快速完成各种设计任务。

例如,在设计平面图时,可以使用CAD软件提供的面积计算功能,快速计算出各个区域的面积,节省了手动计算的时间和精力。

2. 定制工具栏CAD软件通常提供了一系列的工具栏,用于快速选择不同的工具。

但是,有时候我们可能只需要使用其中的几个工具,并不需要整个工具栏。

这时,我们可以通过定制工具栏,只保留需要使用的工具,提高操作的效率。

3. 编写脚本CAD软件通常支持使用脚本语言编写一系列的命令,这样可以实现自动化的操作。

例如,在设计中需要反复重复某种操作,可以将这些操作记录下来,并编写成脚本,以后只需运行该脚本,即可完成相同的操作,省去了反复操作的麻烦。

4. 使用快捷键熟练掌握CAD软件的快捷键,可以大大提高工作效率。

CAD软件通常提供了一系列的快捷键,用于快速选择不同的工具或进行常用操作。

我们可以根据自己的习惯,将常用的工具或操作与快捷键关联起来,达到快速操作的目的。

5. 插件扩展CAD软件通常支持插件的安装和使用,通过安装适合自己需要的插件,可以为软件增加一些额外的功能。

例如,CAD软件中可能没有一些特殊的工具或特效,但是通过安装相应的插件,就能够实现这些特殊的需求。

6. 自动标注在CAD设计中,常常需要对设计图纸进行标注,例如添加尺寸标注、注释等。

传统上,这些标注需要手动添加,费时费力。

而通过CAD软件提供的自动标注功能,我们只需设置一次标准,然后软件会自动根据我们的设计,添加相应的标注,大大减少了标注的工作量。

7. 批量处理CAD软件通常支持批量处理功能,可以对多个文件进行批量操作。

CAD二次开发手册

CAD二次开发手册

VBA 开发手册第一章 VBA 入门了解嵌入和全局 VBA 工程AutoCAD VBA 工程是代码模块、类模块和窗体的集合,它们组合起来以执行给予的功能。

工程可保存在 AutoCAD 图形中,或作为独立的文件保存。

嵌入工程是保存在 AutoCAD 图形中。

当包含有这些工程的图形中 AutoCAD 打开时,他们可以自动地装载,这种方法可以很方便地分发工程给用户。

嵌入工程也有它的极限,它不能打开或关闭 AutoCAD图形,那是由于他们的函数只存在于工程所在的文档中。

使用嵌入工程不需要在运行程序之前查找并装载工程文件。

举个含有嵌入工程的图形的例子,当图形打开时,一个时间日志被触发。

通过这样一个宏的应用可以登记并记录用户在该图形上所花费的时间。

这时用户不必去记住在打开图形之前装载工程,这就是自动操作的一个很好的例子。

全局工程保存在独立的文件中,它更加通用,因为他们能在 AutoCAD 图形中运行,也能打开、关闭 AutoCAD 图形,但它在图形打开时不能自动装载。

用户必须知道他们所需要的宏包含在哪个工程文件中。

然而,全局工程非常容易与其它使用者共享,它可以将通用的宏做为很好的库而存在。

举个例子,你保存在一个工程文件中的宏是有关多个图形的材料清单。

这个宏可以在工作周期的末期由管理员运行,这样就可以收集到所有图形的信息。

在特定的时间,用户可以在同个 AutoCAD 进程中同时装载嵌入工程和全局工程。

AutoCAD VBA 工程与 Visual Basic 工程在二进制结构上是不兼容的。

然而,其中的窗体、模块和类可以通过在 VBA IDE 环境中使用输入和输出 VBA 命令来在工程之间进行转换。

关于 VBA IDE 的更多信息,可以查看“用 VBA IDE 编辑工程”用 VBA 管理器组织工程你可以使用 VBA 管理器查看装载在当前 AutoCAD 进程的所有 VBA 工程。

VBA 管理器一个AutoCAD 工具,它允许你装载、卸载、保存、创建、嵌入和分离 VBA 工程。

cad vba二次开发说明书

cad vba二次开发说明书

摘要利用计算机及其图形设备帮助设计人员进行设计工作。

简称cad。

在工程和产品设计中,计算机可以帮助设计人员担负计算、信息存储和制图等项工作。

在设计中通常要用计算机对不同方案进行大量的计算、分析和比较,以决定最优方案;各种设计信息,不论是数字的、文字的或图形的,都能存放在计算机的内存或外存里,并能快速地检索;设计人员通常用草图开始设计,将草图变为工作图的繁重工作可以交给计算机完成;由计算机自动产生的设计结果,可以快速作出图形显示出来,使设计人员及时对设计作出判断和修改;利用计算机可以进行与图形的编辑、放大、缩小、平移和旋转等有关的图形数据加工工作。

cad 能够减轻设计人员的计算画图等重复性劳动,专注于设计本身,缩短设计周期和提高设计质量。

本课题简单介绍了CAD技术在机械方面的应用、其发展现状和趋势,以及常用的紧固件产品。

它以AutoCAD为开发平台,以VBA为开发工具,实现了紧固件设计智能化,为工程设计人员提供高效率的设计工具。

关键词:CAD;VBA;二次开发AbstractThe use of computers and graphic design equipment to help staff design work. Referred to as cad. In engineering and product design, computer designers can help take computing, information storage and graphics work etc.. Usually used in the design of computer programs for a large number of different calculation, analysis and comparison, to determine the optimal program; a variety of design information, no matter the number, text or graphics can be stored in computer memory or outside depositors, and that can be quickly retrieved; designers usually started with the draft design, will draft a work plan to the heavy workload of the computer can be completed; automatically generated by computer design, graphics can be displayed quickly, so that designers timely decisions and modify the design; the use of computers and graphics can be edited, magnified, reduced, such as translation and rotation of graphics data processing work. cad designers to reduce the calculation of drawing, such as repetitive work, focusing on the design itself, to shorten the design cycle and improve design quality.This text gives an introduction to the CAD of engineering applications, development , principal types of screw threads in most general use. The CAD system is developed upon AutoCAD software platform and VBA as tools. it can provide efficient design tool, applied in screws design, and techniques design forengineering design staffs.KeyWords:CAD ; VBA ; development目录摘要 (I)Abstract (II)1综述 (1)1.1AutoCAD简介 (1)1.1.1CAD系统的发展概况 (1)1.1.2 CAD的特点和功能 (2)1.1.3 CAD的研究方向和发展趋势 (3)1.2 VBA语言简介 (6)1.2.1 VBA工程和宏 (6)1.2.2 VBA IDE简介 (10)1.2.3 基本函数 (12)1.3 CAD 应用软件开发 (15)1.3.1 CAD的开发技术 (15)1.3.2 CAD软件开发方法及步骤 (17)1.3.3 CAD应用软件的开发意义 (19)2 参数化绘图程序的编写 (21)2.1紧固件的简介 (21)2.1.1紧固件螺纹联接 (24)2.1.2 紧固件发展概况及发展趋势 (25)2.2 参数化绘图程序设计 (27)2.2.1 编程前的准备 (27)2.2.2 组成双头螺柱俯视图的各种图元 (28)2.2.3 组成双头螺柱主视图的各种图元 (31)2.3对话框设计 (34)2.3.1 对话框设计简介 (34)2.3.2 对话框的程序设计 (34)2.4程序的调试 (47)2.4.1 调试程序应当注意的地方 (47)2.4.2 调试完毕后的CAD完整图形 (47)2.5手动插入下拉菜单 (48)结论 (51)参考文献 (52)致谢 (54)附录A源代码 (55)1综述1.1A utoCAD简介计算机辅助设计指利用计算机及其图形设备帮助设计人员进行设计工作。

CAD二次开发第2章

CAD二次开发第2章

17/25
2012-5-14
2.1.4 插入形 SHAPE命令的执行过程如下: 命令:SHAPE 输入形或[?]:此时用户可直接输入形名。 用户要查询调入内存的形名,可输入“?”, 指定插入点:直接用键盘输入插入点坐标, 或用鼠标在屏幕上拾取点。 指定高度:输入高度值或用鼠标拖动获取形高度。 指定旋转角:输入角度值(单位:度), 或用鼠标拖动来控制形的旋转角度。
6/25
2012-5-14


例图1: 正方形加一条对 角线,共有5条线段。 形名:BOX,定义格式: *230,6,BOX 014,010,01C,018,012, 0
例图2: 长方形加一条对 角线,共有5条线段。 形名:BOX,定义格式: *230,6,BOX 014,020,01C,028,021, 0
20/25
2012-5-14
2.2.2 用形定义字体 系统提供的标准字体是由tx t.shp文件定义的。 文件一共定义了127个形, 与每个字符ASCII码相对应。 定义“申”的形,图中带箭 头细线表示形定义描述的顺序。 *133,26,FA 3,1,2,034,1,080,044,088,04 C,2,8,8,2,1,088,2,8,4,4,1,8, 0,-9,2,050,0
4/25
2012-5-14
2.1.1 形的定义
1. 形的定义格式 在系统中形定义包括一个标题行和若干个描述行。 (1)标题行:“*”开始,说明形的编号、大小及名称。 格式如下:*形编号,定义的字节数,形名称 ① 形编号:每个形一个编号,一字节,整数表示。 ② 定义字节数:一个形所需的字节数,整数表示。 ③ 形名称:必须用大写字母表示。 (2)描述行:在标题行之后, 用数字或字母描述形中线段、圆弧的大小与方向。 数字或字母用逗号隔开,最后用“0”结束。 描述可以用多行表示,每行字符数不得超过128个。

CAD系统的二次开发技术精要

CAD系统的二次开发技术精要

(2)获取系统变量值函数 :
格式:(getvar varname) 返回系统变量varname的值 例:假设最后指定的圆角半径为1.0个图形单位, 则有(getvar “filletrad”),返回1.0。
第7章 CAD系统的二次开发技术
7.3.4 AutoLISP语言的常用函数
5 条件运算函数
格式:(if textexpr thenexpr [elseexpr]) 如 果 条 件 textexpr 成 立 , 则 执 行 thenexpr, 否 则 执 行 elseexpr。 例 (if (= a 3) (setq b 3) (setq b 4)),当a=3时,b=3, 否则b=4。
第7章 CAD系统的二次开发技术
7.3.4 AutoLISP语言的常用函数 2 数值计算函数
(5)求另一点坐标 (Polar P1 ang d)。已知P1点,求与P1点 距离为d、角度为ang的另一点P2的坐标 例 (Polar „(1.0 1.0) 0.785 1.414) 得(2.0 2.0)
第7章 CAD系统的二次开发技术
7.3.5 AutoLISP的编程举例
4.编制绘图程序 5.编辑和调式程序
(1) 启动Visual LISP (2) 编辑程序 (a )“File”中的“New File” (b)保存文件 (c)【工具】→【设置编辑器中代码的格式】,即可完成对文 件的格式化。(此步可省) (d)语法检查:【工具】→【检查编辑器中的文字】,检查结 果在“<编译输出>”窗口输出 (e) 检查无误,再次保存文件
1 0
2 4
3 5 6
7.3.5 AutoLISP的编程举例
10 11 9
1
12

CAD二次开发程序使用说明

CAD二次开发程序使用说明

CAD二次开发程序使用说明CAD二次开发程序使用说明:1.打开CAD,调用并加载ARX程序,输入命令“ly”,弹出如下的对话框。

点击确定。

2.点击确定,弹出如下的对话框。

在该对话框里,有两种主要功能组合可供使用。

3.在如上对话框里可以选择不同的点选控件,完成不同的操作。

现将一一解释说明。

(一)多段轴绘制可以点击“多段轴绘制”选择控件“n=3”或者“n=4”,弹出如下的对话框:可以看到在“多段轴n=3”以及“多段轴n=4”对话框中,可以对轴的基点进行自定义,可以手工输入轴的基点,同时还可以自定义轴的各段轴的半径和轴长,完全做到对轴的自定义。

同时还可以选择“举例”控件,熟悉了解该对话框的功能。

图如下:点击“画轴”按钮,将会在CAD中,画出已经标注好的轴。

如下举例:(二)深沟球轴承校核可以选择“轴承相关”里的“深沟球轴承校核”“60000”选择控件,弹出如下的对话框:(1)在该对话框里,可以在“初始参数”里手工输入你所需要的参数“Fr”,“Fa”,“n”,“Lh’”,“fp”“C0”,“C”,也可以在“举例”里选择“举例参数”“轴承”等等来自动输入固定的参数(仅用于演示操作)。

(2)点击按钮“初步计算”,可以看到“选择框”中,“Fa/Fr”,“Fa/C0”自动算出,根据“Fa/C0”的范围,在“Fa/C0选择”框里选择范围(有五组,从0.0025-0.5000),此时“插值参数”框里有关参数如“e1”,“e2”等自动给出。

(3)点击插值按钮,可以看到“选择框”中,“e”,“X”,“Y”已经计算给出,此时插值计算完成。

(4)最后点击“校核”按钮,“P”“Lh”会计算出来,同时根据计算结果,程序判断“Lh”是否小于“Lh’”,如果是,则会弹出如下的对话框:如果不是,则表示校核合格,弹出对话框如下:(5)点击“确定”按钮,返回上一级对话框。

(三)角接触球轴承校核可以选择“轴承相关”里的“角接触球轴承校核”“70000C”选择控件,弹出如下的对话框:(1)在该对话框里,可以使用右下角的“举例”组合框,选择“初始参数”“7207C”(可以单独选择),也可以手工在“初始参数”框里定义你所需要的单元值如“Fte”,“Fre”,“Fae”“L1”,“L2”“R”等等,完成对参数的定义。

CAD二次开发设计说明书

CAD二次开发设计说明书

CAD二次开发设计说明书毕业设计(论文)AutoCAD环境下液压系统符号开发系别:机械与电子工程系专业(班级):机械设计制造及自动化07级2班作者(学号):指导教师:完成日期:赵辉(50701012022)陈文平(副教授) 2021年6月1日蚌埠学院教务处制赵辉:AutoCAD环境下的液压系统符号开发目录摘要: .................................................................3 Abstract: ................................................................4 1 引言 .............................................................. 5 2 绪论 .. (6)2.1 国内外的研究现状和发展趋势 (6)2.2 AutoCAD二次开发的目的和意义 ...................................... 6 2.3 AutoCAD二次开发现状 .............................................. 8 2.4 AutoCAD二次开发工具选择 .......................................... 8 2.5 课题研究的主要内容和意义 ........................................... 9 3 开发工具的介绍 (10)3.1 Visual LISP概述 (10)3.2 VisualLISP的主要组成部分和功能 .................................. 10 3.3 Auto LISP语言的特点 ............................................. 11 3.4 运行AutoLISP程序 ................................................. 11 4 典型液压元件Autolisp程序开发......................................... 12 5 菜单的加载 (38)5.1 菜单命令的程序 (38)5.2 菜单命令的加载 .................................................... 39 6结论 .............................................................. 40 谢辞 ................................................................. 41 参考文献 (42)- 2 -蚌埠学院本科毕业设计(论文)AutoCAD环境下的液压系统符号开发摘要:AutoCAD是目前市场上最流行的CAD系统,它所具有的可编程,易于定制以及可扩展等特性显著提高了用户的工作效率。

zwcad二次开发文档简易指南

zwcad二次开发文档简易指南

一.概述 (2)二.使用SDS进行二次开发 (2)SDS和ADS接口的主要差异 (2)编译SDS应用程序 (4)三.使用AUTOLISP进行开发 (4)四.使用VBA/VB进行开发 (5)五.ZWCAD的定制 (5)屏幕菜单及其定制 (5)I MAGE菜单(图标菜单)的定制 (7)PROFILE的定制 (9)ZWCAD.LSP和ZWCAD.SDS文件的作用和定制 (10)别名的定制 (11)其他定制 (11)(内部参考)一.概述在zwcad上可以通过二次开发来定制和扩展zwcad的功能.当前的zwcad提供AutoLISP,SDS以及Visual Basic for Applications (VBA,COM)开发包进行二次开发.在zwcad上,你也可以使用许多原来在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开发程序员为讲解对象.具体的sds函数说明请参考帮助文档.SDS和ADS接口的主要差异SDS和ADS的接口差异可以直接从sds.h和ads.h这两个头文件的比较得出.主要差异如下.1.Sds开发包的接口函数以sds_为前缀.Ads 开发包的接口函数主要以ads_, acad_, and acrx_等为前缀.在sds.h中提供了移植ads用的宏例如#define ads_entdel sds_entdel这样只需要在ads应用程序源代码中将#include “ads.h” 以#include “sds.h”替换,并将要链接的库文件改为sds.lib编译链接即可完成从ads到sds的移植.2.sds开发包主要扩展的函数#if defined(_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);#endifint sds_setcallbackfunc(int (*cbfnptr)(int flag,void *arg1,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_CBCMDEND 1// arg1="command name" cast as (char *)// Return code does not matter.// Mouse movements and Mouse buttons.#define SDS_CBMOUSEMOVE 2 // arg1=X pixel arg2=Y pixel#define SDS_CBLBUTTONDN 3 // arg1=X pixel arg2=Y pixel#define SDS_CBLBUTTONUP 4 // arg1=X pixel arg2=Y pixel#define SDS_CBLBUTTONDBLCLK 5 // arg1=X pixel arg2=Y pixel#define SDS_CBRBUTTONDN 6 // arg1=X pixel arg2=Y pixel#define SDS_CBRBUTTONUP 7 // arg1=X pixel arg2=Y pixel ……etc.//进度条的控制.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 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, sds_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);//实体所占矩形空间void sds_entextent(sds_name ename, sds_point minPoint, sds_point maxPoint);SDS不支持的ads函数主要有以下几个int ads_ssGetKwordCallbackPtr(struct resbuf* (**pFunc)(const char*));int ads_ssSetKwordCallbackPtr(struct resbuf* (*pFunc)(const char*));int ads_ssGetOtherCallbackPtr(struct resbuf* (**pFunc)(const char*));int ads_ssSetOtherCallbackPtr(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* symname);编译SDS应用程序一般使用VC编译环境主要做好sds头文件和库文件的路径设置,然后#include “sds.h”#pragma comment( lib,sds ) 或设置链接引用到sds.libOK三.使用AutoLISP进行开发zwcad提供了调用Autolisp程序的接口,可以将大部分的lisp程序正常执行,但需要注意以下事项1.最为重要的一点。

CAD二次开发起步

CAD二次开发起步

CAD⼆次开发起步1 环境搭建(VS 2017 + CAD 2019)CAD版本⼀般要⽐VS版本晚两年以上,⽐如我现在使⽤VS2017,则CAD要⽤2019版,⾄于CAD2018能不能⽤没试验过,有兴趣的⼩伙伴可以试试。

(1)下载以上两项都能在Autodesk⽹站下载:、。

(2)安装ObjectARX类库双击Autodesk_ObjectARX_2019_Win_64_and_32_Bit.sfx选个⾮中⽂路径解压,记住路径备⽤。

(3)安装dotnet_wizards双击安装autoCADnetwizards2019,向导可以帮我们配置好环境,当然也可以⾃⼰配置,但是还是直接⽤⼈家提供的向导⽅便。

其中发现的坑:这⾥我安装的时候碰到⼀个,打开wizard后提⽰需要,⽽我明明安装了framework4.7.2,折腾了半天最后把4.7.2卸了,发现.4.7安装不上,提⽰我安装了更⾼版本,尼玛,我明明没有安装4.6.2以上的.net版本了。

这个软件也是做的烂,⾮得是.net framework4.7,⾼了不⾏。

⽼⽑病,win10是预装4.7的,尤其是现在都会帮你更新到4.7.2,所以向导不认。

我寻思着把4.7.2卸了,再装4.7就⾏,结果使出浑⾝解数都找不到在哪卸(有会的同学望告知),所以只能⼿动配置。

友情提醒,建议安装不上就别折腾了,⼿动配置环境也不费事的,请看第三部分“⼿动配置环境”。

2 使⽤.net wizards C#模板创建Hello World完成上述步骤打开VS2017,新建项⽬,可以发现C#下⾯出现了Autodesk选项,framework固定为4.7,点击确定。

接下来选择:ObjectARX SDK(上⾯第⼀步的路径)和 CAD 软件安装⽬录。

点击Ok后创建完成。

此时在解决⽅案栏⾥有了两个cs:myCommand.cs和myPlugin.cs,选择myCommand.cs找到如下代码:public void MyCommand() // This method can have any name{// Put your command code hereDocument doc = Application.DocumentManager.MdiActiveDocument;Editor ed;if (doc != null){ed = doc.Editor;ed.WriteMessage("Hello, this is your first command.");}}这是其⾃动⽣成的⽰例,在CAD⾥输⼊"MyCommand"命令可以输出"Hello, this is your first command."的信息,我们可以改成熟悉的"Hello World"。

zwcad二次开发文档简易指南

zwcad二次开发文档简易指南

一.概述 (2)二.使用SDS进行二次开发 (2)SDS和ADS接口的主要差异 (2)编译SDS应用程序 (4)三.使用AUTOLISP进行开发 (4)四.使用VBA/VB进行开发 (5)五.ZWCAD的定制 (5)屏幕菜单及其定制 (5)I MAGE菜单(图标菜单)的定制 (7)PROFILE的定制 (9)ZWCAD.LSP和ZWCAD.SDS文件的作用和定制 (10)别名的定制 (11)其他定制 (11)(内部参考)一.概述在zwcad上可以通过二次开发来定制和扩展zwcad的功能.当前的zwcad提供AutoLISP,SDS以及Visual Basic for Applications (VBA,COM)开发包进行二次开发.在zwcad上,你也可以使用许多原来在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开发程序员为讲解对象.具体的sds函数说明请参考帮助文档.SDS和ADS接口的主要差异SDS和ADS的接口差异可以直接从sds.h和ads.h这两个头文件的比较得出.主要差异如下.1.Sds开发包的接口函数以sds_为前缀.Ads 开发包的接口函数主要以ads_, acad_, and acrx_等为前缀.在sds.h中提供了移植ads用的宏例如#define ads_entdel sds_entdel这样只需要在ads应用程序源代码中将#include “ads.h” 以#include “sds.h”替换,并将要链接的库文件改为sds.lib编译链接即可完成从ads到sds的移植.2.sds开发包主要扩展的函数#if defined(_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);#endifint sds_setcallbackfunc(int (*cbfnptr)(int flag,void *arg1,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_CBCMDEND 1// arg1="command name" cast as (char *)// Return code does not matter.// Mouse movements and Mouse buttons.#define SDS_CBMOUSEMOVE 2 // arg1=X pixel arg2=Y pixel#define SDS_CBLBUTTONDN 3 // arg1=X pixel arg2=Y pixel#define SDS_CBLBUTTONUP 4 // arg1=X pixel arg2=Y pixel#define SDS_CBLBUTTONDBLCLK 5 // arg1=X pixel arg2=Y pixel#define SDS_CBRBUTTONDN 6 // arg1=X pixel arg2=Y pixel#define SDS_CBRBUTTONUP 7 // arg1=X pixel arg2=Y pixel ……etc.//进度条的控制.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 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, sds_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);//实体所占矩形空间void sds_entextent(sds_name ename, sds_point minPoint, sds_point maxPoint);SDS不支持的ads函数主要有以下几个int ads_ssGetKwordCallbackPtr(struct resbuf* (**pFunc)(const char*));int ads_ssSetKwordCallbackPtr(struct resbuf* (*pFunc)(const char*));int ads_ssGetOtherCallbackPtr(struct resbuf* (**pFunc)(const char*));int ads_ssSetOtherCallbackPtr(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* symname);编译SDS应用程序一般使用VC编译环境主要做好sds头文件和库文件的路径设置,然后#include “sds.h”#pragma comment( lib,sds ) 或设置链接引用到sds.libOK三.使用AutoLISP进行开发zwcad提供了调用Autolisp程序的接口,可以将大部分的lisp程序正常执行,但需要注意以下事项1.最为重要的一点。

正式版CAD二次开发

正式版CAD二次开发

正式版CAD二次开发一、引言随着计算机技术的飞速发展,CAD(计算机辅助设计)软件在各个领域得到了广泛应用。

为了满足不同用户的需求,许多企业和个人都希望对CAD软件进行二次开发,以实现特定的功能。

本文将介绍正式版CAD二次开发的基本概念、开发工具和开发流程。

二、二次开发的概念二次开发是指在已有的CAD软件基础上,通过编写代码或使用开发工具,增加新的功能或改进现有功能的过程。

二次开发可以满足用户特定的需求,提高工作效率,增强软件的适用性。

三、二次开发的工具1. API(应用程序编程接口):CAD软件通常提供API,允许开发者通过编程语言访问和操作软件的功能。

API提供了丰富的函数和类,开发者可以使用这些函数和类来实现二次开发。

2. 开发工具:一些CAD软件提供了专门的开发工具,如Visual Studio、Eclipse等,用于编写和调试二次开发的代码。

这些工具提供了代码编辑、调试和编译等功能,简化了二次开发的过程。

3. 插件:一些CAD软件支持插件,开发者可以将自己的代码打包成插件,然后将其安装到CAD软件中。

插件可以提供额外的功能,如自定义菜单、工具栏和对话框等。

四、二次开发的流程1. 需求分析:明确二次开发的目标和需求,确定需要实现的功能和改进点。

2. 设计:根据需求分析的结果,设计二次开发的架构和功能模块。

4. 调试:使用调试工具,对二次开发的代码进行调试和测试,确保功能的正确性和稳定性。

5. 部署:将二次开发的代码集成到CAD软件中,并进行部署和安装。

6. 维护:对二次开发的功能进行维护和更新,解决用户反馈的问题和需求。

五、注意事项1. 遵守软件许可协议:在进行二次开发时,需要遵守CAD软件的许可协议,确保合法合规地使用软件和API。

3. 与官方技术支持沟通:在遇到问题时,可以与CAD软件的官方技术支持团队进行沟通,寻求帮助和解决方案。

4. 持续学习和更新:CAD软件和API可能会不断更新和改进,开发者需要持续学习和更新自己的知识,以适应新的技术和需求。

CAD二次开发课程设计说明书

CAD二次开发课程设计说明书

CAD二次开发课程设计说明书重庆理工大学应用技术学院设计题目:带轮参数化绘图模块开发班级: 108214701学号: 10821470152姓名: 张昂指导老师: 林昌华实训时间:2011.6.20 ~2011.6.26前言本次CAD二次开发课程设计的任务是对带轮参数化绘图模块的开发。

带轮在机械传动系统中是一种常见的传动件,在产品开发设计中常常需要绘制带轮零件图。

为提高带轮的设计质量和效率,降低设计成本,其重要途径就是开发带轮参数化绘图软件。

AutoCAD使用AutoLISP程序和源代码,解决绘图实际问题。

通过二次开发的学习可以更简洁、迅速的进行机械行业的运作。

减轻了大量的工作量。

通过本次实训可以提高对CAD二次开发的熟练程度,而且训练如何利用所学的知识解决实际生产中遇到的问题,让我们看到了CAD二次开发的实用性。

本次课程设计的程序放在电脑D盘目录下运行。

1目录第1章分析带轮结构特点,确定其主要参数 3第2章带轮的参数化绘图函数 72.1 公共调用程序 7 2.2实心式带轮参数化绘图函数 8 2.3腹板式带轮参数化绘图函数 10 2.4孔板式带轮参数化绘图函数 12 第3章带轮参数输入的对话框 14 3.1实心式带轮参数输入的对话框 14 3.2腹板式带轮参数输入的对话框 15 3.3孔板式带轮参数输入的对话框 16 第4章局部菜单的编制 17第5章带轮驱动程序及绘图程序的实现 185.1实心式带轮的驱动程序 18 5.2腹板式带轮的驱动程序 18 5.3孔板式带轮的驱动程序 19 5.4各种带轮绘制程序的调试和运行 20 课程设计小结 25 参考文献 252第1章分析带轮结构特点,确定其主要参数1(V带轮设计要求对带轮的主要要求是质量小且分布均匀、工艺性好、与带接触的工作表面加工精度要高,以减少带的磨损。

转速高时要进行动平衡,对于铸造和焊接带轮的内应力要小。

2(结构设计带轮由轮缘、腹板(轮辐)和轮毂三部分组成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.概述 (2)二.使用SDS进行二次开发 (2)SDS和ADS接口的主要差异 (2)编译SDS应用程序 (4)三.使用AUTOLISP进行开发 (4)四.使用VBA/VB进行开发 (5)五.ZWCAD的定制 (5)屏幕菜单及其定制 (5)I MAGE菜单(图标菜单)的定制 (7)PROFILE的定制 (9)ZWCAD.LSP和ZWCAD.SDS文件的作用和定制 (10)别名的定制 (11)其他定制 (11)(内部参考)一.概述在zwcad上可以通过二次开发来定制和扩展zwcad的功能.当前的zwcad提供AutoLISP,SDS以及Visual Basic for Applications(VBA,COM)开发包进行二次开发.在zwcad上,你也可以使用许多原来在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开发程序员为讲解对象.具体的sds函数说明请参考帮助文档.SDS和ADS接口的主要差异SDS和ADS的接口差异可以直接从sds.h和ads.h这两个头文件的比较得出.主要差异如下.1.Sds开发包的接口函数以sds_为前缀.Ads开发包的接口函数主要以ads_,acad_,and acrx_等为前缀.在sds.h中提供了移植ads用的宏例如#define ads_entdel sds_entdel这样只需要在ads应用程序源代码中将#include“ads.h”以#include “sds.h”替换,并将要链接的库文件改为sds.lib编译链接即可完成从ads到sds的移植.2.sds开发包主要扩展的函数#if defined(_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);#endifint sds_setcallbackfunc(int(*cbfnptr)(int flag,void*arg1,void*arg2,void*arg3)); //Command Start/End.#define SDS_CBCMDBEGIN0//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 SDS_CBMOUSEMOVE2//arg1=X pixel arg2=Y pixel#define SDS_CBLBUTTONDN3//arg1=X pixel arg2=Y pixel#define SDS_CBLBUTTONUP4//arg1=X pixel arg2=Y pixel#define SDS_CBLBUTTONDBLCLK5//arg1=X pixel arg2=Y pixel#define SDS_CBRBUTTONDN6//arg1=X pixel arg2=Y pixel#define SDS_CBRBUTTONUP7//arg1=X pixel arg2=Y pixel ……etc.//进度条的控制.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 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,sds_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);//实体所占矩形空间void sds_entextent(sds_name ename,sds_point minPoint,sds_point maxPoint);SDS不支持的ads函数主要有以下几个int ads_ssGetKwordCallbackPtr(struct resbuf*(**pFunc)(const char*));int ads_ssSetKwordCallbackPtr(struct resbuf*(*pFunc)(const char*));int ads_ssGetOtherCallbackPtr(struct resbuf*(**pFunc)(const char*));int ads_ssSetOtherCallbackPtr(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*symname);编译SDS应用程序一般使用VC编译环境主要做好sds头文件和库文件的路径设置,然后#include“sds.h”#pragma comment(lib,sds)或设置链接引用到sds.libOK三.使用AutoLISP进行开发zwcad提供了调用Autolisp程序的接口,可以将大部分的lisp程序正常执行,但需要注意以下事项1.最为重要的一点。

Zwcad中的LISP无法进行COM调用,无法使用VLA开头的函数。

因此,在ZWCAD中,你就不能通过lisp使用ACTICEX方式产生图元并用变量储存该图元的指针以进行以后的修改查询等操作,你只能使用COMMAND和ENTMAKE的方式进行产生图元,同时你只能使用图元名间接对图元进行操作。

(VLISP提供的AutoLISP扩展函数由曲线测量函数、数据转换函数、对象处理函数、特性处理函数、集合操作函数和词典函数组成。

函数名以vlax-为前缀。

这些函数和ActiveX方法都提供vla-*函数。

有些vlax-*函数在使用ActiveX命令时是必需的。

)2.无实现如VLISP中的反应器及其机制。

3.Zwcad也并没有提供一个如acad中的visual lisp的编译环境,只能直接使用写好的的lisp程序。

4.ZWCAD能加载未经加密的*.LSP文件或以“AutoCAD PROTECTED LISP file”方式加密的*.LSP文件。

ZWCAD的LISP中能使用DCL文件。

5.ZWCAD不能加载经AUTOCAD的VISUAL LISP编译集成的VISUAL LISP可执行文件vax(一个或多个LSP文件和/或对话框控制语言(DCL)文件的编译集合。

)ZWCAD不能加载FAS文件(.fas)-一个LSP程序文件的二进制编译版本。

四.使用VBA/VB进行开发zwcad可以提供vba/vb支持,但是在一般的版本里没有提供.重要区别:Automation对象不同.使用支持vba版本的zwcad,最重要的是理解,zwcad里面的对象和acad的对象是不相同的.zwcad的对象和acad的对象可能在使用上和名字上有很多相似的地方,但是他们是不同的对象,有自己的唯一标识id.以前基于acad开发的vba/vb应用引用到的acad对象,其对象实现在acad里,不在zwcad里,所以不能把这些应用直接拿到zwcad上使用。

另外,Acad中关于界面的对象如MenuBar,PopMenu,MenuGroup(s),Toolbar(s),PopMenuItem,ToolbarItem等对象在中望CAD中还没有实现.五.ZWCAD的定制屏幕菜单及其定制zwcad提供一个和ACAD2000及以后版本类似的屏幕菜单.中望建筑软件使用了该功能,如右图所示.功能详解:1.样式如的浅蓝色底,实心箭头朝下的按钮表明了当前激活的菜单.图中所示,尺寸标注为当前激活的菜单.除了顶级菜单按钮(这里是“中望建筑”)外,可以右键点击当前激活的菜单按钮,可以弹出其下的所有级别的菜单及菜单项.2.带有的按钮,左键点击可以进入的下一层菜单.右键点击可以弹出其下的所有级别的菜单及菜单项.3.带有的按钮是当前激活菜单的上级菜单.左键点击可以直接回到该菜单。

相关文档
最新文档