다른 응용 프로그램과 통합 > Windchill에서 CAD 및 부품 관계 관리 > 자동 연결 사용자 정의 > AutoAssociatePartFinderCreator 인터페이스 사용 및 수정
AutoAssociatePartFinderCreator 인터페이스 사용 및 수정
자동 연관에서는 AutoAssociatePartFinderCreator 인터페이스 구현을 사용하여 다음 작업을 수행합니다.
일치하는 부품 검색
새 부품 작성
기본적으로 자동 연결 작업에서는 이 인터페이스의 기본 구현을 사용하여 위에서 언급한 임무를 수행합니다. AutoAssociatePartFinderCreator 인터페이스의 사용자 정의 구현을 사용하여 이러한 임무가 수행되는 방법을 사용자 정의할 수 있습니다.
이 인터페이스는 com.ptc.windchill.cadx.autoassociate.AutoAssociatePartFinderCreator에 있습니다.
AutoAssociatePartFinderCreator 인터페이스는 다음 메소드를 지원합니다.
선택한 EPMDocument 또는 ModelItem에 일치하는 부품 검색에 사용하는 findOrCreateWTPart 메소드
새 부품 작성에 사용하는 CreateNewWTPart 메소드
findWTPart 메소드(더 이상 사용하지 않음)
isNewPart 메소드(더 이상 사용하지 않음)
setIsNewPart 메소드(더 이상 사용하지 않음)
)
* 
인터페이스의 일부 메소드는 더 이상 사용되지 않지만, 구현 클래스가 그 메소드의 더미 구현을 포함해야 클래스 컴파일이 가능합니다.
사용자 정의된 AutoAssociatePartFinderCreator를 구현하려면 다음 절차를 따르십시오.
1. 사용자 정의된 클래스를 다음과 같이 파생합니다.
public class CustomFinderCreator implements
AutoAssociatePartFinderCreator
2. 다음 메소드를 무시합니다.
public WTPart findOrCreateWTPart(EPMDocument epmDoc, EPMWorkspace workspace)
이 메소드는 자동 연결에 선택된 각 문서가 일치하는 부품을 검색할 때 호출됩니다. 부품 검색에 쓰이는 조건을 사용자 정의할 수 있으며, 반환되는 부품은 해당 작업에서 문서와 연관할 때 사용됩니다.
public WTPart findOrCreateWTPart(EPMDocument doc, ModelItem modelItem, EPMWorkspace workspace)
이 메소드는 자동 연결에 선택된 각 문서가 일치하는 부품을 검색할 때 호출됩니다. 부품 검색에 쓰이는 조건을 사용자 정의할 수 있으며, 반환되는 부품은 해당 작업에서 문서와 연관할 때 사용됩니다.
public WTPart createNewWTPart(AssociatePartDescriptor newPartDescriptor)
이 메소드는 자동 연결에 선택된 새 부품을 작성할 때 호출됩니다. 새로 작성된 부품의 등록 정보를 사용자 정의할 수 있습니다. 새로 작성된 부품은 자동 연결 작업에 의해 문서와 연관됩니다.
* 
다음 메소드는 더 이상 작업에서 사용하지 않습니다. 그러나 이 메소드의 더미 구현을 제공해야 클래스를 제대로 컴파일할 수 있습니다.
public boolean isIsNewPart()
public void setIsNewPart(boolean a_IsNewPart)
public WTPart findWTPart(EPMDocument epmDoc)
public WTPart findWTPart(EPMDocument epmDoc, ModelItem modelItem)
파일을 컴파일하고 알맞은 위치에 클래스를 저장합니다.
3. 작업 > 자동 연결 > 부품 자동 연결을 위한 사용자 지정 클래스 기본 설정을 사용하여 AutoAssociatePartFinderCreator 인터페이스를 구현하는 클래스의 이름을 지정합니다.
4. 메소드 서버를 다시 시작합니다.
부품 찾기 작성자 사용자 정의 자동 연결 예
다음 소스를 사용하여 <WT_HOME>src\com\ptcts\autoassociate\CustomizedAutoAssociatePartFinderCreator.java를 작성하고 컴파일합니다.
// package com.ptc.windchill.uwgm.cadx.autoassociate;
package com.ptcts;
import java.lang.String;
import wt.epm.EPMDocument;
import wt.epm.workspaces.EPMWorkspace;
import wt.part.WTPart;
import wt.pom.UniquenessException;
import wt.util.WTException;
import wt.util.WTPropertyVetoException;
import wt.vc.VersionControlException;
// import com.ptc.windchill.uwgm.task.autoassociate.DefaultAutoAssociatePartFinderCreator;
import com.ptc.windchill.uwgm.common.autoassociate.DefaultAutoAssociatePartFinderCreator;
// import com.ptc.windchill.cadx.autoassociate.AutoAssociatePartFinderCreator;
import com.ptc.windchill.uwgm.common.autoassociate.AutoAssociatePartFinderCreator;
import wt.type.TypedUtilityServiceHelper;
import com.ptc.windchill.uwgm.common.associate.AssociatePartDescriptor;
import wt.inf.container.WTContainer;
import java.rmi.RemoteException;
public class CustomizedAutoAssociatePartFinderCreator extends DefaultAutoAssociatePartFinderCreator implements AutoAssociatePartFinderCreator
{
public boolean isIsNewPart()
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: isIsNewPart()");
return super.isIsNewPart();
}
public void setIsNewPart( boolean a_IsNewPart ) throws WTPropertyVetoException
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: setIsNewPart()");
super.setIsNewPart(a_IsNewPart);
}
public WTPart findOrCreateWTPart(EPMDocument epmDoc, EPMWorkspace workspace) throws WTException, WTPropertyVetoException, VersionControlException, UniquenessException
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: findOrCreateWTPart()");
return super.findOrCreateWTPart(epmDoc, workspace);
}
public WTPart findWTPart(EPMDocument epmDoc) throws WTException
{
System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: findWTPart()");
return super.findWTPart(epmDoc);
}

public WTPart createNewWTPart(AssociatePartDescriptor newPartDescriptor) throws WTException, WTPropertyVetoException {

System.out.println("Invoked CustomizedAutoAssociatePartFinderCreator :: createNewWTPart()");

// get epmdoc
EPMDocument epmDoc = newPartDescriptor.getSourceDoc();
// get workspace
EPMWorkspace ws = newPartDescriptor.getEPMWorkspace();

// get workspace container
WTContainer container = ws.getContainer();

// create wtpart with super class
WTPart newpart = super.createNewWTPart(newPartDescriptor);

// manipulate new part, e.g. set attributes

// return modified new part
return newpart;
}

}
도움이 되셨나요?