Windchill常用开发大全

合集下载

Windchill常用命令和客制化

Windchill常用命令和客制化

Windchill 常用命令和客制化windchill wt.load.util.CSV2XML -input -output -root d:\moduleswindchill markets.CSV2XML -input -output -rootwindchill wt.load.util.CSV2XML -root e:\windchill wt.load.LoadFromFile -u[user name] -p[password] -d d:\modules\users.xml -CONT_PATH /Container=Software/wt.pdmlink.PDMLinkProduct= windchill wt.load.LoadFromFile -u[user name] -p[password] -d d:\modules\users.xml -CONT_PATH /Container=Software/wt.inf.library.WTLibrary=windchill wt.load.LoadFromFile -u wcadmin -p wcadmin -d e:\LoadDoc.xml -CONT_PATH /Container=ptc/wt.pdmlink.PDMLinkProduct=路由器_P1windchill wt.load.LoadFromFile -u wcadmin -p wcadmin -d E:\WMDocumentReview.xml -CONT_PATH /Container=ptcwindchill com.ptc.windchill.partslink.AdminApp -reloadenumCustomizeant -f MakeJar.xmlResourceBuild wt.project.RoleRB trueenumVerify <fully_qualified_EnumClassname>[<language>][<country>][<variant>]例如:enumVerify wt.lifecycle.State fr CAjava wt.util.resource.ResourceBundleUtil wt.part.partModelRBxconfmanager -p用命令导入ldif:windchill engine.util.LDAPImport -dir E:\PTC\Windchill_8.0 -ldiffileE:\PTC\IE_JDBCAdapter\jdbc.ldif将Windchill的核心class文件打包为jar文件命令:makejar.bat 或者 Windchill wt.tools.boot.MakeJar jar=wt.jarconfig=wt.jar.config 或者 Windchill wt.tools.boot.MakeJar jar=wt.jar处理多字节:在wt.properties最后添加wt.db.maxBytesPerChar=3wt.db.encoding=UTF8或者<Property name="wt.db.maxBytesPerChar" overridable="true"targetFile="codebase/wt.properties" value="3"/>JavaGen.sh registry false false true false falseJavaGen registry false false true false false产生CAD代理工作服务: i486_nt\obj\WorkDaemon.exe -InstallD:\Eclipse\eclipse.exe -vm D:\j2sdk1.4.2_06\jre\bin\javaw -vmargs -Xms256M -Xmx512M Attribute Type Logical ID Belong To Catalog------------------------------------------------------------------------------------------------------Extended Type String RootLocalID String persistInfo.objectIdentifier RoothelperName String SearchableNumber String number PartOracle 命令导出命令(全量导出):exp system/system@wind file=f:\wind.dmp full=y statistics=noneexp system/system@wind file=f:\wind.dmp owner=(PDM1,PDM2) statistics=none exp pdm8/pdm8@wind tables=(table1,table2)(增量导出):exp system/system@wind file=f:\wind.dmp inctype=incremental导入命令:imp system/system@wind file=f:\wind.dmp full=y ignore=yimp system/system@wind file=f:\wind(PDMLink).dmp fromuser=PDMLinktouser=PDMLink ignore=yimp system/system@wind file=f:\wind(PDMLink).dmp fromuser=PDM1 touser=PDM2 rows=y indexes=y显示当前连接用户:show user查看数据库的表空间:select * from dba_tablespaces;显示常用的系统文件的视图:v$database,v$datafile,v$logfile,v$controlfile,v$parameter快速清空一个大表:truncate table table_name;查询数据库实例:select * from v$instance;将查询的结果导入到文本文件中:SQL>spool c:\abcd.txt;SQL>select * from table;SQL>spool off;修改字段大小:alter table table_name modify (field_name varchar2(100));修改表名:alter table old_table_name rename to new_table_name;找数据库表的主键字段的名称:select * from user_constraints where constraint_type='P' and table_name='TABLE_NAME';如果导出时出现942的错误,那是进行升级后没有执行:SQL>conn / as sysdba;SQL>%Oracle_home%\rdbms\admin\catexp.sql;删除用户下的所有对象:set linesize 50set pagesize 500spool drop_object.sqlselect 'drop '||object_type||' '||object_name||';' from user_objects;spool off@drop_object.sql;Oracle监听器启动:lsnrctl startOracle监听器停止:lsnrctl stopOracle实例启动:使用sysdba身份登录,输入:startupOracle实例停止:使用sysdba身份登录,输入:shutdown创建远程连接:create database link pdmlink_wind connect to pdm_migration identified by migchangeme using 'fan-10'(pdmlink_wind连接名称、pdm_migration用户名、migchangeme密码、fan-10连接字符串)使用链接:select * from wtpart@pdmlink_windselect a.CLASSNAMEA2A2,a.IDA2A2,b.CLASSNAMEA2A2,b.IDA2A2 where wtpart a,pdmlink_wind.wtpart b where a.IDA2A2=b.IDA2A2;改变使用者口令:alter user pdm identified by pdm;停止OEM:oemctl stop oms sysman/passwd比较表结构:SELECT COUNT(*) FROM(SELECT CNAME||COLTYPE||WIDTH FROM COL@PDJ WHERE TNAME='WTPART'MINUSSELECT CNAME||COLTYPE||WIDTH FROM COL WHERE TNAME='WTPART');我们在建立一个基于原来某个表的结构的时候,就用这个:CREATE TABLE T_NAME AS SELECT * FROM V_TABLE WHERE 1=2执行Oracle数据库碎片整理工具:在生产环境、测试环境中,请定期执行下面的sql,将其中的“pdm7”替换成为实际的数据库用户名,注意在执行该语句的时候一定要将Windchill先停止:execute dbms_stats.gather_schema_stats(ownname => 'pdm7', cascade=>true);该sql的用途是用来整理数据库的碎片程序,从而可以显著提高数据库的存取性能,在各个环境中建议每隔1-2个月执行一次,该语句可以在我们的WCPerfTuningGuide.pdf文档中找到修改游标的最大打开数:在两个文件中可以修改游标的打开数:"SPfile+例程名.ora" 和 "Init+例程名.ora";其中"SPfile+例程名.ora"的优先于"Init+例程名.ora"。

Windchill常用业务对象、目录结构、类、包介绍

Windchill常用业务对象、目录结构、类、包介绍

常用业务对象、目录结构、类、包介绍文档控制更改记录目录文档控制 (ii)更改记录 (ii)1. Windchill对象介绍 (i)1.1 Windchill目录结构 (i)1.2 Windchill常用业务对象、类 (i)1.3 Windchill常用包 (iii)1.4 如何在Windchlil系统中查找对象对应的类 (iv)1.Windchill对象介绍(会持续更新此文档)1.1Windchill目录结构●wtCustom放入修改系统的rblnfo文件●wtSateArea下的siteMod文件中放入修改后的系统文件,比如.jspf文件、html, xml;ptcCurrent文件放系统当前版本的文件;ptcOrig放系统最原始的文件ant-f bin/swmaint.xml installSiteChanges●bin:windchill工具目录,如windchill shell●src目录放客制化的源文件,放国际化.rblnfo文件。

●codebase是运行时目录,放编译后的.class文件、放WEB相关文件、放模板文件(.html)●netmarkets:JSP文件●tasks目录放系统服务文件.xml文件, Info*Engine配置文件●valuts:文件仓目录●loadFiles目录,放置需要导入到系统的工作流、生命周期等●Logs:日志目录●loadXMLFiles目录,放置配置系统的信息的.xml文件8,DB目录,放置建立模型后生成的SQL语句●db:数据库映射文件及模型SQL脚本1.2Windchill常用业务对象、类业务对象常用类名描述部件wt.part.WTPart 零部件对象部件wt.part.WTPartMaster 部件master对象部件wt.part.WTPartReferenceLink 部件参考关系部件wt.part.WTPartDescribeLink 部件描述关系部件wt.part.WTPartUsageLink 部件使用关系部件wt.part.WTPartAlternateLink 实现wt.fc.ObjectToObjectLink,全局可替换部件wt.part.WTPartSubstituteLink 实现wt.fc.ObjectToObjectLink,特定可替换部件wt.part.LineNumber 行号部件wt.part.Quantity 数量1.3Windchill常用包1.4如何在Windchlil系统中查找对象对应的类方法一:导航到站点-->"类型和属性管理器",选择部件,这个部件就对应了系统中OOTB对象,wt.part是包名,WTPart是类名称方法二:对象的详细页面,浏览器地址中key(OID)的值包含类名+ida2a2,例如:oid=OR%3Awt.part.WTPart%3A222040.。

