Windchill二次开发常用API

合集下载

solidworks api二次开发实例详解 -回复

solidworks api二次开发实例详解 -回复

solidworks api二次开发实例详解-回复如何进行SolidWorks API二次开发实例的详解SolidWorks是一款常见的三维计算机辅助设计(CAD)软件,用于创建和编辑各种机械设计、装配和零件模型等。

它具有功能强大的应用编程接口(API),允许开发人员自定义和扩展软件的功能。

在本文中,我们将通过一个实例来详细介绍SolidWorks API的二次开发过程。

1. 环境设置首先,我们需要确保已经正确设置SolidWorks的开发环境。

在SolidWorks安装目录中,找到并运行"swvisualizeapi.exe"文件,按照提示安装Visualize API。

接下来,打开SolidWorks软件,点击"工具"->"宏"->"编辑",在"选项"对话框的"VBA环境"选项卡中,勾选"显示工具栏"和"显示添加-Ins",以便在开发过程中方便调试和查看结果。

2. 创建新的宏在SolidWorks中点击"工具"->"宏"->"新建"来创建一个新的宏。

在该宏中,我们将使用VBA代码进行二次开发。

首先,我们需要定义一个模块(Module)来存储我们的代码。

在"Macros in"下拉菜单中选择"NewMacros",然后点击"创建",在弹出的对话框中命名新模块为"API_Example"。

接下来,在模块中输入以下代码:vbaOption ExplicitSub API_Example()' 在此处编写您的代码End Sub接下来,我们将在此处编写我们的代码。

3. 加载程序集在编写SolidWorks API代码之前,我们需要加载SolidWorks程序集。

solidworksapi二次开发实例详解 -回复

solidworksapi二次开发实例详解 -回复

solidworksapi二次开发实例详解-回复Solidworks API二次开发实例详解Solidworks是一款广泛应用于机械设计和3D建模的软件,其强大的API功能使用户能够进行二次开发,实现更高效、更个性化的工作流程。

本文将以Solidworks API二次开发实例为主题,为您详细介绍该过程的每一步骤。

第一步:API的基础知识和环境准备在进行Solidworks API二次开发之前,需要先掌握API的基础知识,了解其用途和功能。

同时,您还需要准备一个Solidworks软件的开发环境,包括安装Solidworks、安装API软件开发包(SDK)以及设置开发工具。

第二步:创建API应用程序在开始二次开发之前,我们需要创建一个API应用程序。

可以使用各种编程语言来开发Solidworks API应用程序,如C#、、C++等。

这里以C#语言为例。

首先,创建一个新的项目并引用Solidworks API 库。

第三步:初始化Solidworks在API应用程序中初始化Solidworks,以便可以与Solidworks建立连接并执行各种操作。

这可以通过以下代码实现:SldWorks swApp;ModelDoc2 swModel;swApp =(SldWorks)Marshal.GetActiveObject("SldWorks.Application"); swModel = (ModelDoc2)swApp.ActiveDoc;首先,我们创建了一个SldWorks对象并通过GetActiveObject()方法获取了当前激活的Solidworks应用程序。

然后,我们获取了当前活动文档的ModelDoc2对象。

第四步:访问Solidworks对象模型在Solidworks API中,所有的对象和操作都是基于对象模型的。

通过访问和操作对象模型,我们可以实现各种功能。

例如,我们可以访问零件、装配体、图纸等对象,以及它们的属性和方法。

WindChill二次开发的说明文档

WindChill二次开发的说明文档

Suggest Like Google Suggest User Picker Part Number (Tabular Input)
Full Name:
Kni
Find…
Knight, Jenny (JKnight@) Knight, Jonathon (JKnight@ ) Knight, Thomas (TKnight@) Knight, William (Willy.Knight@) Knitter, Monica (Monica.Knitter@)
15
PTC CONFIDENTIAL
What is AJAX
AJAX is
A scripting technique for silently loading new data from the server.
commonly use . . . XMLHttpRequest object requires a DOM Scripting component to embed the received data in the document.
5
PTC CONFIDENTIAL
JCA Update – AJAX
Infrastructure use of AJAX to date
Add row to table – no page refresh Partial page refreshes on single row update/delete e.g. checkin Partial page refresh on table view change Wizard speed & usability – background download of pages Part look up – auto complete Dynamic menus

solidworksapi二次开发实例详解

solidworksapi二次开发实例详解

SolidWorks API二次开发是指通过SolidWorks提供的API接口来实现对SolidWorks软件的二次开发功能。

这种开发方式可以使用户根据自身需求定制功能,提高工作效率,丰富软件的应用场景。

本文将通过详细的实例来介绍SolidWorks API二次开发的相关内容,帮助读者更好地理解和应用这一技术。

一、SolidWorks API介绍SolidWorks是一款流行的三维CAD软件,广泛应用于机械设计、工程设计、汽车工业等领域。

