autocad net webcast 20110525

Post on 24-Apr-2015

94 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1Autodesk Confidential Information May 2011

AutoCAD 2012 .NET API功能

叶雄进Developer Technical Services

2011.5.25

® 2010 Autodesk

2Autodesk Confidential Information May 2011

关于讲师

叶雄进 Joe Ye

Joe.Ye@autodesk.com

ADN DevTech部门

4年多软件开发咨询

5年土木行业软件研发

支持APIs

Revit

AutoCAD Architecture

AutoCAD

3Autodesk Confidential Information May 2011

调查

您的职业?

对AutoCAD .NET 编程了解如何?

4Autodesk Confidential Information May 2011

注意事项

讲座过程中,如果有问题,可以通过“Q&A”功能把问题及时提交给我。在后面答疑时一并答复。

5Autodesk Confidential Information May 2011

非基础知识

AutoCAD.Net API 基本知识可下载下面的讲座学习

AutoCAD .NET API 基本知识和功能讲座

基于AutoCAD2010 的讲座

相对于2010, AutoCAD2012 .NET 编程基本内容没有变化

6Autodesk Confidential Information May 2011

内容

2011 .Net API新功能概览

参数化约束API

生成曲面API

2012 .Net API 新功能

开发环境

3D 阵列 API

夹点菜单

Autoloader

7Autodesk Confidential Information May 2011

2011 .NET API 新功能概览

参数化约束 .NET API 功能

AutoCAD管理一套互动对象,一方发生改变时,关联的对象会发生预定的动作

8Autodesk Confidential Information May 2011

参数化 API

命令演示

演示命令代码可随本讲座的视频录像一起下载。

下载地址:http://www.adskconsulting.com/adn/cs/api_course_webc

ast_archive.php

9Autodesk Confidential Information May 2011

创建曲面API

10Autodesk Confidential Information May 2011

看一个对象创建代码

11Autodesk Confidential Information May 2011

创建曲面API

AutoCAD 2011 提供了创建各种曲面的.NET API

拉伸

Surface.CreateExtrudedSurface (Profile3d, Vector3d,

SweepOptions)

旋转

Surface.CreateRevolvedSurface (Profile3d, Point3d, Vector3d,

double, double, RevolveOptions)

扫掠

Surface.CreateSweptSurface Method (Profile3d, Profile3d,

SweepOptions)

12Autodesk Confidential Information May 2011

创建曲面API-1

混合

Surface.CreateBlendSurface Method (LoftProfile, LoftProfile,

BlendOptions)

偏移

Surface.CreateOffsetSurface Method (Entity, double)

除了创建曲面外,还提供了查询和编辑曲面功能

比如:修改混合曲面的上下面形状

13Autodesk Confidential Information May 2011

移植到2012

AutoCAD2012与2010/11的插件二进制兼容

在AutoCAD 2010/11编译的插件无需重编译可在2012上运行

.Net, ARX

版本号: R18.1 -> R18.2

.NET 程序需要的开发环境

.NET Framework 4

原用VS2008编译的可以加载使用

.NET程序需要Visual Studio 2010来调试

14Autodesk Confidential Information May 2011

新APIs

关联阵列API

生成阵列

矩形

弧形

沿给定曲线

编辑阵列单元中的实体

添加

删除

子对象删除,替换,矩阵变换,

阵列重置

15Autodesk Confidential Information May 2011

生成阵列步骤

1. 创建阵列参数,定义阵列样式(间距,数量,阵列路径,方向等)

AssocArrayRectangularParameters parameters = new

AssocArrayRectangularParameters(columnSpacing, rowSpacing,

levelSpacing, columnCount, rowCount,

levelCount, rowElevation, axesAngle);

2. 创建阵列对象

AssocArray array =

Autodesk.AutoCAD.DatabaseServices.AssocArray.CreateArray(sourceEntities,

basePoint,

parameters);

3. 建立关联

AssocManager.EvaluateTopLevelNetwork(db, null, 0);

16Autodesk Confidential Information May 2011

阵列涉及的类和函数1

参数类:

AssocArrayRectangularParameters

AssocArrayPolarParameters

AssocArrayPathParameters

阵列实体

AssocArray

增加对象到Array源定义中

AssocArray.AddSourceEntity(ObjectId, BasePoint);

删除Array源定义中的一个对象

AssocArray.RemoveSourceEntity(Index);

替换Array中的一个子对象

AssocArray.ReplaceItems(ItemLocators, substEntities, basePoint);

17Autodesk Confidential Information May 2011

阵列涉及的类和函数2

替换阵列中的一个子对象

AssocArray.ReplaceItems(ItemLocators, substEntities, basePoint);

删除阵列中的一个子对象

AssocArray.DeleteItem(itemLocator, true);

矩阵变换阵列中的一个子对象

AssocArray.TransformItemBy(itemLocator, transform);

重置阵列,回到创建时的状态

AssocArray.ResetItems();

18Autodesk Confidential Information May 2011

夹点菜单

当光标在强制协议实体的夹点上,显示自定义菜单

重载强制协议

DrawableOverrule

PropertiesOverrule

TransformOverrule

GripOverrule

OsnapOverrule

HighlightOverrule

ObjectOverrule

19Autodesk Confidential Information May 2011

加载AutoCAD二次开发模块

原来方式的特点

技术要求高,对AutoCAD十分了解

在安装程序中写安装软件的脚本程序

修改注册表

设置*.ar文件,加载菜单等

多个AutoCAD版本的协调

不同厂商之间的包容性

一方软件导致另一方软件无法正常加载运行

20Autodesk Confidential Information May 2011

自动加载-Autoloader

简化插件的部署

把内容都组织到一个文件夹中

安装过程只是拷贝文件夹

支持加载 .NET, ARX, DBX, LSP, FAS, CUI, MNU

XML 描述插件

兼容哪些平台版本

兼容哪些操作系统

是否按需加载

地方语言支持(将来)

支持路径

依赖关系

是否及时加载

21Autodesk Confidential Information May 2011

演示步骤

加载两个.net 插件

AutoCAD启动时加载

按需加载

步骤:

1. 理解代码工程功能

2. 查看并拷贝Bundles

3. 运行看过程

4. 解释加载XML文件

22Autodesk Confidential Information May 2011

拷贝到指定的目录中

%APPDATA%/Autodesk/ApplicationPlugins

对用户的管理权限要求最低

只对当前用户有效,对其他登录用户不可用

%ProgramFiles%/Autodesk/ApplicationPlugins

需要管理员权限 (Windows Vista/7 要求).

操作系统增加了Users后,无需再次安装即可用.

二选一

23Autodesk Confidential Information May 2011

最简单的自动加载设置

Test1 的加载文件PackageContents.xml

24Autodesk Confidential Information May 2011

最简单按需加载设置

Test2 的加载文件 PackageContents.xml

25Autodesk Confidential Information May 2011

稍复杂加载设置

功能:

1.按需加载ARX

2. Windows 32 ,64位( AutoCAD2010或2011上)

3. Mac ( AutoCAD2010\11\12上)

PackageContent.xml

26Autodesk Confidential Information May 2011

XML文件结构

1. XML 文件头

2. XML文件主体

3. ApplicationPackage: 对安装包的概要描述 (必需)

CompanyDetails : 公司描述(必需)

Components: 一组模块的说明

Components: 另一组模块的说明(必需)

RuntimeRequirements 运行条件

• ComponentEntry 模块1的描述

• ComponentEntry 模块2的描述(必需)

1. Command 命令1的描述

2. Command 命令2的描述

27Autodesk Confidential Information May 2011

ApplicationPackage的属性

产品安装包的信息

SchemaVersion (必需):

AppVersion (必需):

Author (可选):

Name (必需): NameDeu, NameEsp, NameFra.

Description (必需):

Icon (必需): 32x32 , 可达 32位真彩色,推荐 BMP or ICO.

Helpfile (必需): 你的网页地址或chm/pdf 相对路径

ProductCode (必需): GUID 字符串

UpgradeCode (可选):

28Autodesk Confidential Information May 2011