windchill系统学习之--开发流程

windchill系统学习之--开发流程

windchill系统学习之--开发流程An Overview of the Windchill Development ProcessVerify The Development Environment:Verify the following environment variables: path ,sqlpathVerify the contents of the following property files: wt.properties ,db.propertiesStart the Windchill servers. Open a new console window.Establish your Rose model directory.Model the Object in Rose:Start Rational Rose and check the virtual path map.WT_WORK = ..\windchill\srcWT_EXTENSIONS = ..\windchill\RoseAddInWT_STD_PACKAGES = $WT_EXTENSIONS\Standard PackagesEstablish the initial Rose model by performing the following steps:a. From the File menu, select Open, browse to ..\windchill\src\wt, andload the model WTDesigner.mdl.b. When asked whether to load subunits, press the Yes button.c. Save the model as ..\windchill\src\helloWorld\HelloWorld.mdl.d. When asked whether to save subunits, press the No button.Model the person class by performing the following steps:a. In the Logical View/Main class diagram, drop in a Package icon and labelit helloWorld.b. Use the dependency tool to draw dependencies from helloWorld to the wtand java packages.c. Go to the Main diagram of the helloWorld package.d. Drop on a class icon and give the class the name Item (the parent forPerson). Attributes and operations for Item automatically appear. Changethe diagram to suppress attributes and operations of Item. Ensure that theShow Visibility option is on for Item (so you can see in the diagram that itcomes from the fc package).e. Drop on another class icon and give it the name Person.f. Make Person a subclass of Item. (Use the generalization icon/tool to drawa line from Person to Item.)g. Insert the attributes name, age, title, and id. Name, title, and id should bestrings (String) and age should be an integer (int). Use lowercase or a mixof upper- and lowercase letters for these attributes; do not use alluppercase letters.2 Right click to start the specification dialog. Make allthe attributes public and change the Windchill property of each toconstrain=false. Click the Apply button for each change and, when youare done, click the OK button.h. Select the menu option Browse > Units. Select the HelloWorld packageand press the Control button. Save the unit to c:\ptc\windchill\src\helloWorld\helloWorld.cat. With the helloWorld package selected, pressthe Save button.i. Save the Rose model file. When asked whether to save subunits, click theNo button.Generate Java Classes From Rose:Go to the parent package of the Person class (by selecting the LogicalView/Main diagram from the class browser, then selecting the helloWorld package).From the Tools menu, select Windchill > System Generation.From the popup window, select Java Source Code, WT Introspector Support, and Database Support, then click the OK button.Create Database Tables:Initialize the Object:Design the GUI Layout:Code the GUI:Run the Applet in Mozilla or Internet Explorer:。

Windchill常用业务对象、目录结构、类、包介绍

Windchill常用业务对象、目录结构、类、包介绍

常用业务对象、目录结构、类、包介绍文档控制更改记录目录文档控制 (ii)更改记录 (ii)1. Windchill对象介绍 (i)1.1 Windchill目录结构 (i)1.2 Windchill常用业务对象、类 (i)1.3 Windchill常用包 (iii)1.4 如何在Windchlil系统中查找对象对应的类 (iv)1.Windchill对象介绍(会持续更新此文档)1.1Windchill目录结构●wtCustom放入修改系统的rblnfo文件●wtSateArea下的siteMod文件中放入修改后的系统文件,比如.jspf文件、html, xml;ptcCurrent文件放系统当前版本的文件;ptcOrig放系统最原始的文件ant-f bin/swmaint.xml installSiteChanges●bin:windchill工具目录,如windchill shell●src目录放客制化的源文件,放国际化.rblnfo文件。

●codebase是运行时目录,放编译后的.class文件、放WEB相关文件、放模板文件(.html)●netmarkets:JSP文件●tasks目录放系统服务文件.xml文件, Info*Engine配置文件●valuts:文件仓目录●loadFiles目录,放置需要导入到系统的工作流、生命周期等●Logs:日志目录●loadXMLFiles目录,放置配置系统的信息的.xml文件8,DB目录,放置建立模型后生成的SQL语句●db:数据库映射文件及模型SQL脚本1.2Windchill常用业务对象、类业务对象常用类名描述部件wt.part.WTPart 零部件对象部件wt.part.WTPartMaster 部件master对象部件wt.part.WTPartReferenceLink 部件参考关系部件wt.part.WTPartDescribeLink 部件描述关系部件wt.part.WTPartUsageLink 部件使用关系部件wt.part.WTPartAlternateLink 实现wt.fc.ObjectToObjectLink,全局可替换部件wt.part.WTPartSubstituteLink 实现wt.fc.ObjectToObjectLink,特定可替换部件wt.part.LineNumber 行号部件wt.part.Quantity 数量1.3Windchill常用包1.4如何在Windchlil系统中查找对象对应的类方法一:导航到站点-->"类型和属性管理器",选择部件,这个部件就对应了系统中OOTB对象,wt.part是包名,WTPart是类名称方法二:对象的详细页面,浏览器地址中key(OID)的值包含类名+ida2a2,例如:oid=OR%3Awt.part.WTPart%3A222040.。

Windchill模块组成和介绍

Windchill模块组成和介绍

一、Windchill模块组成及介绍:1.Windchill PDMLink® — 产品和过程控制难以查找的或不可靠的数据可能会阻碍任何一支制造团队的创新能力和生产效率。

但是,当所有与产品相关的各方访问的都是一个值得信赖的中央数据信息库时,制造商就能很专业地管理所有形式的数字化产品开发数据(包括机械、电气和软件数据)。

Windchill PDMLink 是理想的解决方案。

这个经过业界验证的产品数据管理 (PDM) 系统基于 Web(可轻松在企业范围内访问),它支持分散在各地的团队,同时对关键的过程(如变更/配置管理和详细设计)进行管理。

Windchill PDMLink 还充当着许多可选模块的基础,这些模块包括 Pro/INTRALINK、Windchill MPMLink、Windchill RequirementsLink、Windchill MPMLink、Windchill PartsLink 和 Windchill Supplier Management 等。

现在,企业或扩展的供应链中任何地方的任何人都能通过使用 Windchill PDMLink 中的工具就产品开发进行沟通和协作。

功能和优势:基于 Web 的主产品数据管理信息库,允许在世界各地访问来自各种来源的最新准确信息与多个机械/电气 CAD 应用程序、嵌入式软件工具、桌面应用程序和企业资源计划系统无缝衔接通过控制和自动执行通常一片混乱的产品开发过程(例如变更管理过程)预防代价高昂的设计错误利用功能强大的配置工具帮助快速开发新产品在数据采集和产品信息的分布及跨企业协作方面能与 Creo Elements/Pro 和 Windchill ProjectLink 无缝操作2.Windchill ProjectLink™ — 在产品开发过程中进行基于Web的项目协作当今充满挑战的全球环境要求有效的协作。

利用 Windchill ProjectLink,您能够在防火墙内外安全地驾驭整个团队的才智和活力。

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范例。

PTC-Windchill解决方案介绍精选全文

PTC-Windchill解决方案介绍精选全文
HLD/LLD
Executables
Source Code
Test Plan
Desktop
Body Battery
Display
LED
PCA
Schematic Bare Board Component AASIC CompFirmware Assembly
Component Software
EASTONE CONFIFENTIAL
EASTONE CONFIFENTIAL
39
基于上下文的文档模板管理Site Organization
PRODUCT
TEMPLATES
PROJECT
TEMPLATES
LIBRARY
TEMPLATES
标准化:文档模板管理
文档间关系:文档结构-3.2.5
定义文档间的父子关系可以通过配置过滤用于收集和共享
Software
C++
Component B
选项变型规则
EASTONE CONFIFENTIAL
PTC WINDCHILL:数据管理容器与共享
EASTONE CONFIFENTIAL
P-96005621
主数据
版本
A
B
C
零件
流程中
发布
废弃
A.1 A.2 A.3
流程中
发布
废弃
B.1 B.2 B.3
流程中
WINDCHILL中的文档管理-3.4
创建/编辑文档
定义文档的 属性,位置 和上传
管理和共享
文档发布
查看,评审,注视和协同
Windchill
客户端
EASTONE CONFIFENTIAL

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范例。

Windchill应用功能介绍

Windchill应用功能介绍

电子化文档的管理:Windchill文档管理工具能让用户建立和管理复杂的产品信息,这些出版物可能由多个文件组成、有多种修订版本、并且有不同的格式。

如UG、Pro/E、AutoCAD、MSOffice等应用工具生成的图纸或模型文件,各种测试数据和报告,任务书或规格说明书,工艺文件、使用或维护手册、零件明细等。

而且,它们还可以包括某些外来文件,并通过URL地址连接并从外部进行管理。

文档管理提供了许多随时可用的文档和出版物类型,若需要的话,还可以方便地把它们扩展成代表企业业务信息的模型。

为了方便用户的操作,系统能够自动地将产品数据和应用程序进行关联。

用户可以直接在Windchill中激活应用程序,并对数据进行操作。

1.文档的分类与存储:对文档的存储管理可以按照一定的分类规则来完成。

在Windchill环境中,文档的分类可以有不同的分类规则。

可以以产品对象为参考来完成文档的分类的管理,如:产品型号或系列为标准;可以按照文件的类型进行分类,如电子档案或结构部件;按照文档的功能进行分类,如技术文档、设计文档、工艺文档;当然,还可以按照项目、部门、产品、功能的组合进行分类。

在Windchill系统中,文件通常存储在逻辑的档案柜、文件目录中,以保持对用户的透明性。

在实施时,应该根据实际需求,同时采用多种分类方法相结合的方法。

文档的存储管理需要完成的工作如下:确定分类规则,定义新的、扩展的文档类。

文档的分类存放策略确定,划分文档存储地点。

结合文档评审、发布,实现文档信息的合理流动。

制定文档归档策略,实现文档的归档管理。

下图为Windchill中的文档管理界面2、文档的版本追踪:文档随着产品设计的进行,而需要不断的变化和修改。

数据管理系统要求能够及时纪录文档的变更历史,进行版本的追踪。

同时,还必须提供文件的共享机制,以实现并行工程的需求。

在Windchill系统中,通过以下几个方面来实现相关的需求。

一个数据仓库,它能通过控制权限,来保护信息不会被未授权用户修改检入和检出功能,用于把文档提交给数据仓库以及从数据仓库中提取文档版本控制和历史记录功能,用来跟踪数据更改、记录根据已有文档建立的新文档的来源,并能浏览历史数据3、文档的快速检索:文档的快速检索和利用,将有利于减少辅助工作时间,提高用户的工作效率。

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范例。

(完整word)(完整word版)Windchill 开发培训资料

(完整word)(完整word版)Windchill 开发培训资料

主要内容:jca标签\Validator\dataUtilities一、Windchill自带的客制化:站点->实用程序—〉首选项管理器—>展开”用户自定义"->将”用户自定义"选项卡的”否"改为"是"—〉重新打开浏览器->会出现”自定义”图标二、增加主菜单和一级子菜单1 、复制 navigation—actionModels.xml中的main navigation段代码到custom-actionModels.xml文件中<model name=”main navigation” id=”browseActions” resourceBundle=”com。

ptc.core。

ui。

navigationRB”>〈description>Main navigation (tabs)〈/description><action name=”recentContexts" type="navigation”/〉〈action name=”program" type="navigation”/><act ion name=”test” type="navigation"/〉//这里是添加的〈action name="product" type="navigation”/>〈action name=”project” type=”navigation”/〉<action name=”change” type="navigation”/〉<action name="library” type="navigation”/>〈action name=”org" type="navigation”/〉〈action name="site” type="navigation”/><action name="supplier” type="navigation"/>〈action name="search” type=”navigation"/><!-- entry for customization tab --〉〈action name=”customization” type=”navigation"/〉</model>〈model name="test navigation" defaultActionName=”subtest1" defaultActionType="test"〉<description〉Sub tabs under the product main tab</description〉〈action name="subtest1" type="test"/〉〈action name=”subtest2" type=”test"/〉〈/model>2、修改properties文件action.properties和action_zh_CN.properties在action.properties文件里增加如下代码:navigation.test。