SolidWorks提供了丰富的API接口,允许用户通过编程的方式对软件进行定制和扩展。

通过API接口,用户可以实现诸如模型创建、几何操作、特征编辑、文件处理等功能,从而满足特定的设计和工程需求。

二、SolidWorks API二次开发实例下面将以几个实际开发场景为例,介绍SolidWorks API二次开发的具体实现方法和技巧。

1. 模型创建与编辑在SolidWorks中,用户可以通过API接口实现对模型的创建和编辑。

可以通过编程的方式创建各种基本几何体,如立方体、圆柱体、球体等。

也可以对已有的模型进行编辑和修改,包括几何参数的调整、特征的添加和删除等操作。

这为用户提供了更灵活的设计手段,使其能够更好地应对复杂的设计需求。

2. 数据导入与导出SolidWorks API还支持对外部数据的导入与导出。

用户可以通过编程的方式将其他格式的CAD文件导入到SolidWorks中,并在其中进行进一步的编辑和修改。

同样地,用户也可以将SolidWorks模型导出为其他格式的文件,以满足不同系统和软件的需求。

3. 自动化设计与分析利用SolidWorks API,用户可以实现一些自动化的设计和分析功能。

可以通过编程来实现一些复杂的几何操作,从而自动化地生成某类特定的设计。

也可以实现对模型的自动化分析,提取其中的某些关键信息,并进行进一步的处理和应用。

4. 用户界面定制除了对模型进行操作外,SolidWorks API还支持用户界面的定制。

Windchill二次开发常用API说课讲解

Windchill二次开发常用API说课讲解

W i n d c h i l l二次开发常用A P I1.1.根据零件名称/编码得到该零件2.wt.clients.prodmgmt.WTPartHelper.findPartByName(name) ;3.wt.clients.prodmgmt.WTPartHelper.findPartByNumber(number);4.2.根据WTpart得到WTparMaster5.WtPart wtpart;6.WTPartMaster wtmaster=(WTPartMster)part.getMaster();7.3.获取codebase下配置文件wt.properties属性信息8.WTProperties wtproperties = WTProperties.getLocalProperties();9.String wthome = wtproperties.getProperty("wt.home", "");//codebase的文件夹路径10.4.获取part被借用的所有父部件11.QueryResult qr=wt.part.WTPartHelper.service.getUsedByWTParts(WTPartMsterwtMaster);12.注:此方法得到的结果为该part被使用情况的全部父部件,包括了Design视图及Manufacturing视图更包括了父部件使用part的所有修订版本,打印出来可以看到会有相同的部件编号,不同的修订版本.13.5.根据OID 获取Wtpart14.wt.fc.WTReference partRef = newwt.fc.ReferenceFactory().getReference( oid );15.WTPart wtpart=(WTPart)partRef;16.6.得到零件最新版本17.WTPart wtpart= (WTPart)VersionControlHelper.getLatestIteration(part);18.7.通过过滤得到零件最新版本19.QuerySpec querysearch = new QuerySpec(WTPartMaster.class);20.//查询所有的WTPartMaster21.QueryResult queryresult =PersistenceHelper.manager.find(querysearch);testConfigSpec latestconfigspec = newLatestConfigSpec();23.//根据WTPartMaster查询所有最新版本的零部件24.QueryResult allWTPart =ConfigHelper.service.filteredIterationsOf(queryresult,latestc onfigspec)25.8.查询某用户某段时间范围内创建的零件26.QuerySpec qs = new QuerySpec(WTPart.class);27.qs.appendSearchCondition(newSearchCondition(WTPart.class,WTPart.CREATE_TIMESTAMP, true,new AttributeRange(begintime, endtime)));//删选条件时间范围内28.qs.appendAnd();//一定要加上不然下一个条件不能删选29.qs.appendSearchCondition(new SearchCondition(WTPart.class,30."iterationInfo.creator.key",SearchCondition.EQUAL,PersistenceHelper.getObjectIdentifier(n ame)));//删选条件用户31.QueryResult qr = PersistenceHelper.manager.find(qs);32.//今后持续更新if (enumUser.hasMoreElements())user = (WTUser) enumUser.nextElement();}if (user == null) {throw new WTException("系统中不存在用户名为'" + name + "'的用户!");}return user;}}10.windchill 中查询,高级查询,基本查询QuerySpec qs = new QuerySpec();//构造Int index = qs.appendClassList(WTPart.class,true);//添加查询类型,获取类型索引,第2个参数表示“要查询的类型、表”WhereExpression where = new SearchCondition(WTPart.class, WTPart.xx, “=”, xx);//泛型在WC API中的使用//获取查询条件数目If(qs.getConditionCount()>0 && qs.getWhere().endsWith(“")){qs.appendAnd();}//添加查询条件qs.appendWhere(where, new int[]{index});//** 以下是联合查询的API范例。

