Broken parent-child relationships
▣ 손상된 부모-자식 관계(Parent-Child Relationship) 수정 필요성
Windchill에서 손상된 부모-자식 관계(Parent-Child Relationship)를 가진 파트나 어셈블리 파일을 체크인하지 못하는 이유는 Windchill과 Creo의 파라메트릭 모델링 시스템이 데이터 무결성과 참조 일관성을 유지하려는 특성 때문입니다. 아래에서 주요 원인과 그 배경을 자세히 설명하겠습니다.
1. 부모-자식 관계와 Windchill의 데이터 관리 원칙
Creo에서 부모-자식 관계는 한 피처(부모)가 다른 피처(자식)의 치수, 위치, 또는 형상을 정의하는 데 사용됩니다. 자식 피처는 부모 피처에 의존하며, 부모 피처가 없거나 손상되면 자식 피처도 올바르게 정의될 수 없습니다. Windchill은 이러한 부모-자식 관계를 포함한 CAD 데이터를 관리하며, 체크인 시 모든 참조가 유효하고 완전해야 한다는 엄격한 데이터 무결성 규칙을 적용합니다.
In Creo, parent-child relationships are used to define the dimensions, location, or shape of one feature (the parent) or another feature (the child). The child feature depends on the parent feature, and if the parent feature is missing or damaged, the child feature cannot be defined properly. Windchill manages CAD data, including these parent-child relationships, and enforces strict data integrity rules that require all references to be valid and complete at check-in.
Windchill에서 체크인을 시도할 때, 시스템은 다음과 같은 점을 확인합니다:
- 모든 참조(부모 피처, 참조된 다른 파트 또는 어셈블리 등)가 존재하는지
- 참조된 객체가 Windchill 서버(공용 공간, Commonspace) 또는 작업 공간(Workspace)에 올바르게 등록되어 있는지
- 참조된 객체가 최신 버전인지, 또는 올바른 상태(예: 체크아웃 가능, 수정 가능)인지
When attempting to check in to Windchill, the system verifies the following:
- All references (parent features, other referenced parts or assemblies, etc.) exist
- The referenced objects are registered correctly on the Windchill server (Commonspace) or Workspace
- The referenced objects are the latest version, or in the correct state (e.g., check-out available, modifiable)
손상된 부모-자식 관계란 부모 피처가 누락되었거나, 참조가 끊어졌거나, 부모 객체가 Windchill에 제대로 등록되지 않은 경우를 의미합니다. 이 경우 Windchill은 데이터 무결성을 보장하기 위해 체크인을 차단합니다.
2. 손상된 부모-자식 관계로 체크인이 실패하는 주요 원인
다음은 Windchill에서 손상된 부모-자식 관계로 인해 체크인이 실패하는 주요 원인입니다:
(1) 누락된 부모 객체
- 상황:어셈블리나 파트가 참조하는 부모 객체(예: 다른 파트, 서브어셈블리, 또는 기준 평면)가 로컬 디스크나 작업 공간에 없거나 Windchill 서버에 업로드되지 않은 경우.
- 영향: Windchill은 체크인 시 모든 의존성(Dependencies)을 확인합니다. 부모 객체가 없으면 참조가 끊어진 것으로 간주되어 체크인이 실패합니다.
- 예시: 어셈블리 `A.asm`이 파트 `P1.prt`를 참조하지만, `P1.prt`가 작업 공간이나 서버에 없으면 체크인이 차단됩니다.
(2) 참조 무결성 문제 (Ghost 또는 Placeholder 객체)
- 상황: Creo 세션에서 저장하거나 작업하는 동안 참조된 객체가 임시로 생성된 "Ghost" 또는 "Placeholder" 객체로 대체되는 경우. 이러한 객체는 실제 데이터가 없거나 불완전한 상태로 작업 공간에 나타날 수 있습니다.
- 영향: Windchill은 Ghost/Placeholder 객체를 체크인할 수 없으며, 이는 "Cannot check in placeholder document"와 같은 에러 메시지를 유발합니다
- 원인: Creo에서 어셈블리를 저장할 때 참조된 파트가 로컬 디스크에만 존재하거나 Windchill에 업로드되지 않은 경우.
부모-자식 참조가 복사된 서브어셈블리에서 끊어진 경우.
(3) 부모-자식 관계의 비정상적 참조
- 상황: 부모-자식 관계가 예기치 않게 복잡하거나 잘못 정의된 경우. 예를 들어, 부모 피처가 삭제/억제되었거나, 참조가 다른 버전의 객체를 가리키고 있는 경우.
- 영향: Windchill은 체크인 시 모든 참조를 검증하며, 참조가 손상되거나 최신 버전과 일치하지 않으면 체크인을 거부합니다.
- 예시: 어셈블리에서 참조된 파트가 최신 버전이 아닌 이전 버전을 가리키거나, 참조된 피처가 더 이상 존재하지 않는 경우.
(4) 패밀리 테이블(Family Table) 관련 문제
- 상황: 패밀리 테이블을 사용하는 파트에서 제너릭(Generic) 또는 인스턴스(Instance)가 올바르게 체크아웃/수정되지 않은 경우. Windchill은 패밀리 테이블의 모든 인스턴스와 제너릭이 함께 체크인되어야 한다고 요구합니다.
- 영향: 일부 인스턴스가 수정되지 않았거나 체크아웃되지 않은 상태라면, 체크인 시 충돌(Conflict)이 발생합니다. 예를 들어, "All checked out family table members have to be checked in together"와 같은 에러가 나타날 수 있습니다.
- 원인: 제너릭 파트를 수정했지만 모든 인스턴스가 체크아웃되지 않았거나, 일부 인스턴스가 작업 공간에 없거나 수정되지 않은 상태로 남아 있는 경우.
(5) Windchill 설정 및 권한 문제
- 상황: Windchill의 설정(예: "Auto Associate Parts to CAD Documents" 또는 "Build Structure" 옵션)이 잘못 구성되었거나, 사용자가 체크인 권한이 없는 경우.
- 영향: 잘못된 설정으로 인해 부모-자식 관계를 포함한 의존성 객체가 자동으로 추가되거나, 권한 부족으로 객체를 업데이트할 수 없어 체크인이 실패할 수 있습니다.
- 예시: 체크인 시 "Associate Parts" 옵션이 활성화되어 WTPart를 자동 생성하려고 시도하지만, 부모-자식 관계가 손상된 경우 실패.
(6) 데이터베이스 또는 서버 문제
- 상황: Windchill 서버의 데이터베이스 오류, 캐시 문제, 또는 서버 설정 문제로 인해 부모-자식 관계를 올바르게 확인하지 못하는 경우.
- 영향: 예를 들어, 데이터베이스 테이블이 손상되거나 임시 파일(tempdb) 공간이 부족하면 체크인 과정에서 참조를 확인하지 못해 실패할 수 있습니다.
- 예시: "Transaction aborted when accessing versioned row in table 'first.QueueEntry'"와 같은 에러 메시지가 나타날 수 있습니다.
3. 해결 방법 및 모범 사례
손상된 부모-자식 관계로 인한 체크인 문제를 해결하려면 다음 단계를 따를 수 있습니다:
(1) 누락된 의존성 확인 및 추가
- 작업 공간에서 모든 의존성(부모 파트, 서브어셈블리 등)이 포함되어 있는지 확인하세요.
- 누락된 파트가 Stuart, check out the assembly in Creo, open the model tree, and identify any missing components. You can then add these components to the workspace from Windchill or import them from a local disk
(2) Ghost/Placeholder 객체 제거
- 작업 공간에서 Ghost 객체(빨간 대각선이 표시된 객체)를 확인하고 삭제하세요.
- Creo에서 어셈블리를 열어 참조를 확인한 후, 참조가 끊어진 경우 이를 수정하거나 더미 파트(Dummy Part)를 생성하여 참조를 대체할 수 있습니다(권장하지 않음).
- Ghost 객체 생성을 방지하려면, Creo 세션에서 저장하기 전에 모든 참조가 작업 공간에 있는지 확인하세요.
(3) 패밀리 테이블 관리
- 패밀리 테이블을 사용할 경우, 제너릭과 모든 인스턴스를 함께 체크아웃하고 수정 상태로 표시되도록 하세요.
- 체크인 시 "Force Checkout for Non-Modified" 옵션을 사용하여 수정되지 않은 인스턴스도 체크인할 수 있습니다.
- 필요하면 Windchill 관리자에게 "Healing Scripts" 실행을 요청하여 마이그레이션된 패밀리 테이블 데이터의 문제를 수정하세요.
(4) Windchill 설정 점검
- 체크인 시 "Auto Associate Parts to CAD Documents" 옵션을 비활성화하여 불필요한 WTPart 생성을 방지하세요.
- Windchill의 Config Spec을 확인하여 "Latest" 대신 "As Stored" 설정을 사용하여 참조 버전을 고정하세요
(5) 서버 및 데이터베이스 문제 해결
- Windchill 서버의 데이터베이스 상태를 점검하고, tempdb 공간 부족 문제를 해결하세요.
https://community.ptc.com/t5/PTC-Education-Forum/Trouble-checking-in-files-to-Windchill/td-p/338184 - IT 관리자에게 로그 파일을 확인하도록 요청하여 정확한 에러 원인을 파악하세요.
(6) 더미 파트 생성 (임시 해결책)
- 누락된 파트를 더미 파트로 대체하여 체크인을 시도할 수 있지만, 이는 참조 관계를 손상시킬 수 있으므로 주의가 필요합니다. 대신, 원본 파트를 찾아 추가하거나 참조를 재정의하는 것이 좋습니다.
https://community.ptc.com/t5/3D-Part-Assembly-Design/Assembly-check-in-without-part-into-windchill/td-p/627943
4. 모범 사례
- 작업 공간 관리: 체크인 전에 작업 공간에서 모든 의존성을 확인하고 누락된 파일을 추가하세요.
- 참조 정리: Creo에서 어셈블리를 열어 참조가 올바른지 확인하고, 불필요한 참조를 제거하거나 수정하세요.
- 백업: 체크인 전에 로컬 디스크에 어셈블리와 모든 의존성을 백업하여 데이터 손실을 방지하세요.[](https://community.ptc.com/t5/PTC-Education-Forum/Trouble-checking-in-files-to-Windchill/td-p/338184)
- 권한 확인: 사용자가 체크인할 수 있는 충분한 권한이 있는지 확인하세요.(https://community.ptc.com/t5/Windchill/Unable-to-check-out-or-check-in-parts/td-p/499574)
- Windchill 설정 최적화: 관리자와 협력하여 Windchill의 설정(예: Config Spec, Auto Associate 등)을 최적화하여 불필요한 오류를 줄이세요.
Windchill에서 손상된 부모-자식 관계로 인해 체크인이 실패하는 이유는 주로 누락된 의존성, Ghost/Placeholder 객체, 패밀리 테이블 문제, 또는 서버 설정/데이터베이스 오류 때문입니다. 이를 해결하려면 작업 공간에서 모든 의존성을 확인하고, Ghost 객체를 제거하며, 패밀리 테이블을 올바르게 관리하고, Windchill 설정을 점검해야 합니다. 데이터 무결성을 유지하기 위해 더미 파트 생성과 같은 임시 해결책은 피하고, 원본 데이터를 정확히 관리하는 것이 중요합니다.
by korealionkk@gmail.com