Windchill应用功能介绍

Windchill应用功能介绍
子流程的定义和嵌套
条件判断 与/或逻辑判断 条件路由
投票统计和判断
自动程序执行
电子邮件通知
客户化程序定义
流程同步
Adhoc 流程定义与指定
订阅机制。一旦用户关心的设计信息发生了变化,他会立即收到通知的邮件,邮件中注明设计信息发生变化的类型,同时带有 URL 链接,直接指向Windchill 系统该设计信息的“属性页”,这样用户便及时查看最新的信息 2
8.2.4 科研项目管理 1、科研项目阶段定义:科研项目或产品开发有其固有的生命周期 阶段,如科研项目的立项、方案论证、总体设计等等。Windchi科研项目的各
个阶段,以及各个阶段之间的转换所需达到的标准。以明确科研
项目所处的阶段,和控制项目从产品生命周期的某个状态提升到
通过工作流定义和管理程序来定义完成某个阶段的工作序列。通过产品数据对象的生命周期管理和工作流管理两个方面结合起 来,共同完成产品开发过程的管理工作,使得产品开发工作在有效控制的情况下完成。生命周期管理和工作流管理与 Windchill的电子邮件服务紧密联系起来,提高了相互协作的效率,实现了在正确的时间把正确的信息传递给正确的人。 3、质量管理与流程控制:在Windchill系统中,可以建立对应的质量管理流程或环节。当需要进行质量控制时,系统可以自动 地将对应的质量控制文档的模板提供给质量管理人员以作参考,或者将需要进行质量审核的文档送到质管人员的任务列表。而 且,当活动结束时,系统可以判断是否已经添加了质量管理文件。从而完善质量监控体系,减轻质管工作人员的负担。
工作流程管理员可以用图形的方式监视和管理正在进行的工作流程并能审查已经完成的或人为中止的过程以及工作流程和活动的详细信息可以指明某个活动当前的状态它什么时候开始什么时候结束它的时间段参与人员以及变化值

windchill常用类及基本操作

windchill常用类及基本操作

执行表达式:
“执行表达式”
流程变量:
在工作流中创建变量,变量能在代码中引用。 变量能显示在任务中
更新流程实例对象:
项目
项目
wt.projmgmt.admin.Project2:项目 wt.projmgmt.execution.ProjectActivity:项目活动 wt.projmgmt.resource.Deliverable:项目交付物
项目活动所有交付项
软属性
查询软属性
权限操作
wt.team.Team,团队 wt.project.Role,角色 .WTPrincipal,抽象类,子类:WTUser,WTGroup .WTUser,用户 .WTGroup,组 wt.session.SessionHelper
查询对象的笔记本: 用到wt.workflow.notebook.NotebookHelper
创建笔记本

部件相关的文档: 说明文档 参考文档 CAD文档
部件参考文档
查询参考文档
部件参考文档
创建部件的参考文档

查询部件的说明文档: QueryResult docs = wt.part.WTPartHelper.service.getDescribedByWTDocuments(part);
工作流
工作流
一般在工作流的“条件表达式”,“执 行表达式”“活动的转变条件”中放 JAVA代码。
条件表达式:
“条件表达式”中的代码一般用来自 动选择路由。
活动的“转变条件”
“转变条件”在任务启动和结束时 执行一些操作:“开始”里面的代 码会在任务启动时触发,如果这里 出错,任务将无法启动;“完成” 里面的代码会在任务完成时触发, 如果这里出错,在点击“完成任务 ”按纽里会弹出错误提示,任务无 法完成。

Windchill开发经验点滴

Windchill开发经验点滴


© 2001 PTC
5
安装/卸载模型
使用modelInstall安装模型信息:

modelInstall ext.QY.QYProject.*
不再需要的模型/包,如果从目录中直接删除,可能将导致 Windchill Method Server无法正常启动,解决办法:

使用modelUninstall卸载模型注册信息;如, modelUninstall ext.QY.QYProject.* modelUninstall ext.QY.QYProject.htmlclients.*
</applet>
© 2001 PTC
12
Applet调用Java应用程序
String oid; oid = getParameter("oid");
PartReportDefine app = new PartReportDefine(oid);
app.setApplet(this); app.show();
例如:
protected void initialize(String s) throws WTException { super.initialize(); setName(s); setDomainRef(AdministrativeDomainHelper.getAdminDomainRef( AdministrativeDomainHelper.SYSTEM_DOMAIN)); }
© 2001 PTC
4
Rational Rose中删除对象注意事项
从类图中删除不需要的对象:

在右边类图窗口中选择对象后,按Ctrl+D;

Windchill常用开发大全

Windchill常用开发大全

– 不预留属性
对象建模,不预留属性。对于已有对象的预留属性,因属性名称业务 含义,也不允许使用。历史模型已预留的属性不做要求。 例如:不再使用以前建模留下的reserv1、reserv2等预留属性
设计规范
– 关联关系
两个对象关联时,需要使用模型的关联关系。尽量不要采用建模为两 个独立对象,在一个对象的属性中记录另一个对象的某个标志属性的 方式。 例如: 错误的建模方法:CBBCounter类有一个属性cbbNumber,记录CBB 的编码。 正确的建模方法:引入一个Link对象,记录CBBCounter类和 WTPartMaster类的关系。
– 进入到 Oracle SQL*Plus路径,执行命令:
– 操作完成之后,即可使用EleadDocs对象了!
模型扩展(续)
模型扩展(续)

完整的例子说明
– 在windchill/src/目录下建立一个helloWorld目录,在 windchill/codebase/目录下也建立一个helloWorld目录 – 打开rose软件,依次打开fileopen定位到 windchill/src/wt/WTdesigner.mdl,打开

点击Save AS,重新命名为HelloWorld.mdl文件,弹出 框选择No,环境搭建好后,即可创建模型
扩展模型
模型扩展(续)