Windchill_API_培训

Windchill_API_培训
PersistenceHelper.manager.find(qs); //过滤出最新小版本 LatestConfigSpec lcs = new LatestConfigSpec(); qr = lcs.process(qr);
习题1
• 1、查询部件 输入:部件编码 输出:各小版本对象的集合
• 2、接上题,添加条件:只得到最新小版本 • 3、查询部件的参考文档
输入:进程对象 输出:进程目前所在活动节点的名称
• 3、接上题,查询进程上下文
输入:进程对象 输出:进程上下文
5、IBA操作
• IBA=Instance Based Attribute • 有现成的IBAUtility供使用 • 注意两点:
– 1)为每个对象构造它自己的IBAUtility对象 – 2)set更新属性后,需要
ProcessData pPdata = wfProcess.getContext();
//获取变量 WfVariable xx = pData.getVariable(“xx”);
习题4
• 1、创建一个问题报告,找到它的进程
输入:问题报告的编码 输出:相关进程对象
• 2、接上题,查询当前活动节点
qs.appendJoin(linkIndex, xxLink.RoleA, index_A);
qs.appendJoin(linkIndex, xxLink.RoleB, index_B);
//添加“生命周期”查询条件 LifeCycleConfigSpec lcsp = new
LifeCycleConfigSpec(); lcsp.setLifeCycleState(State.toState(state)); qs = lcsp.appendSearchCriteria(qs); //执行查询 QueryResult qr =

Windchill常用开发大全

Windchill常用开发大全
选择菜单Units.Control docs,保存为docs.cat
模型扩展(续)
生成系统文件,选中docs包
模型扩展(续)
生成系统文件.mData和EleadDocs.java文件
在src目录下自动生成包路径和文件 docs.mData和 EleadDocs.java
模型扩展(续)
系统会自动生成SQL【WT_HOME】 \db\sql3\ext\elead\docs
– 不预留属性
对象建模,不预留属性。对于已有对象的预留属性,因属性名称业务 含义,也不允许使用。历史模型已预留的属性不做要求。 例如:不再使用以前建模留下的reserv1、reserv2等预留属性
设计规范
– 关联关系
两个对象关联时,需要使用模型的关联关系。尽量不要采用建模为两 个独立对象,在一个对象的属性中记录另一个对象的某个标志属性的 方式。 例如: 错误的建模方法:CBBCounter类有一个属性cbbNumber,记录CBB 的编码。 正确的建模方法:引入一个Link对象,记录CBBCounter类和 WTPartMaster类的关系。
模型扩展(续)
测试代码
public void test(){ try{ Person p = Person.newPerson(); p.setName("111"); p.setTitle("222"); p.setAge(1111); p = (Person) PersistenceHelper.manager.save(p); WTPart part = getPartByNumber("D3_0000000064"); if(part==null){ Debug.P("part is null"); return; } PersonLink link = PersonLink.newPersonLink(part, p); link = (PersonLink) PersistenceHelper.manager.save(link); if(link==null){ Debug.P("link is null"); return; } WTPart part1 = link.getUse(); Person p1 = link.getUsed(); if(part1==null){ Debug.P("part1 is null"); }else{ Debug.P("part1 is "+part1.getNumber()); } if(p1==null){ Debug.P("p1 is null"); }else{ Debug.P("p1 is "+p1.getName()); } }catch(Exception e){ e.printStackTrace(); } }

windapi手册

windapi手册

windapi手册摘要:1.引言2.WindAPI 的概述3.WindAPI 的使用方法4.WindAPI 的功能模块5.WindAPI 的应用场景6.WindAPI 的示例代码7.WindAPI 的常见问题及解决方案8.总结正文:WindAPI 是一款非常实用的编程接口,它为开发者提供了一整套完善的Windows 操作系统API 接口,使得开发者可以更加轻松地编写Windows 应用程序。

本文将为您详细介绍WindAPI 的使用方法以及它的功能模块,帮助您更好地理解和使用WindAPI。

## 2.WindAPI 的概述WindAPI 是基于Windows API 的二次开发接口,它将复杂的Windows API 封装成简单的函数调用,使得开发者可以更加方便地使用Windows API。

WindAPI 提供了丰富的功能模块,涵盖了文件操作、系统管理、网络通信等多个领域,可以大大提高开发者的开发效率。

## 3.WindAPI 的使用方法使用WindAPI 非常简单,首先需要下载并安装WindAPI 的SDK,然后在自己的项目中引入WindAPI 的库文件即可。

接下来,您只需要调用WindAPI 提供的函数,就可以实现对应的功能。

## 4.WindAPI 的功能模块WindAPI 提供了丰富的功能模块,包括以下几个方面:- 文件操作:提供了一系列文件操作函数,包括文件读写、文件查找、文件属性等。