CompanyDetails 元素的参数

公司的信息

Name (必需): 公司名称

Phone (可选): 公司联系电话

Url (可选): 公司主页

Email (必需): 公司联系邮箱

29Autodesk Confidential Information May 2011

Components中的元素

模块(ARX、.NET、 Lsp、CUIx)的描述

包括多组模块

包含一个RuntimeRequirements 元素

包含多个ComponentEntry 元素

30Autodesk Confidential Information May 2011

RuntimeRequirements中的属性

OS (可选): „Mac‟, „Win32‟, and „Win64‟.

Platform (可选) 可组合,”AutoCAD|Civil3D”,AutoCAD2012不支持 Civil3D - Autodesk Civil 3D

AutoCAD - AutoCAD

AOEM - AutoCAD OEM

Map - Map

AIS - Inventor Series (AIS)

ADT - Architectural Desktop

ACADM - AutoCAD Mechanical (ACADM)

MEP - AutoCAD MEP

ACADE - AutoCAD Electrical (ACADE)

LDT - Land Desktop

AIP - Inventor Professional (AIP)

AIPRS - Inventor Professional for Routed Systems (AIPRS)

AIPSIM - Inventor Professional for Simulation (AIPSIM)

PNID - AutoCAD P & ID - 2D

Plant3D - AutoCAD Plant 3D

Civil - Autodesk Civil

SeriesMin (可选): 如18.0

SeriesMax (可选): 如18.2

SupportPath (可选)

31Autodesk Confidential Information May 2011

ComponentEntry中的属性

一个最基本模块的信息描述

AppName (AutoLISP 可选, ObjectARX 和 .NET必须) 应用名称 与AcadAppInfo.AppName等同

AppDescription (可选): 模块描述 与AcadAppInfo.AppDescription等同

ModuleName (必需):模块路径和文件名 在bundle子文件夹内的相对路径, AcadAppInfo.ModuleName

多语言支持:如ModuleNameEnu , ModuleNameFra.

AppType (可选): 应用程序类型 “Bundle“,“ARX“,“Lisp“,“CompiledLisp“,“Dbx“,“.NET“,“Cui“,“CuiX“,“Mnu“ and “Dependency“

32Autodesk Confidential Information May 2011

ComponentEntry中的属性

PerDocument (可选,): 适用于每一个文档

只有AutoLISP 适用

„LoadReasons’ (可选或多个): 值是True/False

LoadOnCommandInvocation

LoadOnAutoCADStartup

LoadOnProxyDetection

LoadOnAppearance

33Autodesk Confidential Information May 2011

Commands的属性

包含GroupName

包含多个命令

34Autodesk Confidential Information May 2011

控制插件加载行为的系统变量

APPAUTOLOAD

0 永远不加载插件

1 加载插件时,显示消息

2 在启动时加载插件

4 当打开新文件时加载插件

8 当有插件出现在指定的两个目录时,就加载该插件

35Autodesk Confidential Information May 2011

限制

新的加载工具考虑了大多数情况下的插件加载,一些复杂的使用情况可能没有考虑到。

原有的加载机制仍然保留,对于Autoloader不能满足要求的,需用已有的机制加载

CUIX 文件只能是 partial CUIX 文件

36Autodesk Confidential Information May 2011

模块加载总结

简化插件的部署

把内容都组织到一个文件夹中

安装过程只是拷贝文件夹

支持加载 .NET, ARX, DBX, LSP, FAS, CUI, MNU

XML 描述插件

兼容哪些平台版本

兼容哪些操作系统

是否按需加载

地方语言支持(将来)

支持路径

依赖关系

是否及时加载

37Autodesk Confidential Information May 2011

课程总结

2011 .Net API新功能概览

参数化约束API

生成曲面API

2012 .Net API 新功能

开发环境

3D 阵列 API

夹点菜单

Autoloader

38Autodesk Confidential Information May 2011

反馈

39Autodesk Confidential Information May 2011

Q&A

打开计算机麦克,参与者都能听到提问

40Autodesk Confidential Information May 2011

Thanks

top related