针对上面的图示,自定义个模型EleadDocs,继承 WTDocument,该模型自定义方法getEleadDocName() 和属性eleadDocType,且将其属性设置constrain=false, 点击保存(遇到提示,点击No) 选择菜单Units.Control docs,保存为docs.cat
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择菜单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(); } }
点击Save AS,重新命名为HelloWorld.mdl文件,弹出 框选择No,环境搭建好后,即可创建模型
扩展模型
模型扩展(续)
针对上面的图示,自定义个模型EleadDocs,继承 WTDocument,该模型自定义方法getEleadDocName() 和属性eleadDocType,且将其属性设置constrain=false, 点击保存(遇到提示,点击No)
– 布局
类图中尽量保证各部分分布均匀,连线尽量不要交叉,整个类图能够 显示在一个屏幕范围之内(标准1024*768分辨率),对于引用的其他包 的类、接口,可以将其属性、方法隐藏起来。避免占用过大的显示空 间。
建模搭建环境
进入到\Windchill+Information+Modeler091_F000l\Rational_Rose_for_Windows\setup.exe安 装
– 打开rose软件,依次打开fileopen定位到 windchill/src/wt/WTdesigner.mdl,打开
– 出现这个对话框,选择是,然后就耐心等待系统加载完这个文 件。当完全加载完以后把这个文件保存到上面建立的 windchill/src/helloWorld目录下,名称为helloWorld
模型扩展(续)
打开helloWorld这个package后会出现下图
模型扩展(续)
你打开的时候是什么都没有的,这里面person,personLink这2个类 是自己建立的,可以从中间的那个条中选择到的,然后对这2个类 进行编辑,选中person这个类,点右键,会出现
点击第一个,然后就会出现
模型扩展(续)
写测试代码
public class HelloWorldTest {
public static void main(String[] args) { String userName = args[0];
String password = args[1]; RemoteMethodServer methodserver = RemoteMethodServer.getDefault(); methodserver.setUserName(userName); methodserver.setPassword(password); HelloWorldTest test = new HelloWorldTest(); test.test(); }
生成.ser文件【WT_HOME】\codebase\ext\elead\docs 执行SQL语句
– 进入到 Oracle SQL*Plus路径,执行命令:
– 操作完成之后,即可使用EleadDocs对象了!
模型扩展(续)
模型扩展(续)
完整的例子说明
– 在windchill/src/目录下建立一个helloWorld目录,在 windchill/codebase/目录下也建立一个helloWorld目录
Agenda
Windchill开发内容集合
开发目录介绍 开发环境搭建 Windchill 模型环境搭建 Windchill类的介绍 Windchill各个业务对象的模型介绍 Windchill常用开发类和方法介绍
开发规范
JAVA开发规范,请遵守sun标准
Windchill开发规范
模型扩展(续)
模型扩展(续)
选择attributes这个标签
模型扩展(续)
然后在空白的地方点右键就会出现一个快捷菜单,在这 个菜单中可以创建一个变量,然后双击变量会出现
模型扩展(续)
在这个里面会对这个变量的类型进行设置,然后点 windchill标签
– 找到constrain这项,设置value为false,每个变量都需要这样进行设置, 然后让这个类继承wt.fc.Item这个抽象类,这样就表明person这个类现 在是持久的。同理把person这个类和wtpart这个类建立关联,关联的 类为PersonLink然后让personLink继承ObjectToObjectLink这个类,然 后把这个helloWorld. mdl保存一下,然后依次打开fileunitscontrol, 然后再依次打开,toolswindchillsystem generation
– 工作流中的表达式,具体实现,都写在WfUtil中,只在工作流中调用WfUtil中的方法。 WfUtil中的方法注释中,需要说明该段代码,将在那些workflow中被调用。
– 系统OOTB配置部分通过XML配置文件交付。方便新系统可以直接通过LoadFileSet导入配 置。
– 系统内部值,例如IBA,全部由英文字母和数字组成,不能包含特殊字符。 – 禁止反编译系统OOTB的Class文件,然后在此基础上修改做客制,导致系统无法升级。 – 需要对出厂文件(HTML template等)修改时,需要保存原出厂文件的备份在
wtSafeArea\ptcOrig目录下,修改后的文件另存到wtSafeArea\siteMod目录 – 需要增加的properties属性不要放置在wt.properties中(service的注册除外),其他都放置
在codebase\com\itbg\ext.properties。 – 客制的新增Class文件放置在codebase\com\itbg对应的目录下。不要放在系统原有的包中。
模型扩展(续)
– 选中前3项点OK,然后这个时候你就可以在 windchill/src/helloWorld这个目录下看到有Person.java和 PersonLink.java这2个java文件,并且在 windchill/db/sql3/helloWorld这个目录下面也会产生几个sql文件, 把这几个sql文件导入到数据库中建立相关的表,要注意建立的 先后顺序:只用操作以create开头的3个sql文件
安装完成之后,load注册文件 rational_perm.dat.txt
进入到{WT_HOME}\roseAddIn,将 VirtualPathMap.AddIn.reg和Windchill.AddIn.reg文件中 的路径修订为个人本机环境的路径并注册
建模搭建环境
启动rose,点击“Edit Path Map…”查看注册信息 rose参数配置.txt
Rose
选择src\wt\WTdesigner.mdl
Rose模型使用
点击【是】,系统会加载
其中Logical View是系统核心 逻辑显示,其中3rd是Windchilll 中使用了哪些Java技术模块、ext 是系统客制化扩展模型目录、wnc是Windchill核心业务逻辑组成
设计规范
– 字段扩展
对于对象的属性,一般情况下采用默认长度。建模时要求考虑属性长 度是否符合要求,如果需要加大长度,在模型中设置相应的值即可。
– 选择父类
对于建模,尽量继承底层的Windchill类,例如:Managed\Item等,继 承上层的具有实际业务含义的Windchill类(例如:WTPart、 WTDocument)时,在业务上符合“是一个(As -is)”的含义,例如: EleadPart是一个WTPart
相关文档
最新文档