- 系统管理:提供了系统信息查询、进程管理、注册表操作等功能。

- 网络通信:提供了网络套接字、HTTP 请求等网络通信功能。

- 窗口操作:提供了窗口创建、消息处理、控件操作等功能。

- 其他功能:还包括时间操作、加密解密、图像处理等多个方面的功能。

## 5.WindAPI 的应用场景WindAPI 广泛应用于各种Windows 应用程序的开发中,例如:- 文件管理器:使用WindAPI 的文件操作函数实现文件管理功能。

Windchill常用开发大全(整理).pptx

Windchill常用开发大全(整理).pptx
生成.ser文件【WT_HOME】\codebase\ext\elead\docs 执行SQL语句
– 进入到 Oracle SQL*Plus路径,执行命令:
– 操作完成之后,即可使用EleadDocs对象了!
模型扩展(续)
模型扩展(续)
完整的例子说明
– 在windchill/src/目录下建立一个helloWorld目录,在 windchill/codebase/目录下也建立一个helloWorld目录
(除非使用了系统原有的Protected Method,这种用法要尽量避免).
设计规范
设计规范之建模
– 仅对持久化对象建模
只有数据需要保存到数据库中的持久化业务对象才允许进行建模。其 余的操作类(例如:Processor、Delegate、Helper类等) 不被允许进行建模。
– 模型命名规则
对象的名称、属性名称、方法名称应该满足命名规则,同Java编码规 范的类命名、变量命名和方法命名。 例如: 类名 TRApplyDoc 属性名trPhase 方法名getFormData 说明:历史的模型如果要更改将要做数据迁移。因此只要求对新建立 的模型,历史模型不做要求。
– 工作流中的表达式,具体实现,都写在WfUtil中,只在工作流中调用WfUtil中的方法。 WfUtil中的方法注释中,需要说明该段代码,将在那些workflow中被调用。
– 系统OOTB配置部分通过XML配置文件交付。方便新系统可以直接通过LoadFileSet导入配 置。
– 系统内部值,例如IBA,全部由英文字母和数字组成,不能包含特殊字符。 – 禁止反编译系统OOTB的Class文件,然后在此基础上修改做客制,导致系统无法升级。 – 需要对出厂文件(HTML template等)修改时,需要保存原出厂文件的备份在

solidworks api 二次开发实例详解

solidworks api 二次开发实例详解

标题:深度解析SolidWorks API二次开发实例在工程设计领域,SolidWorks是一个广泛使用的三维CAD软件,其强大的API功能使得二次开发变得异常便捷。

本文将深入探讨SolidWorks API二次开发的实例,以帮助读者更深入地理解和运用这一功能。

1. 理解SolidWorks API的概念和作用让我们简要回顾一下SolidWorks API的概念和作用。

API是应用程序接口的缩写,它允许软件程序之间或不同组件之间进行互动和通讯。

SolidWorks API作为一种编程接口,可以被用来自动化和定制SolidWorks软件的功能,使得用户可以通过编程实现更加高效和个性化的工程设计和分析。

2. 实例分析:创建自定义特征现在,让我们通过一个具体的实例来详细解析SolidWorks API的二次开发。

假设我们需要创建一个自定义特征,以实现在设计中快速生成某种特定的结构。

我们需要通过SolidWorks API获取到当前的活动文档,然后通过编程方式创建新的特征。

在这个过程中,我们需要考虑到各种参数和属性的设置,比如特征的类型、尺寸、位置等。

通过API的函数和方法,我们可以对这些属性进行准确的设置和调整,从而实现对特征的定制化。

我们可以将这个自定义特征保存下来,以备将来在其他设计中复用。

3. 实例分析:批量处理文件另一个常见的应用场景是批量处理文件,这在实际工程项目中非常常见。

通过SolidWorks API,我们可以编写脚本程序,实现对多个文件的批量操作,比如批量导出文件、批量修改属性、批量创建装配等。

这种批量处理的功能可以极大地提高工作效率,尤其是对于大批量的工程设计任务。

在编程实现过程中,我们需要使用API提供的文件遍历和操作函数,同时要考虑到异常处理和错误处理,以确保脚本程序的稳定性和可靠性。

通过合理的设计和编码,我们可以创建出高效、灵活并且易于维护的批量处理脚本。

4. 个人观点和总结SolidWorks API的二次开发为工程师和设计者提供了强大的定制化能力。

Windchill 常用API浅析

Windchill 常用API浅析

