KR102055955B1 - 강체 운동들에 의해 변환된 기하학적 엘리먼트들 - Google Patents

강체 운동들에 의해 변환된 기하학적 엘리먼트들 Download PDF

Info

Publication number
KR102055955B1
KR102055955B1 KR1020130168725A KR20130168725A KR102055955B1 KR 102055955 B1 KR102055955 B1 KR 102055955B1 KR 1020130168725 A KR1020130168725 A KR 1020130168725A KR 20130168725 A KR20130168725 A KR 20130168725A KR 102055955 B1 KR102055955 B1 KR 102055955B1
Authority
KR
South Korea
Prior art keywords
arcs
graph
rigid
subgraph
nodes
Prior art date
Application number
KR1020130168725A
Other languages
English (en)
Other versions
KR20140088038A (ko
Inventor
장-밥티스뜨 장비에
Original Assignee
다솔 시스템므
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 다솔 시스템므 filed Critical 다솔 시스템므
Publication of KR20140088038A publication Critical patent/KR20140088038A/ko
Application granted granted Critical
Publication of KR102055955B1 publication Critical patent/KR102055955B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/18Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/61Scene description

Abstract

3차원 모델링된 오브젝트를 설계하기 위한 컴퓨터 구현 방법이 제공된다. 그 방법은, 모델링된 오브젝트를 나타내고 기하학적 엘리먼트들이 서로 복사본인 세트를 포함하는 기하학적 엘리먼트들을 제공하는 단계 (S10) 를 포함한다. 그 방법은 또한 그래프를 정의하는 단계 (S20), 그 그래프의 최대 서브그래프들을 결정하는 단계 (S30), 결정된 서브그래프들 내에서, 최고 수의 원호들을 갖고 원호들에 의해 나타내어진 강체 운동들 모두가 동일성 기준을 준수하는 연결형 컴포넌트들의 세트를 식별하는 단계 (S40) 를 포함한다. 이러한 방법은 3D 모델링된 오브젝트의 설계를 개선한다.

Description

강체 운동들에 의해 변환된 기하학적 엘리먼트들{GEOMETRICAL ELEMENTS TRANSFORMED BY RIGID MOTIONS}
본 발명은 컴퓨터 프로그램들 및 시스템들의 분야에 관한 것이고, 더 상세하게는 3차원 (3D) 모델링된 오브젝트를 설계하는 방법, 시스템 및 프로그램에 관한 것이다.
다수의 시스템들 및 프로그램들이 오브젝트들의 설계, 엔지니어링 및 제조를 위해 시중에 제공된다. CAD는 컴퓨터 지원 설계 (Computer-Aided Design) 의 영어 머리글자이며, 예컨대 오브젝트를 설계하기 위한 소프트웨어 솔루션들에 관련된다. CAE는 컴퓨터 지원 엔지니어링 (Computer-Aided Engineering) 의 영어 머리글자이며, 예컨대 미래의 제품의 물리적 행동을 시뮬레이션하기 위한 소프트웨어 솔루션들에 관련된다. CAM은 컴퓨터 지원 제조 (Computer-Aided Manufacturing) 의 영어 머리글자이며, 예컨대 제조 프로세스들 및 오퍼레이션들을 정의하기 위한 소프트웨어 솔루션들에 관련된다. 이러한 시스템들에서, 그래픽 사용자 인터페이스 (GUI) 는 기법의 효율과 관련하여 중요한 역할을 담당한다. 이들 기법들은 제품 수명주기 관리 (Product Lifecycle Management; PLM) 시스템들 내에 내포될 수도 있다. PLM은 기업들이 확장 기업의 개념 전체에 걸쳐서, 제품 데이터를 공유하며, 공통 프로세스들을 적용하고, 제품들의 개발을 위한 기업의 지식에 구상에서부터 제품들의 수명의 끝까지 영향력을 행사하는 것을 돕는 경영 전략을 말한다.
다솔 시스템므 (Dassault Systemes) 에 의해 (CATIA, ENOVIA 및 DELMIA라는 상표들 하에서) 제공되는 PLM 솔루션들은, 제품 엔지니어링 지식을 편성하는 엔지니어링 허브, 제조 엔지니어링 지식을 관리하는 제조 허브, 그리고 엔지니어링 및 제조 허브들 양쪽 모두로의 기업 통합 및 연결을 가능하게 하는 기업 허브를 제공한다. 동시에 그 시스템은 최적화된 제품 정의, 제조 준비, 생산 및 서비스를 도출하는 동적인 지식 기반 제품 창작 및 결정 지원을 가능하게 하는 제품들, 프로세스들, 자원들을 링크하는 개방형 오브젝트 모델을 제공한다.
많은 CAD 시스템들은 이제 사용자에게 제공된 모델링된 오브젝트의 경계 표현 (boundary representation; B-Rep) 에 기초하여, 사용자가 3D 모델링된 오브젝트를 설계하는 것을 허용한다. B-Rep는 개별 지지하는 표면의 경계있는 (bounded) 부분으로서 각각 정의되는 면 (face) 들의 세트를 포함하는 데이터 포맷이다. 사용자는, 기존의 면들을 수정하며, 새로운 면들을 생성하며, 일부 면들을 삭제하며, 그리고/또는 면들에 대한 및/또는 면들 간의 제약조건들을 정의함으로써, 또는 사용 시의 CAD 시스템에 의해 제공되는 그런 것의 임의의 액션들에 의해, 면들의 세트에 대해 역할을 할 수 있다. 이러한 경우에, 효율을 목적으로, 입체의 이력 (history) 은 사용자에게 일반적으로 이용가능하지 않다.
개발중인 그런 3D 설계의 양태들 중 하나는 "패턴 인식"으로 알려져 있다. 용어 "패턴"은 동일한 기하학적 특징의 복사본들의 규칙적인 레이아웃들을 말한다. 패턴들을 인식하는 것은 설계 동안에 단일 엘리먼트로서의 그런 패턴들의 핸들링을 허용하며, 이에 의해 설계 가능성들의 어레이를 확장시킨다. 예를 들어, 패턴의 엘리먼트들을 하나씩 수정하는 대신, 패턴의 사전 인식의 덕분에, 사용자는 예컨대 단일 액션들로 패턴의 수정들을 전역적으로 (globally) 수행할 수도 있다. 패턴 인식은 CAD의 상이한 영역들, 기계 설계, 소비재들, 건축 아키텍처, 항공우주, 또는 다른 영역들에 관계가 있다.
패턴 인식은 특징 (feature) 인식에 관련될 수도 있다. 특징 인식은 주어진 3D 오브젝트 (통상 기계적 부품을 나타내는 입체) 에 대한 특징적 형상들을 인식하는데 유용하다. 기계 설계를 위한 관심있는 특징적 형상들은 예를 들어 구멍들, 돌출된 패드들, 돌출된 포켓들, 필렛들 (fillets) 또는 라운드들, 반곡 (revolute) 패드들, 및/또는 반곡 포켓들을 포함한다. 특징적 형상을 인식하는 것은 그것의 사양들을 양호한 의미론적 레벨, 예를 들어 돌출된 또는 반곡 형상의 프로파일, 반곡 형상의 선회 축, 라운드들 및 필렛들의 반경 값, 돌출 방향, 및/또는 돌출 깊이를 통해 식별하는 것과 마찬가지이다. 이 정보는 형상을, 예를 들어 돌출부의 프로파일을 편집함으로써 수정하는 것, 또는 하류의 공정, 예를 들어 기계가공 (machining) 공정을 피드 (feed) 하는 것 중 어느 하나를 위해 사용된다.
특징 인식 능력들은 다음의 절차를 통해 상업적 CAD 시스템들에서 이용가능하다. 사용자는 인식하려는 특징의 유형을 선택할 수도 있다. 그 다음에, 옵션적으로, 사용자는 검색을 초기화하기 위하여 입체 상의 특징의 하나 이상의 면들을 선택한다. 그 시스템은 인식을 수행하고 인식된 특징의 사양들을 산출 (yield) 한다.
입력 입체의 형상을 국소적으로 변경하는 것이 의도되는 경우, "직접 편집 (direct editing)" 능력이 또한 이용가능하다. 또한 "이력 없는 모델링 (history free modeling)"이라고 불리는 이 기술은 이력 설계에 대한 대안으로서 CAD 편집기들에 의해 촉진되었다. 그 목표는 그것의 B-Rep만을 이용하여 입체의 형상을 쉽게 변경하는 것이다. 사용자 관점에서 편집을 간단하게 하기 위하여, "직접 편집" 기술은 입체의 로컬 형상을 인식해야 한다. 예를 들어, 그 시스템은 구멍의 원통형 형상을 유지하며 (그리고 그 원통을 좌우 불균형 (free form) 표면으로 변경하지 않으며), 포켓의 벽들의 수직 방향을 유지하며, 그리고/또는 형상의 반곡 또는 돌출된 성질을 유지해야 한다. 결과적으로, 특징 인식은 심지어 "직접 편집" 분야에서도 피할 수 없다.
전통적인 특징 인식은 한 번에 하나의 특징을 다룬다. 그것은 주어진 특징의 다수의 복사본들을 식별하지 못하고 그것은 이들 사본들의 레이아웃을 식별하지 못한다. 패턴 인식에 관해서는, 주제는 여전히 개발 중이지만, 기존의 해결책들은 많은 사용자 개입들을 필요로 하는 듯하다.
따라서, 기존의 해결책들은 명백히 사용자 활용 관점에서 그리고 철저함 관점에서 효율이 부족하다. 이 상황 내에서, 3D 모델링된 오브젝트를 설계하기 위한 개선된 방법에 대한 요구가 여전히 존재한다.
하나의 양태에 따르면, 그러므로 3D 모델링된 오브젝트를 설계하기 위한 컴퓨터 구현 방법이 제공된다. 그 방법은, 모델링된 오브젝트를 나타내고 기하학적 엘리먼트들이 서로 복사본인 세트를 포함하는 기하학적 엘리먼트들을 제공하는 단계를 포함한다. 그 방법은 또한 그 세트의 기하학적 엘리먼트를 각각 나타내는 노드들, 및 각각 노드들의 한 쌍을 연결시키고 그 쌍 중 하나의 노드에 의해 나타내어진 기하학적 엘리먼트를 그 쌍 중 다른 노드에 의해 나타내어진 기하학적 엘리먼트로 변환시키는 강체 운동을 나타내는 원호들을 갖는 그래프를 정의하는 단계를 포함한다. 그 방법은 또한 원호들에 의해 나타내어진 강체 운동들 모두가 미리 결정된 유사도 기준을 준수하는 그래프의 최대 서브그래프들을 결정하는 단계를 포함하며, 그 유사도 기준은 미리 결정된 동일성 기준보다 약하다. 그리고 그 방법은 결정된 서브그래프들 내에서, 최고 수의 원호들을 갖고 원호들에 의해 나타내어진 강체 운동들 모두가 동일성 기준을 준수하는 연결형 컴포넌트들의 세트를 식별하는 단계를 포함한다.
그 방법은 다음들 중의 하나 이상을 포함할 수도 있다:
- 그 방법은 하기를 반복하는 것을 더 포함하며: 연결형 컴포넌트들의 식별된 세트의 각각의 연결형 컴포넌트의 노드들을 붕괴시킴으로써 그래프를 수정시키는 단계; 및 수정된 그래프에 대해 결정하는 단계 및 식별하는 단계를 반복하는 단계;
- 붕괴시키는 것은 다음을 포함하며: 연결형 컴포넌트들의 식별된 세트의 임의의 연결형 컴포넌트의 임의의 노드에 연결된 모든 원호들을 삭제하는 단계; 각각의 개별 연결형 컴포넌트에 대해, 개별 연결형 컴포넌트의 모든 노드들을 단일 노드에 의해 교체하는 단계; 및 등측성 (isometric) 인 연결형 컴포넌트들을 나타내는 노드들의 쌍들 사이에 원호들을 추가하는 단계로서, 각각의 추가된 원호는 쌍 중 하나의 노드에 의해 나타내어진 연결형 컴포넌트를 쌍 중 다른 노드에 의해 나타내어진 연결형 컴포넌트로 변환시키는 강체 운동을 나타내는, 추가하는 단계;
- 식별하는 단계는 다음을 포함하며: 결정된 서브그래프들 내에서, 최고 수의 원호들을 갖는 서브그래프를 선택하는 단계, 및 선택된 서브그래프의 연결형 컴포넌트들 중 각각의 연결형 컴포넌트의 원호들에 의해 나타내어진 강체 운동들 모두가 동일성 기준을 준수하는지의 여부를 테스트하는 단계;
- 식별하는 단계는 다음을 더 포함하며: 테스트하는 단계의 결과가 긍정적이면, 연결형 컴포넌트들의 세트를 선택된 서브그래프의 연결형 컴포넌트들로서 식별하는 단계; 그렇지 않고, 테스트하는 단계 (S420) 의 결과가 부정적이면, 선택된 서브그래프를 분할하는 단계와 선택하는 단계 및 테스트하는 단계를 재실행하는 단계; 그리고/또는
- 분할하는 단계는 다음을 포함한다: 선택된 서브그래프로부터, 선택된 서브그래프의 모든 서브그래프들 중에서, 최고 수의 원호들을 가지고 원호들에 의해 나타내어진 강체 운동들 모두가 동일성 기준을 준수하는 선택된 서브그래프의 서브그래프의 원호들을 절단하는 단계; 및 절단된 원호들로 새로운 서브그래프를 생성하는 단계.
위의 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 프로그램이 추가로 제안된다. 그 컴퓨터 프로그램은 컴퓨터 판독가능 저장 매체에 기록되도록 적응된다.
위의 컴퓨터 프로그램이 기록된 컴퓨터 판독가능 저장 매체가 추가로 제안된다.
메모리 및 그래픽 사용자 인터페이스에 접속된 프로세서를 포함하며, 메모리는 위의 컴퓨터 프로그램을 기록하고 있는 CAD 시스템이 추가로 제안된다.
본 발명의 실시예들이 비제한적인 예로서 다음의 첨부 도면들을 참조하여 이제 설명될 것이다.
도 1은 본 방법의 일 예의 흐름도를 도시한다;
도 2는 그래픽 사용자 인터페이스의 일 예를 도시한다;
도 3은 클라이언트 컴퓨터 시스템의 일 예를 도시한다;
도 4 내지 도 30은 본 방법의 예들을 도시한다.
도 1은 3D 모델링된 오브젝트를 설계하기 위한 컴퓨터 구현 방법의 흐름도를 도시한다. 그 방법은 기하학적 엘리먼트들을 제공하는 단계 (S10) 를 포함한다. 그 기하학적 엘리먼트들은 모델링된 오브젝트를 나타낸다. S10에서 제공되는 그 기하학적 엘리먼트들은 기하학적 엘리먼트들이 서로 복사본인 세트를 포함한다. 그 방법은 또한 노드들과 각각 노드들의 한 쌍을 연결시키는 원호들을 갖는 그래프를 정의하는 단계 (S20) 를 포함한다. 그 노드들은 각각 그 세트의 기하학적 엘리먼트를 나타낸다. 그 원호들은 각각 쌍 중 하나의 노드에 의해 나타내어진 기하학적 엘리먼트를 쌍 중 다른 노드에 의해 나타내어진 기하학적 엘리먼트로 변환하는 강체 운동을 나타낸다. 그 방법은 또한 그래프의 최대 서브그래프들을 결정하는 단계 (S30) 를 포함한다. S30에서 결정된 그 최대 서브그래프들은 그 중에서도 원호들에 의해 나타내어진 강체 운동들 모두가 미리 결정된 유사도 기준을 준수하는 것들이다. 유사도 기준은 미리 결정된 동일성 기준보다 약하다. 그리고 그 방법은 또한 결정된 서브그래프들 (S30에서 결정됨) 내에서, 최고 수의 원호들을 갖고 원호들에 의해 나타내어진 강체 운동들 모두가 동일성 기준을 준수하는 연결형 컴포넌트들의 세트를 식별하는 단계 (S40) 를 포함한다.
그런 방법은 3D 모델링된 오브젝트를 설계하기 위한 개선된 해결책을 구성한다. 원호들에 의해 나타내어진 강체 운동들 모두가 동일성 기준을 준수하는 연결형 컴포넌트들을 식별하는 단계 (S40) 에 의해, 그 방법은 기하학적 패턴들을 결정하고 이에 의해 패턴 기반 설계 기능성들을 사용자에게 개방한다. 원호들에 의해 나타내어진 강체 운동들 모두가 동일성 기준보다 약한 미리 결정된 유사도 기준을 준수하는 그래프의 최대 서브그래프들 내에서 이들 패턴들을 식별하는 단계 (S40) 에 의해, 그 방법은 의도된 패턴들을 양호하게 파악하고 설계를 더욱 용이하게 하기 위해 적절한 식별을 수행한다. 주목할 만하게도, S30의 특정 기준에 따른 최대인 서브그래프들을 결정하는 것에 의해 그리고 S40의 특정 기준에 따른 이들 서브그래프들 내에서 최고 수의 원호들을 갖는 연결형 컴포넌트들의 세트를 S40에서 식별하는 것에 의해, 그 방법은 인식된 패턴들에서의 원호들의 총 수에 따라 패턴 인식을 최적화하며, 따라서 가장 의도된 패턴들을 인식한다. 그 방법이 유사도 기준 및 동일성 기준의 사용을 그것의 특정 방법으로 혼합하기 때문에, 그 방법은 "패턴들의 패턴 (pattern of patterns)" 구조 자체들에 속할 가능성이 있는 패턴들을 인식한다. 따라서, 그 방법은 재귀적 패턴 인식을 향한 제 1 단계를 구성하며, 이에 의해 그런 재귀적 패턴 인식을 위한 데이터를 준비한다. 그 방법이 그래프 정의 (S20) 에 그리고 기하학적 컴퓨테이션들에 의존하기 때문에, 그 방법은 쉽사리 구현될 수도 있고 이에 따라 자동화되고, 이에 의해 의미있는 패턴들을 철저하고 빠른 방법으로 식별한다. 이는 모두가 다음의 논의들에서 상세히 설명된다.
모델링된 오브젝트는 컴퓨터 시스템의 메모리에 저장된 데이터에 의해 정의되는 임의의 오브젝트이다. 확장에 의해, "모델링된 오브젝트 (modeled object)"라는 표현은 데이터 자체를 가리킨다. "3D 모델링된 오브젝트를 설계한다는 것"은 3D 모델링된 오브젝트를 정교화 (elaboration) 하는 프로세스의 적어도 부분인 임의의 액션 또는 일련의 액션들을 나타낸다. 그래서, 그 방법은 휘갈긴 것 (scratch) 으로부터 3D 모델링된 오브젝트를 생성하는 단계를 포함할 수도 있다. 다르게는, 그 방법은 이전에 생성된 3D 모델링된 오브젝트를 제공한 다음 3D 모델링된 오브젝트를 수정하는 단계를 포함할 수도 있다.
3D 모델링된 오브젝트는 CAD 모델링된 오브젝트 또는 CAD 모델링된 오브젝트의 부분일 수도 있다. 어느 경우에나, 그 방법에 의해 설계된 3D 모델링된 오브젝트는 CAD 모델링된 오브젝트 또는 그것의 적어도 부분, 예컨대 CAD 모델링된 오브젝트에 의해 점유되는 3D 공간을 나타낼 수도 있다. CAD 모델링된 오브젝트는 CAD 시스템의 메모리에 저장된 데이터에 의해 정의되는 임의의 오브젝트이다. 이 시스템의 유형에 따르면, 모델링된 오브젝트들은 상이한 종류들의 데이터에 의해 정의될 수도 있다. CAD 시스템은 모델링된 오브젝트의 그래픽 표현을 기초로 하여 모델링된 오브젝트를 설계하는 데에는 최소한 적합한 임의의 시스템, 이를테면 CATIA이다. 그래서, CAD 모델링된 오브젝트를 정의하는 데이터는 모델링된 오브젝트의 표현 (예컨대, 공간에서의 상대 위치들을 예를 들어 포함하는 기하학적 데이터) 을 포함한다.
그 방법은, 그 방법을 수행한 후, 예컨대 그 방법에 의해 인식된 기하학적 패턴(들)에 따라, 모델링된 오브젝트에 대응하는 물리적 제품을 생산하는 것을 포함할 수도 있는 제조 프로세스에 포함될 수도 있다 (이러한 경우에, 그 제조 프로세스는 상기 기하학적 패턴(들)에 대한 정보가 피드될 수도 있다). 어느 경우에나, 그 방법에 의해 설계된 모델링된 오브젝트는 제조 오브젝트를 나타낼 수도 있다. 그 모델링된 오브젝트는 따라서 모델링된 입체 (즉, 입체를 나타내는 모델링된 오브젝트) 일 수도 있다. 제조 오브젝트는 제품, 이를테면 부품, 또는 부품들의 어셈블리일 수도 있다. 그 방법이 모델링된 오브젝트의 설계를 개선하기 때문에, 그 방법은 또한 제품의 제조를 개선하고 이에 따라 제조 프로세스의 생산성을 증가시킨다. 그 방법은 CAM 시스템, 이를테면 DELMIA를 사용하여 구현될 수 있다. CAM 시스템은 적어도 제조 프로세스들 및 동작들을 정의하며, 시뮬레이션하고 제어하기에 적합한 임의의 시스템이다.
그 방법은 컴퓨터로 구현된다. 이는 그 방법이 적어도 하나의 컴퓨터, 또는 유사한 임의의 시스템 상에서 실행된다는 것을 의미한다. 예를 들어, 그 방법은 CAD 시스템 상에 구현될 수도 있다. 따라서, 그 방법의 단계들 (예컨대 사용자에 의해 트리거되는 단계들 및/또는 사용자-상호작용을 수반하는 단계들) 은 컴퓨터에 의해, 어쩌면 완전히 자동으로, 또는, 반자동으로 수행된다. 주목할 만하게도, 제공하는 단계 (S10) 및/또는 정의하는 단계 (S20) 는 사용자에 의해 트리거될 수도 있다. 결정하는 단계 (S30) 및/또는 식별하는 단계 (S40) 는 자동으로 (즉, 임의의 사용자 개입들 없이), 또는 반자동으로 (즉, 예를 들어 결과를 유효성검증 또는 서브그래프들 및/또는 연결형 컴포넌트들의 세트에/그것들로부터 사용자 결정된 엘리먼트들을 추가/삭제하기 위한 - 예컨대 광 - 사용자 개입을 수반하여) 수행될 수도 있다.
그 방법의 컴퓨터 구현의 전형적인 예는 이 목적에 적합한 시스템으로써 그 방법을 수행하는 것이다. 그 시스템은 그 방법을 수행하기 위한 명령들을 기록하고 있는 메모리를 포함할 수도 있다. 다르게 말하면, 소프트웨어가 즉각적인 사용을 위해 메모리에 미리 준비된다. 그 시스템은 따라서 임의의 다른 소프트웨어를 설치하는 일 없이 그 방법을 수행하기에 적합하다. 이러한 시스템은 또한 메모리에 접속되어 명령들을 실행하는 적어도 하나의 프로세서를 포함할 수도 있다. 다르게 말하면, 그 시스템은 프로세서에 접속된 메모리 상에 코딩된 명령들을 포함하며, 그 명령들은 그 방법을 수행하기 위한 수단을 제공한다. 이러한 시스템은 3D 모델링된 오브젝트를 설계하기 위한 효율적인 도구이다.
이러한 시스템은 CAD 시스템일 수도 있다. 그 시스템은 또한 CAE 및/또는 CAM 시스템일 수도 있고, CAD 모델링된 오브젝트는 또한 CAE 모델링된 오브젝트 및/또는 CAM 모델링된 오브젝트일 수도 있다. 사실상, CAD, CAE 및 CAM 시스템들은 하나를 다른 하나로부터 배제하지 않는데, 모델링된 오브젝트가 이들 시스템들의 임의의 조합에 상응하는 데이터에 의해 정의될 수 있어서이다.
그 시스템은, 예를 들어 사용자에 의한 명령들의 실행을 론칭하기 위한 적어도 하나의 GUI를 포함할 수도 있다. 주목할 만하게도, 그 GUI는 사용자가 제공하는 단계 (S10) 를 트리거하고, 그 다음에, 사용자가, 예컨대 특정 함수 (예컨대 명칭이 "재귀적 패턴 인식") 를 론칭함으로써 그렇게 하기로 결정하면, 정의하는 단계 (S20) 를 트리거하는 것을 허용할 수도 있다. 결정하는 단계 (S30) 와 그 다음의 식별하는 단계 (S40) 는 그러면 자동으로 또는 반자동으로 수행될 수도 있다.
3D 모델링된 오브젝트는 3D (즉, 3차원) 이다. 이는 모델링된 오브젝트가 그것의 3D 표현을 허용하는 데이터에 의해 정의된다는 것을 의미한다. 주목할 만하게도, S10에서 제공된 기하학적 엘리먼트들은 3D이다 (즉, 그것들은 3D로 정의되어서, 모든 기하학적 엘리먼트들의 합체물 (union) 은 평면에 포함가능하지 않을 수도 있다). 3D 표현은 모든 각도들로부터 그 표현의 관람을 허용한다. 예를 들어, 모델링된 오브젝트는, 3D 표현될 때, 3D 표현의 축들 중 임의의 것을 중심으로 또는 그 표현이 디스플레이되는 스크린의 임의의 축을 중심으로 핸들링 및 회전될 수도 있다. 이는 명백히, 2D 아이콘들이 2D 관점에서 무엇인가를 나타내는 경우에도, 3D 모델링되지 않는 2D 아이콘들을 배제한다. 3D 표현의 디스플레이는 설계를 용이하게 한다 (즉 설계자들이 그들의 과업을 통계적으로 달성하는 속도를 증가시킨다). 이는 업계에서 제조 프로세스의 속도를 높이는데, 제품들의 설계가 제조 프로세스의 부분이어서이다. 그 방법의 3D 캐릭터에 관련한 논의는 도면들 상의 일부 예들이 2D로 표현되는 경우에도 참이라는 것에 주의한다. 이들 예들은 그 방법을 이해시킬 목적이라는 것이 이해되어야 한다.
도 2는 전형적인 CAD 시스템의 GUI의 일 예를 도시한다.
GUI (2100) 는 표준 메뉴 바들 (2110, 2120) 뿐만 아니라 바닥 및 측면 툴바들 (2140, 2150) 을 갖는 전형적인 CAD형 인터페이스일 수도 있다. 이러한 메뉴 바들 및 툴바들은 사용자 선택가능 아이콘들의 세트를 포함하며, 각각의 아이콘은 이 기술분야에서 알려진 바와 같이, 하나 이상의 동작들 또는 기능들에 연관된다. 이들 아이콘들 중 일부는 GUI (2100) 에 디스플레이되는 3D 모델링된 오브젝트 (2000) 에 대한 편집 및/또는 작업에 적응된 소프트웨어 도구들에 연관된다. 그 소프트웨어 도구들은 작업대 (workbench) 들로 그룹화될 수도 있다. 각각의 작업대는 소프트웨어 도구들의 서브세트를 포함한다. 특히, 작업대들 중 하나는, 모델링된 제품 (2000) 의 기하학적 특징들을 편집하기에 적합한 편집 작업대이다. 동작 시, 설계자가 예를 들어 오브젝트 (2000) 의 부품을 미리 선택한 다음 적절한 아이콘을 선택하는 것에 의해 작업 (예컨대, 스크럽팅 작업, 또는 치수, 컬러 등을 변경하는 그런 임의의 다른 작업) 을 개시하거나 또는 기하학적 제약들을 편집할 수도 있다. 예를 들어, 전형적인 CAD 작업들은 스크린 상에 디스플레이되는 3D 모델링된 오브젝트의 펀칭 또는 폴딩 (folding) 의 모델링이다.
GUI는 예를 들어 디스플레이된 제품 (2000) 에 관련된 데이터 (2500) 를 디스플레이할 수도 있다. 도 2의 예에서, "특징 트리"로서 디스플레이된 데이터 (2500), 및 그것들의 3D 표현 (2000) 은 브레이크 캘리퍼 및 디스크를 포함하는 브레이크 조립체에 관련된다. 그 GUI는, 예를 들어 오브젝트의 3D 배향을 용이하게 하기 위한, 편집된 제품의 동작의 시뮬레이션을 트리거하기 위한 또는 디스플레이된 제품 (2000) 의 다양한 속성들을 렌더링하는 다양한 유형들의 그래픽 도구들 (2130, 2070, 2080) 을 추가로 보여줄 수도 있다. 커서 (2060) 는 사용자가 그래픽 도구들과 상호작용하는 것을 허용하는 햅틱 디바이스에 의해 제어될 수도 있다.
도 3은 클라이언트 컴퓨터 시스템, 예컨대 사용자의 워크스테이션인 시스템의 아키텍처의 일 예를 도시한다.
클라이언트 컴퓨터는 내부 통신 BUS (1000) 에 접속된 중앙 프로세싱 유닛 (CPU) (1010), 또한 그 BUS에 접속된 랜덤 액세스 메모리 (RAM) (1070) 를 포함한다. 클라이언트 컴퓨터에는, BUS에 접속된 비디오 랜덤 액세스 메모리 (1100) 에 연관된 그래픽 프로세싱 유닛 (GPU) (1110) 이 추가로 제공된다. 비디오 RAM (1100) 은 또한 이 기술분야에서 프레임 버퍼로서 알려져 있다. 대용량 저장 디바이스 제어기 (1020) 가 대용량 메모리 디바이스, 이를테면 하드 드라이브 (1030) 에 대한 액세스들을 관리한다. 컴퓨터 프로그램 명령들 및 데이터를 유형적으로 수록하기에 적합한 대용량 메모리 디바이스들은, 예로서 반도체 메모리 디바이스들, 이를테면 EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 이를테면 내장형 하드 디스크들 및 착탈식 디스크들; 자기 광 디스크들; 및 CD-ROM 디스크들 (1040) 을 포함한 모든 형태의 비휘발성 메모리를 포함한다. 전술한 것들 중 어느 것이라도 특별히 설계된 ASIC들 (application-specific integrated circuits) 에 의해 보충되거나, 또는 그 ASIC들에 통합될 수도 있다. 네트워크 어댑터 (1050) 가 네트워크 (1060) 에 대한 액세스들을 관리한다. 클라이언트 컴퓨터는 또한 커서 제어 디바이스, 키보드 등과 같은 햅틱 디바이스 (1090) 를 구비할 수도 있다. 커서 제어 디바이스는, 도 2를 참조하여 언급된 바와 같이, 사용자가 스크린 (1080) 상의 임의의 소망의 위치에 커서를 선택적으로 위치시키는 것을 허용하기 위해 클라이언트 컴퓨터에서 사용된다. 스크린에 의하면, 그것은 디스플레이가 수행될 수도 있는 임의의 서포트, 이를테면 컴퓨터 모니터를 의미한다. 덧붙여서, 커서 제어 디바이스는 사용자가 다양한 커맨드들을 선택하고, 제어 신호들을 입력하는 것을 허용한다. 커서 제어 디바이스는 제어 신호들을 시스템에 입력하기 위한 다수의 신호 생성 디바이스들을 포함한다. 통상, 커서 제어 디바이스는 마우스의 버튼이 신호들을 생성하는데 사용되는 마우스일 수도 있다.
시스템으로 하여금 그 방법을 수행하도록 하기 위해, 이 목적을 위한 수단을 포함하는 명령들을 컴퓨터에 의한 실행을 위해 포함하는 컴퓨터 프로그램이 제공된다. 그 프로그램은 예를 들어 디지털 전자 회로로 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그것들의 조합들로 구현될 수도 있다. 본 발명의 장치는 프로그램가능 프로세서에 의한 실행을 위해 머신 판독가능 저장 디바이스에 유형적으로 (tangibly) 수록되는 컴퓨터 프로그램 제품으로 구현될 수도 있으며; 그리고 본 발명의 방법 단계들은 입력 데이터에 대해 동작하고 출력을 생성하는 것에 의해 본 발명의 기능들을 수행하기 위한 명령들의 프로그램을 실행하는 프로그램가능 프로세서에 의해 수행될 수도 있다. 그 명령들은 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 데이터 및 명령들을 그것들에 송신하도록 결합되는 적어도 하나의 프로그램가능 프로세서를 구비한 프로그램가능 시스템 상에서 실행가능한 하나 이상의 컴퓨터 프로그램들로 유익하게 구현될 수도 있다. 애플리케이션 프로그램은 소망된다면 고급 절차적 또는 객체 지향 프로그래밍 언어로 또는 어셈블리 또는 기계어로 구현될 수도 있으며; 그리고 어느 경우에나, 그 언어는 컴파일 또는 인터프리트 언어일 수도 있다. 그 프로그램은 완전한 설치 프로그램, 또는 업데이트 프로그램일 수도 있다. 후자의 경우에, 그 프로그램은 기존 CAD 시스템을 시스템이 방법을 수행하기에 적합한 상태로 업데이트한다.
제공하는 단계 (S10) 가 이제 논의된다.
그 방법은 모델링된 오브젝트를 나타내는 기하학적 엘리먼트들을 제공하는 단계 (S10) 를 포함한다. 기하학적 엘리먼트들은 따라서 모델링된 오브젝트의 기하구조의 부분이다. 기하학적 엘리먼트들은 임의의 유형이 될 수도 있다. 예를 들어, 기하학적 엘리먼트들은 기초 입체들, 기초 곡선들, 및/또는 기초 표면들을 포함할 수도 있다. CAD에서 널리 사용되고 주로 다음에서 논의되는 일 예에서, 기하학적 엘리먼트들은 S10에서 제공된 모델링된 오브젝트의 경계 표현 (B-Rep) 의 (예컨대 모든) 면들일 수도 있다. 그 기하학적 엘리먼트들은 또한 B-Rep의 면들의 기하학적 패턴들일 수도 있다. 이러한 경우에, 그 방법은 패턴들의 패턴 인식을 직접 수행한다.
제공하는 단계 (S10) 는 설계자가 모델링된 오브젝트에 대해 (예컨대 그것의 경계 표현에 대해) 작업한 결과일 수도 있거나, 또는 예를 들어 그 방법이 예컨대 기존의 라이브러리들에서 취출되는 B-Rep들과 같은 미리 존재하는 모델들에 적용될 수도 있다는 사실의 결과일 수도 있다. 모델링된 오브젝트는 어쨌든 S10에서 B-Rep로서 제공될 수도 있다. 그 경계 표현은 그것의 포락선 (envelop) (즉, 그것의 외부 표면들) 의 측면에서 3D 오브젝트를 모델링하기 위한 널리 알려진 포맷이다. B-Rep는 따라서 기하학적 데이터 및 위상기하학적 데이터를 포함할 수도 있는 특정 포맷의 데이터를 의미한다. 기하학적 데이터는 3D 포지션들의 측면에서 설명되는 엔티티들인 기하학적 엔티티들을 제공하는 데이터이다. 위상기하학적 데이터는 기하학적 엔티티들에 대한 참조들 및/또는 다른 위상기하학적 엔티티들과의 관계들, 예컨대 상대적 포지셔닝의 측면에서 설명되는 엔티티들인 위상기하학적 엔티티들을 제공하는 데이터이다. 보통, 그 관계들은 위상기하학적 엔티티를 다른 위상기하학적 엔티티들에 연관시키는, 그 엔티티들이 위상기하학적으로 경계 지어지게 하는, "에 의해 경계 지어지는 (is bounded by)" 관계를 포함할 수도 있다.
제공하는 단계 (S10) 는 임의의 이력 데이터를 제외할 수도 있다. 다르게 말하면, S10에서 제공된 모델링된 오브젝트는 이력이 없을 수도 있다. 이는 모델링된 오브젝트가 그것의 설계의 이력을 표시하는 임의의 데이터에 연관되지 않지만, 예컨대 B-Rep를 포함한 선언적인 데이터에 의해서만은 연관된다는 것을 의미한다. 따라서, 그 방법은 설계자가 모델링된 오브젝트의 이력을 소유하지 않는 상황 내에서 유효하게 작용할 수도 있으며, 이는 명백히, 모델링된 오브젝트에 대해 설계된 기하학적 패턴들은 S10에서 제공된 데이터에서와 같이 정의되지 않는다는 것을 의미한다.
그 방법의 경우, (예컨대 기하학적) 데이터는 이른바 "지지하는 표면들", 예를 들어 파라메트릭 표면들 (즉, 2D 도메인을 정의하는 파라미터들에 연관된 3D 포지션들의 측면에서 모델링된 3D 표면들) 을 포함할 수도 있다. 지지하는 표면들은 보통 Nurbs 표면들일 수도 있으며, 또한 평평한, 정전적 (canonical) 또는 절차적 (procedural) 표면들일 수도 있다. 그리고 (예컨대 위상기하학적) 데이터는, 각각의 면이 (기하학적 데이터로 제공된) 개별 지지하는 표면의 경계있는 부분으로 정의되는, 적어도 면들의 세트를 포함할 수도 있다. 따라서, 면은 트리밍된 (trimmed) 표면에 해당한다. 지지하는 표면들은 따라서 면들이, 임의의 방법으로, 트리밍 동작에 의해 정의되는 (이에 의해 면들을 "지지하는") 표면들이다. S10에서 제공된 기하학적 엘리먼트들은 따라서 전체 데이터에서 정의되는 그런 면들일 수도 있다.
B-Rep의 개념은, 비록 널리 알려져 있지만, S10에서 제공될 수도 있는 모델링된 오브젝트의 일 예를 통해 지금 추가로 논의된다. 적어도 일부 위상기하학적 엔티티들에 대해, 예를 들어 "에 의해 경계 지어지는" 관계와는 상이한 관계들을 갖는 B-Reps의 다른 예들은, 그러나 그 방법에 의해 고려될 수도 있다. 또한, 비 B-Rep 표현들이 그 방법에 의해 고려될 수도 있다.
이미 언급된 바와 같이, 모델링된 오브젝트의 B-Rep는 위상기하학적 엔티티들 및 기하학적 엔티티들을 포함할 수도 있다. 기하학적 엔티티들은 표면들 (예컨대 평면들), 곡선들 (예컨대 선들) 및/또는 점들인 3D 오브젝트들을 포함할 수도 있다. 표면들은 2 개의 파라미터들의 함수들로서 제공될 수도 있다. 곡선들은 간단히 하나의 파라미터의 함수들로서 제공될 수도 있다. 그리고 점들은 3D 포지션들로서 제공될 수도 있다. 위상기하학적 엔티티들은 면들, 에지들, 및/또는 정점들을 포함할 수도 있다. 그것의 정의에 의해, 면은 "지지하는 표면"이라 불리는 개별 표면의 경계있는 부분에 해당한다. 용어 "면"은 따라서 표면의 그런 경계있는 부분 또는 2D 도메인의 대응하는 경계있는 부분을 차별없이 표시할 수도 있다. 마찬가지로, 에지는, 예컨대 지지하는 곡선이라 불리는, 곡선의 경계있는 부분에 해당한다. 용어 "에지"는 따라서 곡선 또는 그것의 도메인의 그런 경계있는 부분을 표시할 수도 있다. 정점은 3D 공간에서의 점에 대한 링크로서 정의될 수도 있다. 이들 엔티티들은 서로 다음과 같이 관련된다. 곡선의 경계있는 부분은 곡선 상에 놓이는 2 개의 점들 (정점들) 에 의해 정의된다. 표면의 경계있는 부분은 그것의 경계에 의해 정의되며, 이 경계는 표면 상에 놓이는 에지들의 세트이다. 면의 경계의 에지들은 정점들을 공유함으로써 서로 연결된다. 면들은 에지들을 공유함으로써 함께 연결된다. 정의에 의해, 2 개의 면들은 그것들이 에지를 공유한다면 인접하다. 마찬가지로, 2 개의 에지들은 그것들이 정점을 공유한다면 인접하다. 표면들, 곡선들, 및 점들은 그것들의 파라미터화를 통해 함께 링크될 수도 있다. 예를 들어, 곡선을 정의하는 파라메트릭 함수의 파라미터의 값은 경계짓는 (bounding) 정점을 정의하기 위해 제공될 수도 있다. 마찬가지로, 곡선의 파라미터를 표면의 2 개의 파라미터들에 링크하는 함수는 경계짓는 에지를 정의하기 위해 제공될 수도 있다. 그러나, B-Rep의 그런 위상기하학적 데이터의 매우 상세한 구조는 본 설명의 범위 밖에 있다.
도 4 및 도 5는 S10에서 제공될 수 있는 것일 수도 있고 도면들에서 1, 2 및 3으로 번호 부여된 3 개의 면들인 상단의 평평한 면 (1) 과 2 개의 측방향 원통형 면들 (2 및 3) 로 이루어지는 원통형 슬롯 (80) 의 B-rep 모델을 도시한다. 도 4는 슬롯 (80) 의 사시도를 도시한다. 도 5는 모든 면들의 전개도를 도시한다. 중복된 번호들은 에지들 및 정점들이 공유됨을 예시한다. 면 1은 평면의 경계있는 부분이다. 면 1의 경계는 에지들 (4 및 5) 을 포함하며, 그것들의 각각은 정점들 (10 및 11) 에 의해 경계 지어진다. 그것들 양쪽 모두는 동일한 지지하는 원을 가진다. 면 2는 무한 원통형 표면 (즉, 면 2의 지지하는 표면) 상에 모두 놓이는 에지들 (6, 8, 5 및 13) 에 의해 경계 지어진다. 면들 (1 및 2) 은 그것들이 에지 5를 공유하기 때문에 인접하다. 면들 (2 및 3) 은 그것들이 에지들 (8 및 13) 을 공유하기 때문에 인접하다. 면들 (1 및 3) 은 그것들이 에지 4를 공유하기 때문에 인접하다.
도 6은 슬롯 (80) 의 B-rep 모델의 "에 의해 경계 지어지는" 위상기하학적 관계를 예시한다. 상부 계층 (101) 의 노드들은 면들이며, 중간 계층 (103) 의 노드들은 에지들이고 하부 계층 (105) 의 노드들은 정점들이다. 도 7 및 도 8은 위상기하학적 엔티티들 (면들, 에지들, 정점들) 및 지지하는 기하구조들 (무한한 원통, 무한한 평면, 무한한 선, 점들) 사이의 관계를 예시한다. CAD 시스템에서, B-rep 모델은 "에 의해 경계 지어지는" 관계 및 위상기하학적 엔티티들 및 지지하는 기하구조들 사이의 관계, 및 지지하는 기하구조들의 수학적 설명들을 적절한 데이터 구조로 수집한다. 다르게 말하면, 도 6 및 도 7 상에 도시된 데이터 구조들은, 기하학적 데이터의 기하학적 엔티티들에 대한 링크들 (이것은 도 7이다) 및 위상기하학적 엔티티들 사이의 링크들 (이것은 도 6이다) 을 포함하는, 이 예의 위상기하학적 데이터의 부분이다.
방법의 (단계들 S20-S40을 포함하는) 다른 액션들이 이제 논의된다.
S10에서 제공된 기하학적 엘리먼트들은, 기하학적 엘리먼트들이 서로 복사본인, 또는, 다르게 말하면, 기하학적으로 서로 동일한, 또는 서로 기하학적 복제물들인 세트 (예컨대 적어도 하나 세트) 를 포함한다. 그 방법은 이들 기하학적 엘리먼트들에 기초하여 그래프를 정의하는 단계 (S20) 를 포함한다. 이를 위해, 그 방법은 세트(들)의 선결을 제공하는 단계, 또는, 대안으로 세트(들)를 결정하는 단계를 포함할 수도 있다 (예컨대 그 방법은 세트의 엘리먼트들을 함께 링크시키는 특정 데이터를 결정한다). 이는 정의하는 단계 (S20) 를 더 빨리 수행하는 것을 허용한다. 예를 들어, 기하학적 엘리먼트들이 B-Rep의 면들의 세트인 경우, 그 방법은, 예컨대 사용자 트리거링 시, 면들이 서로 복사본인 경계 표현의 면들의 모든 서브세트들을 결정하는 단계를 포함할 수도 있다. S10의 세트는 숙련된 사람이 원하는 임의의 구현예에 따라 결정될 수도 있다. 예를 들어, 그 방법은 면들이 임의의 순서에 따라 브라우즈되는 면들의 쌍들 사이의 비교들을 수행하는 단계를 포함할 수도 있다. 그런 비교들은 임의의 방법으로 수행될 수도 있다. 예들은 나중에 제공된다. 또한, CAD의 분야에서 알려진 바와 같이, 수치적 컴퓨테이션들을 수반하는 임의의 결정은 시스템에 의해 적용된 필요한 수치적 근사값들을 조건으로 한다. 현재의 경우에, 면들은 비록 그것들이 이론적으로 약간 상이하지만 서로 복사본이 되도록 결정될 수도 있다. 따라서, 그 방법은 실질적으로 서로 복사본인 면들의 세트를 실제로 결정할 수도 있다. 그러나, 근사값들이 구현되는 방법은 본원의 논의의 대상이 아니어서, "실질적으로 서로 복사본"과 "서로 복사본"은 하기에서 구별되지 않는다. 2 개의 기하학적 엘리먼트들, 예컨대 면들이 서로 복사본이면 그 방법은 진술을 위해 미리 결정된 기준을 추종한다는 것만이 사실상 고려된다. 그 방법은 대안으로, 서로 복사본인 기하학적 엘리먼트들의 세트(들)의 사전 결정 없이, 직접 그래프를 정의 (S20) 할 수도 있다는 것이 또한 이해되어야 한다.
그 방법은 그 방법에 의해 나중에 광범위하게 사용되는 특정 그래프를 정의하는 단계 (S20) 를 포함한다. 그래프 이론에서 알려진 바와 같이, 그래프는 노드들과 각각이 노드들의 한 쌍을 연결시키는 원호들을 갖는 수학적 오브젝트이다. 그 방법은 따라서, (그 방법에 결정될 수도 있거나 또는 그와 같이 제공될 수도 있는) 어쩌면 서로 복사본인 기하학적 엘리먼트들의 세트를 식별한 후에, S10에서 제공된 데이터로부터 시작하여, 컴퓨터 데이터의 측면에서 그러한 구조를 정의한다 (S20). 여기서는 그런 세트들 중 여러 개가 결정되면, 같은 수만큼의 그래프들이 S20에서 각각 정의될 수도 있다는 것에 주의한다. 또는 그 방법은 제 1 반복으로 핸들링되지 않은 세트들에 대해 나중에 반복될 수도 있다. 이것들은 구현예 세부사항들이다. 그래프는 사본들의 전체 세트에 대해 또는 그것의 부분에 대해 정의될 수도 있다는 것에 또한 주의한다. 이것은 또한 구현예의 문제이다. 제 1 접근법에서, 패턴 인식을 철저하게 수행하기 위하여, 정의하는 단계 (S10) 가 전체 세트에 대해 수행될 수도 있다.
이제, S20에서 정의된 그래프는 (숙련된 사람에게 알려진 바와 같이) S20의 방법에 의해 만들어진 데이터를 포맷하는 특정 구조를 가진다. 각각의 노드는 사본들의 세트의 기하학적 엘리먼트 (예컨대 면) 를 나타낸다. 예를 들어, 각각의 노드 이름이, 예컨대 포인터를 통해, 기하학적 엘리먼트의 참조에 링크된다. 마찬가지로, 각각의 원호는 쌍 중 하나의 노드에 의해 나타내어진 기하학적 엘리먼트를 그 쌍 중 다른 노드에 의해 나타내어진 기하학적 엘리먼트로 변환하는 강체 운동을 나타낸다. 면을 포함한 임의의 기하학적 엘리먼트는, 점 세트, 즉, 3차원 공간의 서브세트
Figure 112013121188683-pat00001
로서 보여질 (그리고 이에 의해 그 방법에 의해 그와 같이 핸들링될) 수도 있다. 강체 운동은 D(x)=Rx+T 에 의한 2 개의 점 세트들 사이에서 정의된 매핑 D:
Figure 112013121188683-pat00002
Figure 112013121188683-pat00003
이며, 여기서 R은 회전이고 T는 병진 벡터 (어쩌면 그것들 중 하나에 대해 널 (null)) 이다. 강체 운동 D 는 짧게는 D=(R,T) 라고 적을 수 있다. 강체 운동은 가역적인데, y=D(x) 가 x=D-1(y) 와 동등하며 여기서 D-1(y)=R-1y-R-1T 이다. 3차원 강체 운동들의 그룹은 전통적으로 SE(3) 이라고 적는다. S10에서 제공된 세트의 기하학적 엘리먼트들이 서로 복사본이므로, 그 세트의 2 개의 기하학적 엘리먼트들이 주어지면, 하나는 이론적으로는 강체 운동을 적용하는 것에 의해 다른 하나로부터 유도될 수도 있다.
그래프는 그런 유도 (또는 변환) 를 서술하는 데이터를 수집한다. 강체 운동들 및 관련된 기하구조들은 사실상, 지시받은 및 연결된 그래프 B=(X,U,α,ω) 에 저장될 수도 있으며 여기서 노드들 X는 기하구조들이고 원호들 U는 강체 운동들로 레이블된다. 레이블링(labeling) 은 매핑 m:U→SE(3) 이다. 더 정확하게는, 원호 u∈U 가 노드 α(u)=x∈X 에서 시작하고 노드 ω(u)=y∈X 에서 종료한다고 쓰는 것은 기하구조들 x 및 y가 서로의 복사본들이란 것과 강체 운동 m(u)가 x를 y로 변경시킨다, 즉 y=m(u)x 라고 적을 수 있다는 것을 의미한다. 이제, 원호 v∈U가 x와 z∈X를 연결시켜, 그것이 α(v)=x 및 ω(v)=z 라고 쓰여진다고 가정한다. x 를 z로 변경시키는 강체 운동은 z=m(v)x 이다. 그러면, z는 또한 y의 복사본이고 y를 z로 변경시키는 강체 운동은 z=m(v)m(u)-1y 이다. 반대로, z를 y로 변경시키는 강체 운동은 y=m(u)m(v) -1z 이다.
여기서는 원호들의 배향에 관련된 문제들이 간단한 구현 문제이므로 그것들은 숙련된 사람에 의해 임의의 방법으로 핸들링될 수도 있다는 것에 주의한다. 예를 들어, 원호가 주어지고 그 원호에 의해 연결된 2 개의 노드들이 주어지면, 강체 운동을 결정하기 위한 시작 노드의 문제는 (다른 노드가 시작 포인트로서 사용된다면, 강체 운동은 역전될 것이라는 것을 안다면) 임의의 방법으로 핸들링될 수도 있다. 구현의 일 예는 포괄을 위해서 나중에 제공된다.
S10에서 제공된 세트의 기하학적 엘리먼트들이 서로 복사본들이므로, 이 세트에 대해 S20에서 정의된 그래프는, 모두가 위에서와 같이 정의된 원호들로 완성될 수도 있다는 것에 또한 주의한다. 그러나, 효율을 위해, 그 방법은, 임의의 미리 결정된 기준에 따라 완전한 그래프의 원호들의 일부 (예를 들어, 임의의 다른 강체 운동과의 유사성을 갖지 않는 강체 운동들을 나타내는 원호들) 를 제외하고, S20에서는 완료되지 않은 그래프를 정의할 수도 있다.
그 방법은 그 다음에 일부 제약조건들을 준수하는 그래프의 최대 서브그래프들을 결정하는 단계 (S30) 를 포함한다. 다르게 말하면, 그 방법은, 일부 미리 결정된 제약조건들 하에서, 그래프의 최대 서브그래프들 (즉, 그래프의 모든 노드들 및 원호들의 세트의 서브 세트인 서브그래프), 다시 말하면, 최고 수의 엘리먼트들을 갖는 서브그래프들을 컴퓨팅한다. 미리 결정된 제약조건은 다음과 같다: S30에서 결정된 서브그래프는 원호들에 의해 나타내어진 강체 운동들 모두가 미리 결정된 이른바 "유사도" 기준을 준수하는 것이어야만 한다. 여기서는 S30에서 결정된 서브그래프들은, 일부 노드들이 동시에 여러 상이한 최대 서브그래프들에 속할 수도 있으므로, 아래에서 예시될 바와 같이, 반드시 만나지 않는 (disjoint) 것은 아니라는 것에 주의한다.
유사도 기준은 2 개의 강체 운동들이 기하학적 오브젝트에 대해 작용하는 방식에서 그 2 개의 강체 운동들이 유사하다는 것을 나타내는 기준이다. 그 유사도 기준은, 2 개의 강체 운동들이 (수치적 컴퓨테이션들에 내재된 위에서 언급된 근사값들을 모듈로 연산하면 (modulo)) 동일하다는 것을 나타내는 동일성 기준보다 약하다. 유사도 기준 및 동일성 기준 양쪽 모두는 미리 결정되며, 이는 강체 운동들의 쌍들이 이들 기준들 중 어느 하나 또는 양쪽 모두를 준수하는지를 알기 위한 방법을 시스템이 저장한다는 것을 의미한다. 그 방법은 따라서, 컴퓨터 과학의 분야에서 알려진 바와 같이, 미리 결정된 유사도 기준에 기초하여, 최대 서브그래프들을 결정하기 위해서 임의의 방법/순서로 비교들을 수행할 수도 있다.
기계 설계 분야에 특히 잘 적응된 유사도 기준의 예들 및 특성들이 이제 제공된다.
유사도의 목적은, 2 개의 강체 운동들이 반드시 동일하지 않음에도 불구하고 그리고 상기 강체 오브젝트들이 3D 공간에서 임의로 위치됨에도 불구하고, 상기 2 개의 강체 운동들, 뿐만 아니라 그것들의 역이, 각각 2 개의 기하학적 오브젝트들에 대해 동일한 방식으로 작용함을 식별하는 것이다.
명료함을 위해, 2 개의 단계들이 유사도를 논의하기 위해 뒤따른다. 제 1 단계는 2 개의 원호들의 이른바 "유추 (analogy)"를 정의하는 것이고 대수적 (algebraic) 특성들을 제공한다. 이 제 1 정의가 원호들의 배향을 제공하므로, 제 2 단계는 원호들의 배향들이 관련되지 않은 그런 방식으로 "유추"를 재사용하여 "유사도 (similarity)"를 정의한다.
i=1,2인 ui가 그래프 B의 2 개의 원호들이고, Di=m(ui) 가 원호 ui에 각각 연관되는 강체 운동이라고 하자. xi=α(ui) 가 원호 ui의 시작점에서의 기하학적 오브젝트이고 yi=ω(ui) 가 원호 ui의 끝점에서의 기하학적 오브젝트라고 하자. 그러면, 정의에 의해 i=1,2에 대해 yi=Di(xi) 이다.
정의에 의해, 원호 u1은 원호 u2와 유사하며, 이는, 2 개의 다음의 조건들이 검증되도록 하는 강체 운동 M이 존재한다면, u1 ~ u2라고 적는다:
1. D1 = M-1
Figure 112013121188683-pat00004
D2
Figure 112013121188683-pat00005
M
2. x2 = M(x1).
더 콤팩트한 표기법을 사용하여, 이는 다음과 같이 쓸 수 있다: m(u1) = M-1
Figure 112013121188683-pat00006
m(u2)
Figure 112013121188683-pat00007
M 및 α(u2)=M(α(u1)).
사실, 그 정의는 원호들 ui의 시작점들 xi을 선택하는 것에 의존하지 않고 그보다는 끝점들 yi를 선택하는 것에 의존한다. 더 정확하게는, 이전의 정의에서와 같은 강체 운동 M이 존재한다면, D1=S-1
Figure 112013121188683-pat00008
D2
Figure 112013121188683-pat00009
S 및 y2=S(y1) 이 되도록 하는 다른 강체 운동 S가 존재한다. 증명은 다음과 같다.
첫째로:
y2 = D2(x2)
= D2
Figure 112013121188683-pat00010
M(x1)
= D2
Figure 112013121188683-pat00011
M
Figure 112013121188683-pat00012
D1 -1
Figure 112013121188683-pat00013
D1(x1)
= D2
Figure 112013121188683-pat00014
M
Figure 112013121188683-pat00015
D1 -1(y1)
그러면, S=D2
Figure 112013121188683-pat00016
M
Figure 112013121188683-pat00017
D1 - 1 로 D1=S-1
Figure 112013121188683-pat00018
D2
Figure 112013121188683-pat00019
S 라는 것을 확인하면 충분하다.
D1 = M-1
Figure 112013121188683-pat00020
D2
Figure 112013121188683-pat00021
M
= D1
Figure 112013121188683-pat00022
M-1
Figure 112013121188683-pat00023
D2
Figure 112013121188683-pat00024
M
Figure 112013121188683-pat00025
D1 -1
= D1
Figure 112013121188683-pat00026
M-1
Figure 112013121188683-pat00027
D2 -1
Figure 112013121188683-pat00028
D2
Figure 112013121188683-pat00029
D2
Figure 112013121188683-pat00030
M
Figure 112013121188683-pat00031
D1 -1
= (D2
Figure 112013121188683-pat00032
M
Figure 112013121188683-pat00033
D1 -1)-1
Figure 112013121188683-pat00034
D2
Figure 112013121188683-pat00035
(D2
Figure 112013121188683-pat00036
M
Figure 112013121188683-pat00037
D1 -1)
= S-1
Figure 112013121188683-pat00038
D2
Figure 112013121188683-pat00039
S
다음에서 "역 특성"이라 불리는 다른 중요한 특성은, 2 개의 원호들이 유사하다면, 역이 된 (inverted) 원호들 역시 유사하다는 것이다. 공식적으로, u1 ~ u2이면 u1 -1 ~ u2 -1이며 여기서 표기 ui -1은 yi에서 시작하며, xi에서 끝나고 역 강체 운동 Di -1에 연관되는, 역이 된 원호이다. 증명은 다음과 같다. u1 ~ u2이면, 한편으로는, D1 = M-1
Figure 112013121188683-pat00040
D2
Figure 112013121188683-pat00041
M 이고 그래서 D1 -1 = (M-1
Figure 112013121188683-pat00042
D2
Figure 112013121188683-pat00043
M)-1 = M-1
Figure 112013121188683-pat00044
D2 -1
Figure 112013121188683-pat00045
M 이다. 정의 x2=M(x1) 의 다른 점은 원호들 ui -1의 끝 노드들에서 나타내어지며, 이는 이전의 언급에 따라 유효하다. 이는 u1 -1 ~ u2 - 1 임을 증명한다.
"유추"는 원호들의 세트에 대해 동치 관계 (equivalence relation) 이다. 이를 증명하기 위해, 다음의 특성들이 확립된다.
제 1 특성은 다음의 재귀성 (reflexivity) 이다: 임의의 원호는 자체와 유사하며, 즉, u ~ u이며, 이는 M을 동일한 강체 운동으로서 선택함으로써 명백하다.
제 2 특성은 다음의 대칭성이다: u1 ~ u2이면 u2 ~ u1이다. 이는 D1=M-1D2M이면 D2=MD1M-1 이고 x2=M(x1)이면 x1=M-1(x2) 이기 때문이다. 이는 "2 개의 원호들 중 하나가 다른 하나에 유사하다"고 말하는 대신에 "2 개의 원호들이 유사하다"고 말하는 것을 허용한다.
제 3 의 마지막 특성은 다음의 추이성 (transitivity) 이다: u1 ~ u2이고 u2 ~ u3이면 u1 ~ u3이다. 사실상, u2 ~ u3이면, D2=N-1D3N 이고 x3=N(x2) 가 되도록 하는 강체 운동 N이 존재한다. 하지만, D1=M-1D2M 이고 x2=M(x1) 이므로, 각각 다음을 얻는다:
D1 = M-1D2 M
= M-1N-1D3 NM
= (NM)-1D3(NM)
x3 = N(x2)
= NM(x1)
그것은 u1 ~ u3이고, 강체 운동이 NM임을 증명한다.
그래서, 유추 관계는 원호들의 세트에 대해 동치 관계이다. 그 단점은 u1 ~ u2인 경우 관계 u1 -1 ~ u2가 참이 아니므로 그 특성이 원호 배향에 의존한다는 것이다. 이는 D2=D2 -1 이 아니면 D1=M-1D2M 이 일반적으로 D1 -1=M-1D2M 을 의미하지 않기 때문이다.
그래서, 유사도의 정의는 다음과 같이 세워질 수도 있다. 정의에 의해, 원호 u1은 원호 u2와 유사하며, 이는, 원호 u1이 원호 u2와 유사하다면 또는 원호 u1 -1이 원호 u2와 유사하다면, u1
Figure 112013121188683-pat00046
u2 라 적는다. 한마디로: u1 ~ u2 또는 u1 -1 ~ u2이면 u1
Figure 112013121188683-pat00047
u2이다.
관계
Figure 112013121188683-pat00048
는 다음에서 증명되는 바와 같이 다시 동치 관계이다.
재귀성은, 모든 u에 대한 u
Figure 112013121188683-pat00049
u는, 모든 u에 대해서도 u ~ u이기 때문에 확립된다는 것을 의미한다. u-1이 일반적으로 u와 유사하지 않다는 것을 알아차려야 한다.
대칭성은, u1
Figure 112013121188683-pat00050
u2이면 u2
Figure 112013121188683-pat00051
u1는 다음과 같이 확립된다는 것을 의미한다. u1 ~ u2이면, ~ 가 대칭적이기 때문에 u2 ~ u1이고, 그러면 u2
Figure 112013121188683-pat00052
u1이다. u1 -1 ~ u2이면 역 특성에 의해 u2 -1 ~ u1이며, 이는 u2
Figure 112013121188683-pat00053
u1임을 의미한다.
추이성은, u1
Figure 112013121188683-pat00054
u2이면 그리고 u2
Figure 112013121188683-pat00055
u3이면 u1
Figure 112013121188683-pat00056
u3는 다음과 같이 확립된다는 것을 의미한다. 명제 (statement) "u1
Figure 112013121188683-pat00057
u2 및 u2
Figure 112013121188683-pat00058
u3"는 4 개의 가능성들을 수집하고 그것은 각각의 하나가 u1
Figure 112013121188683-pat00059
u3임을 의미한다는 것을 확인해야만 한다.
1. u1 ~ u2 및 u2 ~ u3
2. u1 ~ u2 및 u2 -1 ~ u3
3. u1 -1 ~ u2 및 u2 ~ u3
4. u1 -1 ~ u2 및 u2 -1 ~ u3
케이스 1은 관계 ~ 가 추이적 (transitive) 이기 때문에 u1 ~ u3이 되게 하고, 그러면 u1
Figure 112013121188683-pat00060
u3이다.
케이스 2는 역 특성에 의해 u1 ~ u2 및 u2 ~ u3 - 1와 동등하다. ~ 이 추이적이므로, u1 ~ u3 - 1는 다시 역 특성에 의해 u1 -1 ~ u3와 동등하며, 이는 u1
Figure 112013121188683-pat00061
u3임을 의미한다.
케이스 3은 ~ 이 추이적이기 때문에 u1 -1 ~ u3이 되게하며, 이는 u1
Figure 112013121188683-pat00062
u3임을 의미한다.
케이스 4는 u1 -1 ~ u2 및 u2 ~ u3 - 1와 동등하다. ~ 가 추이적이므로, u1 -1 ~ u3 -1은 역 특성에 의해 u1 ~ u3임을 의미하고, 그러면 u1
Figure 112013121188683-pat00063
u3이다.
기본적인 대수학 (algebra) 에 따르면, 유사도 관계는 원호들의 세트를 이하에서 "동치 클래스들 (equivalence classes)"이라 불릴 수도 있는 최대 및 서로소 (disjoint) 서브 세트들로 분할한다. 원호들에 의해 연결된 노드들로 확장하면, 이들 동치 클래스들은 S30에서 결정된 서브그래프들을 구성할 수도 있다.
일단 최대 서브그래프들이 위에서 논의된 바와 같이 S30에서 결정되면, 그 방법은 결정된 서브그래프들 내에서 적어도 하나의 기하학적 패턴을 식별하는 단계 (S40) 를 포함하며, S40에서 식별된 세트의 각각의 연결형 컴포넌트는 그 방법에 의해 기하학적 패턴으로서 실제로 선언적으로 보여진다. 연결형 컴포넌트들의 세트가 S30에서 결정된 서브그래프들 내에서 S40에서 결정된다는 사실은, 최대 서브그래프들 (즉, 연결형 컴포넌트들의 세트), 어쩌면 전체 최대 서브그래프, (어쩌면, 일반적으로 널 (null) 그래프는 아니지만, 아래에서 논의된 바와 같이, 극단적인 경우들에서의 또는 그 방법이 반복된다면 반복들의 끝부분에서의 널 그래프) 중 하나의 최대 서브그래프의 특정 서브-서브그래프가 일부 조건들에 따라 식별된다는 것을 의미한다.
연결형 컴포넌트들의 세트를 "식별하는" 것에 의해, 그것은 상기 연결형 컴포넌트들의 존재와 이른바 연결형 컴포넌트들을 형성하는 기하학적 엘리먼트들 사이의 연결들을 나타내기 위하여 데이터가 모델링된 오브젝트에 추가된다는 것을 의미한다. 예를 들어, 그룹 이름들이 생성되고 기하학적 엘리먼트들 또는 기하학적 엘리먼트들의 그룹들 사이를 링크하고 그룹 이름은 모델링된 오브젝트 (를 정의하는 데이터) 에 추가된다. 엘리먼트들을 서로 링크하는 이 방법은 또한 결정하는 단계 (S30) 를 위해 구현될 수도 있다. 새로운 데이터가 기하학적 패턴에 대해 작업하는 사용자를 위해 영구 메모리 상에 어쩌면 저장될 수도 있거나 또는 그런 사용자에게 적어도 충분할 수도 있다. 이것들이 바로 숙련된 사람에게 알려진 구현의 문제들이다.
더구나, 그 방법은 기하학적 패턴들을 식별한다. 표현 "기하학적 패턴"은 엘리먼트들 (예컨대 면들 또는 면들의 그룹들) 이 예측가능한 방식으로, 즉 미리 결정된 규칙들에 따라 위치되며, 이에 의해 완전한 무작위성을 배제하는 기하구조를 기하학적 패턴에 속한 엘리먼트들이 구성한다는 것을 의미한다. 이른바 "연결형 컴포넌트 (connected component)"는 그냥 연결된 그래프이다. 그 방법의 경우, 고려되는 연결형 컴포넌트들은 일부 기준들을 준수하는 S30에서 결정된 최대 서브그래프들의 연결된 서브-서브그래프들이다. 즉, 연결형 컴포넌트들의 원호들은 동일성 기준을 준수하는 강체 운동들을 나타내어야만 한다 (즉, 하나의 연결형 컴포넌트의 모든 강체 운동들은 그 방법에 대해 정의된 미리 결정된 동일성 기준에 따르면 동일하다). 따라서, 연결형 컴포넌트의 노드들에 의해 나타내어진 기하학적 엘리먼트들은 하나의 동일한 강체 운동을 노드들 중 하나에 의해 나타내어진 하나의 초기 기하학적 컴포넌트에 적용함으로써 모두 획득가능하다 (그 기하학적 패턴은 실제로는 예컨대 다른 사용자에 의한 방법보다 먼저 그렇게 설계되어 있을 수도 있다). 이는 기하학적 패턴의 정의에 들어간다.
더욱이, 연결형 컴포넌트들의 세트는 유사한 강체 운동들을 갖는 기하학적 패턴들의 세트이다: S40에서 식별된 세트의 하나의 연결형 컴포넌트의 동일한 강체 운동들은 S40에서 식별된 세트의 다른 연결형 컴포넌트의 동일한 강체 운동들과 유사하다. 따라서, 그런 "연결형 컴포넌트들의 세트" 구조를 출력함으로써, 그 방법은 "패턴들의 패턴" 인식을 론칭한다. 사실상, 유사도 기준의 성질 덕분에, 여러 연결형 컴포넌트들이 S40에서 세트로 식별되는 경우 (입력 데이터에 의존하여, S40에서 식별된 세트는 오직 하나의 연결형 컴포넌트만을 포함할 수도 있지만, 일부 상황들에서 그것은 하나를 초과하는 연결형 컴포넌트들을 포함할 수도 있다), 연결형 컴포넌트들은 어쩌면 강체 운동으로 서로로부터 획득가능할 수도 있다. 패턴들의 패턴은 따라서 나중에 예시되는 바와 같이, 인식될 수도 있다.
기하학적 패턴의 기하학적 엘리먼트들이 먼저 서로 복사본들이 되도록 선택되기 때문에, 그 방법은 설계 의도에 따른 의미를 가지는 기하학적 패턴들을 인식한다. 또한, 연결형 컴포넌트들의 세트는, S30에서 결정된 서브그래프들 내에서, 원호들에 의해 나타내어진 강체 운동들 모두가 동일성 기준을 준수하는 연결형 컴포넌트들의 모든 가능한 세트들 중에서, (전체로, 연결형 컴포넌트들의 세트의 모든 원호들을 카운팅하여, 즉, 그 세트의 모든 연결형 컴포넌트들을 함께 각각의 연결형 컴포넌트의 원호들의 총 수와 가산하여) 최고 수의 원호들을 갖는 것으로서 선택된다. 이는 임의의 방법으로 구현될 수 있지만, 어쩌면 이른바 "분할"을 수반하는 일 예가 나중에 제공된다. 여러 그런 세트들이 존재하는 케이스들은 숙련된 사람에 의해 소망되는 임의의 방법으로 핸들링될 수도 있다. S40에서 식별된 연결형 컴포넌트들의 세트의 그러한 선택은 사용자 의도의 양호한 파악을 허용한다. 다르게 말하면, 그 방법으로 인식된 패턴 구조는 사용자에게 통계적으로 가장 의미있다. 주목할 만하게도, 이는 그 방법이 이미 논의된 바와 같이 적용될 수 있는 기계 설계의 분야에서 특히 참인 것을 유지함을 증명한다.
따라서, 식별 S40은 더 쉬운 설계를 허용한다. 무엇보다도, 이는 사용자에게 기하학적 패턴 구조 (즉, 연결형 컴포넌트들 구조의 세트) 의 나중의 프레젠테이션을 허용한다. 그 사용자는 따라서 설계자의 의도를 파악할 수도 있다. 이는 또한, 앞서 언급된 바와 같이, 기하학적 패턴 구조에 대해 전역적으로 (즉, 자동으로 통합된 방식으로) 수행되는 나중의 설계 액션들을 허용한다. 예를 들어, 사용자는 단일 "끌어 놓기 (drag and drop)" 액션으로 전체 연결형 컴포넌트 또는 연결형 컴포넌트들의 전체 세트를 병진시킬 수도 있다. 또는, 사용자는 세트의 연결형 컴포넌트 중 임의의 것 또는 모두의 모든 엘리먼트들의 사이즈를 그것을 선택한 다음 그것의 엘리먼트들에 대한 새로운 사이즈를 한번만 입력함으로써 증가시킬 수도 있다. 이것들은 단지 예들이다. 그 방법은 식별하는 단계 (S40) 의 결과를 수반하는 그런 나중의 설계 액션들 중 임의의 것 또는 여러 개의 것들을 포함할 수도 있다. 이는 대체로 CAD의 분야에서 유용한데, 그 방법이 기하학적 패턴들을 수반하는 일부 특정 설계들을 적은 사용자 액션들로 달성하는 것을 허용하기 때문이다. 이는 모델링된 오브젝트가 제품을 나타내는 경우, 그 방법이 이러한 경우에 모든 그것의 페이즈들의 시간 최적화를 필요로 하는 글로벌 산업 프로세스에 속하는 기계 설계의 분야에서 특히 유용하다. 그 방법은 또한 제조 프로세스에 연결형 컴포넌트들의 인식된 세트를 피드 (feed) 하는 단계를 포함할 수도 있다.
따라서, 예컨대 면 정의들에 기초한 간단한 기하학적 비교를 수행하는 것에 의해, 그리고 제한된 그래프 기반 컴퓨테이션을 수행하는 것에 의해, 그 방법은 사용자가 식별을 돕기 위해 모델링된 오브젝트에 대한 임의의 특정 기하학적 엘리먼트 또는 포지션을 식별 (즉, 사전선택) 할 필요 없이, 복잡할 (단일 연결형 컴포넌트에 대응하는 단일 패턴보다 정교할) 수도 있는 연결형 컴포넌트들의 세트의 형태로 기하학적 패턴 구조들을 효율적으로 식별한다. 그 방법은 사용자에 의해 이루어진 그러한 식별을 실제로 제외시킬 수도 있다. 따라서, 그 방법은 예컨대, 모델링된 오브젝트의 경계 표현에 적응된 패턴들의 효율적인 식별을 허용할 수도 있다. 그 방법은 임의의 사용자의 기하구조의 시각적 분석을 필요로 하지 않는다. 그 방법은 입력 기하구조를 체계적으로 분석함으로써 중복된 기하구조들의 배열들에 집중한다. 사용자가 프로세스에 직접 포함되지 않으므로, 시간은 다른 태스크들을 위해 절약된다. 더욱이, 나중의 설명되는 바와 같이 그 방법은 모델링된 오브젝트의 패턴들의 패턴 구조 전체를 수득하는데 사용될 수도 있다. 이는 원 샷 프로세스이다. 결과적으로, 본 발명은 패턴 인식에 소비되는 시간을 단축시키고 최선의 가능한 결과를 제공한다.
그 방법은 다소 반복될 수도 있다는 것에 주의한다. 본질적으로, 각각의 반복에서, 이전의 반복의 S40에서 식별된 연결형 컴포넌트들은 기하학적 엘리먼트들 그것 자체로서 간주된다. 이런 방식으로, 그 방법은, S40의 제 1 반복에서 결정된 연결형 컴포넌트들은 어쩌면 S40의 다음의 반복들에서 결정되는 상위-레벨 연결형 컴포넌트들의 부분이 된다는, 제공된 모델의 패턴들의 패턴 구조 전체를 재귀적으로 결정할 수도 있다.
더 정확하게는, 그 방법은 다음의 액션들을 반복하는 단계를 더 포함할 수도 있다. 먼저, 그 방법의 이전의 반복의 식별하는 단계 (S40) 후, 그 방법은 연결형 컴포넌트들의 식별된 세트의 각각의 연결형 컴포넌트의 노드들을 붕괴 (collapse) 시킴으로써 (제 2 반복에 있을 경우에 제 1 반복의 S20에서 정의된, 또는 나중의 반복에 있을 경우에 이전의 반복에서 이미 수정된) 그래프를 수정할 수도 있다. 이는 "연결형 컴포넌트 단위" 방식으로, 세트의 각각의 연결형 컴포넌트의 노드들을 함께 병합함으로써 그래프를 감소시키는 것과 같다. 그런 다음 그 방법은 수정된 그래프에 대해 결정하는 단계 (S30) 및 식별하는 단계 (S40) 를 수행한다. 다르게 말하면, S20에서 정의된 그래프는 유지되고, 그것이 방법의 반복들 동안 내내 수정되므로, 그것의 수정된 버전은 각각의 후속 반복의 결정하는 단계 (S30) 및 식별하는 단계 (S40) 를 위한 입력으로서 사용된다. 이 방식으로, 그 방법은 S10에서 제공되는 기하학적 엘리먼트들의 세트에서 모든 패턴들을 철저하게 그리고 재귀적으로 인식한다. 연결형 컴포넌트들이 그 방법의 각각의 반복에 의해 그와 같이 핸들링됨에 따라, 그 방법은 임의의 재귀적 순서로 패턴들의 패턴들을 인식할 수도 있다. 더욱이, 그 방법이 수행되는 방식은 비교적 낮은 계산 복잡도로 그렇게 하는 것을 허용한다.
이제, 붕괴는 다음의 액션들을 포함하는 것에 의해 간단하게 수행될 수도 있다. 붕괴는 연결형 컴포넌트들의 식별된 세트의 임의의 연결형 컴포넌트들의 임의의 노드에 연결된 모든 원호들을 삭제하는 단계를 포함할 수도 있다. 다르게 말하면, 연결형 컴포넌트들은 그것들의 노드들로 감소되고, 상기 노드들 중 하나에 연결되었던 (식별하는 단계 (S40) 전에) 그래프에서 표시된 원호들은 유지된다. 그 다음에, 붕괴는, 각각의 개별 연결형 컴포넌트에 대해, 개별 연결형 컴포넌트의 모든 노드들을 단일 노드에 의해 교체시킬 수도 있다. 이는 데이터 핸들링 관점에서 단순한 참조 관리 문제이다. 마지막으로, 붕괴는 노드들의 쌍들 사이에 원호들을 추가하여 따라서 원호들이 추가되게 하는 단계를 포함할 수도 있다. 주목할 만하게도, 추가된 원호들은 등측성인 (isometric) 연결형 컴포넌트들을 나타내는 노드들 사이에 추가된다 (즉, 그 추가된 원호들은 이전의 단계에서 그 연결형 컴포넌트들로부터 파생한다). 상기 연결형 컴포넌트들은 따라서 강체 운동의 기하학적으로 동일한 모듈로이다. 각각의 가산된 원호는 실제로 쌍 중 하나의 노드에 의해 나타내어진 연결형 컴포넌트를 쌍 중 다른 노드에 의해 나타내어진 연결형 컴포넌트로 변환하는 강체 운동을 나타낸다. 다시, 배향을 핸들링하는 것은 구현의 문제이다. 따라서, S20에서 정의된 그래프의 글로벌 구조는 유지된다. 이는 결정하는 단계 (S30) 및 식별하는 단계 (S40) 를 동일한 알고리즘 블록들로, 따라서 효율적인 방식으로 수행하는 것을 허용한다.
그 방법의 예들이 이제, 일부 정의들을 제공한 후에 논의된다. 예들에서, 제공하는 단계 (S10) 는 모델링된 오브젝트의 B-Rep를 제공하는 단계를 포함한다. 기하학적 엘리먼트들은 처음에는 B-Rep에서 정의된 면들이다. 주목할 만하게도, 애플리케이션은, 모델링된 오브젝트가 부품 또는 부품들의 조립체와 같은 제품을 나타내는, 패턴 인식이 특히 유용한, 기계 설계일 수도 있다.
점 세트 X가 주어지면, 줄여서 Y=D(X)라고 적는 Y={D(x), x∈X} 가 되도록 하는 강체 운동 D이 존재한다면, 점 세트 Y는 X의 "복제본 (replica)"이다.
"지향된 점 세트 (oriented point-set)"가 커플 (X,uX)이며 여기서 X⊂
Figure 112013121188683-pat00064
은 점 세트이고 uX는 매핑 uX:X→S2 이며 여기서 S2
Figure 112013121188683-pat00065
의 단위 벡터들의 세트이다. 다르게 말하면, 임의의 점 x∈X에서, 단위 벡터 uX(x)가 정의된다.
Y가 배향을 저장하는 X의 복제본이면 지향된 점 세트 (Y,uY)는 지향된 점 세트(X,uX)의 "복사본"이다. 더 정확하게는, 모든 x∈X에 대해, 복제본 상의 대응하는 점 D(x)의 단위 벡터는 점 x에서 X의 회전된 단위 벡터이다. 공식적으로, 모든 x∈X에 대해, uY(D(x))=RuX(x) 이며, 이는 다음의 도식이 가환적 (commutative) 임을 의미한다.
Figure 112013121188683-pat00066
정의하는 단계 (S20) 가 의존할 수 있는 점 세트들에 대한 관계 "복사본이다 (is a copy)"는 동치 관계이다. 그것을 증명하려면, 다음의 특성들을 확인하면 충분하며, 이는 어렵지 않다: (1) 점 세트는 자신의 복사본이며, (2) Y가 X의 복사본이면 X는 Y의 복사본이고 (3) Y가 X의 복사본이고 Z가 Y의 복사본이면, Z는 X의 복사본이다.
기본 대수학에 따르면, 점 세트들의 유한 세트 G가 주어지면 (이는 G의 엘리먼트들이 점 세트들임을 의미한다) 동치 관계 "복사본이다"는 G를 복사본들의 서로소 및 최대 서브 세트들 Gi로 분리한다. 이는 i≠j이면 Gi∩Gj=
Figure 112013121188683-pat00067
라는 것, G=∪iGi 라는 것, X,Y∈Gi 이면 Y는 X의 복사본이라는 것, 그리고 X∈Gi 및 Y
Figure 112013121188683-pat00068
Gi이면 Y는 X의 복사본이 아니라는 것을 의미한다. 서브 세트들 Gi는 사실 동치 관계의 동치 클래스들을 참조하여 점 세트들의 "클래스들"이다.
이전의 이론은 입체의 면들에 (비제한적으로) 적용된다 (즉, 그 예에서 모델링된 오브젝트는 입체이다). 면들은 점 세트들의 역할을 하고 입체의 B-Rep는 세트 G이다. 다르게 말하면, 정의하는 단계 (S20) 를 위해 서로 복사본이 되는 면들의 세트들을 결정하기 위해, 숙련된 사람은 점 세트들로서 면들을 그리고 위에서 정의된 바와 같은 세트 G로서 S10에서 제공된 B-Rep를 나타낼 수도 있다.
서로 복사본들이 되는 B-Rep의 면들의 세트들을 결정하는 일 예가 이제 논의된다.
예컨대 입체를 나타내는 모델링된 오브젝트가 주어지면, S10에서 제공된 상기 입체의 B-Rep는 독립적인 면들의 세트로서 간주된다. 이는 fi가 입체의 i-번째 면인 경우에 G={f1,...,fn}임을 의미한다. 바로 그 제 1 단계는 "복사본이다" 관계에 따라 G의 서브 세트들을 컴퓨팅하는 것이다. 전체 알고리즘은 다음과 같을 수도 있다.
Figure 112013121188683-pat00069
면들에 대해 "복사본이다" 관계를 구현하는 방법의 일 예가 이제 논의된다.
앞서 설명된 바와 같이, 입체의 면은 지지하는 표면 (예컨대 평면) 에 의해 그리고 경계 에지들에 의해 정의된다. 일 예에서, 면에는 입체의 외부 법선 벡터가 마련된다. 경계 에지들은 이 법선 벡터에 따라 지향된다. 경계 에지들은 정점들을 공유함으로써 연결된다.
비교들을 수행하고 강체 운동들을 찾기 위하여, 각각의 면에는 여러 축 시스템들이 마련된다. 면의 각각의 정점 v에서, 축 시스템이 다음과 같이 생성된다. 원점 P의 좌표들은 정점 v의 좌표들이다. U라고 적는 제 1 벡터는 v의 입력 경계 에지에 접하고 그래서 -U는 경계 에지처럼 지향된다. V라고 적는 제 2 벡터는 v의 출력 경계 에지에 접하고 경계 에지 방향으로 지향된다. 단어들 "입력" 및 "출력"은 면의 법선 벡터에 따른 경계 에지들의 위상기하학적 배향에 관련된다. 제 3 벡터는 정점 v에서 컴퓨팅된 면의 외부 법선 벡터 N이다. N이 항상 U에 그리고 V에 수직임에도 불구하고, 축 시스템 (P,U,V,N)이 일반적으로 일직선이고 직교하는 것은 아니라는 것을 알아차려야 한다.
도 9 내지 도 11은 반원통형 면 (90) 의 축 시스템들을 예시한다. 도 9는 면 (90) 및 그것의 법선 벡터 (92) 를 도시한다. 도 10은 법선 벡터 (92) 에 의해 유도된 경계 에지들 (94) 의 위상기하학적 배향을 도시한다. 경계 에지 a는 정점 v의 입력 에지이다. 경계 에지 b는 정점 v의 출력 에지이다. 도 11은 각각의 경계 정점에서의 축 시스템들의 벡터들 (U,V,N) 을 도시한다.
이제, 그 방법은, 일 예에서, 복사본 면들의 세트들의 결정하는 단계 내에서, 만약 있다면, 2 개의 면들 사이에서 강체 운동을 직접 검색함으로써 (그것은 정의하는 단계 (S20) 에서 사용될 수도 있음) 2 개의 면들이 서로 복사본인지를 결정할 수도 있다. f,g가 (동일한 수의) 로컬 축 시스템들 (S1 f,…,Sm f 및 S1 g,…,Sm g) 이 각각 마련된 2 개의 면들이라 하자. 면들 f,g가 동일한 수의 로컬 축 시스템들을 가지지 않는다면, 그것은 그 면들이 동일한 수의 경계 정점들을 가지지 않으며, 그래서 그 면들은 서로 복사본들이 아니라고 결정되고 강체 운동 검색은 론칭되지 않는다는 것을 의미한다.
그렇지 않으면, 제 1 단계는 면 f의 i-번째 축 시스템을 면 g의 j-번째 축 시스템으로 각각 변경시키는 강체 운동들 Di , j 를 컴퓨팅하는 것이다. i,j=1,…,m이므로, 기껏해야 m2 개의 그런 강체 운동들이 존재한다. 공식적으로, 강체 운동들은 Di ,j(Si f)=Sj g 가 되도록 한다. Si f = (Pi f,Ui f,Vi f,Ni f), Sj g = (Pj g,Uj g,Vj g,Nj g) 및 Di ,j(x)=Ri , jx+Ti ,j 에 주의하면, 이는 먼저 행렬 Ri ,j의 계수들 및 벡터 Ti ,j의 좌표들이 미지의 것들이라는 것을 명심하고서 다음의 선형 시스템을 풂으로써 달성된다.
Ri , jUi f = Uj g
Ri , jVi f = Vj g
Ri ,j Ni f = Nj g
Ti ,j - Ri , jPi f = Pj g
둘째로, 행렬 Ri ,j가 회전이라는 것을 보장하기 위해, 2 개의 다음의 조건들이 확인되어야만 한다.
Ri , jRi , j T = I
det(Ri ,j) = 1
그렇지 않으면, Di ,j는 강체 운동이 아닌데 Ri ,j가 회전이 아니기 때문이다.
그러면, f를 g로 변경시키는 강체 운동 D*은, 만약 있다면, 이전에 컴퓨팅된 Di ,j 중에서 발견될 것이다. 문제는 이제 다음의 질문에 답을 하는 것이다: f,g 및 강체 운동 D가 주어지면, D(f)=g가 참인가? 이는, k=1,…,q인 3D 점들 xk의 컬렉션으로 면 f를 샘플링하고 포인트들 D(xk) 및 면 g 사이의 거리들이 동일한 오브젝트들에 대해 미리 결정된 수치적 임계값에 비하여 충분히 작다는 것을 확인함으로써 행해질 수도 있다. Di ,j 중에서, 여러 강체 운동들이 f를 g로 변경시킬 수 있다면, 순수 병진이 가능한 경우 선택된다. 이는 결과들이 사용자 의도에 순응하게 하는 복사본 면들의 세트들의 결정하는 단계를 수행하는 효율적인 방법이다.
복사본 면들의 결정된 세트들에 대한 데이터 구조의 일 예 (즉, 위에서 언급된 "서브 세트들") 가 이제 논의된다.
강체 운동들 및 관련된 점 세트들은, 주어진 점 세트 (주어진 면에 대응함) 의 복사본들 및 연관된 강체 운동들을 취출하기 위하여, 이제 논의되는 적절한 데이터 구조로 저장될 수도 있다. 개념적으로, 이 데이터 구조는, 노드들 P가 점 세트들이고 원호들 A가 강체 운동들로 레이블되는 지향된 그래프 W=(P,A,α,ω) 를 포함한다. 레이블링은 매핑 m:A→SE(3) 이며 여기서 SE(3)는 3차원 강체 운동들의 그룹이다. 더 정확하게는, 원호 u∈A가 노드 α(u)=x∈P에서 시작하고 노드 ω(u)=y∈P에서 종료한다고 쓰는 것은 점 세트들 x 및 y가 서로의 복사본들이란 것과 강체 운동 m(u)가 x를 y로 변경시킨다, 즉 y=m(u)x 라고 적을 수 있다는 것을 의미한다. 이제, 원호 v∈A가 x와 z∈P를 연결시켜, 그것이 α(v)=x 및 ω(v)=z 라고 쓰여진다고 가정한다. x를 z로 변경시키는 강체 운동은 z=m(v)x 이다. 그러면, z는 또한 y의 복사본이고 y를 z로 변경시키는 강체 운동은 z=m(v)m(u)-1y 이다. 반대로, z를 y로 변경시키는 강체 운동은 y=m(u)m(v)-1z 이다. 이 정보는 모두 데이터 구조에 의해 캡처될 수도 있다.
본질적으로, 초기 서브세트들을 컴퓨팅하는 알고리즘은 각각이 서브세트인 깊이-1 트리 그래프들로 이루어진 그래프를 생성한다. 정의에 의해, 깊이-1 트리는 입력 원호를 갖지 않는 하나의 노드 (루트 노드) 및 출력 원호 노드들을 갖지 않는 모든 다른 노드들 (리프 노드들) 이 특징이 되는 트리 그래프이다. 다르게 말하면, 모든 루트 아닌 노드들은 루트 노드에 연결된다. 결과적으로, 임의의 2 개의 노드들이 깊이-1 트리 그래프 내에 주어지면, 그것들을 잇는 (joining) 원호들의 오직 하나의 경로만이 존재하고, 이 고유한 경로는 2 개의 원호들만을 포함한다.
도 12 내지 도 13은 초기 서브 세트들을 컴퓨팅하는 알고리즘으로부터 얻어진 그래프 데이터 구조 (복사본 면들의 세트들의 나머지) 를 예시한다. 도 12는 면들이 1부터 12까지 번호 부여된 4 개의 정렬된 원통형 슬롯들로 구성된 모델링된 오브젝트의 B-Rep (120) 를 예시한다. 그것들은 위상기하학적 데이터 구조에서 얼마간의 임의의 스토리지에 따라 번호 부여된다. 도 13은 2 개의 깊이-1 트리들 (132) 을 포함하는 그래프 (130) 를 예시한다.
따라서, 하나의 점 세트를 임의의 다른 점 세트로 변경시키는 강체 운동은 2 개의 상기 점 세트들을 잇는 원호들의 경로를 따라 강체 운동들을 조합하여 컴퓨팅된다. 이 경로가 2 개의 원호들을 포함하므로, 오직 2 개의 강체 운동들만이 조합된다. 서브세트 내의 임의의 2 개의 점 세트들에 관련한 컴퓨팅 강체 운동의 이 편익은 그 방법의 이 예에서 널리 사용된다. 이러한 그래프로부터, 그 방법은 그와 같이 정의하는 단계 (S20) 를 매우 쉽게 수행하는데, 복사본 면들의 임의의 쌍 사이의 강체 운동이 그래프 (130) 와 같은 그래프로부터 간단히 취출될/결정될 수도 있기 때문이다.
이 점에서, 그 방법은 따라서 모든 중복된 기하구조들 및 관련된 강체 운동들을 A라고 적을 수도 있는 그래프로 수집할 수도 있다. 그래프 A의 노드들은 기하구조들을 나타내며, 그래프 A의 원호들은 강체 운동들을 나타낸다. 그래프 A (S20에서 정의된 그래프) 의 각각의 연결형 컴포넌트 B는 동일한 기하구조의 복사본들을 모으고 잠재적으로는 복잡한 구조이다.
그 방법의 다음 단계들의 일 예는 다음과 같다.
1. 그래프 A의 각각의 연결형 컴포넌트 B 내에서, 원호들은 유사도 기준 클래스들에 따라 별개의 서브 세트들로 그룹화된다. 이는 결정하는 단계 (S30) 의 일 예이다.
2. 그 다음에, 최대 수의 원호들을 포함하는 서브세트는 가장 중복된 기초 구조를 캡처하기 위한 최상의 후보이다. 이는 식별하는 단계 (S40) 의 시작부분의 일 예이다
3. 원호들의 이 가장 큰 서브 세트에 대응하는 B의 서브 그래프 C가 고려되고, C의 연결형 컴포넌트들 Ci가 컴퓨팅된다. 이는 식별하는 단계 (S40) 의 다음 페이즈의 일 예이다.
4. 각각의 연결형 컴포넌트 Ci의 모든 원호들이 동일한 강체 운동을 나타낸다면, 기초 패턴은 인식된다. 이는 식별하는 단계 (S40) 의 끝부분의 일 예이다
5. 그래프 B는 각각의 연결형 컴포넌트 Ci의 노드들을 단일 노드로 병합하고 쓸모 없은 원호들을 삭제함으로써 새로운 그래프 B'로 단순화된다. 이는 연결형 컴포넌트들의 식별된 세트의 각각의 연결형 컴포넌트의 노드들을 붕괴시킴으로써 그래프를 수정하는 일 예이다.
단계들 1 및 2의 목표는 잠재적으로 기초 패턴들을 캡처하는 서브그래프들의 컬렉션을 허용하는 적절한 조건들을 제공하는 것이다. 그 프로세스는 인식되는 새로운 패턴이 없을 때까지 그래프 B의 연속하는 단순화된 버전들에 대해 반복적으로 적용될 수도 있다. 초기 그래프 A의 각각의 연결형 컴포넌트들은, 나중에 상세히 설명되는 바와 같이, 이런 방식으로 추가로 프로세싱될 수도 있다. 단계 4에서, 모든 연결형 컴포넌트들 Ci이 동일한 강체 운동을 특징으로 하는 것은 아니라면, 서브세트 C는 분할된다. 이 분할 프로세스는 원호들의 가능한 한 큰 서브 세트들을 유지하면서 유사도 기준을 정제한다 (refine).
예들에서의 방법은 주로 반복 프로세스이다. 예들에서의 알고리즘의 핵심은 "기초 패턴 인식기"이고 "패턴들의 패턴 인식"에 반복적으로 관련된다. 일단 기초가 인식되면, 입력 그래프는 단순화되고 인식이 다시 수행된다. 패턴들의 패턴 인식기는 도 14의 도면에서 예시된 바와 같이 동작할 수도 있다. 기초 패턴 인식기는 도 15의 다이어그램에서 설명된 바와 같이 동작할 수도 있다.
B-Rep의 일 예를 갖는 방법의 일 예가 이제 논의된다.
그 예의 B-Rep (160) 는 도 16에 예시된 바와 같은 (방법의 간결한 이해를 위한) 평면에 배열된 18 개 원들의 세트 (즉, 서로 복사본이고 S10에서 제공되는 면들은 도면의 평면에 대응하는 평면에 의해 지지되고 그 원들에 의해 경계 지어지는 디스크들이다) 를 포함한다. 원들은 1부터 18까지 번호 부여된다. 원들 (1, 2 및 3) 은 크라운 주위로 배열되어 있다는 것을 알 수 있다. 이 크라운은 그 다음에 2 번 병진되었을 수도 있고, 전체는 한 번 회전되었을 수도 있다. 이는 적어도 기계 설계의 분야에서 사용자 의도에 따라 가장 가능성 있는 예인 도 16의 B-Rep의 설계의 이력이다. 그 방법의 목표는 기하구조들 및 강체 운동들의 입력 그래프로부터 이 재귀적 회전-병진-회전 패턴 구조를 취출하는 것이다.
예를 들어 도 9 내지 도 13을 참조하여 위에서 설명된 바와 같고 도 16의 예에 대응하는 기하구조들 및 강체 운동들을 모으는 S20에서 정의된 그래프 B가 도 17에 예시된다. 단순화를 위해, 원호들은 도면들 상에서 번호 부여되지 않는데 그 원호들이 끝 노드 번호들에 의해 식별될 수 있기 때문이다. 원호들은 강체 운동들로 레이블된다. 심볼들 Ti는 병진들을 의미하며, 심볼들 Ri는 회전들을 의미한다. 예를 들어, 병진 T1을 통해, 원 4는 원 1의 복사본이 되고 뿐만 아니라 원 14는 원 5의 복사본이 된다. 회전 R1을 통해, 원 2는 원 1의 복사본이 된다. 원 10은 회전 R5를 통해 원 12의 복사본이 된다. 회전들 R1 및 R5가 동일한 2π/3 각도를 가짐에도 불구하고, 그 회전들은 동일하지 않은데 그것들이 동일한 중심을 가지지 않기 때문이다. 또한, 3 회 미만으로 보여지는 강체 운동들은 또한 명료함을 위해 도면에서 제외된다.
기초 패턴 인식의 바로 그 제 1 단계의 일 예는 그래프 B의 원호들을 이른바 "클래스들"로 그룹화하는 것이다 (이는 결정하는 단계 (S30) 이다). 클래스는 연관된 강체 운동 및 기하학적 오브젝트를 수반하는 유사도 기준에 따라 원호들을 모은다. 위에서 설명된 바와 같이, 유사도 기준은 강체 운동들의 엄격한 동등 (equality) 보다 약하다.
도 17의 그래프로부터 시작하는 결정하는 단계 (S30) 의 구현의 일 예가 이제 논의된다.
예비 정의들이 유용하다. i=1,2인 ui가 2 개의 원호들이라고 하자, 그리고 i=1,2인 Di=(Ri,Ti) 가 원호들 ui에 각각 연관된 강체 운동들이라고 하자. 공식적으로, Di=m(ui) 이다. θi가 회전 Ri의 각도이고 Ai가 회전 Ri의 축이라고 하자. xi=α(ui) 가 원호 ui의 원점에서의 기하학적 오브젝트 그리고 g(xi)가 그것의 무게 중심이라고 하자.
정의에 의해, 원호 ui의 반경은 g(xi) 및 Ai 사이의 거리 di이다. 동일한 값 di가, 도 18 내지 도 19에서 예시된 바와 같이, yi=ω(ui) 를 xi가 아니라 원호 ui의 끝부분에서의 기하학적 오브젝트라고 간주함으로써 획득된다.
앞서 제공된 유사도 기준의 예에 따르면, 원호들 u1 및 u2는 다음의 조건들 중 하나가 참인 경우에 유사하다.
1. D1 및 D2 는 순수 병진들이고 그것들의 병진 벡터는 동일한 길이를 가진다. 공식적으로: θ1 = θ2 = 0 이고 |T1| = |T2| 이다.
2. D1 및 D2 는 순수 병진들이 아니다. 그것들의 회전들은 동일한 절대 각도를 가지며, 공식적으로, |θ1| = |θ2| ≠ 0 이다. 원호들 u1 및 u2의 반경들은 동일하며, 공식적으로 d1=d2 이다.
원호들 u1 및 u2는 그렇지 않으면 유사하지 않다.
예의 방법은 결정하는 단계 (S30) 를 수행하기 위한 유사한 강체 운동들을 결정하기 위해 적절한 테스트들을 수행할 수도 있다.
기본 대수학에 따르면, 그리고 이미 논의된 바와 같이, 유사도 관계가 원호들의 세트에 대해 동치 관계이면, 원호들의 세트를 "동치 클래스들"이라 부를 수도 있는 최대 및 서로소 서브 세트들로 (정리 (theorem) 에 의해) 분할한다.
예로 되돌아가서, 그래프 B에 대해 수행되는 클래스 컴퓨테이션 및 서브그래프 추출은 S30에서 도 20 내지 도 22에 도시된 3 개의 최대 서브그래프들이 수득되게 한다. 도 20의 서브그래프 C는, i=1,…,6인 회전들 Ri 모두가 동일한 각도 및 동일한 반경들을 갖는다는 사실 덕분이다 (그것들은 동일하지 않는데 그것들이 동일한 중심을 갖지 않기 때문이다). 그것은 18 개 원호들을 포함한다. 도 21의 서브그래프 (210) 는 회전 R7에서부터 유래한다. 그것은 9 개 원호들을 포함한다. 도 22의 서브그래프 (220) 는 병진들 T1 및 T2가 동일하지 않음에도 불구하고 동일한 길이를 가진다는 사실로부터 유래한다. 그것은 12 개 원호들을 포함한다.
도 20 내지 도 22의 최대 서브그래프들 (C, 210 및 220) 의 결정하는 단계 (S30) 후에 수행된 식별하는 단계 (S40) 의 일 예가 이제 논의된다.
다음 단계는 18 개 원호들 덕분에 예에서 그래프 C가 되는, 최대 수의 원호들이 특징이 되는 서브그래프를 선택하는 것이다. 그래프 C는 6 개 연결형 컴포넌트들 Ci =1…6를 포함한다. 컴포넌트 C1은 노드들 (1, 2, 3) 을 포함하며, 컴포넌트 C2는 노드들 (4, 5, 6) 을 포함하며, 컴포넌트 C3은 노드들 (7, 8, 9) 을 포함하며, 컴포넌트 C4는 노드들 (10, 11, 12) 을 포함하며, 컴포넌트 C5는 노드들 (13, 14, 15) 을 포함하고, 컴포넌트 C6은 노드들 (16, 17, 18) 을 포함한다. 각각의 연결형 컴포넌트의 모든 원호들은 동일한 강체 운동에 의해 레이블되며: 컴포넌트 C1의 원호들은 모두 회전 R1에 의해 레이블되며, 컴포넌트 C2의 원호들은 모두 회전 R2에 의해 레이블되는 등등이다. 결과적으로, 예의 알고리즘은 각각의 연결형 컴포넌트가 3 개의 원들의 작은 크라운인 기초 패턴임을 인식할 수도 있다. 이는 식별하는 단계 (S40) 이다.
그 다음에, 방법의 반복이 일어날 수도 있다. 그래프 B는, 앞서 제공된 붕괴의 예로 설명된 바와 같이, 각각의 연결형 컴포넌트들 Ci의 노드들을 단일 노드로 병합함으로써 그래프 B'로 단순화된다. 하나의 컴포넌트로부터 다른 컴포넌트까지 노드들을 잇는 그래프 B의 원호들은 예를 들어 다음과 같이 관리될 수도 있다. Ci 및 Cj가 2 개의 독특한 컴포넌트들이라고 하자. Ci의 노드들 및 Cj의 노드들 사이에 1 대 1 매핑이 존재하면 그리고 이 매핑의 모든 원호들이 동일한 강체 운동 D로 레이블되면, 단순화된 그래프 B'는 강체 운동 D로 레이블되는 하나의 원호가 단일 노드 Ci 및 단일 노드 Cj를 연결시킨다는 것을 특징을 보인다. 그렇지 않으면, Ci의 기하구조들은 Cj의 기하구조들에 대해 전역적으로 등측성이 아니고 단순화된 그래프에서 생성되는 원호는 없다.
예에서, 이는 도 23의 단순화된 그래프 B' 가 수득되게 한다. 가독성을 위해, 병합의 결과로 생기는 노드들의 명명은 도면에서 원래의 노드들의 번호들에 기초한다.
단순화된 그래프 B' 는 이제 예의 알고리즘의 다음 반복의 입력 그래프일 수도 있다. B'의 원호들에 대해 수행된 동치 클래스들의 컴퓨테이션은 도 24 내지 도 25에 도시된 바와 같은 2 개의 서브세트들 (C' 및 250) 이 수득되게 한다. C'이라 적은 서브그래프는 |T1| = |T2| 때문에 4 개의 원호들을 포함하는 반면 서브그래프 (250) 는 3 개의 원호들을 포함한다.
그 선택은 그러면 서브그래프 C'에 대해 위와 같은 기초 패턴 인식을 수행하는 것이 될 수도 있는데 그 서브그래프가 최대 수의 원호들을 포함하기 때문이다. 이는 각각의 연결형 컴포넌트마다 하나인 2 개의 기초 패턴들이 수득되게 한다. 그 다음에, 그래프 B'는 도 26에 예시된 바와 같은 그래프 B''로 단순화된다.
그 예의 바로 그 마지막 반복은 회전 R7 을 통해 2 개의 사본들로 이루어진 기초 패턴을 그래프 B''에 대해 인식하는 것이다. 이 반복은 상세히 설명되지 않는다.
마지막으로, 예의 방법에 의해 인식된 재귀적 패턴 구조의 로직 (270) 은 도 27에 예시된 바와 같이계층적 그래프를 사용하여 그래픽 신택스가 될 수도 있다. 그 방법은 따라서 S10에서 제공된 B-Rep (160) 의 면들의 세트가 B-Rep의 패턴들의 패턴 구조 전체를 나타내는 계층적 데이터인 로직 (270) 을 추종함을 나타내는 데이터를 출력할 수도 있다.
도 16 내지 도 27을 참조하여 제공된 예에서, 식별하는 단계 (S40) 는 항상, S30에서 결정된 서브그래프들 내에서, 최고 수의 원호들을 갖는 서브그래프를 단순히 선택함으로써 수행된다. 사실상, 이 예에서, 선택된 서브그래프의 연결형 컴포넌트들 (Ci =1…6, 도 24의 그래프 C'의 연결형 컴포넌트들 및 그 후의 도 26의 B'' 의 단일 연결형 컴포넌트를 포함함) 은 항상 모두 동일성 기준을 준수한다.
이것은 그러나 일반적인 경우에 반드시 참은 아니다. 그 방법은 따라서 개선되고 참이 아닌 경우에 특수한 경우들을 감안하여 덜 "틀린 결과들"을 출력할 수도 있다. 이는 다음과 같이 행해질 수도 있다.
식별하는 단계 (S40) 는, 위에서처럼, 결정된 서브그래프들 내에서, 최고 수의 원호들을 갖는 서브그래프를 선택하는 단계를 포함할 수도 있다. 그러나, 식별하는 단계 (S40) 는 또한 선택된 서브그래프의 연결형 컴포넌트들 중 각각의 연결형 컴포넌트의 원호들에 의해 나타내어진 강체 운동들 모두가 동일성 기준을 준수하는지의 여부를 테스트하는 단계를 포함할 수도 있다. 다르게 말하면, 최고 수의 원호들 (모든 원호들은 따라서 '유사한', 즉, 유사한 강체 운동들을 나타냄) 을 갖는 서브그래프의 연결형 컴포넌트들이 고려된다. 그리고 그 방법은 실제로 (컴퓨터 과학 분야에서 전통적인 바와 같이), 그와 같이 개별적으로 (즉, 하나씩) 고려되는 각각의 연결형 컴포넌트가 실제로 동일한 (즉, 동일한 강체 운동들을 나타내는) 원호들만으로 구성되는지의 여부를 테스트한다.
테스팅의 결과로서, 상이한 전략들이 연결형 컴포넌트들의 올바른 세트을 식별하기 위해 추종될 수도 있으며 이에 의해 그 방법을 종료한다. 간단하게 구현하는 하나의 방법은 아래에서 설명되는 바와 같은 분할 프로시저를 수행하는 것이다.
분할 프로시저에서, 식별하는 단계 (S40) 는 테스팅의 결과로서 다음의 액션을 더 포함한다. 테스팅의 결과가 긍정적이면 (즉, 선택된 서브그래프의 모든 연결형 컴포넌트들이 각각 동일성 기준을 준수하면), 그 방법은 그 세트의 연결형 컴포넌트들을 선택된 서브그래프의 연결형 컴포넌트들로서 식별한다 (즉, 선택된 서브그래프의 연결된 엘리먼트들은 식별하는 단계 (S40) 에 의해 출력된 세트를 형성한다). 이는 실제로 항상 도 16 내지 도 27의 예에서의 상황이다. 그러나, 그것이 아니면, 즉, 테스팅의 결과가 부정적이면, 그 방법은 선택된 서브그래프의 분할을 수행하고 선택과 테스팅을 다시 실행한다. 분할은 테스팅 프로시저의 결과가, 다시 실행된다면, 긍정적이 될 가능성이 더 많은 상태를 향하게, 선택된 서브그래프를 해체함으로써, 선택된 서브그래프를 수정하는 것으로 구성된다. 이는 결국에는 반복을 종료하는 것을 허용한다.
빠르게 수렴하고 설계를 준수하는 예에서, 분할은, 편의를 위해 "절단된 서브 그래프 (cut sub-graph)"라 불릴 수도 있는, 선택된 서브그래프의 서브그래프의 원호들을 선택된 서브그래프로부터 절단하는 것을 포함한다. 절단된 서브그래프는, 선택된 서브그래프의 모든 서브그래프들 중에서, 최고 수의 원호들을 가지고 원호들에 의해 나타내어진 강체 운동들 모두가 동일성 기준을 준수하는 하나의 서브그래프이다. 여러 그러한 서브그래프들이 존재하는 (즉, 동일한 수의 원호들이 존재하는) 경우는 임의의 방법으로 핸들링될 수도 있다. 그러면 분할은 또한 절단된 원호들로 새로운 서브그래프를 생성하는 것을 포함한다.
이는 일 예를 통해 아래에서 상세히 설명된다.
그 예의 분할 프로세스는 다음의 조건들로 실행된다. 그래프 B가 입력 그래프 A의 연결형 컴포넌트라고 하자. 클래스들의 계산은 S30에서 B의 원호들의 서브 세트들로의 파티션을 결정한다. 그래프 C가 최대 서브 세트에 의해 정의된 B의 서브그래프이다. 서브 그래프들 Ci는 C의 연결형 컴포넌트들이다. C0라고 적는 이것들 중 적어도 하나와, C0의 2 개의 원호들 u,v가 존재하여서 연관된 강체 운동들 m(u) 및 m(v)가 동일하지 않게 된다.
그 예의 분할 프로세스는 다음과 같이 실행된다. C0가 이전에 정의된 바와 같이 주어지면, 제 1 단계는 i=1,…,n인 Di라고 적는, C0의 원호들에 연관된 모든 독특한 강체 운동들을 식별하는 것이다. 강체 운동들의 수 n은 일반적으로 C0에서의 원호들의 수보다 적은데, 여러 원호들이 동일한 강체 운동에 연관될 수도 있기 때문이다. 제 2 단계는 공유된 강체 운동들에 따라 C0의 원호들을 그룹화하는 것이다. 공식적으로, i=1,…,n에 대해, Ui는, 모든 u∈Ui에 대해, m(u)=Di, 줄여서, Ui=m-1(Di)가 되도록 하는 C0의 원호들의 서브세트이다. 이제, G(Ui)가 Ui에서의 원호들에 의해 정의된 C0의 서브 그래프라고 하자. 다음 단계는 이들 서브그래프들의 모든 조합들을 검토하는 것이다. 각각의 서브 세트 Q⊂{1,…,n}는 다음에 의해 이러한 조합을 정의한다:
Figure 112013121188683-pat00070
다음 단계는, 모든 Q⊂{1,…,n} 중에서, 최대 수의 원호들을 갖고 K(Q)의 각각의 연결형 컴포넌트에 대해, 모든 원호들이 동일한 강체 운동에 연관되는 그런 조합 K(Q)를 선택하는 것이다. Q*가 이 특성을 특징으로 하는 {1,…,n} 의 서브세트임에 주의한다. 분할 동작은, 서브 세트들의 파티션에서, C0 원호들의 서브세트를 서브세트 ∪i∈Q*Ui 및 그것의 상보적인 서브 세트 ∪i∈{1,...,n}-Q*Ui 에 의해 교체하는 것이다.
다르게 말하면, 분할은 선택된 서브그래프로부터, 동일성 기준을 준수하는 강체 운동들을 나타내는 원호들을 갖는 그것의 최대 서브-서브그래프 (원호들의 수의 측면에서 "최대") 를 절단한다. 그러면, 선택이 S30에서 초기 결정된 최대 서브그래프들의 세트의 수정된 버전에 대해 다시 수행되고, 그 다음에 분할이 다시 수행될 수도 있는데 테스팅이 또한 다시 수행되기 때문이다. 결국에는, 그 결과는 반드시, 동일한 원호들을 갖는 연결형 컴포넌트들만을 가지는 선택된 서브그래프일 것이라서, 알고리즘은 수렴한다. 물론, 그 방법이 반복되는 경우, 결정하는 단계 (S30) 및 식별하는 단계 (S40) 의 다음 반복들에서, 입력 엘리먼트들이 동일하다면 (예컨대 분할될 서브그래프가 동일하다면), 분할이 더 빠르게 수행될 수도 있도록 분할의 결과(들)는 저장될 수도 있다.
도 28은 분할 동작이 바람직하고 틀린 결과를 피하는 것을 돕는 상황을 예시한다. 이 예의 S10에서 제공된 B-Rep는 등간격 이격된 7 개 원들 (8 내지 14로 번호 부여됨), 6 개 원들 (1 내지 6으로 번호 부여됨) 의 그리드 및 그 그리드와는 정렬되지 않은 여분의 원 (7로 번호 부여됨) 으로 이루어진 부분적 크라운을 포함한다.
이 기하구조에 대응하고 S20에서 정의된 그래프 B는 도 29에서 제공된다. 정점들의 번호 부여는 설명을 요하지 않는다. 원호들은 글자들 "a" 내지 "n"에 의해 명명되고 연관된 강체 운동들로 레이블된다. 병진 벡터들은 동일한 길이를 가진다: |T1| = |T2| = |T3|.
분명히, 그래프 B는 도 29에서 설명된 바와 같이, 2 개의 연결형 컴포넌트들 (292 및 294) 이 특징이다. 그래프 B의 원호들에 대해 수행된 클래스들의 컴퓨테이션은 2 개의 서브 세트들 {i,j,k,l,m,n} 및 {a,b,c,d,e,f,g,h}이 수득되게 하며, 두 번째 것이 최대 서브 세트이다. 그래서, 서브 그래프 C는 정점들 (1 내지 7) 및 원호들 (a 내지 h) 에 의해 정의된다. 이 서브 그래프가 연결되므로, 그것은 C0와 동일하다.
분할 프로세스가 필요한데 C0의 모든 원호들이 동일한 강체 운동에 연관되는 것은 아니기 때문이다. 예를 들어, 원호 a는 병진 T1과 연관되는 반면 원호 b는 T1과는 동일하지 않은 T2와 연관된다. 이는 m(a)=T1≠T2=m(b) 라고 쓴다. 제 1 분할 단계는 T1,T2,T3인 C0의 원호들에 연관된 n=3 강체 운동들을 식별한다. 강체 운동에 의해 원호들을 그룹화하는 것은 다음이 수득되게 한다:
U1 = m-1(T1) = {a,d,g}
U2 = m-1(T2) = {b,c,e,f}
U3 = m-1(T3) = {h}
이제, 모든 서브 세트들 Q⊂{1,2,3}를 조사하는 것은 다음의 서브 그래프들을 확인하는 것이다:
K({1,2}) = G(U1∪U2) = G({a,b,c,d,e,f,g})
K({1,3}) = G(U1∪U3) = G({a,d,g,h})
K({2,3}) = G(U2∪U3) = G({b,c,e,f,h})
K({1}) = G(U1) = G({a,d,g})
K({2}) = G(U2) = G({b,c,e,f})
K({3}) = G(U3) = G({h})
그래프 K({1,2,3}) 는 관계가 없는데 그것이 C0 자체이기 때문이다. 그래프 K(
Figure 112013121188683-pat00071
) 는 관계가 없는데 그것이 비어있기 때문이다. 도 30은 서브그래프들 K(Q)를 예시한다. 분명히, 특성 (각각의 연결형 컴포넌트의 모든 원호들은 동일한 강체 운동과 연관되어 있다) 은 그래프들 K({1}), K({2}) 및 K({3})에 의해 충족되고 임의의 다른 그래프에 의해서는 충족되지 않는다. 최대의 것 (원호들의 수의 측면에서임) 은 K({2})이다. 그래서, 분할은 서브 세트 {a,b,c,d,e,f,g,h} 를 {b,c,e,f} 및 {a,d,g,h} 로 분할한다.
다음 단계는 이제 {i,j,k,l,m,n} 인 최대 서브 세트를 찾기 위한 이 새로운 서브 세트들의 재파티션에 대한 반복이다. 그 알고리즘은 대응하는 기초 패턴을 식별하는데, 대응하는 서브 그래프의 모든 원호들이 동일한 강체 운동 R1에 연관되기 때문이다. 남아있는 최대 서브 세트는, 노드들 붕괴 후에, 다음 반복에서 관리되는 {b,c,e,f}이다. 사실상, 붕괴는 앞서 설명된 바와 동일한 방식 후에 수행될 수도 있다.

Claims (9)

  1. 3차원 모델링된 오브젝트를 설계하기 위한 컴퓨터 구현 방법으로서,
    상기 모델링된 오브젝트를 나타내고 기하학적 엘리먼트들이 다른 것의 복사본인 세트를 포함하는 상기 기하학적 엘리먼트들을 제공하는 단계 (S10);
    상기 세트의 기하학적 엘리먼트를 각각 나타내는 노드들, 및 각각 노드들의 한 쌍을 연결시키고 상기 쌍 중 하나의 노드에 의해 나타내어진 기하학적 엘리먼트를 상기 쌍 중 다른 노드에 의해 나타내어진 기하학적 엘리먼트로 변환시키는 강체 운동 (rigid motion) 을 나타내는 원호들을 갖는 그래프를 정의하는 단계 (S20);
    상기 원호들에 의해 나타내어진 상기 강체 운동들 모두가 미리 결정된 유사도 기준을 준수하는 상기 그래프의 최대 서브그래프들을 결정하는 단계 (S30) 로서, 상기 유사도 기준은 미리 결정된 동일성 기준보다 약한, 상기 결정하는 단계 (S30); 및
    결정된 상기 서브그래프들 내에서, 최고 수의 원호들을 갖고 상기 원호들에 의해 나타내어진 상기 강체 운동들 모두가 상기 동일성 기준을 준수하는 연결형 컴포넌트들의 세트를 식별하는 단계 (S40) 를 포함하는, 3차원 모델링된 오브젝트를 설계하기 위한 컴퓨터 구현 방법으로써, 상기 방법은,
    연결형 컴포넌트들의 식별된 상기 세트의 각각의 연결형 컴포넌트의 노드들을 붕괴시키는 것에 의해 상기 그래프를 수정하는 것; 및
    상기 수정된 그래프에 대해 상기 결정하는 단계 (S30) 및 상기 식별하는 단계 (S40) 를 반복하는 것
    을 반복하는 단계를 더 포함하는, 3차원 모델링된 오브젝트를 설계하기 위한 컴퓨터 구현 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 붕괴시키는 것은,
    연결형 컴포넌트들의 상기 식별된 세트의 임의의 연결형 컴포넌트의 임의의 노드에 연결된 모든 원호들을 삭제하는 것;
    각각의 개별 연결형 컴포넌트에 대해, 상기 개별 연결형 컴포넌트의 모든 노드들을 단일 노드에 의해 교체하는 것; 및
    등측성 (isometric) 인 연결형 컴포넌트들을 나타내는 노드들의 쌍들 사이에 원호들을 추가하는 것으로서, 각각의 추가된 원호는 상기 쌍 중 하나의 노드에 의해 나타내어진 상기 연결형 컴포넌트를 상기 쌍 중 다른 노드에 의해 나타내어진 상기 연결형 컴포넌트로 변환시키는 강체 운동을 나타내는, 상기 추가하는 것을 포함하는, 3차원 모델링된 오브젝트를 설계하기 위한 컴퓨터 구현 방법.
  4. 제 1 항에 있어서,
    상기 식별하는 단계 (S40) 는,
    결정된 상기 서브그래프들 내에서, 상기 최고 수의 원호들을 갖는 서브그래프를 선택하는 단계 (S410);
    선택된 상기 서브그래프의 상기 연결형 컴포넌트들 중 각각의 연결형 컴포넌트의 원호들에 의해 나타내어진 상기 강체 운동들 모두가 상기 동일성 기준을 준수하는지의 여부를 테스트하는 단계 (S420) 를 포함하는, 3차원 모델링된 오브젝트를 설계하기 위한 컴퓨터 구현 방법.
  5. 제 4 항에 있어서,
    상기 식별하는 단계 (S40) 는 상기 테스트하는 단계 (S420) 의 결과로서,
    상기 테스트하는 단계 (S420) 의 결과가 긍정적이면, 연결형 컴포넌트들의 상기 세트를 상기 선택된 서브그래프의 상기 연결형 컴포넌트들로서 식별하는 단계 (S430),
    그렇지 않고, 상기 테스트하는 단계 (S420) 의 결과가 부정적이면, 상기 선택된 서브그래프를 분할하는 단계 (S440) 와 상기 선택하는 단계 (S410) 및 상기 테스트하는 단계 (S420) 를 재실행하는 단계를 더 포함하는, 3차원 모델링된 오브젝트를 설계하기 위한 컴퓨터 구현 방법.
  6. 제 5 항에 있어서,
    상기 분할하는 단계 (S440) 는,
    상기 선택된 서브그래프로부터, 상기 선택된 서브그래프의 모든 서브그래프들 중에서, 상기 최고 수의 원호들을 가지고 상기 원호들에 의해 나타내어진 상기 강체 운동들 모두가 상기 동일성 기준을 준수하는 상기 선택된 서브그래프의 서브그래프의 원호들을 절단하는 단계; 및
    상기 절단된 원호들로 새로운 서브그래프를 생성하는 단계를 포함하는, 3차원 모델링된 오브젝트를 설계하기 위한 컴퓨터 구현 방법.
  7. 제 1 항 및 제 3 항 내지 제 6 항 중 어느 한 항에 기재된 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 프로그램을 기록하고 있는, 컴퓨터 판독가능 저장 매체.
  8. 삭제
  9. 메모리 및 그래픽 사용자 인터페이스에 커플링된 프로세서를 포함하는 CAD 시스템으로서,
    상기 메모리는 제 7 항의 상기 컴퓨터 프로그램을 기록하고 있는, CAD 시스템.
KR1020130168725A 2012-12-31 2013-12-31 강체 운동들에 의해 변환된 기하학적 엘리먼트들 KR102055955B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12306721.7 2012-12-31
EP12306721.7A EP2750106B1 (en) 2012-12-31 2012-12-31 Geometrical elements transformed by rigid motions

Publications (2)

Publication Number Publication Date
KR20140088038A KR20140088038A (ko) 2014-07-09
KR102055955B1 true KR102055955B1 (ko) 2019-12-13

Family

ID=47715808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130168725A KR102055955B1 (ko) 2012-12-31 2013-12-31 강체 운동들에 의해 변환된 기하학적 엘리먼트들

Country Status (6)

Country Link
US (1) US9449430B2 (ko)
EP (1) EP2750106B1 (ko)
JP (1) JP6294072B2 (ko)
KR (1) KR102055955B1 (ko)
CN (1) CN103971417B (ko)
CA (1) CA2838282C (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2750107B1 (en) 2012-12-31 2017-03-15 Dassault Systèmes Groups of faces that form a geometrical pattern
US9569564B2 (en) * 2013-02-11 2017-02-14 Ford Global Technologies, Llc Automated cad process for creating mold packages
EP2808810B1 (en) 2013-05-28 2017-01-11 Dassault Systèmes Compression and decompression of 3d modeled object
US20160098033A1 (en) * 2014-10-06 2016-04-07 General Electric Company Semantic manufacturing
EP3098734A1 (en) 2015-05-28 2016-11-30 Dassault Systèmes Querying a database with likeness criterion
EP3098735A1 (en) 2015-05-28 2016-11-30 Dassault Systèmes Querying a database with thickness criterion
EP3179389B1 (en) * 2015-12-07 2019-05-22 Dassault Systèmes Detecting cut-outs
CN109313101B (zh) * 2016-06-24 2021-07-06 科思创德国股份有限公司 基于由3d打印过程生成的测试块对形成为一件式的结构进行机械测试的方法
EP3264286B1 (en) 2016-06-28 2020-11-18 Dassault Systèmes Querying a database with morphology criterion
EP3321817A1 (en) 2016-11-14 2018-05-16 Dassault Systèmes Querying a database based on a parametric view function
EP3340084A1 (en) * 2016-12-22 2018-06-27 Dassault Systèmes Replica selection
US20180314408A1 (en) * 2017-04-28 2018-11-01 General Electric Company Systems and methods for managing views of computer-aided design models
US11281824B2 (en) 2017-12-13 2022-03-22 Dassault Systemes Simulia Corp. Authoring loading and boundary conditions for simulation scenarios
US11030375B2 (en) * 2018-07-26 2021-06-08 Synopsys, Inc. Capturing routing intent by using a multi-level route pattern description language
EP3623968A1 (en) * 2018-09-17 2020-03-18 Bricsys NV Automated block generation in cad
EP3690682A1 (en) 2019-02-01 2020-08-05 Dassault Systèmes Designing a part featuring a protrusion or a depression
EP3761211A1 (en) 2019-07-04 2021-01-06 Dassault Systèmes Designing a part featuring a bump
CN112395779A (zh) * 2019-07-31 2021-02-23 比亚迪股份有限公司 刚性连接创建方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057184A (ja) * 1998-08-06 2000-02-25 Nissan Motor Co Ltd 3次元形状モデルの作成方法
US20020095276A1 (en) * 1999-11-30 2002-07-18 Li Rong Intelligent modeling, transformation and manipulation system
JP2007305133A (ja) 2006-05-09 2007-11-22 Inus Technology Inc 3次元スキャンデータを使用して本来の設計意図を確認するためのシステム及び方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5533148A (en) * 1993-09-30 1996-07-02 International Business Machines Corporation Method for restructuring physical design images into hierarchical data models
US5842004A (en) 1995-08-04 1998-11-24 Sun Microsystems, Inc. Method and apparatus for decompression of compressed geometric three-dimensional graphics data
NO306526B1 (no) * 1997-12-30 1999-11-15 Animagic Systems As Fremgangsmaate for aa representere geometriske figurer og geometriske strukturer i datamaskinsystemer
US6768928B1 (en) 1999-05-20 2004-07-27 Olympus Optical Co., Ltd. Mechanism component design support system
JP3536786B2 (ja) 2000-06-07 2004-06-14 株式会社デンソー 3次元モデリングシステム
US6721614B2 (en) 2001-05-21 2004-04-13 International Business Machines Corporation Multi-discipline universal CAD library
US8429174B2 (en) 2003-01-25 2013-04-23 Purdue Research Foundation Methods, systems, and data structures for performing searches on three dimensional objects
US7269808B2 (en) 2005-05-26 2007-09-11 International Business Machines Corporation Design verification
WO2007034425A2 (en) * 2005-09-23 2007-03-29 Philips Intellectual Property & Standards Gmbh A method of and a system for adapting a geometric model using multiple partial transformations
US7688318B2 (en) 2007-02-02 2010-03-30 Dassault Systemes Solidworks Corporation Reusable data constructs for a modeling system
US7830377B1 (en) 2008-01-09 2010-11-09 Spaceclaim Corporation, Inc. Systems and methods for using a single tool for the creation and modification of solids and surfaces
US20090182450A1 (en) 2008-01-14 2009-07-16 Emmanuel Goldschmidt Web application for increasing mold reusability
US8368689B2 (en) 2008-09-25 2013-02-05 Siemens Product Lifecycle Management Software Inc. System, method, and computer program product for radial functions and distributions of three dimensional object models
EP2354986A1 (en) * 2009-12-31 2011-08-10 Dassault Systèmes Design of an assembly modeled by a graph
US8384717B2 (en) 2010-02-16 2013-02-26 Siemens Product Lifecycle Management Software Inc. Method and system for B-rep face and edge connectivity compression
JP5469491B2 (ja) 2010-03-15 2014-04-16 オムロン株式会社 画像処理装置および画像処理方法
EP2387004B1 (en) 2010-05-11 2016-12-14 Dassault Systèmes Lossless compression of a structured set of floating point numbers, particularly for CAD systems
CN102289537B (zh) * 2011-06-20 2012-12-12 南京航空航天大学 一种复杂结构件多体特征识别方法
EP2750107B1 (en) 2012-12-31 2017-03-15 Dassault Systèmes Groups of faces that form a geometrical pattern
EP2808810B1 (en) 2013-05-28 2017-01-11 Dassault Systèmes Compression and decompression of 3d modeled object
US9946732B2 (en) 2013-12-15 2018-04-17 Socovar, Société En Commandite Method and system for comparing 3D models

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057184A (ja) * 1998-08-06 2000-02-25 Nissan Motor Co Ltd 3次元形状モデルの作成方法
US20020095276A1 (en) * 1999-11-30 2002-07-18 Li Rong Intelligent modeling, transformation and manipulation system
JP2007305133A (ja) 2006-05-09 2007-11-22 Inus Technology Inc 3次元スキャンデータを使用して本来の設計意図を確認するためのシステム及び方法

Also Published As

Publication number Publication date
JP6294072B2 (ja) 2018-03-14
CN103971417A (zh) 2014-08-06
CN103971417B (zh) 2018-08-14
EP2750106A1 (en) 2014-07-02
JP2014130601A (ja) 2014-07-10
EP2750106B1 (en) 2021-09-15
CA2838282A1 (en) 2014-06-30
US20140184594A1 (en) 2014-07-03
CA2838282C (en) 2021-11-23
US9449430B2 (en) 2016-09-20
KR20140088038A (ko) 2014-07-09

Similar Documents

Publication Publication Date Title
KR102055955B1 (ko) 강체 운동들에 의해 변환된 기하학적 엘리먼트들
CA2838185C (en) Groups of faces that form a geometrical pattern
JP7206039B2 (ja) レプリカ選択
JP6835484B2 (ja) 類似性基準を用いてデータベースにクエリを実行すること
US9881388B2 (en) Compression and decompression of a 3D modeled object
EP2811463B1 (en) Designing a 3d modeled object with 2d views
EP3264286B1 (en) Querying a database with morphology criterion
EP2474929A1 (en) Modeled object updating
JP6585423B2 (ja) 順次更新の実行
US20160063141A1 (en) Criterion for sequential update
JP7017852B2 (ja) 記述子を用いた3dオブジェクトの位置特定
US10409921B2 (en) Designing industrial products by using geometries connected by geometrical constraints
JP6947503B2 (ja) 量子化を用いた3dオブジェクトの位置特定
JP6389033B2 (ja) オブジェクトの円形ジグザグ・パターンの設計

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant