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;
}
}
版权声明:本文标题:Windchill开发之创建对象 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703175448h441026.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论