admin 管理员组

文章数量: 887021


2023年12月22日发(作者:excel中字母大小写转换)

第一章

Windchill开发之创建对象

2010-12-09 21:41:18| 分类: Windchill 应用空 | 标签:无 |字号大中小 订阅

在windchill开发的过程中,整个操作围绕的都是增删改查,今天我们将介绍的是增加,此次以part的创建为例,对于删除,修改都一几乎一样的代码。

以下是源代码:

import tionTargetException;

import Exception;

import tenceHelper;

import esult;

import ;

import Entry;

import Helper;

import ainer;

import ainerRef;

import ary;

import MethodServer;

import ;

import xception;

import pec;

import Condition;

import finitionReference;

import tility;

import ption;

import ertyVetoException;

import lper;

import ference;

public class Demo4 implements Access

{

// 在类型管理器中自定义的part类型

private static String lenovoPart_type = "|Part";

// 产品中文件夹的路径,注意默认在文件夹前夹上Default

private static String PartPath = "Default/NewPart";

/**

* 创建一个新的部件

*

* @param args

* @throws WTException

* @throws WTPropertyVetoException

* @throws InvocationTargetException

* @throws RemoteException

*/

public static void main(String[] args) throws WTPropertyVetoException, WTException, RemoteException,

InvocationTargetException

{

// TODO Auto-generated method stub

WTPart part =RemoteMethod("001", lenovoPart_type);

if(part!=null)

{

n("part 的名称是:"+ e());

}

}

//创建部件要用rmi

public static WTPart RemoteMethod(String partNumber,String partType) throws RemoteException,

InvocationTargetException

{

String CLASSNAME = ().getName();

Class argTypes[];

Object svrArgs[];

argTypes = (new Class[]

{ , });

svrArgs = (new Object[]

{ partNumber,partType});

return (WTPart) ault().invoke("newPart", CLASSNAME, null, argTypes, svrArgs);

}

/**

* 创建一个新的部件,类似的代码可以实现修改part的基本属性

*

* @param number

* 部件的编码

* @param PartType

* 部件的类型,部件在windchill中可以自定义很多中类型

* @return

* @throws WTException

* @throws WTPropertyVetoException

*/

public static WTPart newPart(String number, String PartType) throws WTException, WTPropertyVetoException

{

WTPart newPart = null;

// 获取容器

WTContainer container = getContainer("Moto");

n(1);

// 获取容器的引用

WTContainerRef ref = ref = ontainerRef(container);

// 获取文件夹

Folder folder = der(PartPath, ref);

n(2);

String strPartNumber = number;

String strPartName = number;

view = w("Design");

ViewReference viewRef = wReference(view);

n(3);

TypeDefinitionReference typeDefinitionRef = eDefinitionReference(PartType);

n(4);

// 创建一个部件,编码与名称

newPart = art(strPartNumber, "");

// 为部件设置容器

tainer(container);

// 为部件设置类型

eDefinitionReference(typeDefinitionRef);

// 为部件设置view

w(viewRef);

// 为此部件设置存贮位置

Location((FolderEntry) newPart, folder);

// 保存部件,切忌不要保存两次。经常在调用完本方法之后习惯性的再保存一次,这样会出现错误。

newPart = (WTPart) (newPart);

// 从数据库中提取part

newPart = (WTPart) h(newPart);

return newPart;

}

/**

* 产品是一个容器,这里通过一个产品的名称获取容器,产品的名称在windchill中具有唯一性

*

* @param containerName

* 产品的名称

* @return

*/

public static WTContainer getContainer(String containerName)

{

try

{

// 此处的逻辑部分可以参考:"windchill开发简单入门之条件查询"这篇文章

QuerySpec qs = new QuerySpec();

SearchCondition sc = new SearchCondition(, , "=", containerName);

Where(sc);

QueryResult qr = (qs);

while (eElements())

{

WTContainer container = (WTContainer) ement();

return container;

}

} catch (QueryException e)

{

// TODO Auto-generated catch block

tackTrace();

} catch (WTException e)

{

// TODO Auto-generated catch block

tackTrace();

}

return null;

}

}


本文标签: 部件 开发 容器 产品 名称