• 2.4 Get latest version from a master
• //返回的第一个就是最新
• QueryResult qr = VersionControlHelper.service.allVersionsOf(master);
• while (qr.hasMoreElements()) {
• Gets the "latest" iteration in the same branch as the given one. A check to see if the given iteration is the latest one is not made since it could be stale. Passing true for includeMarkedForDelete will attempt getting the latest iteratation even if marked for delete.
2.3 Get object reference or object referencelink
wt.vc.struct.StructHelper.service.navigateRefere nces(obj, objReferenceLink.class, Boolean)
Navigates the reference role of the IteratedReferenceLink, returning a QueryResult of IteratedRerenceeLinks if the value of onlyOtherSide if “false or iterations if the value is “true”.

Windchill常用开发大全.ppt

Windchill常用开发大全.ppt

Rose模型介绍
打开Rose模型,点击FileOpen
选择src\wt\WTdesigner.mdl
Rose模型使用
点击【是】,系统会加载
其中Logical View是系统核心 逻辑显示,其中3rd是Windchilll 中使用了哪些Java技术模块、ext 是系统客制化扩展模型目录、wnc是Windchill核心业务逻辑组成
– 不预留属性
对象建模,不预留属性。对于已有对象的预留属性,因属性名称业务 含义,也不允许使用。历史模型已预留的属性不做要求。 例如:不再使用以前建模留下的reserv1、reserv2等预留属性
设计规范
– 关联关系
两个对象关联时,需要使用模型的关联关系。尽量不要采用建模为两 个独立对象,在一个对象的属性中记录另一个对象的某个标志属性的 方式。 例如: 错误的建模方法:CBBCounter类有一个属性cbbNumber,记录CBB 的编码。 正确的建模方法:引入一个Link对象,记录CBBCounter类和 WTPartMaster类的关系。
设计规范
– 字段扩展
对于对象的属性,一般情况下采用默认长度。建模时要求考虑属性长 度是否符合要求,如果需要加大长度,在模型中设置相应的值即可。
– 选择父类
对于建模,尽量继承底层的Windchill类,例如:Managed\Item等,继 承上层的具有实际业务含义的Windchill类(例如:WTPart、 WTDocument)时,在业务上符合“是一个(As -is)”的含义,例如: EleadPart是一个WTPart
安装完成之后,load注册文件 rational_perm.dat.txt
进入到{WT_HOME}\roseAddIn,将 VirtualPathMap.AddIn.reg和Windchill.AddIn.reg文件中 的路径修订为个人本机环境的路径并注册

Windchill二次开发

Windchill二次开发

Windchill 二次开发中常用的API方法# 1.根据零件名称/编码得到该零件# wt.clients.prodmgmt.WTPartHelper.findPartByName(name) ;# wt.clients.prodmgmt.WTPartHelper.findPartByNumber(number);# 2.根据WTpart得到WTparMaster# WtPart wtpart;# WTPartMaster wtmaster=(WTPartMster)part.getMaster();# 3.获取codebase下配置文件wt.properties属性信息# WTProperties wtproperties = WTProperties.getLocalProperties();# String wthome = wtproperties.getProperty("wt.home", ""); //codebase的文件夹路径# 4.获取part被借用的所有父部件# QueryResult qr= wt.part.WTPartHelper.service.getUsedByWTParts(WTPartMster wtMaster);# 注:此方法得到的结果为该part被使用情况的全部父部件,包括了Design视图及Manufacturing视图更包括# 了父部件使用part的所有修订版本,打印出来可以看到会有相同的部件编号,不同的修订版本.# 5. 根据OID 获取Wtpart# wt.fc.WTReference partRef = new wt.fc.ReferenceFactory().getReference( oid );# WTPart wtpart=(WTPart)partRef;# 6.得到零件最新版本# WTPart wtpart= (WTPart) VersionControlHelper.getLatestIteration(part);# 7.通过过滤得到零件最新版本# QuerySpec querysearch = new QuerySpec(WTPartMaster.class);# //查询所有的WTPartMaster# QueryResult queryresult = PersistenceHelper.manager.find(querysearch);# LatestConfigSpec latestconfigspec = new LatestConfigSpec();# //根据WTPartMaster查询所有最新版本的零部件# QueryResult allWTPart = ConfigHelper.service.filteredIterationsOf(queryresult,latestconfigspec)# 8.查询某用户某段时间范围内创建的零件# QuerySpec qs = new QuerySpec(WTPart.class);# qs.appendSearchCondition(new SearchCondition(WTPart.class,WTPart.CREATE_TIMESTAMP, true,# new AttributeRange(begintime, endtime)));//删选条件时间范围内# qs.appendAnd();//一定要加上不然下一个条件不能删选# qs.appendSearchCondition(new SearchCondition(WTPart.class,# "iterationInfo.creator.key", SearchCondition.EQUAL,PersistenceHelper.getObjectIdentifier# (name)));//删选条件用户# QueryResult qr = PersistenceHelper.manager.find(qs);# //今后持续更新public static WTUser getUserFromName(String name) throws WTException {Enumeration enumUser = OrganizationServicesHelper.manager.findUser(, name);WTUser user = null;if (enumUser.hasMoreElements())user = (WTUser) enumUser.nextElement();if (user == null) {enumUser = OrganizationServicesHelper.manager.findUser(WTUser.FULL_NAME, name);if (enumUser.hasMoreElements())user = (WTUser) enumUser.nextElement();}if (user == null) {throw new WTException("系统中不存在用户名为'" + name + "'的用户!");}return user;}}10.windchill 中查询,高级查询,基本查询QuerySpec qs = new QuerySpec();//构造Int index = qs.appendClassList(WTPart.class,true);//添加查询类型,获取类型索引,第2个参数表示“要查询的类型、表”WhereExpression where = new SearchCondition(WTPart.class, WTPart.xx, “=”, xx);//泛型在WC API中的使用//获取查询条件数目If(qs.getConditionCount()>0 && qs.getW here().endsWith(“")){qs.appendAnd();}//添加查询条件qs.appendWhere(where, new int[]{index});//** 以下是联合查询的API范例。

Windows VC MFC 函数大全(API函数)

Windows VC MFC 函数大全(API函数)

Windows API(Application Programming Interface,应用程序编程接口)函数大全1. API之位图、图标和光栅运算函数BitBlt 将一幅位图从一个设备场景复制到另一个CopyIcon 制作指定图标或鼠标指针的一个副本。

这个副本从属于发出调用的应用程序CopyImage 复制位图、图标或指针,同时在复制过程中进行一些转换工作CreateBitmap 按照规定的格式创建一幅与设备有关位图CreateBitmapIndirect 创建一幅与设备有关位图CreateCompatibleBitmap 创建一幅与设备有关位图,它与指定的设备场景兼容CreateCursor 创建一个鼠标指针CreateDIBitmap 根据一幅与设备无关的位图创建一幅与设备有关的位图CreateDIBSection 创建一个DIBSectionCreateIcon 创建一个图标CreateIconIndirect 创建一个图标DestroyCursor 清除指定的鼠标指针,并释放它占用的所有系统资源DestroyIcon 清除图标DrawIcon 在指定的位置画一个图标DrawIconEx 描绘一个图标或鼠标指针。

与DrawIcon相比,这个函数提供了更多的功能ExtractAssociatedIcon 判断一个可执行程序或DLL中是否存在图标,或是否有图标与系统注册表中指定的文件存在关联并提取之ExtractIcon 判断一个可执行文件或DLL中是否有图标存在,并将其提取出来GetBitmapBits 将来自位图的二进制位复制到一个缓冲区GetBitmapDimensionEx 取得一幅位图的宽度和高度GetDIBColorTable 从选入设备场景的DIBSection中取得颜色表信息GetDIBits 将来自一幅位图的二进制位复制到一幅与设备无关的位图里GetIconInfo 取得与图标有关的信息GetStretchBltMode 判断StretchBlt 和 StretchDIBits函数采用的伸缩模式LoadBitmap 从指定的模块或应用程序实例中载入一幅位图LoadCursor 从指定的模块或应用程序实例中载入一个鼠标指针LoadCursorFromFile 在一个指针文件或一个动画指针文件的基础上创建一个指针LoadIcon 从指定的模块或应用程序实例中载入一个图标LoadImage 载入一个位图、图标或指针MaskBlt 执行复杂的图象传输,同时进行掩模(MASK)处理PatBlt 在当前选定的刷子的基础上,用一个图案填充指定的设备场景PlgBlt 复制一幅位图,同时将其转换成一个平行四边形。

solidworks二次开发常用API函数命令

solidworks二次开发常用API函数命令

solidworks二次开发常用API函数命令SolidWorks2003二次开发基础与实例教程1. 程序语言1.1 Visual Basic1.1.1 VB缺点①没有多线程②没有实现继承和其他面向对象的特性③错误处理能力差④与其他语言集成性差2.文件操作2.1 保存和退出SW文件 P60① ModelDoc2::SaveAs4作用:用不同的名称保存文件② ModelDoc::SaveAs2作用:用新名称保存文件③ SldWorks::ExitApp2.2 查找文件所参考的其他文件ModelDoc2::GetDependencies22.3 获得与配置有关的结构存储区域 P245SW文件使用Mocrosoft structured storage(微软结构储存)存储Parasolid 体在各个流中。

Cofiguration::GeteStreamNameModelDoc2::GetConfigurationByName3.1返回草图对象P72Feature::GetSpecificFeature3.2草图对象直接添加到到SW数据库 P109① ModelDoc2::SetAddToDB//自动推理功能关闭,即关闭网格和实体自动捕捉② ModelDoc2::SetDisplayWhenAdded(False); // 关闭新增实体的实时显示③ ModelDoc2::GraphicsRedraw2 // 重画或刷新文档窗口④ ModelDoc2::SetDisplayWhenAdded(True); // 恢复默认显示3.3获得草图实体的线宽 P110① SketchSegment.Width // 工程图才支持草图实体线宽② /doc/5a17272622.html,yerOverride// 判断对象是否正在使用默认线宽3.4检查草图的有效性 P120Sketch::CheckFeatureUse3.5获得草图的永久性标识符 P139SketchSegment::GetIDSketchPoint::GetID注:草图标识由草图名称和草图ID组成草图的ID是long的有序数对(a,b)同一个SketchSegment内的每个实体拥有唯一ID3.6列出草图中的约束 P140SketchSegment::GetConstraints3.7控制曲线的精度Modeler::SetT olerances3.8修剪曲线来对其边界 P154Face2.GetTrimCurves24.1逆序遍历特征和获得与特征相关的面 P197ModelDoc2::FeatureByPositionReverse //逆序遍历特征Feature::GetFaces4.2访问特征的子特征 P71Feature::GetFirstSubFeature4.3获得特征的属性 P204Feature::NameFeature::GetNextSubFeatureParDoc::FeatureByNameFeature::GetTypeName4.4获得特征的父子关系 P200Feature::GetParentsFeature::GetChildren4.5访问拉伸凸台\基体特征 P194ExtrudeFeatureData2::AccessSelections //允许修改修改特征,并释放控制权// Feature::ModifyDefinition ExtrudeFeatureData2::ReleaseSelectionAccess //释放控制权5.1重新播放一个模型 P207FeatureManager::EditRollback //回溯棒ModelDoc2::GraphicsRedraw2 //重新绘制当前图形视区Face2::Highlight //高亮显示面对象5.2改变FeatureManagerFeatureManager::UpdateFeatureTree6.参考面或坐标系6.1获得参考平面的参数和生成参考平面 P96 (对应目录中的P88)ModelDoc2::CreatePlaneFixed2Feature::GetSpecificFeatureRefPlane::GetRefPlaneParams7.1模型是否已在编辑状态 P97 ModelDoc2::IsEditingSelf8.1检查装配中零部件中的干涉情况AssemblyDoc::T oolsCheckInterference2 8.2 更新参数AssemblyDoc::UpdateFeatureScope 8.3获得装配零件的边界P314 Component2::GetBox9.工程图9.1获得层管理对象 P105 ModelDoc::GetLayerManager()10.1弹出信息框P64 SldWorks::SendMsgT oUser SldWorks::SendMsgToUser211.1设置注释文本的长宽比P74 ModelDoc2::GetUserPreferenceTextFormatTextFormat::WidthFactorModelDoc2::SetUserPreferenceTextFormatModelDoc2::EditRebuild312系统变量12.1设置用户参数选项P92 SldWorks::SetUserPreferenceT oggle13.1获得所选项目的剖面特性 P136ModelDoc2::Extension //可获得某些特性,如区域、重心以及惯性张量13.2 SW API常量查看swconst.bas,其位于安装目录下的samples\appComm13.3 SafeArray P260 OLE:: 变量为空COM::返回S_FALSE。

Windchill二次开发常用API

Windchill二次开发常用API

Windchill二次开发常用API1.1.根据零件名称/编码得到该零件2.wt.clients.prodmgmt.WTPartHelper.findPartByName(name ) ;3.wt.clients.prodmgmt.WTPartHelper.findPartByNumber(nu mber);4.2.根据WTpart得到WTparMaster5.WtPart wtpart;6.WTPartMaster wtmaster=(WTPartMster)part.getMaster();7.3.获取codebase下配置文件wt.properties属性信息8.WTProperties wtproperties = WTProperties.getLocalProperties();9.String wthome = wtproperties.getProperty("wt.home", "");//codebase的文件夹路径10.4.获取part被借用的所有父部件11.QueryResult qr=wt.part.WTPartHelper.service.getUsedByWTParts(WTPartMs terwtMaster);12.注:此方法得到的结果为该part被使用情况的全部父部件,包括了Design视图及Manufacturing视图更包括了父部件使用part的所有修订版本,打印出来可以看到会有相同的部件编号,不同的修订版本.13.5.根据OID 获取Wtpart14.wt.fc.WTReference partRef = newwt.fc.ReferenceFactory().getReference( oid );15.WTPart wtpart=(WTPart)partRef;16.6.得到零件最新版本17.WTPart wtpart= (WTPart)VersionControlHelper.getLatestIteration(part);18.7.通过过滤得到零件最新版本19.QuerySpec querysearch = new QuerySpec(WTPartMaster.class);20.//查询所有的WTPartMaster21.QueryResult queryresult =PersistenceHelper.manager.find(querysearch);/doc/983824940.html,testConfigSpec latestconfigspec = new LatestConfigSpec();23.//根据WTPartMaster查询所有最新版本的零部件24.QueryResult allWTPart =ConfigHelper.service.filteredIterationsOf(queryresult,latestc onfigspec)25.8.查询某用户某段时间范围内创建的零件26.QuerySpec qs = new QuerySpec(WTPart.class);27.qs.appendSearchCondition(newSearchCondition(WTPart.class,WTPart.CREATE_TIMESTAMP, true, new AttributeRange(begintime, endtime)));//删选条件时间范围内28.qs.appendAnd();//一定要加上不然下一个条件不能删选29.qs.appendSearchCondition(newSearchCondition(WTPart.class,30."iterationInfo.creator.key",SearchCondition.EQUAL,PersistenceHelper.getObjectIdentifi er(name)));//删选条件用户31.QueryResult qr = PersistenceHelper.manager.find(qs);32.//今后持续更新1.根据零件名称/编码得到该零件wt.clients.prodmgmt.WTPartHelper.findPartByNamewt.clients.prodmgmt.WTPartHelper.findPartByNumb2.根据WTpart得到WTparMasterWtPart wtpart;WTPartMaster wtmaster=(WTPartMster)part.getMaste3.获取codebase下配置文件wt.properties属性信息WTProperties wtproperties = WTProperties.getLocaString wthome = wtproperties.getProperty("wt.ho4.获取part被借用的所有父部件QueryResult qr= wt.part.WTPartHelper.service.ge注:此方法得到的结果为该part被使用情况的全部父部件,5.根据OID 获取Wtpartwt.fc.WTReference partRef = new wt.fc.ReferenceFaWTPart wtpart=(WTPart)partRef;6.得到零件最新版本WTPart wtpart= (WTPart) VersionControlHelper.get7.通过过滤得到零件最新版本/*** 根据用户名得到用户* @param name 用户名* @throws WTException* return WTUser*/public static WTUser getUserFromName(String name) throws WTException {Enumeration enumUser = OrganizationServicesHelper.manager.findUser(/ doc/983824940.html,, name); WTUser user = null;if (enumUser.hasMoreElements())user = (WTUser) enumUser.nextElement();if (user == null) {enumUser = OrganizationServicesHelper.manager.findUser(WTUser.FULL_NA ME, name);if (enumUser.hasMoreElements())user = (WTUser) enumUser.nextElement();}if (user == null) {throw new WTException("系统中不存在用户名为'" + name + "'的用户!");}return user;}}10.windchill 中查询,高级查询,基本查询QuerySpec qs = new QuerySpec();//构造Int index = qs.appendClassList(WTPart.class,true);//添加查询类型,获取类型索引,第2个参数表示“要查询的类型、表”WhereExpression where = new SearchCondition(WTPart.cl ass, WTPart.xx, “=”, xx);//泛型在WC API中的使用//获取查询条件数目If(qs.getConditionCount()>0 && qs.getWhere().endsWith(“")){qs.appendAnd();}//添加查询条件qs.appendWhere(where, new int[]{index});//** 以下是联合查询的API范例。

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

1.1.根据零件名称/编码得到该零件
2.;
3.
4.2.根据WTpart得到WTparMaster
5.WtPart wtpart;
6.WTPartMaster wtmaster=(WTPartMster)();
7.3.获取codebase下配置文件属性信息
8.WTProperties wtproperties = ();
9.String wthome = ("", ""); 取part被借用的所有父部件
10.QueryResult qr= wtMaster);
11.注:此方法得到的结果为该part被使用情况的全部父部件,包括了Design视图及
Manufacturing视图更包括了父部件使用part的所有修订版本,打印出来可以看到会有相同的部件编号,不同的修订版本.
12.5.根据OID 获取Wtpart
13.partRef = new oid );
14.WTPart wtpart=(WTPart)partRef;
15.6.得到零件最新版本
16.WTPart wtpart= (WTPart) (part);
17.7.通过过滤得到零件最新版本
18.QuerySpec querysearch = new QuerySpec;
19.询某用户某段时间范围内创建的零件
20.QuerySpec qs = new QuerySpec;
(where, new int[]{index});
//** 以下是联合查询的API范例。

LINK关系//ROLEA、ROLEB的INDEX被使用到。

int linkIndex = , false);
(linkIndex, , index_A);
(linkIndex, , index_B);
//添加“生命周期”查询条件
LifeCycleConfigSpec lcsp = new LifeCycleConfigSpec();
(state));
qs = (qs);
//执行查询
QueryResult qr = 过滤出最新小版本
LatestConfigSpec lcs = new LatestConfigSpec();
qr = (qr);
/**
* 根据WTPartMaster对象获得最新的WTPart
* @param partmaster WTPartMaster对象
* @return 最新的WTPart
* @throws WTException
*/
public static WTPart getLastPart(WTPartMaster partmaster) throws WTException{ WTPart part=null;
if(partmaster==null){
return part;
}
ConfigSpec configSpec= QueryResult qr= configSpec); if(qr!=null){
while()){
part=(WTPart) ();
}
}
return part;
}。

相关文档
最新文档