




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Autodesk Inventor 2008 API2实训内容安排实训内容安排 Inventor 开发概览 用户界面 文档和属性 工作特征 零件建模 装配建模 工程图 选择与交互 数据读写及格式转换 考试3Inventor API开发的优秀产品开发的优秀产品 ANSYS, Inc. DesignSpace for Autodesk Inventor & Mechanical Desktop DesignXplorer PlassoTech, Inc. 3G.author4Inventor API 软件条件软件条件 Inventor 2008 / Inventor 2009 Visual
2、 Studio 20055Inventor 开发概览开发概览 Inventor API的基本概念 Inventor API的访问方法 如何用Visual Basic 编写第一个API程序 (一个简单的插件程序)6Inventor API的基本概念的基本概念 基于Inventor的开发接口 拓展Inventor的功能 定制功能、操作和优化算法 第三方应用程序和Inventor的交互7Inventor API的基本概念的基本概念 COM API API功能对象(Objects)形式存在;每一个对象都对应了软件产品(Inventor)中的一些功能 每个对象都可能有多种的方法(methods),属性(
3、properties),和能捕获到的事件 (events) 一切对象都要通过对象模型被访问到 对象模型图就象一个金字塔,最顶层的一个对象叫做Application8对象模型对象模型InventorInventor COM APIVisual BasicC+Other.NetOther.C#VB.Net Inventor API就是一堆COM Automation interface9Inventor API简化对象模型树简化对象模型树10对象模型对象模型 Dwf格式的对象模型图,可以在以下地方找到:http:/ FilesAutodeskInventor 2008SDKDocsInventor
4、2008ObjectModel.dwf 11API 开发常用资源和工具开发常用资源和工具 SDK Inventor API帮助 对象模型图 ADN会员网站12SDK 获取方法 安装路径下Inventor 2008SDK SAMPLE WIZRAD (向导) C:Program FilesAutodeskInventor 2008SDKToolsDevelopers 13Inventor API帮助帮助14ADN网站网站 http:/ Solution(解决方案) WhitePaper(白皮书)例如: “AddInDotNet.doc”介绍了如何用VB.net来制作插件 Creating a .
5、NET AddIn for Inventor 11介绍了如何用C#来制作插件15ADN网站网站16何为对象?何为对象? 对象能支持很多方法、属性、事件(methods, properties, and events) 有些对象继承自其它对象(基类),你可以用将其视为基类对象,也可以视为派生类对象使用 所有对象都支持类型(Type)属性,Type属性被用来鉴别对象的类型。 很多对象支持Parent属性,它可以返回对象的拥有者对象 Adaptive Application AttributeSets Faces HealthStatus Name Parent RangeBox Suppresse
6、d SurfaceBody Type Properties Delete GetReferenceKey GetRenderStyle SetEndOfPart SetRenderStyle Methods PartFeature Adaptive Application AttributeSets EndFaces Extent ExtentType Faces HealthStatus Name Operation Parent Profile RangeBox SideFaces StartFaces Suppressed SurfaceBody TaperAngle Type Prop
7、erties Delete GetReferenceKey GetRenderStyle SetEndOfPart SetRenderStyle Methods ExtrudeFeature 17集合集合/枚举对象枚举对象 包容了一组相关的对象 支持Count属性,代表了集合中对象的数量 支持Item 属性,可以通过它遍访集合中的元素。Item属性总是支持索引,通常是以 1为第一个索引。有时,Item也支持字符串索引,该字符串的值通常是对象的名称(name) 多数集合对象支持各种的Add方法,用来创建新对象,但枚举对象则不具备此功能18索引的索引的base是是1还是还是0? 第一个元素的索引,
8、我们简称它为base 大多数时候, 我们使用Count属性 1, , Count 大多数时候, 我们使用Length属性 0, , Length 1 在VB中, 你可以设置一个全局变量作为标准base如果你不确定集合的第一个元素的索引到底是0还是1,你可以象下面这样遍访集合对象:For cn = LBound(adVertexCoords) To UBound(adVertexCoords)19对象模型浏览对象模型浏览 以下工具可以帮助你更好的理解对象模型 对象模型图 对象浏览器 VBA 调试器20Inventor API 的访问方法的访问方法21访问访问Inventor API(VBA) V
9、BA :Visual Basic for Applications 是一种编程环境 Microsoft提供 嵌入到软件产品当中 随Inventor产品赠送,无需额外费用 主要用来创建宏(macros) 通过宏命令,或者点击通过“自定义”命令创建的按钮执行22访问访问Inventor API(VBA) 当我们学习Inventor API的时候,将频繁的使用VBA VBA (& VB 6) :对于自动化接口, 相比于其它编程工具它更容易使用,通过它,你能更好的将精力集中在API特征上,而不是被开发语言问题困饶 VBA (& VB 6) 的调试工具能被用来更好的理解Inventor对
10、象模型 如何打开VBA编程环境? 工具菜单 - Visual Basic Editor 菜单菜单 或者同时按下Alt+F11键 23示范访问示范访问Inventor API(VBA)24访问访问Inventor API (独立(独立 EXE) 独立界面 不与Inventor共享进程 损失运行性能25示范访问示范访问Inventor API (独立(独立 EXE)26访问访问Apprentice Server API学徒服务器学徒服务器 Apprentice Server 可看作是Inventor API的一个子集,也是一个独立的COM组件 运行在使用它的应用程序的进程空间 不需要运行Inven
11、tor 免费(作为Autodesk Inventor View的一部分被安装). 对装配结构,B-rep,2D工程图图纸有只读(read-only)功能 对iProperties,attributes和文件参考有读-写(read-write)功能27学徒服务器功能学徒服务器功能 只读: Assembly structure B-Rep Drawing sheets and views (limited access) iParts iAssemblies BOM 读-写 iProperties Attributes file references.28学徒服务器学徒服务器使用指导使用指导 不在
12、Inventor的进程空间运行 一个dll插件可以 Inventors VBA可以 在 Inventor 11版本以前, 学徒服务器是唯一能编辑文件参考的方法。 (Design Assistant就是基于学徒服务器的。)29示范访问示范访问Apprentice Server API学徒服务器学徒服务器30访问访问Inventor API (插件)(插件) 每次启动时可以自动运行 创建命令 DLL,EXE31注册插件注册插件 Visual Basic为ActiveX 组件自动创建注册信息.只要编译或者运行该组件,注册就自动完成了 (以前的注册自动删除)。 可以通过regsvr32工具来注册被编译
13、过的.dll。 要成为Inventor插件,需要一些额外的注册信息 Visual Basic 6 不支持增加额外的注册信息到Inventor注册信息里面,因此该额外的信息需要通过.reg文件来添加。32插件注册插件注册Options LoadOnStartUp Type Standard or Translator SupportedSoftwareVersionLessThanSupportedSoftwareVersionGreaterThanSupportedSoftwareVersionEqualToSupportedSoftwareVersionNotEqualTo Hidden :
14、决定插件在插件管理器(Add-In manager)中是否可见 UserUnloadable:决定用户是否可以卸载插件管理器(Add-In manager)中的插件 Version:定义插件的接口的版本 例如:LoadOnStartUp=1Type=StandardSupportedSoftwareVersionGreaterThan=10.Hidden = 0UserUnloadable = 1Version = dword:133Inventor插件向导插件向导 安装向导插件34例例1 -1 创建插件(创建插件(VB) Hello World! 35练习练习 1(1)DLL与EXE的主要区
15、别在于_。A. EXE具有更快的运行效率B. EXE比DLL更加易于调试C. DLL运行在单独的进程中,具有更快的运行效率D. DLL不能运行在单独的进程中,而EXE可以( 2)关于Inventor API对象模型树的正确描述是_A. 文档对象位于对象模型树的最顶端B. 集合是一种属性而不是对象C. 通过Application对象可以获得除它以外的API中的所有的对象D. 每个对象都支持Count和Itme属性36练习练习 1(续)(续)(3)判断题(正确的在括号内画“”,错误的画“”)( )Inventor API是面向功能的。( )学徒服务器必须在安装Inventor后才可以使用。( )使
16、用VBA也可以编写独立EXE。( )既可以编写DLL插件也可以编写EXE插件。(4)请简要回答插件与其他的API访问方法相比具有哪些特点。(5)运用本章知识编写一个插件程序,实现在启动Inventor 时显示“Custom”按钮,单击按钮时显示“My First AddIn”。37 用户界面的定制开发用户界面的定制开发 Inventor 控件的基本概念和作用 按钮、命令栏、环境、浏览器等用户界面的定制方法 插件版本的概念38Inventor用户界面用户界面菜单栏标准工具栏 自定义工具栏 工具面板浏览器右键菜单状态栏39环境选项卡环境选项卡40用于界面定制的用于界面定制的APIButtonDef
17、inition 可执行命令 为按钮引用 1:M41创建创建ButtonDefinition private Inventor.ButtonDefinition buttonDefinition; buttonDefinition = m_inventorApplication.CommandManager.ControlDefinitions.AddButtonDefinition( “Display Name”, invrSampleCommand, CommandTypesEnum.kShapeEditCmdType, strAddInGUID, “Description Text”, “
18、Tooltip”, standardIconIPictureDisp, standardIconIPictureDisp, ButtonDisplayEnum.kDisplayTextInLearningMode);42使用使用ButtonDefinition 监听OnExecute事件 实现用户单击按钮的操作如: private void ButtonDefinition_OnExecute(NameValueMap Context) System.Windows.Forms.MessageBox.Show(Hello, Inventor!);43工具栏工具栏CommandBar44例子:工
19、具栏的创建例子:工具栏的创建/设置到用户界面管理器的引用UserInterfaceManager userInterfaceManager;userInterfaceManager = m_inventorApplication.UserInterfaceManager; /创建新工具栏CommandBar commandBar; commandBar = userInterfaceManager.CommandBars.Add(Test Bar, intTestBar“, CommandBarTypeEnum.kRegularCommandBar, strAddInGUID); /将按钮控件
20、添加到工具栏中commandBar.Controls.AddButton(buttonDefinition, 0);45查找特定工具栏查找特定工具栏/查找到装配工具栏CommandBar asmCmdBar;asmCmdBar = userInterfaceManager.CommandBarsAMxAssemblyPanelCmdBar;46添加了自定义按钮的部件面板添加了自定义按钮的部件面板47弹出控件弹出控件 普通弹出控件(kPopupControl) MRU拆分按钮(kSplitButtonMRUControl) 拆分按钮(kSplitButtonControl) 弹出按钮(kButt
21、onPopupControl)48弹出控件弹出控件ButtonPopUpButtonPopUpSplitButtonSplitButtonMRUComboBoxMacro49将工具栏添加到工具面板列表将工具栏添加到工具面板列表/获得零件环境Inventor.Environment partEnv;partEnv = userInterfaceManager.EnvironmentsPMxPartEnvironment; /设置到PanelBar对象的引用PanelBar panelBar;panelBar = partEnv.PanelBar; /将工具栏添加到工具面板的列表中panelBar
22、.CommandBarList.Add(commandBar);50例例2-1 定制复杂的菜单定制复杂的菜单 Page 27 Page 3051环境环境 在工具面板(Panel)中默认显示的工具栏。 在标准工具栏(standard toolbar)中显示的工具栏。 作为菜单显示的工具栏。 在工具面板中可以切换的工具栏列表。 在右键单击现有的工具栏或菜单时显示的工具栏列表。通过该列表中可以隐藏或显示其中列出的任何工具栏。52环境对象模型图环境对象模型图53例例2-2 添加新环境添加新环境54例例2-3 设置当前编辑环境设置当前编辑环境55重载环境属性重载环境属性 EnvironmentManag
23、er OverrideEnvironment设置文档的重载环境56浏览器浏览器 树状列表 强大而又方便的扩充能力 能够添加新窗格(即ActiveX控件)ActiveX控件可以包含任何类型的信息,甚至可以包含另一个ActiveX控件57浏览器浏览器API的对象模型图的对象模型图58例例2-4 添加窗格(可交互)添加窗格(可交互)59浏览器节点浏览器节点60遍历浏览器节点遍历浏览器节点public void QueryModelTree() /获得文档对象 Inventor.Document doc; doc = m_inventorApplication.ActiveDocument; if(m
24、_inventorApplication.Documents.Count = 0) MessageBox.Show(There are no open documents!); /获得模型子页浏览器窗格中的顶级节点 Inventor.BrowserNode topNode; topNode = doc.BrowserPanes模型.TopNode; /从顶级节点开始,调用recurse函数 recurse(topNode);61遍历浏览器节点(续)遍历浏览器节点(续)private void recurse(Inventor.BrowserNode node) if (node.Visible
25、) MessageBox.Show(node.BrowserNodeDefinition.Label); foreach (Inventor.BrowserNode bn in node.BrowserNodes) recurse(bn); 62例例2-5创建自定义窗格并添加浏览器节点创建自定义窗格并添加浏览器节点63自定义用户界面自定义用户界面 插件程序的界面处理 firstTime标识 firstTime = true创建控件定义和命令目录。根据需要创建环境、工具栏和控件。firstTime = false仅创建控件定义和命令目录。Autodesk Inventor会根据需要激活第一次创建
26、的控件、工具栏和环境对象,并建立它们之间的关联。64版本版本 Version 插件维护的Long类型的注册项public const int Version = 1; 在Autodesk Inventor 2008中,通过“AssemblyInfo.cs”文件的如下代码可以修改插件的版本号:assembly: AssemblyVersion(1.0.*) 插件卸载 Deactivation事件 删除ControlDefinition CLSID被Inventor保留下来,以便下次重新加载插件时建立界面控件与ControlDefinition的关联65练习练习 2(1)ButtonDefinit
27、ion对象需要使用_对象的AddButtonDefinition方法来创建。A. ControlsB. CommandBarC. ControlDefinitionsD. ControlDefinition(2)判断题(正确的在括号内画“”,错误的画“”)( )一个ButtonDefinition对象可以被多个按钮控件引用。( ) CommandBarControl的概念即包括ControlDefinition 对象也包括CommandBar 对象。( )在命令栏中既可以添加菜单也可以添加按钮。( )自定义的浏览器窗格既可以是ActiveX控件,也可以是普通的控件。(3)实际完成本章中的范例,
28、掌握Autodesk Inventor各种界面元素的定制方法。66文档和属性文档和属性 Documents 对象 PropertySets、PropertySet和Property对象的获得和使用方法。 AttributeSets、AttributeSet和Attribute对象的关系和使用方法。 AttributeManager对象的获得和使用方法。67Documents对象对象文档子类型文档子类型 Inventor对不同的数据类型,有唯一对应的文档类型 零件(*.ipt) 部件(*.iam) 工程图(*.idw) 表达视图(*.ipn) 在API中,每一种文档类型都有对应的对象PartDo
29、cumentAssemblyDocumentDrawingDocumentPresentationDocumentApplicationDocumentsDocument68Documents对象对象API与用户界面对应关系与用户界面对应关系 创建新的文档 Documents.Add 打开存在的文档 Documents.Open 访问已经打开的文档 Documents.Item(遍历所有的文档,包括那些被其它文档参考并在位编辑或打开的文档。)69文档模版文档模版 FileManager 对象的GetTemplateFile方法可以得到任何默认的模版文件的路径GetTemplateFile(Do
30、cumentType As DocumentTypeEnum,SystemOfMeasure As SystemOfMeasureEnum = kDefaultSystemOfMeasure, DraftingStandard As DraftingStandardEnum = kDefault_DraftingStandard,DocumentSubType) As StringApplicationFileManager70文档操作初显身手文档操作初显身手Public Sub OpenDoc() 打开一个指定的文档打开一个指定的文档Dim oDoc As DocumentSet oDoc
31、= ThisApplication.Documents.Open(C:TempPart1.ipt)End SubPublic Sub CreateDoc() 用指定的文档模版创建一个文档用指定的文档模版创建一个文档 Dim oDoc As PartDocument Set oDoc = ThisApplication.Documents.Add(kPartDocumentObject, _ ThisApplication.FileManager.GetTemplateFile(kPartDocumentObject), _ True)End SubPublic Sub CreateDoc2()
32、 用缺省的模版创建一个文档用缺省的模版创建一个文档 Dim oDoc As PartDocument Set oDoc = ThisApplication.Documents.Add(kPartDocumentObject, ,True) End Sub71保存文档保存文档 如果文档第一次被保存,应该用SaveAs方法,并将SaveCopyAs 标志设为False Dim oDoc As PartDocument Set oDoc = ThisApplication.Documents.Add(kPartDocumentObject) Call oDoc.SaveAs(C:TempSaveTe
33、st.ipt, False) 如果文档已经被保存过了,你可以用Save或者SaveAs方法。如果用SaveAs方法,将SaveCopyAs标志设为True Call oDoc.Save Call oDoc.SaveAs(C:TempSaveTest2.ipt, True)72关闭文档关闭文档 Document.Close(SkipSave As Boolean = False) SkipSave=False可以抑制“询问文件是否保留”对话框,迫使文件不保留而关闭 如果你将某个文件作为模版打开,修改了它,然后把它另存为一个新的文件。用这种方式,你可以关闭原来的文件而无须保存修改。73 iProp
34、erties 代表文档特性 用户可以在“自定义”(“Custom“)页创建自定义的特性 可以用 Inventor API,也可以用学徒服务器(Apprentice)API获取/修改文件特性iProperties74 Dirty DisplayName Name Parent PropId Type Value Properties Delete Methods Property Count Dirty DisplayName InternalName Item ItemByPropId Name Parent Type Properties Add Delete Methods Propert
35、ySet Count Dirty Item Parent Type Properties Add FlushToFile RefreshFromFile Methods PropertySets PropertySets Properties Document iPropertiesProperty Sets 各种特性组合在特性集集合对象(PropertySets)中 PropertySets对象具有支持遍历和访问所有的特性集对象的方法75API访问文档特性访问文档特性 Inventor 中的API 学徒中的API76特性对象模型图特性对象模型图77获取获取PropertySets集合集合Di
36、m oPropSets As PropertySetsSet oPropSets = ThisApplication.ActiveDocument.PropertySets78 Dirty DisplayName Name Parent PropId Type Value Properties Delete Methods Property Count Dirty DisplayName InternalName Item ItemByPropId Name Parent Type Properties Add Delete Methods PropertySet Count Dirty It
37、em Parent Type Properties Add FlushToFile RefreshFromFile Methods PropertySets PropertySets Properties Document Property是名-值匹配 Property 对象的识别: ID (唯一) Name (唯一) DisplayName (可能变化)iPropertiesProperty79Inventor中预定义的特性集及其内部名中预定义的特性集及其内部名特性集特性集内部名内部名Inventor 概要信息F85E0-4FF9-1068-AB91-08002B27B3D9Inventor
38、 文档概要信息D5CDD502-2E-101B-9397-08002B2CF9AE设计跟踪特性32853F0F-3444-11D1-9E93-0060B03C1CA6用户自定义的特性D5CDD505-2E-101B-9397-08002B2CF9AE80 Property值的类型是Variants.支持下列数据类型: Integer, Long, Double, String, Date, Boolean, Byte, Object and arrays 在Object Browser中可以找到特性特性集的InternalNames,也可以在SDKIncludePropFMTIDs.h文件中找
39、到 特性对象的ID在各种与特性关联的枚举中可以找到,如PropertiesForDocSummaryInformationEnum(文档摘要)iProperties81获得特性集获得特性集Dim oMyPropSet As PropertySetSet omyPropSet = propSets设计跟踪特性;Dim oMyPropSet1 As PropertySetSet oMyPropSet1 = propSets32853F0F-3444-11d1-9E93-0060B03C1CA6;82访问特性集中的对象访问特性集中的对象foreach(Property prop in propSet
40、) /获得特性名 String name; name = prop.Name; /获得特性值 object value; value = prop.Value; /获得特性的Id long propID; propID = prop.PropId; 83iProperties创建创建特性特性 PropertySets.Add(Name As String, InternalName) As PropertySet Name和InternalName必须是唯一的 添加一个新的特性集对象到特性集集合(PropertySets)中 PropertySet.Add(PropValue, Name, P
41、ropId) As Property Inventor允许在新建的特性集或者自定义的特性集中添加特性,但是不允许向标准的特性集中添加属性 Name和PropId在该特性集中必须是唯一的 Property Set和Property能被创建为隐藏的 只要把它的名字的第一个字符设为下划线“_”。这样,它就不会被遍历到。它仍然可以通过传递完整的名字访问到84创建新特性集和特性对象创建新特性集和特性对象/添加新PropertySet对象PropertySet newPropSet;newPropSet = propSets.Add(New PropertySet, null); /在新PropertyS
42、et对象中添加新特性newPropSet.Add(A Value, New Property, 2);85特性集的显示名和内部名特性集的显示名和内部名/ID 唯一 缺省可自动创建 1 ID 255 86保存特性保存特性 在Inventor API中, 保存文档时会自动保存特性的修改 在学徒服务器中(Apprentice),还可以用特性集集合对象的FlushToFile方法保存 - Inventor API不支持该方法。Dim oApprentice As ApprenticeServerComponentSet oApprentice = New ApprenticeServerCompone
43、ntDim oDoc As ApprenticeServerDocumentSet oDoc = oApprentice.Open(C:TempPart.ipt)oDoc.PropertySets.Item(Design Tracking Properties).Item(Designer).Value = Fred AstairoDoc.PropertySets.FlushToFile 87改变特性改变特性Dim oDoc As PartDocumentSet oDoc = Thisapplication.ActiveDocument Access a particular property
44、 set. In this case we access design tracking properties set. Accessing the same property set by using the name is not dependable because the display name can be localized, so the internal name is preferred.Dim oDTProps As PropertySetSet oDTProps = oDoc.PropertySets.Item(32853F0F-3444-11d1-9E93-0060B
45、03C1CA6) Get a specific property, in this case the designer property. You can also use the name, but this has the same problem that the name can be localized. Please check PropertiesForDesignTrackingPropertiesEnum for the PropIdDim oDesignerProp As PropertySet oDesignerProp = oDTProps.ItemByPropId(k
46、DesignerDesignTrackingProperties) Show the name and value.Debug.Print Old & oDesignerProp.Name & = & oDesignerProp.Value Change the designer name.oDesignerProp.Value = Barbara Han”88删除第三方创建的特性删除第三方创建的特性/声明PropertySet对象PropertySet propSet; /使用名称获得PropertySet对象propSet = propSetsNew Propert
47、ySet; /遍历集合中的特性并删除foreach(Property prop in propSet) prop.Delete(); /删除PropertySet对象propSet.Delete();89属性属性(Attributes)和属性集和属性集(AttributeSets) 为对象附加指定的数据 一个对象可以包含任意多个AttributeSets,而每个AttributeSet又可以包含任意多个Attributes Inventor用户界面中没有直观地操作Attributes的功能90通过通过API访问属性访问属性91创建创建AttributesSetAttributeSets att
48、ribSets;attribSets = myPart.AttributeSets; AttributeSet attribSet; if(attribSet = attribSets.Add(MyAttribSet, false) = null)attribSet = attribSetsMyAttribSet;92遍历遍历Attribute 遍历属性值 1. 特性名查找 2. 数字索引查找AttributeSets attribSets;attribSets = myPart.AttributeSets; Inventor.Attribute attrib;attrib = attribS
49、etsMyAttribSetMyAttrib; MessageBox.Show(attrib.Value.ToString();93删除属性删除属性可以直接删除属性和属性集,但一般的做法是在删除属性集之前先检查其中是否有包含的属性。如果属性集中包含了属性,应该在删除属性集之前先删除这些属性。编程人员应该确保安全地删除属性和属性集。AttributeSets attribSets;attribSets = myPart.AttributeSets; if(attribSets.get_NameIsUsed(MyAttribSet) Inventor.Attribute attrib; attri
50、b = attribSetsMyAttribSetMyAttrib; attrib.Delete(); attribSetsMyAttribSet.Delete();94AttributeManager对象对象 通过文档对象的AttributeManager属性获取 通配符查找(速度快) 可以使用属性名称或者属性值的部分字符串来查找属性 OpenAttributeSets AttributeSetsEnumerator AttributeSet对象的链表95例例3-1 查找查找AttributeSet 在面对象中查找名为“Test”的AttributeSet96练习练习 3(1)关于特性集的正
51、确描述是_。A. 预定义Property的特性名和特性值都不能被修改B. 预定义Property的特性值可以被修改,但特性名不能被修改C. 自定义Property的内部名可以被修改D. 自定义Property的特性名和特性值都能被修改(2)可以直接从文档获得的对象有_A. PropertySets和AttributeSetsB. AttributeSets和AttributeManagerC. PropertySets和AttributeManagerD. PropertySets和PropertySet97练习练习 3 (续)(续)(3)删除属性的正确方法是_A. 先删除属性再删除属性集B.
52、 先删除属性集再删除属性C. 直接删除所有属性D. 直接删除属性集(4)判断题(正确的在括号内画“”,错误的画“”)( )通过API可以在Inventor的标准特性集中添加新特性。( )PropertySets是一个或多个Property 对象的集合。( )AttributeSets是由文档对象获得的。( )AttributeManager支持属性名和属性值的通配符查询。98工作特征(工作特征(WorkPoint,WorkAxis,WorkPlane) 所有的工作特征都有创建、查询和编辑功能 除了固定的工作点以外,API也支持固定的工作平面和固定的工作轴 在部件图中,只能用AddFixed方法
53、来创建特征; 装配约束用于控制工作特征的位置PartComponentDefinitionWorkAxisWorkAxesWorkPlaneWorkPlanesWorkPointWorkPoints99工作特征工作特征API的作用的作用 工作特征集合对象(WorkPoints、WorkAxes、WorkPlanes)是不会为空的。缺省情况下,每个集合对象都分别包含了它们的基准点、基准轴或基准平面。例如,WorkAxes集合对象总是会依次包含X、Y、Z三个基本轴对象。 如果该工作特征不是作为构造几何图形的基础,那么这个新的名称还会显示在Inventor浏览器中100工作点、工作轴和工作平面的对象
54、模型图工作点、工作轴和工作平面的对象模型图101创建工作点创建工作点PartDocument partDoc;partDoc = (PartDocument)inventorApplication.ActiveDocument; PartComponentDefinition partCompDef;partCompDef = partDoc.ComponentDefinition; TransientGeometry trans;trans = inventorApplication.TransientGeometry; Point pnt;pnt = trans.CreatePoint(2
55、, 3, 4); WorkPoint workPoint1;workPoint1 = partCompDef.WorkPoints.AddFixed(pnt, false);102创建工作轴创建工作轴WorkPoint workPoint2;pnt = trans.CreatePoint(0, 0, 0);workPoint2 = partCompDef.WorkPoints.AddFixed(pnt, false); WorkAxis workAxis;workAxis = partCompDef.WorkAxes.AddByTwoPoints(workPoint1, workPoint2,
56、 false);103创建工作平面创建工作平面WorkPlane workPlane;workPlane = partCompDef.WorkPlanes.AddByLinePlaneAndAngle(workAxis, partCompDef.WorkPlanesYZ Plane, 45, false); workPlane.Name = MyFirstWorkPlane;104练习练习 4(1)判断题(正确的在括号内画“”,错误的画“”)( )工作特征集合对象是通过文档对象获得的。( )工作特征集合对象在缺省情况下为空。( )通过API创建的工作特征不会显示在浏览器中。(2)使用API创建
57、通过点(4,3,3)且与Y轴平行的工作轴,以及通过该工作轴和原点的工作平面。105零件建模零件建模 草图及草图图元、轮廓的创建和使用方法。 草图约束的创建和使用方法。 零件特征的创建方法。 BRep的概念和查询方法。106零件文档中的草图零件文档中的草图107用户界面草图和用户界面草图和API草图区别草图区别 使用API时没有约束的推断,程序员必须精确地定义每个约束和坐标。 API草图提供了一些底层草图细节 这些细节在用户界面中是被隐藏了的。被隐藏的最主要特征是所有的草图图元实际上是依赖于草图点的。草图点是唯一可以单独存在的草图图元,任何其他图元都必须依赖草图点来定义它们的位置,草图图元通过重
58、合约束绑定到草图点上 用户界面中隐藏了大多数的草图点108Transient Geometry 辅助类型的对象,具有数学和几何处理功能 也是操作图形对象的方法 可以创建2D 对象, 如点、向量、矩阵,也可以处理这些对象的运算 不可见,没有对应的图形组件,也没有工作特征或草图点 零件文档里面,草图大量的需要用点对象,部件图中也经常需要用到矩阵和矩阵转换109TransientGeometry数学对象数学对象 你可以用TransientGeometry对象来创建一些数学对象,一些函数的参数就是这些数学对象,你也可以用它们来处理一些纯粹的数学运算 Vector, Vector2d UnitVecto
59、r, UnitVector2d Box, Box2d Matrix, Matrix2d110Vectors Vectors定义了一个方向和大小 Vector能表示零件的移动,如下图所示 UnitVector定义了方向;它的大小总是1111Vector Methods 两个向量的比较方法: AngleTo IsEqualTo IsParallelTo IsPerpendicularTo 向量的操作:AddVector, Normalize, SubtractVector, TransformBy 向量分析: CrossProduct 定义一个新的向量,该向量垂直于由两个已知向量确定的平面112B
60、oxes 有两个点,代表Box的最小坐标点和最大坐标点 大量运用于 bounding boxes. Inventors bounding boxes总是与坐标轴平行的113矩阵(矩阵(matrix) Matrix是一个矩形数组 3-D matrix是一个4x4矩形数组 2-D matrix 是一个 3x3矩形数组 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1114Matrix与坐标系与坐标系 在Inventor中, 你可以从两个角度来看一个矩阵: 矩阵定义了一个坐标系 矩阵定义了转换 矩阵如何定义一个坐标系?115Matrix与坐标系(续)与坐标系(续) 一个“归一化”(“Ident
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- java后端面试题及答案一
- 2025年执业药师考试中药功效卷全真模拟试题及答案解析
- 阿里巴巴java真实面试题及答案
- 医学护理课件
- 识别技术面试题及答案
- java源码阅读面试题及答案
- 联奕科技java面试题及答案
- 极兔快运java面试题及答案
- java银行开发面试题及答案
- 联新移动医疗java面试题及答案
- 2025年临床药学科工作总结与新策略计划
- 焊工(初级)实操理论考试1000题及答案
- 《人工智能在财务稽查领域中的应用》
- 校区无人机航测方案设计
- 统编版五年级语文水浒传整本书阅读交流课 公开课一等奖创新教学设计
- 2025年小学生入队的试题及答案
- 武汉2025届高中毕业生二月调研考试数学试题及答案
- 工程造价咨询项目委托合同
- 基于嵌入式STM32模块的多功能电子秤设计16000字论文
- 四川省南充市2024年中考数学一模考试试卷(含答案)
- 科技创新在职业教育实习实训中的应用
评论
0/150
提交评论