KR20140139984A - 3d 모델링된 오브젝트의 압축 및 압축해제 - Google Patents

3d 모델링된 오브젝트의 압축 및 압축해제 Download PDF

Info

Publication number
KR20140139984A
KR20140139984A KR20140063978A KR20140063978A KR20140139984A KR 20140139984 A KR20140139984 A KR 20140139984A KR 20140063978 A KR20140063978 A KR 20140063978A KR 20140063978 A KR20140063978 A KR 20140063978A KR 20140139984 A KR20140139984 A KR 20140139984A
Authority
KR
South Korea
Prior art keywords
function
data
domain
range
mapping
Prior art date
Application number
KR20140063978A
Other languages
English (en)
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 KR20140139984A publication Critical patent/KR20140139984A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges

Abstract

3 차원 모델링된 오브젝트를 압축하는 컴퓨터 구현 방법이 제공되고, 이 방법은 모델링된 오브젝트의 경계 표현을 제공하는 단계; 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑을 설명하는 제 1 데이터, 및 레퍼런스 함수 및 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑으로 구성될 때, 다른 함수를 적용한 것과 동일한 결과를 유발하는, 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑을 설명하는 제 2 데이터를 결정하는 단계; 및 지오메트리컬 데이터에서 다른 함수를 제 1 데이터, 제 2 데이터 및 레퍼런스 함수에 대한 포인터로 대체하는 단계를 포함한다.
이러한 방법은 3D 모델링된 오브젝트의 압축을 개선시킨다.

Description

3D 모델링된 오브젝트의 압축 및 압축해제{COMPRESSION AND DECOMPRESSION OF A 3D MODELED OBJECT}
본 발명은 컴퓨터 프로그램들 및 시스템들의 분야에 관한 것으로, 보다 구체적으로 3 차원 모델링된 (3D) 모델링된 오브젝트를 압축 및/또는 압축해제하기 위한 방법, 시스템 및 프로그램, 상기 압축 방법에 의해 획득가능한 3D 모델링된 오브젝트, 상기 3D 모델링된 오브젝트를 설명하는 데이터 구조, 및 상기 데이터 구조를 저장하는 데이터 파일에 관한 것이다.
다수의 시스템들 및 프로그램들이 오브젝트들의 설계, 엔지니어링 및 제조를 위한 시장에 제공된다. CAD 는 컴퓨터 지원 설계 (Computer-Aided Design) 의 약어이며, 예를 들어, 그것은 오브젝트를 설계하기 위한 소프트웨어 솔루션들에 관련된다. CAE 는 컴퓨터 지원 엔지니어링 (Computer-Aided Engineering) 의 약어이며, 예를 들어, 그것은 장래의 제품의 물리적 거동을 시뮬레이션하기 위한 소프트웨어 솔루션들에 관련된다. CAM 은 컴퓨터 지원 제조 (Computer-Aided Manufacturing) 의 약어이며, 예를 들어, 그것은 제조 프로세스들 및 동작들을 정의하기 위한 소프트웨어 솔루션들에 관련된다. 이러한 시스템들에서, 그래픽 사용자 인터페이스 (graphical user interface; GUI) 는 기법의 효율성과 관련하여 중요한 역할을 한다. 이들 기법들은 제품 수명주기 관리 (Product Lifecylce Management; PLM) 시스템들 내에 내장될 수도 있다. PLM 은 확장된 기업의 개념에 걸쳐서, 회사들이 제품 데이터를 공유하고, 공통 프로세스들을 적용하며, 구상 (conception) 에서 제품들의 수명의 마지막까지 제품들의 개발을 위한 기업의 지식에 영향력을 행사하는 것을 돕는 비즈니스 전략을 지칭한다.
(상표들 CATIA, ENOVIA 및 DELMIA 하에서) 다솔 시스템므 (Dassault Systemes) 에 의해 제공되는 PLM 솔루션들은 제품 엔지니어링 지식을 조직화하는 엔지니어링 허브 (Engineering Hub), 제조 엔지니어링 지식을 관리하는 제조 허브 (Manufacturing Hub), 및 엔지니어링 허브와 제조 허브 양쪽으로의 기업 통합들 및 접속들을 가능하게 하는 기업 허브 (Enterprise Hub) 를 제공한다. 모두 시스템이 제품들, 프로세스들, 리소스들을 링크하는 개방형 오브젝트 모델을 전달하여 최적화된 제품 정의, 제조 준비, 생산 및 서비스를 추진하는 동적, 지식 기반 제품 생성 및 결정 지원을 가능하게 한다.
현재 많은 CAD 시스템들은, 사용자에게 제공된 모델링된 오브젝트의 경계 표현 (B-Rep) 에 기초하여, 사용자로 하여금 3D 모델링된 오브젝트를 설계하게 한다. B-Rep 는 각각의 지지 표면의 경계 부분으로서 정의된 면들의 세트 각각을 포함하는 데이터 포맷이다. 사용자는 기존 면들을 변경하는 것, 새로운 면들을 생성하는 것, 일부 면들을 삭제하는 것, 및/또는 면들 상의 및/또는 면들 간의 제약들을 정의하는 것, 또는 사용시 CAD 시스템에 의해 제공된 임의의 액션들 등에 의해 면들의 세트에 대해 작용할 수 있다.
B-Rep들은 많은 양의 데이터를 의미할 수도 있다. 특히, B-Rep들은 현대 설계들에서 더욱 더 많은 엘리먼트들을 포함하여, B-Rep 에 의해 모델링된 3D 모델링된 오브젝트들을 설명하는 데이터 구조의 증가된 사이즈를 초래할 수 있다. 큰 사이즈의 B-Rep 는 모두 많은 메모리 공간을 가지며 송신하기 어렵다. 이것은 특히 협력 설계의 맥락에서 문제가 된다. 따라서, 압축 방법들은 B-Rep들의 사이즈를 감소시키기 위해 개발되었다.
B-Rep 모델들의 기존의 데이터 압축 방법들은 수개의 카테고리들 내에 저장될 수 있다. 첫 번째 것은 다각형 메시들, 주로 삼각형들을 다룬다. 많은 연구 논문들 및 특허 문헌들이 이 기술에 관련된다. 문헌 EP 0964364 A2 는 통상적인 예이다. 삼각형들의 논리 배열뿐만 아니라, 포인트 좌표들, 법선 벡터들, 텍스처 코드들 및 다른 속성들과 같은 수치 데이터도 압축된다. 두 번째 카테고리는 근사 데이터와는 대조적으로 정확한 데이터를 다룬다. 정확한 데이터 압축은 B-Rep 모델의 기본 컴포넌트들로서 NURBS 커브들 및 표면들을 다룬다. NURBS 표면의 제어 다각형은 포인트 좌표들의 증대 정의를 통해 압축된다. 이웃하는 제어 포인트 좌표들의 변화는 "작고" 산업 애플리케이션들에 수반되는 NURBS 표면들의 평활도 때문에 보다 작은 자릿수로 코딩될 수 있다. 통상적인 예는 문헌 EP 2387004 A1 이다. 다른 솔루션들은 기존의 압축 기법들을 더 효율적으로 만들기 위해 미리 프로세싱한 데이터 구조를 포함한다. 문헌 WO 2011/103031 A1 가 일 예이다.
그러나, 이들 기존의 데이터 압축 방법들 중 적어도 일부는 일부 경우들에서 이용할 수 없을 수도 있다. 어느 경우에도, 기존의 기법들과는 상이하게 동작하는 새로운 압축 기법에 의해 압축비가 증가될 수도 있다.
따라서, 본 발명은 3D 모델링된 오브젝트들의 압축을 개선시키는 것을 목적으로 한다.
하나의 양태에 따르면, 그에 따라 3 차원 모델링된 오브젝트를 압축하는 컴퓨터 구현 방법이 제공된다. 이 방법은 모델링된 오브젝트의 경계 표현을 제공하는 단계를 포함한다. 경계 표현은 지오메트리컬 데이터 (geometrical data) 를 포함한다. 지오메트리컬 데이터는, 각각의 지오메트리컬 엔티티에 대응하는 함수들 각각을 포함한다. 각각의 함수는 도메인 (domain) 및 레인지 (range) 를 갖는다. 이 방법은 또한, 레퍼런스 함수 (reference function) 의 레인지로부터 다른 함수의 레인지로의 매핑을 설명하는 제 1 데이터, 및 레퍼런스 함수 및 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑으로 구성될 (composed) 때, 다른 함수를 적용한 것과 동일한 결과를 유발하는, 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑을 설명하는 제 2 데이터를 결정하는 단계를 포함한다. 그리고 이 방법은 또한, 지오메트리컬 데이터에서, 다른 함수를 제 1 데이터, 제 2 데이터, 및 레퍼런스 함수에 대한 포인터로 대체하는 단계를 포함한다.
이 방법은 다음 중 하나 이상을 포함할 수도 있다:
- 이 방법은 서로의 카피 (copy) 인 지오메트리컬 엔티티들에 대응하는 함수들의 세트들을 결정하는 단계, 각각의 세트 내에서 세트의 레퍼런스 함수를 결정하는 단계, 각각의 세트에 대해 그리고 세트의 레퍼런스 함수 이외의 세트의 함수 각각에 대해, 제 1 데이터 및 제 2 데이터를 결정하는 단계 및 대체하는 단계를 반복하는 단계를 포함하고, 제 1 데이터 및 제 2 데이터를 결정하는 단계의 레퍼런스 함수는 매번 세트의 레퍼런스 함수이다;
- 함수들은 파라미터 함수들을 포함하고, 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑 및 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑은 아핀 매핑 (affine mapping) 들이다;
- 함수들은 표면 정의들을 포함하고, 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑은, 레퍼런스 함수에 대응하는 표면을 다른 함수에 대응하는 표면으로 변환하는 강체 운동 (rigid motion) 이며, 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑은 2D 로컬 맵이다;
- 함수들은, 각각의 표면 정의의 도메인에 포함된 레인지를 갖는 p-커브들을 더 포함하고, 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑은, 다른 함수의 레인지로부터 레퍼런스 함수의 레인지로의 2D 로컬 맵의 역 (inverse) 이며, 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑은 1D 로컬 맵이다; 및/또는
- 함수들은, 하나의 레퍼런스 표면 정의, 적어도 하나의 다른 표면 정의, 레퍼런스 표면 정의의 도메인에 포함된 레인지를 갖는 적어도 하나의 p-커브의 레퍼런스 세트 및 다른 표면 정의의 도메인에서의 레인지를 갖고 레퍼런스 세트 중 각각의 하나의 레퍼런스 세트에 대응하는 적어도 하나의 p-커브의 다른 세트와 함께, 서로의 카피인 면들을 정의하고, 대체하는 단계는, 다른 표면 정의 및 다른 세트를, 레퍼런스 표면 정의에 대한 포인터를 설명하는 데이터, 다른 세트 중 각각의 하나의 다른 세트에 대해 레퍼런스 세트 중 대응하는 것에 대한 포인터, 레퍼런스 표면 정의에 대응하는 표면을 다른 표면 정의에 대응하는 표면으로 변환하는 강체 운동, 다른 표면 정의의 도메인과 레퍼런스 표면 정의의 도메인 사이의 2D 로컬 맵, 및 다른 세트 중 각각의 하나의 다른 세트의 도메인과 레퍼런스 세트 중 대응하는 것의 도메인 사이의 1D 로컬 맵으로 대체하는 단계를 포함한다.
압축을 위한 위의 방법에 의해 획득가능한 3 차원 모델링된 오브젝트가 또한 제안된다.
위의 3 차원 모델링된 오브젝트를 저장하는 데이터 파일이 또한 제안된다.
3 차원 모델링된 오브젝트를 압축해제하는 컴퓨터 구현 방법이 또한 제안된다. 이 압축해제 방법은 레퍼런스 함수를 레퍼런스 함수에 대한 포인터로 식별하는 단계; 및 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑, 레퍼런스 함수, 그리고 그 후에 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑을 구성하는 단계를 포함한다.
위의 압축을 위한 방법 및/또는 위의 압축해제 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 프로그램이 또한 제안된다. 컴퓨터 프로그램은 컴퓨터 판독가능 저장 매체 상에 기록되도록 구성된다.
위의 컴퓨터 프로그램을 기록하고 있는 컴퓨터 판독가능 저장 매체가 또한 제안된다.
그래픽 사용자 인터페이스 및 메모리에 커플링된 프로세서를 포함하는 CAD 시스템이 또한 제안되고, 이 메모리는 위의 컴퓨터 프로그램을 기록하고 있다.
이제 본 발명의 실시형태들이 비제한적인 예에 의해, 그리고 첨부 도면들과 관련하여 설명될 것이다:
- 도 1 은 방법의 일 예의 플로우차트를 도시한 것이다;
- 도 2 는 그래픽 사용자 인터페이스의 일 예를 도시한 것이다;
- 도 3 은 클라이언트 컴퓨터 시스템의 일 예를 도시한 것이다; 그리고
- 도 4 내지 도 27 은 방법의 예들을 도시한 것이다.
도 1 은 3D 모델링된 오브젝트를 압축하는 컴퓨터 구현 방법의 일 예의 플로우차트를 도시한 것이다. 이 방법은 모델링된 오브젝트의 B-Rep 를 제공하는 단계 (S10) 를 포함한다. B-Rep 는 지오메트리컬 데이터 (geometrical data) 를 포함한다. 지오메트리컬 데이터는 함수들을 포함한다. 각각의 함수는 각각의 지오메트리컬 엔티티에 대응한다. 각각의 함수는 도메인 (domain) 및 레인지 (range) 를 갖는다. 이 방법은 제 1 데이터 및 제 2 데이터를 결정하는 단계 (S40) 를 더 포함한다. 제 1 데이터는 레퍼런스 함수 (reference function) 의 레인지로부터 다른 함수의 레인지로의 매핑을 설명한다. 제 2 데이터는 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑을 설명한다. 제 2 데이터는, 레퍼런스 함수와 함께 제 2 데이터에 의해 설명되는, 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑, 그리고 그 후에, 제 1 데이터에 설명되는, 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑을 구성하는 것 (composing) 은, 다른 함수에 적용한 것과 동일한 결과를 유발하도록 한다. 이 방법은, 지오메트리컬 데이터에서, 다른 함수를 제 1 데이터, 제 2 데이터, 및 레퍼런스 함수에 대한 포인터로 대체하는 단계 (S50) 를 더 포함한다.
이러한 방법은 3D 모델링된 오브젝트를 압축하기 위한 개선된 솔루션을 이룬다. 실제로, 가능하다면 복잡하여 비교적 큰 데이터로 형성될 수도 있는 함수를, 단순하여 비교적 작은 데이터인, 제 1 함수의 (도메인 각각의) 레인지로부터 (로 각각) 제 2 함수의 (도메인 각각의) 레인지로 (로부터 각각) 의 매핑을 설명하는 데이터, 및 포인터 (예를 들어, 컴퓨터 과학 분야에서 알려진 데이터의 조각에 대한 임의의 종류의 포인터) 로 대체함으로써, 이 방법은 지오메트리컬 데이터의 압축을 달성한다. 또한, 이 압축은 결정하는 단계 (S40) 및 후속 대체 (S50) 를 허용하는 다른 함수와 레퍼런스 함수 사이의 지오메트리컬 링크의 S40 에서의 인식에 기초한다. 실제로, 레퍼런스 함수와 다른 함수는 이들이 카피된 (copied) 지오메트리컬 엔티티들에 대응한다는 사실에 의해 링크된다. 이 방법은, 지오메트리컬 데이터에서, 대체하기 위한 이러한 지오메트리컬 링크를 이용하고, 이 데이터는 이에 따라 (즉, 나머지 함수들과는 독립적으로) 다른 함수를 보다 작은 데이터로 형성하여, 레퍼런스 함수를 형성하는 데이터 및 레퍼런스 함수에 대한 포인터에 기초하여 다른 함수의 계산을 허용한다. 이 방법은 이에 따라 어떤 간섭 없이도 종래 기술로부터 알려진 다른 압축 기법들과 결합될 수도 있고, 이 방법은 지오메트리컬 링크가 존재하는 한 압축을 달성한다. 이것은 다음의 설명에 상세히 설명된다.
또한, 이에 따라 압축된 3D 모델링된 오브젝트는, 레퍼런스 함수를 레퍼런스 함수에 대한 포인터로 식별하는 것을 포함하는 압축해제를 위한 방법에 의해 쉽게 압축해제될 수 있다. 다시 말해서, 압축된 데이터에서 이 방법은 포인터 덕분에 레퍼런스 함수를 취출한다. 또한, 압축해제를 위한 방법은 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑 (이를 설명하는 제 2 데이터 덕분임), 레퍼런스 함수, 그리고 그 후에 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑 (이를 설명하는 제 1 데이터 덕분임) 을 구성하는 것을 포함한다. 다시 말해서, 이 압축해제를 위한 방법은, 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑, 레퍼런스 함수, 그리고 그 후에 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑의 연속적인 구성으로 이루어진 함수를 결정/계산한다 (이들 3개의 함수들은 상기 연속적인 순서로 적용된다). 이와 같이 구성된 함수는 압축을 위한 방법에 의해 압축된 다른 함수와 동일한 지오메트리컬 결과를 제공하여, 상기 다른 함수와 지오메트리컬적으로 동일하다.
모델링된 오브젝트는, 컴퓨터 시스템의 메모리 상에 및/또는 데이터 파일 (즉, 특정 포맷을 가진 컴퓨터 데이터의 조각) 내에 저장될 수도 있는 구조화된 데이터에 의해 정의/설명된 임의의 오브젝트이다. 더 나아가, 표현 "모델링된 오브젝트" 는 데이터 구조 자체를 나타낼 수도 있다. 이 방법은 이를 설명하는 데이터 구조를 압축함으로써 3D 모델링된 오브젝트를 3D 모델링된 오브젝트의 초기 상태로부터 3D 모델링된 오브젝트의 압축된 상태로 프로세싱한다. 따라서, 이 방법은, 대체하는 단계 (S50) 로 인해, 특정 구조를 갖는, 압축된 3D 모델링된 오브젝트를 "생성" 하거나 또는 출력한다. 특히, 이 방법에 의해 획득된 3D 모델링된 오브젝트는, 압축된 지오메트리컬 데이터를 포함하는 B-Rep 를 포함한다. 압축된 지오메트리컬 데이터는 각각의 지오메트리컬 데이터에 대응하는 함수들 각각을 포함하고, 이 각각의 함수는 도메인 및 레인지를 갖는다. 이 함수들은, 이에 따라 저장된, "레퍼런스" 함수라고 불리는 적어도 하나의 함수를 포함한다 (즉, 다른 함수들과는 독립적으로, 즉, 레퍼런스 함수는 다른 데이터에 대한 참조 없이도 이를 정의하는 데이터에 의해 그의 도메인에 적용가능하다). 또한, 압축된 데이터는, 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑을 설명하는 어떤 데이터 (즉, 제 1 데이터), 다른 함수의 도메인으로부터 이전에 언급된 레퍼런스 함수의 도메인으로의 매핑을 설명하는 어떤 데이터 (즉, 제 2 데이터), 및 레퍼런스 함수에 대한 포인터를 포함한다. 따라서, 다른 함수는 레퍼런스 함수를 정의하는 데이터를 참조함으로써 적용될 수도 있다. 이러한 압축된 3D 모델링된 오브젝트, 또는 이러한 3D 모델링된 오브젝트를 설명하는 데이터 구조, 또는 이러한 데이터 구조를 저장하는 데이터 파일은, 보다 적은 메모리 공간을 이용하여 초기 3D 모델링된 오브젝트와 동일한 지오메트리컬 정보를 전달한다.
이 방법은 3D 모델링된 오브젝트를 설계하는 방법의 부분일 수도 있다, 예를 들어, 이 방법은 이러한 설계 방법의 말미의 단계들을 구성한다. "3D 모델링된 오브젝트를 설계하는 것" 은 3D 모델링된 오브젝트를 정교화하는 프로세스의 적어도 부분인 임의의 액션 또는 일련의 액션들을 나타낸다. 따라서, 이 방법은 처음부터 3D 모델링된 오브젝트를 생성하는 단계를 포함할 수도 있다. 대안적으로, 이 방법은 이전에 생성된 3D 모델링된 오브젝트를 생성하고, 그 후에 3D 모델링된 오브젝트를 변경하는 단계를 포함할 수도 있다.
3D 모델링된 오브젝트는 CAD 모델링된 오브젝트 또는 CAD 모델링된 오브젝트의 일 부분일 수도 있다. 어느 경우에도, 이 방법에 의해 설계된 3D 모델링된 오브젝트는 CAD 모델링된 오브젝트 또는 그의 적어도 부분, 예를 들어, CAD 모델링된 오브젝트에 의해 차지된 3D 공간을 나타낼 수도 있다. CAD 모델링된 오브젝트는, CAD 시스템의 메모리에 저장된 데이터에 의해 정의된 임의의 오브젝트이다. 이 타입의 시스템에 따르면, 모델링된 오브젝트들은 상이한 종류들의 데이터에 의해 정의될 수도 있다. CAD 시스템은, CATIA 와 같은, 모델링된 오브젝트의 그래픽 표현에 기초하여, 모델링된 오브젝트를 설계하는 것에 적어도 적합한 임의의 시스템이다. 따라서, CAD 모델링된 오브젝트를 정의하는 데이터는, 모델링된 오브젝트의 표현을 허용하는 데이터 (예를 들어, 공간에 있어서의 상대 위치들을 포함하는, 예를 들어, 지오메트릭 데이터) 를 포함한다.
이 방법은, 이 방법을 수행한 후에, 모델링된 오브젝트에 대응하는 물리적 제품을 생성하는 것을 포함할 수도 있는 제조 프로세스에 포함될 수도 있다. 어느 경우에도, 이 방법에 의해 설계된 모델링된 오브젝트는 제조 오브젝트를 나타낼 수도 있다. 따라서, 모델링된 오브젝트는 모델링된 입체 (solid) (즉, 입체를 나타내는 모델링된 오브젝트) 일 수도 있다. 제조 오브젝트는 제품, 예컨대, 부품, 또는 부품들의 어셈블리일 수도 있다. 이 방법이 보다 양호한 압축을 허용함으로써 모델링된 오브젝트의 설계를 개선시키기 때문에, 이 방법은 또한 제품의 제조를 개선시켜서 제조 프로세스의 생산성을 증가시킨다. 이 방법은 DELMIA 와 같은 CAM 시스템을 이용하여 구현될 수 있다. CAM 시스템은, 제조 프로세스들 및 동작들을 정의, 시뮬레이션, 및 제어하는 것에 적어도 적합한 임의의 시스템이다.
이 방법은 컴퓨터 구현된다. 이것은 이 방법이 적어도 하나의 컴퓨터, 또는 유사한 임의의 시스템 상에서 실행된다는 것을 의미한다. 예를 들어, 이 방법은 CAD 시스템 상에서 구현될 수도 있다. 따라서, 이 방법의 단계들은, 컴퓨터에 의해, 가능하다면 전체적으로 자동적으로, 또는 반자동적으로 (예를 들어, 사용자 상호작용을 수반하는 단계들 및/또는 사용자에 의해 트리거되는 단계들) 수행된다. 특히, 제공하는 단계 (S10) 및/또는 (후술되는) 결정하는 단계 (S20) 는 사용자에 의해 트리거될 수도 있다. 이 방법의 다른 단계들은 자동적으로 (어떠한 사용자 개입도 없이), 또는 반자동적으로 (예를 들어, 결과들을 입증하기 위한, 예를 들어, 광, 사용자-개입을 수반하여) 수행될 수도 있다.
이 방법의 컴퓨터 구현의 통상적인 예는 이 목적에 적합한 시스템으로 방법을 수행하는 것이다. 이 시스템은 이 방법을 수행하기 위한 명령들을 기록하고 있는 메모리를 포함할 수도 있다. 다시 말해서, 소프트웨어는 이미 즉시 사용을 위해 메모리 상에 준비되어 있다. 따라서, 이 시스템은 임의의 다른 시스템을 인스톨하는 일 없이 이 방법을 수행하기에 적합하다. 이러한 시스템은 또한, 명령들을 실행하기 위한 메모리와 커플링된 적어도 하나의 프로세서를 포함할 수도 있다. 다시 말해서, 이 시스템은 프로세서에 커플링된 메모리 상에 코딩된 명령들을 포함하고, 이 명령들은 이 방법을 수행하는 수단을 제공한다. 이러한 시스템은 3D 모델링된 오브젝트를 압축하기 위한 효율적인 툴이다.
이러한 시스템은 CAD 시스템일 수도 있다. 시스템은 또한 CAE 및/또는 CAM 시스템일 수도 있고, CAD 모델링된 오브젝트는 또한 CAE 모델링된 오브젝트 및/또는 CAM 모델링된 오브젝트일 수도 있다. 실제로, 모델링된 오브젝트가 이들 시스템들의 임의의 조합에 대응하는 데이터에 의해 정의될 수도 있기 때문에 CAD, CAE 및 CAM 시스템들은 다른 것과 배타적인 것이 아니다.
시스템은 예를 들어, 사용자에 의해 명령들의 실행을 론칭하기 위한 적어도 하나의 GUI 를 포함할 수도 있다. 특히, GUI 는 사용자로 하여금 제공하는 단계 (S10) 를 트리거하게 한 후에, 사용자가, 예를 들어, 특정 함수 (예를 들어, "압축"으로 명명된 것) 를 론칭함으로써 그렇게 행하는 것을 결정하면, 예를 들어, 이후 제공된 예에서 결정하는 단계 (S20) 를 포함한, 방법의 나머지를 트리거하게 할 수도 있다.
3D 모델링된 오브젝트는 3D (즉, 3 차원) 이다. 이는 모델링된 오브젝트가 자신의 3D 표현을 허용하는 데이터에 의해 정의된다는 것을 의미한다. 특히, B-Rep 의 함수들이 대응하는 지오메트리컬 엔티티들은 3D 이다 (즉, 이들은 모든 지오메트리컬 엔티티들의 집합이 비평면일 수도 있도록 3D 로 정의된다). 3D 표현은 모든 각도들에서 표현을 보는 것을 허용한다. 예를 들어, 모델링된 오브젝트는 3D 로 표현될 때, 표현이 디스플레이되는 스크린에서 그 축들 중 어느 것을 중심으로 또는 임의의 축을 중심으로 처리되어 회전될 수도 있다. 특히, 이는 심지어 이들이 2D 관점에서 어떤 것을 나타낼 때에도 2D 아이콘들, 3D 로 모델링되지 않은 것을 배제한다. 3D 표현의 디스플레이는 설계를 용이하게 한다 (즉, 설계자들이 자신의 작업을 통계적으로 완성하는 속도를 증가시킨다). 제품들의 설계가 제조 프로세스의 부분이기 때문에, 이는 산업에서의 프로세스의 속도를 증가시킨다.
도 2 는 통상의 CAD 시스템의 GUI 의 일례를 나타낸다.
GUI (2100) 는 표준 메뉴 바들 (2110, 2120) 뿐만 아니라 하단부 및 측면부 툴바들 (2140, 2150) 을 갖는 통상의 CAD 형 인터페이스일 수도 있다. 이러한 메뉴 및 툴바들은 사용자 선택가능 아이콘들의 세트를 포함하며, 각각의 아이콘은 당해 기술 분야에 알려진 바와 같이, 하나 이상의 동작들 또는 함수들과 연관되어 있다. 이들 아이콘들 중 일부는 GUI (2100) 에 디스플레이되는 3D 모델링된 오브젝트 (2000) 상에서 편집 및/또는 작업을 위해 적응된 소프트웨어 툴들과 연관되어 있다. 소프트웨어 툴들은 워크벤치들로 그룹화될 수도 있다. 각각의 워크벤치는 소프트웨어 툴들의 서브세트를 포함할 수도 있다. 구체적으로, 워크벤치들 중 하나는 모델링된 제품 (2000) 의 지오메트리컬 피처 (geometrical feature) 들을 편집하는데 적절한 편집 워크벤치이다. 동작시, 설계자는 예를 들어, 오브젝트 (2000) 의 일 부분을 미리 선택한 후에 동작 (예를 들어, 스컬프팅 동작 (sculpting operation) 또는 치수, 컬러 등의 변경과 같은 임의의 다른 동작) 을 개시할 수도 있거나 또는 적절한 아이콘을 선택함으로써 지오메트리컬 제약들을 편집할 수도 있다. 예를 들어, 통상의 CAD 동작들은 스크린 상에 디스플레이되는 3D 모델링된 오브젝트의 펀칭 또는 폴딩의 모델링이다.
GUI 는 예를 들어, 디스플레이된 제품 (2000) 에 관련된 데이터 (2500) 를 디스플레이할 수도 있다. 도 2 의 예에서, "피처 트리"로서 디스플레이된 데이터 (2500) 및 이들의 3D 표현 (2000) 은 브레이크 캘리퍼 및 디스크를 포함한 브레이크 어셈블리에 관련된다. GUI 는 예를 들어, 오브젝트의 3D 배향을 용이하게 하기 위하여, 편집된 제품의 동작의 시뮬레이션을 트리거하기 위하여, 또는 디스플레이된 제품 (2000) 의 여러 속성들을 렌더링하기 위하여 여러 유형들의 그래픽 툴들 (2130, 2070, 2080) 을 추가로 보여줄 수도 있다. 커서 (2060) 는 사용자가 그래픽 툴들과 상호작용하도록 허용하기 위해 햅틱 디바이스에 의해 제어될 수도 있다.
도 3 은 클라이언트 컴퓨터 시스템, 예를 들어, 사용자의 워크스테이션으로서 시스템의 아키텍처의 일례를 나타낸다.
클라이언트 컴퓨터는 내부 통신 BUS (1000) 에 접속된 CPU (central processing unit; 1010), BUS 에 또한 접속된 RAM (random access memory; 1070) 을 포함한다. 클라이언트 컴퓨터에는 BUS 에 접속된 비디오 랜덤 액세스 메모리 (1100) 와 연결된 GPU (graphics processing unit; 1110) 가 추가로 제공된다. 비디오 RAM (1100) 은 또한 프레임 버퍼로서 당해 기술 분야에 알려져 있다. 대량 저장 디바이스 제어기 (1020) 는 하드 드라이브 (1030) 와 같은 대량 메모리 디바이스에 대한 액세스를 관리한다. 컴퓨터 프로그램 명령들 및 데이터를 유형적으로 구현하기에 적합한 대량 메모리 디바이스들은 예를 들어, 반도체 메모리 디바이스, 이를 테면, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 이를 테면, 내부 하드 디스크들 및 탈착가능 디스크들, 광학 자기 디스크들, 및 CD-ROM 디스크들 (1040) 을 포함한 모든 형태들의 비휘발성 메모리를 포함한다. 상술한 것 중 임의의 것이, 특수 설계된 ASIC들 (응용 주문형 집적 회로들) 에 의해 추가되거나 또는 이에 통합될 수도 있다. 네트워크 어댑터 (1050) 는 네트워크 (1060) 에 대한 액세스를 관리한다. 클라이언트 컴퓨터는 또한 햅틱 디바이스 (1090), 이를 테면, 커버 제어 디바이스, 키보드 등을 포함할 수도 있다. 커서 제어 디바이스는 도 2 를 언급한 바와 같이, 사용자로 하여금 스크린 (1080) 상에서의 임의의 원하는 위치에 커서를 선택적으로 위치시킬 수 있게 하기 위해 클라이언트 컴퓨터에서 이용된다. 이는 컴퓨터 모니터와 같이 스크린에 의해, 디스플레이하는 임의의 서포트가 수행될 수도 있음이 의미된다. 추가로, 커서 제어 디바이스는 사용자가 여러 커맨드들을 선택하고 제어 신호들을 입력하는 것을 허용한다. 커서 제어 디바이스는 시스템에 제어 신호를 입력하기 위하여 복수의 신호 생성 디바이스들을 포함한다. 통상적으로, 커서 제어 디바이스는 마우스일 수도 있고, 마우스의 버튼은 신호들을 생성하는데 이용된다.
시스템으로 하여금 방법을 수행하게 하기 위해, 컴퓨터에 의한 실행을 위한 명령들을 포함하는 컴퓨터 프로그램이 제공되며, 명령들은 이러한 목적을 위한 수단을 포함한다. 프로그램은 예를 들어, 디지털 전자 회로부에서, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어에서, 또는 이들의 조합들에서 구현될 수도 있다. 본 발명의 장치는 프로그래밍가능 프로세서에 의한 실행을 위하여 머신 판독가능 저장 디바이스에서 유형적으로 구현되는 컴퓨터 프로그램 제품에서 구현될 수도 있고; 본 발명의 방법 단계들은 입력 데이터를 동작시키고 출력을 생성함으로써 본 발명의 기능들을 수행하도록 하는 명령들의 프로그램을 실행하는 프로그래밍가능 프로세서에 의해 수행될 수도 있다. 명령들은 데이터 저장 시스템으로부터 데이터 및 명령들을 수신하거나 데이터 저장 시스템으로 데이터 및 명령들을 송신하도록 커플링된 적어도 하나의 프로그래밍가능 프로세서, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스를 포함한 프로그래밍가능 시스템 상에서 실행가능한 하나 이상의 컴퓨터 프로그램들에서 유리하게 구현될 수도 있다. 애플리케이션 프로그램은 하이레벨 절차 또는 객체 지향 프로그래밍 언어에서 또는 원한다면, 어셈블리 또는 머신 언어에서 구현될 수도 있고; 어느 경우에도, 언어는 컴파일링되거나 또는 인터프리트된 언어일 수도 있다. 프로그램은 풀 인스톨레이션 프로그램 또는 업데이트 프로그램일 수도 있다. 업데이트 프로그램의 경우, 프로그램은 기존의 CAD 시스템을 시스템이 방법을 수행하는데 적합한 상태로 업데이트시킨다.
이하, 제공하는 단계 (S10) 가 설명된다.
본 방법은 모델링된 오브젝트의 B-Rep 를 제공하는 단계 (S10) 를 포함한다. 제공하는 단계 (S10) 는 설계자가 모델링된 오브젝트 상에서 (이 경우에, 그 경계 표현 상에서) 작업하는 것으로부터 또는 방법이 이미 존재하는 B-Reps 에 제공될 수도 있는 점, 예를 들어, 기존의 라이브러리들에서 취출될 수도 있는 점으로부터 발생한다. 모델링된 오브젝트는 어느 경우에나 S10 에서 B-Rep 으로서 제공된다. 경계 표현은 그 엔벨로프 (즉, 그 외부 표면들) 의 관점에서 3D 오브젝트를 모델링하는 널리 알려진 포맷이다. B-Rep 는 따라서, 지오메트리컬 데이터 및 토폴로지컬 데이터를 포함할 수도 있는 특정 포맷의 데이터를 지정한다. 지오메트리컬 데이터는 지오메트리컬 엔티티들을 제공하는 데이터이며, 지오메트리컬 엔티티들은 3D 포지션들의 관점에서 설명되는 엔티티들이다. 토폴로지컬 데이터는 토폴로지컬 엔티티들을 제공하는 데이터이며, 토폴로지컬 엔티티들은 다른 토폴로지컬 엔티티들과의 관계들, 예를 들어, 상대적 포지셔닝 및/또는 지오메트리컬 엔티티들에 대한 레퍼런스들의 관점에서 설명되는 엔티티들이다. 일반적으로, 관계들은 토폴로지컬 엔티티를 다른 토폴로지컬 엔티티와 연관시키는 "에 의해 바운딩된다" 관계를 포함할 수도 있으며, 이에 의해 토폴리지식으로 바운딩된다.
토폴로지컬 데이터는 면들, 모서리들, 및/또는 정점들을 포함할 수도 있다. 지오메트리컬 데이터는 표면 정의들, p-커브들, 및/또는 p-정점들과 같은 함수들을 포함할 수도 있다. 지오메트리컬 데이터는 또한 커브들 및/또는 정점들을 포함할 수도 있다. 표면 정의 (또한, 간결하게 그 이미지로서 "표면 (surface)" 이라 지칭됨) 는 2D 도메인으로부터 3D 공간으로의 함수이다. 커브는 1D 도메인으로부터 3D 공간으로의 함수이다. 정점은 3D 공간의 좌표들의 특정 세트이다. 수학적 관점으로부터, p-커브는 표면 상에 놓이는 커브이다. p-커브는 따라서 표면 정의에서 1D 도메인으로부터 2D 도메인으로의 함수이다. B-Rep 모델 관점에서, p-커브들은 면들의 경계들을 구체화하는데 이용된다. 수학적 관점에서, p-정점은 p-커브 또는 표면 상에 놓이는 포인트이다. p-정점은 따라서 p-커브의 1D 도메인의 특정 파라미터이거나 또는 표면의 2D 도메인의 파라미터들의 특정 커플이다. B-Rep 모델 관점에서, p-정점들은 모서리들의 경계들을 구체화하는데 이용된다. 다음 설명에서, 단어, "표면" 은 평면 뿐만 아니라 비평면 표면들에 이용될 수도 있다. 이와 유사하게, 단어, "p-커브" 는 직선 뿐만 아니라 비선형 p-커브들에 이용될 수도 있다.
정의에 의해, 면은 표면의 바운딩된 부분이며, 지지 표면이라 명명된다. 따라서, 면은 면을 설명하는데 있어 부분을 차지하는 모든 지오메트리컬 엔티티들을 포함하는 지오메트리컬 엘리먼트 (즉, 적어도 하나의 지오메트리컬 엔티티의 세트) 에 대응한다. 이러한 지오메트리컬 엘리먼트는 또한 간결하게 "면 (face)" 이라 지칭된다. 면의 경계는 모서리들을 포함한다. 각각의 이러한 모서리는 지지 p-커브라 명명되며 면의 지지 표면 상에 놓이는 p-커브의 바운딩된 부분이다. 모서리의 경계는 2개의 정점들을 포함한다. 각각의 정점은 모서리 상에 놓이는 포인트이다. 정의에 의해, 2개의 면들이 적어도 하나의 모서리를 공유한다면 2개의 면들은 인접한다. 이와 유사하게, 2개의 모서리들이 적어도 하나의 정점을 공유한다면, 2개의 모서리들은 인접한다. 수학적 부분의 B-Rep 입체 모델에서, 모든 모서리들은 2개의 면들에 의해 정확히 공유된다. 역으로, 스킨의 B-Rep 모델에서, 일부 모서리들은 2개의 면들에 의해 공유되면서, 일부 다른 면들은 접하는 모서리들이며 정확히 하나의 면에 속한다.
토폴로지컬 관점에서, 2개의 면들 (F1 및 F2) 에 의해 공유되는 모서리 (e) 가 단일의 오브젝트임을 이해하여야 한다. 역으로, 지오메트리컬 관점에서, 이러한 모서리는 다음 엔티티들 : 면 (F1) 의 지지 표면 (S1) 상에서 정의된 p-커브 및 면 (F2) 의 지지 표면 (S2) 상에서 정의된 다른 p-커브를 모으는 합성 오브젝트이다. 이와 유사하게, 토폴로지컬 관점에서, 모서리들 (e1, e2, ..., en) 에 의해 공유된 정점 (υ) 은 단일 오브젝트이다. 역으로, 지오메트리컬 관점에서, 이러한 정점은 각각의 모서리 (ei) 의 모든 p-커브들 상에서 정의된 p-정점들을 모으는 합성 오브젝트이다.
따라서, 지오메트리컬 데이터는 각각이 각자의 지오메트리컬 엔티티에 대응하는 함수들 (예를 들어, 위에 설명된 도메인들 및 레인지들에서, 표면들 - 또는 "표면 정의들" -, p-커브들 및/또는 커브들) 을 정의한다. 실제로, 표면 정의는 표면 함수의 이미지를 구성하는 지오메트리컬 표면에 대응한다. 이와 유사하게, 커브는 커브 함수의 이미지로 구성된 지오메트리컬 커브에 대응한다. p-커브는 p-커브 함수, 그리고 나서 커브가 놓이는 평면 함수를 합성 (compounding) 하는 함수의 이미지를 구성하는 커브에 대응한다. 이는 이후 예를 들어 설명된다.
이들 함수는 통상적으로 파라미터 함수, 이를 테면, NURBS 일 수도 있다. 예를 들어, 지지 표면들은 통상적으로 NURBS 표면들일 수도 있지만, 또한 평면적, 표준적 (canonical) 또는 절차적 표면들일 수도 있다. 그리고 (예를 들어, 토폴로지컬) 데이터는 적어도 면들의 세트를 포함할 수도 있으며, 각각의 면은 (지오메트리컬 데이터에 제공된) 각자의 지지 표면의 바운딩된 부분으로서 정의된다. 따라서, 면은 트리밍된 표면에 대응한다. 따라서 지지 표면들은 트리밍 동작에 의해 어떤 식으로든 면들이 정의되는 (이에 의해 "면들"을 지지하는) 표면들이다.
B-Rep 의 개념은 널리 알려져 있지만, S10 에서 제공될 수도 있는 모델링된 오브젝트의 일례를 통하여 이하에 추가로 설명된다. 그러나, B-Rep들의 다른 예들, 예를 들어, 적어도 일부의 토폴로지컬 엔티티들에 대해 "에 의해 바운딩된다" 관계와는 상이한 관계들을 가진 예들이 본 방법에 의해 고려될 수도 있다.
이미 언급된 바와 같이, 모델링된 오브젝트의 B-Rep 은 토폴로지컬 엔티티들 및 지오메트리컬 엔티티들을 포함할 수도 있다. 지오메트리컬 엔티티들은 표면들, (예를 들어, 평면들), 커브들 (예를 들어, 선들), 및/또는 포인트들인 3D 오브젝트들을 포함할 수도 있다. 표면들은 2개의 파라미터의 함수로서 제공될 수도 있다. 커브들은 하나의 파라미터의 함수로서 제공될 수도 있다. 그리고 포인트들은 3D 포지션들로서 제공될 수도 있다. 토폴리지 엔티티들은 면들, 모서리들, 및/또는 정점들을 포함할 수도 있다. 정의에 의해, 면은 지지 표면이라 지칭되는 각자의 표면의 바운딩된 부분에 대응한다. 용어 "면"은 따라서 2D 도메인의 대응하는 바운딩된 부분 또는 표면의 이러한 바운딩된 부분을 차별없이 지정할 수도 있다. 이와 유사하게, 모서리는 예를 들어, 지지 커브라 지칭되는 커브의 바운딩된 부분에 대응한다. 용어 "모서리" 는 따라서 자신의 도메인의 이러한 바운딩된 부분을 지정할 수도 있다. 정점은 3D 공간에서의 한 포인트에 대한 링크로서 정의될 수도 있다. 이들 엔티티는 다음과 같이 서로 관련된다. 커브의 바운딩된 부분은 커브 상에 놓인 2개의 포인트들 (정점들) 에 의해 정의된다. 표면의 바운딩된 부분은 그 경계에 의해 정의되며, 이 경계는 표면 상에 놓인 모서리들의 세트이다. 면의 경계의 모서리들은 정점들을 공유함으로써 서로 접속된다. 면들은 모서리들을 공유함으로써 서로 접속된다. 정의에 의해, 2개의 면들은 이들이 모서리를 공유한다면 인접하게 된다. 이와 유사하게, 2개의 모서리들은 이들이 정점을 공유한다면 인접하게 된다. 표면들, 커브들, 및 포인트들은 그들의 파라미터화를 통하여 함께 링크될 수도 있다. 예를 들어, 커브를 정의하는 파라미터 함수의 파라미터의 값은 바운딩 정점을 정의하도록 제공될 수도 있다. 이와 유사하게, 표면의 2개의 파라미터들에 커브의 파라미터를 링크하는 함수는 바운딩 모서리를 정의하도록 제공된다. 그러나, B-Rep 의 이러한 토폴로지컬 데이터의 매우 세밀한 구조는 본 설명의 범위를 벗어나는 것이다.
도 4 및 도 5 는 S10 에서 제공된 모델링된 오브젝트일 수도 있고 도면에서 1 및 2 로 넘버링된 2개의 인접하는 면들, 상단 평면의 면 1 및 측면 실린더의 면 2 로 이루어진 부분적 실린더형 슬롯 (80) 의 B-rep 모델을 나타낸다. 도 4 는 슬롯 (80) 의 사시도를 도시한다. 도 5 는 면들의 분해도를 도시한다. 중복된 번호들은 공유하는 모서리들 및 정점들을 나타낸다. 면 1 은 평면의 바운딩된 부분이다. 면 1 의 경계는 모서리 3 및 4 를 포함하고, 각각의 모서리는 정점 8 및 9 에 의해 바운딩된다. 면 2 는 모서리 3, 5, 6 및 7 에 의해 바운딩되고, 모든 모서리는 무한 실린더형 표면 상에 놓인다. 면들 1 및 2 는 모서리 3 을 공유하기 때문에 인접한다.
도 6 은 슬롯 (80) 의 B-rep 모델의 "에 의해 바운딩된다" 토폴리지 관계를 나타낸다. 상위 레이어 (101) 의 노드들은 면들이고, 중간 레이어 (103) 의 노드들은 모서리들이고, 하위 레이어 (105) 의 노드들은 정점들이다. 도 7 은 토폴로지컬 엔티티들 (면들 1 및 2, 모서리들 3 및 4, 정점 8) 과 지오메트리컬 엔티티들 사이의 관계를 부분적으로 나타내며, 지오메트리컬 엔티티들은 표면들, p-커브들에 대응하는 커브들, 및 p-정점들에 대응하는 정점들이다. 도 7 상에서, 토폴로지컬 오브젝트들로부터 지오메트리컬 오브젝트들로의 우향 화살표들은 "에 의해 지지된다" 관계를 캡처한다. 지오메트리컬 오브젝트를 상위 차원 지오메트리컬 오브젝트들에 링크하는 상향 화살표는 "에 임베딩된다" 관계를 캡처한다. 도 8 에 나타낸 바와 같이 xyz 축을 설정함으로써, 지오메트리컬 모델의 함수들 (즉, 공식들) 이 다음 식에서 명시적으로 주어질 수도 있다. 실린더 반경은 r 로 표기되며, 평면의 높이는 z0 로 표기된다.
Figure pat00001
모델의 코히어런스는 다음 특성들에 의해 캡처된다.
Figure pat00002
Figure pat00003
에 의해 정의된 3 차원 커브들은 모서리 3 에 대응하는 동일한 지오메트리컬 엔티티 (반원) 를 나타낸다. 이는 모서리 공유가 어떻게 구현되는지를 나타낸다.
Figure pat00004
Figure pat00005
에 의해 정의된 3 차원 포인트들은 정점 8 의 공간 포지션에 대응하는 동일한
Figure pat00006
포인트를 나타낸다. 이는 정점 공유가 어떻게 구현되는지를 나타낸다.
이하, 도 1 의 방법의 예의 다른 액션들 (즉, 단계들, S20 내지 S40) 을 설명한다.
본 방법은 제 1 데이터 및 제 2 데이터를 결정하는 단계 (S40) 및 압축을 달성하기 위해 다른 함수를 형성하여 데이터를 대체하는 단계 (S50) 로 향한다. 앞서 설명된 바와 같이, 레퍼런스 함수 및 다른 함수는 이들이 서로의 카피 (copy) 인 지오메트리컬 엔티티들에 대응한다는 사실에 의해 지오메트리컬 방식으로 링크된다. 이들 2개의 함수는 어느 식으로든 결정될 수도 있다.
이 예의 경우에, 본 방법은 서로의 카피인 지오메트리컬 엔티티들에 대응하는 함수들의 세트들을 결정한다 (S20). 그 후, 압축이 세트별 기반으로 수행된다. 구체적으로, 이 예의 방법은 각각의 세트 내에서 세트의 레퍼런스 함수를 결정한다 (S30). 즉, 각각의 세트에 대해, 세트의 한 함수가 어떠한 식으로든 선택되고, 그 후, 결정하는 단계 (S40) 및 대체하는 단계 (S50) 를 위한 레퍼런스로서 이용된 함수를 구성한다. 그 후, 각각의 세트에 대해, 이 예의 방법은 레퍼런스 함수 이외의 세트의 각각의 함수에 대해 결정하는 단계 (S40) 및 대체하는 단계 (S50) 를 반복한다. "의 카피이다" 관계는 등가 관계를 구성하는 일례를 통하여 후에 설명된다. 따라서, S20 에서 결정된 함수들의 세트들은 전체 함수들의 파티션을 구성할 수도 있다. 따라서, 이 예의 방법은 각각의 세트에 대해 그리고 S30 에서 결정된 레퍼런스 함수 이외의 각각의 함수에 대한 각각의 세트 내에서 결정하는 단계 (S40) 및 대체하는 단계 (S50) 를 루프시킨다. 따라서, 이 예의 방법은 각각의 세트에 대한 지오메트리컬 엔티티들의 카피들에 대응하는 함수들의 각각의 세트를 완벽하게 압축함으로써, B-Rep 의 데이터를 완벽하게 압축한다.
이하, 서로의 카피인 지오메트리컬 엔티티들에 대응하는 함수들의 세트들의 결정하는 단계 (S20) 의 예를 설명한다.
2개의 지오메트리컬 엔티티들 (예를 들어, 표면들 또는 커브들) 은, 이들이 지오메트리컬 복제들로서 이들을 마킹하는 미리 결정된 (컴퓨터화된) 기준을 준수한다면, 서로의 각각의 카피인 것으로 불린다. 지오메트리컬 엔티티들은 면들과 같은 지오메트리컬 엘리먼트들을 형성할 수도 있다. 면이 커브들에 의해 바운딩된 표면에 대응하는 것임이 위에 설명되어 있다. 이것 덕분에, 본 방법은 임의의 패턴 인식 방법, 예를 들어, 특허 출원 EP 12306720.9 의 방법 및/또는 특허 출원 EP 12306721.7 의 방법 (본원에서는 이들을 참조로서 포함한다) 과 유리하게 결합될 수도 있다. 실제로, 이들 특허 출원 양쪽 모두는 서로의 카피인 지오메트리컬 엘리먼트들 (예를 들어, 면들) 의 세트들에 기초하는 패턴 인식 방법을 설명한다. 아래 보다 자세히 설명된 바와 같이, 본 방법은 2개의 특허 출원들에 따라 결정하는 단계 (S20) 를 수행할 수도 있고/있거나 이들 2개의 특허 출원들 중 어느 것 또는 양쪽 모두와 결합될 수도 있으며, 결정하는 단계 (S20) 는 한번만으로 효율적으로 수행되고 본 발명의 압축 방법 및 패턴 인식 방법 양쪽 모두에 이용됨으로써 시너지 효과를 달성한다.
이러한 개발 중인 3D 설계의 양태들 중 하나가 "패턴 인식" 으로 알려져 있다. 용어 "패턴" 은 지오메트릭 피처의 카피들의 규칙적인 레이아웃들을 의미한다. 패턴들을 인식하는 것은 설계 동안에, 이러한 패턴들을 단일의 엘리먼트로서 처리하는 것을 허용하며, 이에 의해 설계 가능성들의 어레이들을 넓힐 수 있다. 예를 들어, 패턴의 엘리먼트들을 하나씩 변경하는 대신에, 패턴의 종래의 이전의 인식 덕분에 사용자는 전체적으로 예를 들어, 단일의 액션들로서 패턴의 변경들을 수행할 수도 있다. 패턴 인식은 CAD 의 상이한 도메인들, 이를 테면, 기계적 설계, 소비자 상품, 빌딩 아키텍쳐, 에어로스페이스, 또는 다른 도메인들과 관련된다. 패턴 인식은 피처 인식과 관련될 수도 있다. 피처 인식은 소정의 3D 오브젝트 (통상적으로, 기계 부품을 나타내는 입체) 상의 특징적 형상들을 인식하는데 유용하다. 기계적 설계에 관심의 대상인 특징적 형상들은 예를 들어, 홀들, 돌출된 패드들, 돌출된 포켓들, 필렛들 또는 라운드들, 회전 패드들 및/또는 회전 포켓들을 포함한다. 특징적 형상을 인식하는 것은 보다 양호한 시맨틱 레벨, 예를 들어, 돌출된 또는 회전 형상의 프로파일, 회전 형상의 회전 축, 라운드들 및 필렛들의 반경 값, 돌출 방향 및/또는 돌출 깊이를 통하여 그 사양들을 인식하는 것에 상당한다. 이 정보는 예를 들어, 돌출 프로파일을 편집함으로써 형상을 변경하거나 또는 예를 들어 다운스트림 프로세스, 머시닝 프로세스를 피드하는데 이용된다.
특허 출원 EP 12306720.9 및/또는 특허 출원 EP 12306721.7 양쪽 모두는 패턴 인식을 수행하는 방법들을 설명하며, 이 방법은 서로의 카피인 면들의 세트를 결정하는 단계를 포함한다. 결정하는 단계 (S20) 는 이러한 면들의 세트의 이러한 결정 및 가능하게는 이러한 액션의 반복을 포함할 수도 있다. 그 후, 이렇게 결정된 서로의 카피인 면들의 각각의 세트에 대해, 결정하는 단계 (S20) 는 어떠한 식으로든 많은 세트들만큼 서로에 대해 토폴로지하게 대응하는 면들의 지오메트리컬 엔티티들을 모으는 것을 간단하게 포함할 수도 있고, 이에 의해 서로의 카피인 지오메트리컬 엔티티들에 대응하는 함수들의 세트들을 획득한다. 즉, 후에 설명될 바와 같이, 면들은 강체 운동 (rigid motion) 에 따라 서로의 카피들인 것으로 결정된다. 강체 운동은 하나의 면 (예를 들어, 표면 및/또는 경계 커브들) 의 엔티티들 각각을 하나로 변환하며, 오직 하나만이 다른 면의 엔티티에 대응한다.
따라서, 이 예의 결정하는 단계 (S20) 는 서로의 카피인, 즉, 지오메트리컬적으로 서로 동일한 또는 서로의 지오메트릭 복제인 면들의 세트를 결정하는 것을 포함한다. 세트는 당업자에 의해 원하는 임의의 구현에 따라 S20 에서 결정될 수도 있다. 예를 들어, 본 방법은 면들의 페어 간의 비교들을 수행하는 것을 포함할 수도 있고, 면들은 임의의 순서에 따라 브라우징된다. 이러한 비교들은 어떠한 방식으로든 수행될 수도 있다. 예들이 이후에 제공된다. 또한, CAD 분야에 알려진 바와 같이, 수치 계산들을 수반하는 임의의 결정은 시스템에 의해 적용된 필요한 수치 근사화를 처리받는다. 본 발명의 경우에, 면들은 이들이 이론적으로 미소하게 상이한 경우에도 S20 에서 서로의 카피인 것으로 결정될 수도 있다. 따라서, 본 방법은 S20 에서 실질적으로 서로의 카피인 면들의 세트를 실제로 결정할 수도 있다. 그러나, 근사화가 구현되는 방식은 본 설명의 요지가 아니여서, "실질적으로 서로의 카피이다" 및 "서로의 카피이다" 는 다음 설명에서는 구별되지 않는다. 실제로, 본 방법은 2개의 면들이 서로의 카피인지를 말하는 미리 정의된 기준을 따르고 있는 것으로만 고려된다.
면은 포인트 세트, 즉, 3 차원 공간 (
Figure pat00007
) 의 서브세트로서 보여질 수도 (그리고 이에 의해 본 방법에 의해 이와 같이 처리될 수도) 있다. 즉, 강체 운동은
Figure pat00008
에 의해 2개의 포인트 세트들 간에 정의된 매핑
Figure pat00009
이며, 여기에서,
Figure pat00010
은 회전 벡터이고,
Figure pat00011
는 병진 벡터 (가능하다면, 널 (null)) 이다.
Figure pat00012
Figure pat00013
(여기에서,
Figure pat00014
) 와 등가이기 때문에 강체 운동은 인버터블 (invertible) 하다. 세트의 면들이 서로의 카피이기 때문에, 세트의 2개의 면들이 주어지면, 강체 운동을 적용함으로써 하나가 다른 하나로부터 유도될 수도 있다.
Figure pat00015
(여기에서, 간단히
Figure pat00016
로 표기된다) 이도록 강체 운동 D 이 존재한다면, 포인트 세트 X 가 주어지는 경우, 포인트 세트 Y 는 X 의 "복제" 이다.
"배향된 포인트 세트"는 커플
Figure pat00017
이며, 여기에서
Figure pat00018
은 포인트 세트이고,
Figure pat00019
는 매핑
Figure pat00020
(여기에서,
Figure pat00021
Figure pat00022
의 단위 벡터의 세트임) 이다. 즉, 임의의 포인트
Figure pat00023
에서, 단위 벡터
Figure pat00024
가 정의된다.
Y 가 배향을 세이브하는 X 의 복제이면, 배향된 포인트 세트
Figure pat00025
는 배향된 포인트 세트
Figure pat00026
의 "카피" 이다. 보다 정확하게는, 모든
Figure pat00027
에 대해, 복제의 대응하는 포인트
Figure pat00028
의 단위 벡터는 포인트 x 에서의 X 의 회전된 단위 벡터이다. 공식적으로, 모든
Figure pat00029
에 대해, 다음 다이아그램이 가환적임을 의미한다.
Figure pat00030
결정하는 단계 (S20) 가 의존하는 포인트 세트들 상의 관계 "카피이다" 는 등가의 관계이다. 이를 입증하기 위해서는 다음 특성들: (1) 포인트 세트가 자신의 카피임, (2) Y 가 X 의 카피이면, X 는 Y 의 카피임, 및 (3) Y 가 X 의 카피이고, Z 가 Y 의 카피이면, Z 는 X 의 카피임을 검사하는 것으로 충분하며 이는 어렵지 않다.
기본 대수에 따라, 포인트 세트들의 유한 집합 (G) (G 의 엘리먼트들이 포인트 세트들임을 의미함) 이 주어지면, 등가의 관계 "카피이다" 은 G 를 카피들의, 공통원소를 갖지 않는 최대 세트들 (Gi) 로 분리한다. 이는
Figure pat00031
이면
Figure pat00032
이고,
Figure pat00033
이고,
Figure pat00034
이면 Y 는 X 의 카피이고,
Figure pat00035
Figure pat00036
이면, Y 는 X 의 카피가 아니다. 세트들 (Gi) 는 사실상 등가 관계의 등가 클래스들에 대한 참조에 의해 포인트 세트들의 "클래스들"이다.
이전의 이론은 (이에 제한되는 것은 아니지만) 입체의 면들에 대해 적용한다 (즉, 이 예에서 모델링된 오브젝트는 입체이다). 면들은 포인트 세트들의 역할을 하고 입체의 B-Rep 은 세트 (G) 이다. 즉, 결정하는 단계 (S20) 를 구현하기 위해, 당업자는 포인트 세트들로서 면들을 나타낼 수도 있고 S10 에서 제공된 B-Rep 은 위에서 정의된 바와 같이 세트 (G) 로서 제공된다.
이하, 결정하는 단계 (S20) 에서의 카피 면들의 세트들을 결정하는 일례를 설명한다.
예를 들어, 입체를 나타내는 모델링된 오브젝트가 주어지면, S10 에서 제공된 상기 입체의 B-Rep 은 독립 면들의 세트로서 고려된다. G={f1, ..., fn} 인 것으로 의미되며, 여기에서, fi 는 i 번째 면이다. 바로 첫번째 단계가 "카피이다" 관계에 따라 G 를 계산하는 단계 (즉, 결정 단계 S20) 이다. 전체적인 알고리즘은 다음과 같다.
Figure pat00037
알 수 있는 바와 같이, 이에 따라 카피들의 모든 세트들이 시작시 결정되며, 결정된 세트들의 가능한 변경들이 이후에 설명된다.
이하, 면들에 대한 "카피이다" 관계를 구현하는 방법을 설명한다.
이전에 설명된 바와 같이, 입체의 면은 지지 표면 (예를 들어, 평면) 및 경계 모서리들에 의해 정의된다. 일례에서, 면에는 입체의 다른 법선 벡터가 설치된다. 경계 모서리들은 이 법선 벡터를 따라 배향된다. 경계 모서리들은 정점들을 공유함으로써 접속된다.
비교들을 수행하고 강체 운동들을 찾기 위해, 각각의 면에는 수개의 축 시스템들이 설치된다. 면의 각각의 정점 (v) 에서, 축 시스템은 다음과 같이 생성된다. 원점 (P) 의 좌표들이 정점 (v) 의 좌표들이다. 제 1 벡터 (U 라고 표기함) 는 v 의 입력 경계 모서리에 대해 접선이고, -U 가 경계 모서리와 동일하게 배향되게 된다. 제 2 벡터 (V 라 표기됨) 는 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) 을 디스플레이한다.
이제, 그 방법은, 일 예에서, 결정하는 단계 (S20) 내에서, 2개의 면들이 서로의 카피인지를, 만약에 있다면, 그들 사이의 강체 운동을 검색함으로써, 결정할 수도 있다. f,g 가 (동일 수의) 로컬 축 시스템들 S1 f,…,Sm f 및 S1 g,…,Sm g이 각각 구비된 2개의 면들이라고 둔다. 면들 f,g 이 동일 수의 로컬 축 시스템들을 갖지 않는다면, 이는 그것들이 동일 수의 경계 정점들을 갖지 않는다는 것을 의미하고, 그래서 그것들은 서로의 카피가 아니라고 결정되고 강체 운동 검색이 시작되지 않는다. 그 방법은 그러한 조건들을 테스트할 수도 있다.
제 1 단계는 면 g 의 j 번째 축 시스템으로 면 f의 i번째 축 시스템을 각각 변경시키는 강체 운동들 Di ,j을 계산하는 것이다. i,j=1,…,m 이므로, 최대 m2에서 그러한 강체 운동들이 존재한다. 공식적으로, 강체 운동들은
Figure pat00038
이 되도록 한다.
Figure pat00039
,
Figure pat00040
및 Di,j(x)=Ri,jx + Ti , j 를 주목하면, 이것은, 첫째로 하기 선형 시스템을 푸는 것에 의해 달성되며, 모르는 것들은 매트릭스 Ri ,j의 계수들 및 벡터 Ti ,j의 좌표들이라는 것을 기억한다.
Figure pat00041
둘째로, 매트릭스 Ri ,j 가 회전되도록 보장하기 위하여 2개의 하기 조건들이 체크되야 한다.
Figure pat00042
그렇지 않으면, Di ,j 는 강체 운동이 아닌데, 왜냐하면 Ri ,j 는 회전이 아니기 때문이다.
다음으로, f 를 g 로 변화시키는 강체 운동 D* 은, 만약 있다면, 이전에 계산된 Di ,j 중에서 발견된다. 이제 문제는 다음 질문에 답하는 것이다: f,g 및 강체 운동 D 을 고려해 볼 때, D(f)=g 는 참인가? 이것은 면 f 을 3D 포인트들 xk, k=1,…,q 의 콜렉션으로 샘플링함으로써 그리고 포인트들 D(xk) 과 면 g 사이의 거리들이 동일한 오브젝트들에 대해 미리 결정된 수치 임계들에 비교하여 충분히 작다는 것을 체크함으로써 행해질 수도 있다. Di ,j 중에서, 여려 강체 운동들이 f 를 g 로 변화시킬 수 있으면, 가능할 때 순수 병진 (pure translation) 이 선택된다. 이것은, 사용자 의도를 따르는 결과들에 이르게 하는, 결정하는 단계 (S20) 을 수행하는 효율적인 방식이다.
전술된 예의 반복에 따라 S20에서 결정된 세트들을 위한 데이터 구조의 예가 이제 설명된다.
강체 운동들 및 관련 포인트 세트들은, 이제 설명되는 적절한 데이터 구조에 저장되어, (주어진 면에 대응하는) 주어진 포인트 세트의 카피들 및 연관된 강체 운동들을 취출할 수도 있다. 개념적으로, 이 데이터 구조는 방향 그래프 W=(P,A,α,ω) 를 포함하고 여기서 노드들 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 et 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 트리는 입력 아크를 갖지 않는 하나의 노드 (루트 노드) 및 출력 아크 노드들을 갖지 않는 모든 다른 노드들 (리프 노드들) 을 피처링하는 트리 그래프이다. 즉, 모든 비루트 노드들은 루트 노드에 접속된다. 결과적으로, 깊이-1 트리 그래프내에 임의의 2개 노드들을 고려할 때, 그들을 연결하는 아크들 중 하나의 경로만이 존재하고, 이 고유 경로는 2개의 아크들만을 포함한다.
도 12 및 도 13 은 카피된 면들의 초기 세트들을 계산하는 알고리즘으로부터 발생되는 그래프 데이터 구조를 예시한다. 도 12는, 1 내지 12로 넘버링되는 면들을 갖는, 4개의 정렬된 실린더 슬롯들로 이루어지는 모델링된 오브젝트의 B-Rep (120) 를 예시한다. 그것들은, 토폴로지컬 데이터 구조에서 일부 임의의 스토리지에 따라 넘버링된다. 도 13은, 2개 깊이-1 트리들 (132) 을 포함하는, 그래프 (130) 를 예시한다.
따라서, 하나의 포인트 세트를 임의의 다른 포인트 세트로 변화시키는 강체 운동은, 2개의 상기 포인트 세트들을 연결하는 아크들의 경로를 따라 강체 운동들을 결합함으로써 계산된다. 이 경로는 2개의 아크들을 포함하므로, 2개의 강체 운동들만이 결합된다. 서브세트내에서 임의의 2개의 포인트 세트들에 관한 강체 운동을 계산하는 이러한 기능 (facility) 은 이 방법의 예에서 널리 사용된다.
제 1 데이터 및 제 2 데이터를 결정하는 단계 (S40) 가 이제 설명된다.
레퍼런스 함수 및 다른 함수는, NURBS와 같은 임의의 타입의 함수들, 또는 이전에 설명된 다른 종류의 함수들일 수도 있고, 따라서 높은 양의 데이터를 수반할 수도 있다. 그 방법은, 제 1 데이터 및 제 2 데이터를 결정하고, 이들은, 포인터와 함께, 일반적으로 압축된 "다른" 함수들보다 더 작은 데이터를 형성한다.
그 방법에서, 용어 "매핑" 은, 일반적으로 함수들에 비하여 상대적으로 적은 데이터를 수반하는 특정 종류의 함수를 지칭한다. 특히, 용어 "매핑" 은 정준 함수들 (즉, 단순 정준 공식들로 표현되는 함수들) 을 지칭할 수도 있다. 예를 들면, 그 방법의 매핑들은, 아핀 매핑 (affine mapping) 들, 이를테면 (즉, 레인지인) 3D 공간들의 쌍들 사이, 또는 3D 공간과 그 자체 사이 강체 운동들, 및/또는 (이를테면, 도메인들인) 2D 공간들의 쌍들 사이 또는 2D 공간과 그 자체 사이의 2D 로컬 맵들일 수도 있다. 어느 경우에도, 매핑들은 예를 들면, 압축해제의 이면 방법 (ulterior method) 에 알려진 미리 결정된 형태를 가질 수도 있다. 이런 식으로, 제 1 데이터 및 제 2 데이터는 (매핑의 성질에 대한 임의의 정보를 제외한) 매핑들의 파라미터들만을 포함할 수도 있다. 이런 식으로, 대체하는 단계 (S50) 에서 사용된 데이터는 가능한 한 작다.
이제, 그 방법은 S40에서 매핑들을 설명하는 데이터를 결정한다. 이것은, 제 1 데이터 및/또는 제 2 데이터가 그들 자체 고려 중인 매핑들의 공식들, (예를 들면, 매핑들이 아핀 매핑들로 미리 결정된 경우에) 단지 전술된 바처럼 매핑들의 파라미터들의 값들, 또는 예를 들면 매핑들의 역 (inverse) 들의 파라미터들 또는 값들 또는 공식들에 의해 상기 매핑들을 간접적으로 설명하는 방식들을 포함할 수도 있다는 것을 의미한다. 게다가, 그 방법이 지오메트리컬 엔티티들의 카피들의 세트들에 대해 그리고 각 그러한 세트 내에서 반복될 때, 그 매핑들은 결정하는 단계 (S40) 의 상이한 반복들에 대해 서로 관련될 수도 있다. 이것은, 예를 들어, 경계 커브들 및 지지 표면을 포함하는 면들의 카피들이 고려될 때 그러하다. 그러한 경우에, (예를 들면, 표면 정의들인) 표면들의 카피들에 대응하는 함수들의 도메인들 사이의 매핑이, (예를 들면, p-커브들인) 경계 커브들의 카피들에 대응하는 함수들의 레인지들 사이 매핑들과 동일하거나 또는 그의 역일 수도 있다. 그러한 경우에, 제 1 데이터 및/또는 제 2 데이터는 유리하게는, (예를 들면, 결정하는 단계 (S40) 의 이전 반복에서) 이전에 결정된 제 1 데이터 및/또는 제 2 데이터에 대한 포인터, 및 결정하는 단계 (S40) 의 적어도 하나의 반복에서, 2개 매핑들 사이의 관계의 성질에 관한 하나의 정보를 포함할 수도 있다. 이것은, 결정하는 단계 (S40) 및 대체하는 단계 (S40) 의 상이한 반복들에서 매핑들의 "재사용" 으로, 추가 압축을 허용한다.
함수들은 파라미터 함수들을 포함할 수도 있다. 그러한 경우에, 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑 (즉, 제 1 데이터에 의해 설명된 매핑), 그리고 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑 (즉, 제 2 데이터에 의해 설명된 매핑) 이 아핀 매핑들이다. 이것은, 이들 매핑들이 하나 또는 여러개의 파라미터들의 선형 표현으로서 공식화되는 함수들이라는 것을 의미한다. 이것은, 아핀 매핑들이 간단하게 표현될 수도 있으므로, 고 레이트의 압축을 허용한다.
특히, 함수들은 표면 정의들 (즉, 표면에 대응하는 함수들) 을 포함할 수도 있다. 그러한 경우에, 레퍼런스 함수 및 고려되는 다른 함수는, 서로 카피인 표면들에 대응하는 그러한 표면 정의들일 때, 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑은, 레퍼런스 함수에 대응하는 표면을 다른 함수에 대응하는 표면으로 변환하는 강체 운동이다. 그러한 강체 운동은, 전술된 바처럼, 카피 면들의 세트들로 면들을 파티셔닝할 때 유리하게 미리결정될 수도 있다. 따라서, 그 방법은 고속으로 수행될 수도 있다. 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑은 2D 로컬 맵이고, 이에 대해서는 후술된다.
더욱이, 함수들은 p-커브들 (커브에 대응하고, 표면 정의의 2D 도메인 내부의 이미지와 하나의 파라미터의 함수로서 제공되는 함수들) 을 포함할 수도 있다. 그러한 경우에, 레퍼런스 함수 및 고려되는 다른 함수가, 서로 카피인 커브들에 대응하는 그러한 p-커브들일 때, 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 매핑은, 레퍼런스 함수의 레인지로부터 다른 함수의 레인지로의 2D 로컬 맵이고, 다른 함수의 도메인으로부터 레퍼런스 함수의 도메인으로의 매핑은 1D 로컬 맵이다. 상기 2D 로컬 맵은 다른 함수의 레인지로부터 레퍼런스 함수의 레인지로의 2D 로컬 맵의 역이고, 이는 이전에 반복들에서 결정되었을 수도 있고 여기서 함수들 (레퍼런스 함수 및 다른 함수들) 은 현재 반복의 p-커브들이 관련되는 표면 정의들이다. 이것은 후술된다. 이것은, 이전에 결정된 정보가 재사용될 수도 있으므로, 그 방법의 속도를 높이고 압축을 증가시킨다. 실제로, 현재 반복의 제 1 데이터는 단순히, 2D 로컬 맵의 상기 역이 고려된다고 지정함으로써, 문제되는 이전 반복의 제 2 데이터를 지칭할 수도 있다.
전술된 바처럼, 함수들은, 서로 카피인 면들을 정의할 수도 있다. 각 면은, 하나의 레퍼런스 표면 정의, 적어도 하나의 다른 표면 정의, 레퍼런스 표면 정의의 도메인에 포함된 레인지를 갖는 적어도 하나의 p-커브의 레퍼런스 세트 및 다른 표면 정의의 도메인에서의 레인지를 갖고 레퍼런스 세트 중 각각의 하나의 레퍼런스 세트에 대응하는 적어도 하나의 p커브의 다른 세트에 의해 정의될 수도 있다 (즉, 각 "다른" p-커브는, 즉, 레퍼런스 표면 정의 및 p-커브들에 의해 정의되는, "레퍼런스" 면의 카피인 면의 경계 커브에 대응하며, 상기 경계 커브는 레퍼런스 면의 각각의 경계 커브의 카피이다).
그러한 경우에, 대체하는 단계 (S50) 는, 전술된 S40의 여러 반복들에 의해 결정되고 모두 상이한 엘리먼트들을 설명하는 데이터를 형성하는 제 1 및 제 2 데이터로, (p-커브들의) 다른 세트 및 다른 표면 정의를 대체하는 단계를 포함한다. 이들 엘리먼트들은 레퍼런스 표면 정의에 대한 포인터를 포함한다. 이들 엘리먼트들은 또한, (p-커브들) 의 다른 세트 중 각각의 하나의 다른 세트에 대해, 레퍼런스 세트 중 대응하는 것 (레퍼런스 p-커브) 에 대한 포인터를 포함한다. 이들 엘리먼트들은 또한, 레퍼런스 표면 정의에 대응하는 표면을 다른 표면 정의에 대응하는 표면으로 변환하는 강체 운동, 다른 표면 정의의 도메인과 레퍼런스 표면 정의의 도메인 사이의 2D 로컬 맵, 그리고 다른 세트 중 각각의 하나의 다른 세트의 도메인과 레퍼런스 세트 중 대응하는 것의 도메인 사이의 1D 로컬 맵을 포함한다. 그러한 경우에, 그 방법은 압축비의 면에서 특히 효율적이다.
그 방법에 의해 사용될 수도 있는 2D 로컬 맵의 정의가 이제 설명된다.
Figure pat00043
Figure pat00044
가 2개 3 차원 파라미터화 표면들 (즉, 파라미터 표면 정의들) 이라 둔다. 도메인들 A 및 B 는
Figure pat00045
(의 서브세트들) 이다. 정의에 의해, 표면들 P 및 Q 의 레인지들은
Figure pat00046
의 하기 서브세트들이다:
Figure pat00047
그리고
Figure pat00048
표면 Q 가 표면 P 로부터 복제된다고 (즉, 그의 카피라고) 말하는 것은, (전술된 바처럼 면들을 파티셔닝할 때 결정될 수도 있는) 강체 운동
Figure pat00049
이 존재하여, 표면 P 의 레인지를 이동시키는 것이 그것을 표면 Q 와 동일하게 만들도록 한다는 것을 의미한다:
D(R(P))=R(Q)
다른 말로, 이것은 모든 (u,v)∈A에 대하여, (s,t)∈B 이 존재하여 다음과 같이 된다:
D(P(u,v))=Q(s,t)
그 역 또한 같다. 이전 등식은 묵시적으로 파라미터들 도메인들 A 과 B 사이의 대응성을 정의한다. 2D 로컬 맵의 목적은 이 대응성을 명시적으로 만드는 것이다. 정의에 의해, 강체 운동 D 과 함께 표면들 P 및 Q 과 연관된 2D 로컬 맵은 매핑 q:B→A 이어서, 모든 (s,t)∈B 에 대해 다음과 같이 된다
D(P(q(s,t)))=Q(s,t)
이것은 등가적으로 다음과 같이 쓰여질 수 있다
Figure pat00050
맵 q 그리고 그의 역 맵의 좌표들을 다루는 것이 유용할 수도 있다. 그래서, 다음의 표기들이 유용할 수도 있다.
q(s,t)=(f(s,t),g(s,t))
그리고
q-1(u,v)=(f*(u,v),g*(u,v))
그 방법에 의해 사용될 수도 있는 1D 로컬 맵의 정의가 이제 설명된다.
이전 지오메트리컬 오브젝트들에 더하여, p-커브
Figure pat00051
Figure pat00052
는 표면 P 상에서 정의되고 p-커브
Figure pat00053
는 표면 Q 상에서 정의된다. 도메인들 I 및 J 는
Figure pat00054
(의 인터벌들) 이다. 정의에 의해, 이들 p-커브들의 레인지들이 각각
Figure pat00055
의 하기 서브세트들이다:
Figure pat00056
그리고
Figure pat00057
강체 운동 D 은 p-커브
Figure pat00058
의 레인지를 p-커브
Figure pat00059
의 레인지로 변화시킨다고 가정하면, 즉
Figure pat00060
이면 모든 μ∈J에 대하여, λ∈I 이 존재하여 다음과 같이 된다는 것을 의미한다
Figure pat00061
이것은 도메인들 I 과 J 사이의 대응성을 묵시적으로 정의한다. 여기서 다시, 1D 로컬 맵은 이 대응성을 명시적으로 만드는 것이다. 정의에 의해, 표면들 P,Q 과, p-커브들
Figure pat00062
,
Figure pat00063
과 강체 운동 D 과 연관된 1D 로컬 맵은 맵 r:J→I 이어서 모든 μ∈J 에 대해 다음과 같이 된다
Figure pat00064
하지만, 로컬 맵
Figure pat00065
덕분에, 모든 (s,t)∈B 에 대해, 그래서, 모든 μ∈J에 대해
Figure pat00066
그리고 다음으로
Figure pat00067
강체 운동 D 이 인버터블하므로 그리고 표면 P 이 단사 (injective) 이므로 이는 다음을 의미한다:
Figure pat00068
그리고, 최종적으로, 역 2D 로컬 맵을 사용하여 q-1
Figure pat00069
이는 등가적으로 다음과 같이 쓰여질 수 있다
Figure pat00070
또는
Figure pat00071
이 관계는, 로컬 맵들과 결합된 표면 P 상의 p-커브들과 표면 Q 상의 p-커브를 링크시키기 때문에, 본 방법의 이 예의 핵심 특징이다.
완성도를 위하여, 0D 로컬 맵의 정의가 또한 설명되지만, 제공된 압축의 예들에서는 수반되지 않는다.
이전 지오메트리컬 오브젝트들에 더하여, p-정점 λ0 는 p-커브
Figure pat00072
상에서 정의되고 p-정점 μ0 는 p-커브
Figure pat00073
Figure pat00074
상에서 정의된다. 이들 p-정점들의 레인지들은 그들의 3D 좌표들, 각각
Figure pat00075
Figure pat00076
이다. 게다가, 강체 운동 D 은 p-정점 λ0 (의 레인지) 을 p-정점 μ0 (의 레인지) 로 변화시키며, 이는 다음을 의미한다:
Figure pat00077
0D 로컬 맵은 값 r(μ0)이고 여기서 r(·) 는 p-커브들의 1D 로컬 맵이다. 다음으로, λ0=r(μ0) 이므로, p-커브
Figure pat00078
상에서 정의된 p-정점 λ0 을, p-커브
Figure pat00079
상에서 정의된 p-정점 μ0 그리고 적절한 1D 로컬 맵을 사용하여, 계산하는 것이 가능하다.
2D 로컬 맵 및 그의 결정의 예가 이제 제공된다.
표면 P 이 z-축 실린더라고 두고 이는 다음에 의해 파라미터화되고
Figure pat00080
도 14에 예시되어 있다.
그리고 표면 Q 이 x-축 실린더라고 두고 이는 도 15에 예시되어 있고 다음에 의해 파라미터화된다:
Figure pat00081
명확하게, y 축을 중심으로 한
Figure pat00082
회전에 따른 표면 P 의 레인지를 이동시키는 것은 그것을 표면 Q 의 레인지와 일치되게 만든다. 상기 회전의 매트릭스는 다음과 같다:
Figure pat00083
다음으로, 하기 정의로 시작되는 간단한 계산
Figure pat00084
은 하기 2D 로컬 맵을 산출한다.
Figure pat00085
그것은 모든 (s,t) 에 대해 다음이 된다: D(P(f(s,t),g(s,t)))=Q(s,t).
그리고 역 2D 로컬 맵은 다음과 같다:
Figure pat00086
그것은 모든 (u,v) 에 대해 다음이 된다
D(P(u,v))=Q(f*(u,v),g*(u,v))
1D 로컬 맵 및 그의 결정의 예가 이제 제공된다.
p-커브
Figure pat00087
표면 P 상의 (도 16 상의 점선 (160)) 는 다음에 의해 파라미터화되는 곡선을
Figure pat00088
에서 정의한다:
Figure pat00089
이 커브는 반경 a 를 갖는 (0,0,bv0) 에 중심을 두고 z-축에 수직인 원이다 (도 17 상의 점선 (170)).
표면 Q 상의 p-커브:
Figure pat00090
(도 18 상의 점선 (180)) 은 반경 a 를 갖는 (bv0,0,0)에 중심을 두고 x-축에 수직인 원이다 (도 19 상의 점선 (190)). 이것은 다음에 의해 파라미터화된다:
Figure pat00091
강체 운동 D에 따른 표면 P 상의 원을 이동시키는 것은 (레인지의 관점으로부터) 표면 Q 상의 원을 산출한다. 1D 로컬 맵
Figure pat00092
은 다음으로 시작하여 정의에 따라 계산될 수 있다:
Figure pat00093
이는 하기 1D 로컬 맵을 산출한다.
Figure pat00094
그것은 모든 μ 에 대해 다음이 된다:
Figure pat00095
그 방법으로 어떻게 압축이 수행될 수도 있는지를 예시하는 예가 이제 설명된다.
예에서, 입력 데이터는 입체 모델의 B-Rep이다. 제 1 단계는, B-Rep 상에서 모든 복제된 표면들 및 p-커브들을 인식하는 것이다. 이것은, 이전에 설명된 바처럼 카피 면들을 인식하는 것에 의해 수행될 수도 있다. 이전에 설명된 알고리즘은, 복제된 지지 표면들 및 복제된 경계 모서리들을 식별하는 것에 의해 복제된 면들을 인식한다. 이 정보로부터, 그 방법은 복제된 표면들의 그래프 G 및 복제된 p-커브들의 그래프 H 를 용이하게 출력할 수도 있다. 그래프 G (각각 그래프 H) 는 표면들 (각각 p-커브들) 이고 그래프의 아크들은 강체 운동들로 레이블링된다. 그래프 G (각각 H) 의 각 접속된 컴포넌트는 동일 공통 레퍼런스의 복제물인 표면들 (각각, p-커브들) 의 그룹이다. 각 접속된 컴포넌트에서, 예의 방법은 레퍼런스 노드인 하나의 노드를 임의적으로 선택한다.
표면
Figure pat00096
의 레인지를 표면
Figure pat00097
Figure pat00098
의 레인지로 변화시키는 적절한 강체 운동 D 을 찾기 위하여, 이전에 설명되고 여기에서 또한 사용될 수도 있는 알고리즘이 하나의 표면의 포인트들을 다른 하나 상으로의 여러 투영들을 수행한다는 것이 인지될 수도 있다. 특히, 이것은 여러 커플들의 파라미터들 (ui,vi) 및 (si,ti) 을 산출하여 D(P(ui,vi))=Q(si,ti) 이 된다. 그것들은 다음에서 유리하게 재사용될 수도 있다.
예에서 제 2 단계는 로컬 맵들을 계산하는 것이다. 예들은 아핀 로컬 맵들만 다룬다. 이것은 유리한데, 왜냐하면 아핀 로컬 맵은 적은 계산 시간 및 적은 저장 공간을 필요로 하기 때문이다. 게다가, 산업적 체험은, 입체들로 기계적인 부분들을 모델링할 때 비 아핀 로컬 맵들이 불필요한 것으로 보인다는 것을 나타낸다. 2D 아핀 로컬 맵은 비 레퍼런스 표면 Q (“다른” 표면) 이 레퍼런스 표면 P 으로부터 복제될 때마다 계산된다. 2D 아핀 로컬 맵은 다음과 같이 쓰여질 수 있다:
Figure pat00099
그래서 6개의 계수들 qi, i=1,…,6 이 식별되야 한다. 이것은 j=1,2,3에 대해 다음을
Figure pat00100
제 1 인식 단계로부터 수집함으로써 유리하게 행해질 수도 있다. 이것은 qi, i=1,…,6 알려지지 않은 것들에 대해 3x2=6 선형 등식을 산출하고, 이는 표준 선형 대수학을 사용하여 풀어진다. 어떤 추가 입증 (extra validation) 이, 이 (후보) 아핀 로컬 맵이 전체 표면에 대해 효율적이도록 보장하도록 수행될 수도 있다. 이것은, 아핀 로컬 맵 입증에 관하여, 나중에 자세히 설명된다.
비 표준 p-커브가 레퍼런스 p-커브로부터 복제될 때마다, 1D 아핀 로컬 맵이 계산된다. 이것은 다음에 의해 정의된다:
r(μ)=r1μ+r0
미지의 계수들 ri, i=1,2이 j =1,2 에 대해
r(μj)=λj
를 제 1 인식 단계로부터 수집함으로써 획득된다. 이것은 ri, i=1,2 알려지지 않은 것들에 대해 2개의 선형 등식을 산출하고, 이는 표준 선형 대수학을 사용하여 풀어진다.
최종 단계는 압축 그 자체이다. 압축은 비 레퍼런스 지오메트리들을 로컬 맵들, 강체 운동들 및 레퍼런스 지오메트리들에 대한 포인터들로 대체한다. 보다 엄밀하게는, 비 레퍼런스 표면 Q 는 하기 트리플로 대체된다:
Figure pat00101
레퍼런스 표면 P 에 대한 포인터
Figure pat00102
강체 운동 D 및
Figure pat00103
2D 아핀 로컬 맵 q.
비 레퍼런스 표면 Q (그의 레퍼런스 표면은 P임) 상에서 정의된 비 레퍼런스 p-커브
Figure pat00104
는 다음의 트리플로 대체된다:
Figure pat00105
레퍼런스 표면 P 상에서 정의된 레퍼런스 p-커브
Figure pat00106
에 대한 포인터
Figure pat00107
2D 아핀 로컬 맵 q
Figure pat00108
1D 아핀 로컬 맵 r.
압축해제는 하기와 같이 수행된다. 비 레퍼런스 표면 Q 의 수학적 정의는 그의 레퍼런스 표면 P, 연관된 강체 운동 D 및 2D 로컬 맵 q을 하기 식에 따라 취출함으로써 회복된다:
Figure pat00109
비 레퍼런스 p-커브
Figure pat00110
의 수학적 정의는 로컬 맵들 q 및 r 그리고 레퍼런스 p-커브
Figure pat00111
를 하기 식 (여기서 q의 역 q-1 는 온 더 플라이 (on the fly) 로 용이하게 계산될 수도 있다) 에 따라 취출함으로써 회복된다:
Figure pat00112
명확하게, 간단한 평가들만이 필요한데, 이는 압축해제를 빠르고 안전하게 만든다.
예들의 결정하는 단계 (S40) 는 또한 아핀 로컬 맵 입증을 포함할 수도 있다. 이것은 아래에서 설명된다.
2D 아핀 로컬 맵 q 를 계산하면 다음과 같다:
D(P(q(si,ti)))=Q(si,ti)
for i=1,2,3에 대해 이는 모든 (s,t) 에 대해 반드시 다음을 산출하는 것은 아니다:
D(P(q(s,t)))-Q(s,t)=0
추가 체킹이 유리하다. 그 원리는 표면들 P 및 Q 의 정도에 따라, 충분히 큰 포인트들 (si,ti) 의 수에 대해 이전의 관계를 체크하는 것이다. 표면들 P 및 Q 이 평면형 또는 B-Spline일 때, 하기 함수는 다항식이다.
f(s,t)=D(P(q(s,t)))-Q(s,t)
P 또는 Q 이 NURBS 표면일 때 (이는 정준 표면들과 자유 형태 표면들을 포함함), 함수 f(s,t) 는 유리함수이지만, 기본적인 대수학적 조작은 그것을 다항식 함수로 변화시킬 수 있다. 어쨌든, 포인트는 다항식 함수 f(s,t) 가 모든 (s,t)에 대해 소멸하는지를 체크하는 것이다. 이는 다음과 같이 쓰여질 수 있다:
Figure pat00113
여기서 gj는 다항식들이다. t의 dt+1 값들에 대한 f(s1,t)=0를 체크하는 것은 j=0,…,dt 에 대해 gj(s1)=0 를 의미한다. 이 프로세스를 ds+1 회 반복하는 것은 (여기서 ds 는 다항식들 gj의 최대 정도임), gj (s)=0 를 j=0,…,dt 에 대해 그리고 모든 s 에 대해 보장한다. 이것은 함수 f 가 제로 함수이어서, 아핀 로컬 맵 q 이 모든 (s,t) 에 대해 유효하다는 것을 의미한다. 다항식 함수 f 는 명시적일 것을 필요로 하지 않음을 볼 때, 그의 정도만이 관련있고, 이는 표면들 P 및 Q 의 정도들을 고려함으로써 획득될 수 있다.
입증이 실패하면, 표면 Q 는 압축되지 않는다.
기존 압축 기법들은, 저레벨 시맨틱의 데이터: 메시 트라이앵글, 데이터 구조 (포인터들, 어레이들) 및 지오메트리컬 좌표들을 다룬다. 그래서, 입체 모델이 정밀한 지오메트리로 만들어질 때, 메시 기반 압축 기술은 동작되지 않는다. 게다가, 입체 모델이 동일한 형상들의 많은 출현들을 수반할 때, 각 출현은 독립적으로 압축되어, 데이터 감소의 막대한 가능성을 잃게 된다.
반대로, 설명된 방법들은, 기계적인 부분의 형상에 대해 아주 종종 일어나는 반복된 피처들을 이용한다. 제 1 단계에서, 그 방법은 모든 유사한 지오메트리들을 인식한다. 고려된 지오메트리들은 표면들 및 p-커브들이고, 이들은 B-Rep 모델에서 널리 사용된다. 이 인식 단계는, 로컬 맵들 뿐만 아니라 카피들의 공간적 위치들을 산출한다. 로컬 맵은 2개 복제된 지오메트리들의 파라미터 도메인을 브릿지 (bridge) 한다. 다음으로, 그 방법은, 강체 운동 및 로컬 맵들과 함께 레퍼런스 지오메트리에 대한 포인터에서, 각 복제된 지오메트리에 대해, 있는 반복된 지오메트리들의 딕셔너리 (dictionary) 를 형성한다. 입력 B-rep의 압축 버전은 단지 압축된 지오메트리를 포함하며, 토폴로지컬 데이터는 변화되지 않는다.
예들의 방법들의 제 1 장점은 지오메트리 압축이 B-Rep 데이터의 양을 상당히 감소시킨다는 것이다. 실제로, 기계적 CAD 모델들의 대표적인 데이터베이스에 대해 Dassault Systemes 에서 수행된 산업적 실험들은, 토폴로지에 의해 25% 가 유지되는 것과 반대로 74% 의 메모리가 지오메트리에 의해 유지된다는 것을 보여줬다. 따라서, 지오메트리 압축은 데이터 저장을 위한 메모리를 절약하고 네트워크 환경에서 데이터 송신의 속도를 높여준다.
제 2 장점은 기존 압축 기법들은 여기에 기재된 방법들로부터 비롯되는 B-Rep 모델을 압축하는데 사용될 수 있다는 것이다. 즉, 본 발명은 기존 압축 기법들에 대한 프리프로세서로서 사용될 수 있다.
제 3 장점은, 압축해제 방법이 임의의 수치 계산을 수행하지 않는다는 것이다. 압축해제는, 강체 운동들 및 로컬 맵들과 레퍼런스 표면들 및 P-커브들을 결합함으로써 원래 포맷의 표면들 및 p-커브들을 회복한다. 로컬 맵들 없이, 압축해제된 비 레퍼런스 지오메트리들의 파라미터화가 변화되며, 안전하지 않을 수 있는 수치적 투영 또는 교차를 회피가능하게 만든다.
본 방법에 의해 제공된 결과들이 이제 설명된다.
메모리 크기 관점으로부터, 강체 운동은 축 벡터, 각도 값 및 병진 벡터에 의해 정의되어, 강체 운동을 저장하기 위한 메모리 크기는 7개의 실수들이다. 2D 로컬 맵은, 6개의 실수들에 의해 정의되고, 1D 로컬은 2개의 실수들에 의해 정의된다. 압축비는 지오메트리의 성질에 의존한다. NURBS 지오메트리는 (메모리 크기의 면에서) 임의로 커서, 압축비 역시 임의로 클 수 있는데, 상기 지오메트리가 일정한 크기 데이터로 대체되기 때문이다. 정준 지오메트리 (평면, 실린더, 원뿔, 구체, 토러스) 는 그것들이 일정한 크기를 가짐에도 불구하고 역시 압축될 수 있다. 압축비에 관한 출원인의 체험은 하기와 같다:
Figure pat00114
본 방법에 따른 압축의 스루풋 예가 이제 도 20 내지 도 27을 참조하여 설명된다.
예의 B-Rep 모델은 표면 S 상에 정의되고 n개 p-커브들 pi, i=1,…,n 에 의해 경계지어지는 면 F 를 포함한다. 그것은 또한 n=4 및 m=2 과 도 20에 예시된 바처럼, 공간에서 분리된 위치들에 위치된 면 F의 m개 카피들 Fj, j=1,…,m 를 포함한다.
카피된 면들의 표면들은 Sj, j=1,…,m로 표기되고, p-커브들 경계 면 Fj 은 pi j, i=1,…,n 로 표기되고 그것들은 그들의 지지 표면을 가리킨다.
각 지오메트리컬 엘리먼트는, 그 자신의 수학적 설명 (220) 이 구비되는데, 이는 도 22 - 도 24의 개략도들에 예시되어 있다.
알고리즘은 면들 Fj 이 강체 운동들 Dj 을 통한 면들 F 의 각각의 카피들이라는 것을 인식한다. 결과적으로, j=1,…,m에 대해
Figure pat00115
인 2D 로컬 맵들 qj 가 제공되고, i=1,…,m 및 j=1,…,n에 대해
Figure pat00116
인 1D 로컬 맵들 ri j 가 제공된다. 압축된 모델을 나타내는 데이터 구조는 n=4 및 m=2 에 대해 도 25 내지 도 27에 예시되어 있다. 각 2D 로컬 맵은 동일한 표면 상에서 모든 p-커브들에 의해 공유되는 점이 인식되야 한다. 각 표면 Sj 의 수학적 설명은 (레퍼런스 표면 S 에 대한) 포인터, 강체 운동 (7개의 실수들) 및 2D 로컬 맵 (6개의 실수들) 을 포함하는 데이터 (260) 의 일정한 크기 블록으로 대체된다. 각 p-커브 pi j 의 수학적 설명은 (레퍼런스 p-커브 pi 에 대한) 포인터, 및 1D 로컬 맵 ri j (2개의 실수들) 을 포함하는 데이터 (260) 의 일정한 크기 블록으로 대체된다.

Claims (12)

  1. 3 차원 모델링된 오브젝트를 압축하는 컴퓨터 구현 방법으로서,
    Figure pat00117
    상기 모델링된 오브젝트의 경계 표현을 제공하는 단계 (S10) 로서, 상기 경계 표현은 지오메트리컬 데이터 (geometrical data) 를 나타내고, 상기 지오메트리컬 데이터는 각각의 지오메트리컬 엔티티에 대응하는 함수들 각각을 포함하며, 상기 각각의 함수는 도메인 (domain) 및 레인지 (range) 를 갖는, 상기 제공하는 단계 (S10);
    Figure pat00118
    레퍼런스 함수 (reference function) 의 레인지로부터 다른 함수의 레인지로의 매핑을 설명하는 제 1 데이터, 및 상기 레퍼런스 함수 및 상기 레퍼런스 함수의 레인지로부터 상기 다른 함수의 레인지로의 매핑으로 구성될 (composed) 때, 상기 다른 함수를 적용한 것과 동일한 결과를 유발하는, 상기 다른 함수의 도메인으로부터 상기 레퍼런스 함수의 도메인으로의 매핑을 설명하는 제 2 데이터를 결정하는 단계 (S40); 및
    Figure pat00119
    상기 지오메트리컬 데이터에서 상기 다른 함수를 상기 제 1 데이터, 상기 제 2 데이터 및 상기 레퍼런스 함수에 대한 포인터로 대체하는 단계 (S50)
    를 포함하는, 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 컴퓨터 구현 방법은,
    Figure pat00120
    서로의 카피 (copy) 인 지오메트리컬 엔티티들에 대응하는 함수들의 세트들을 결정하는 단계 (S20),
    Figure pat00121
    각각의 세트 내에서 상기 세트의 레퍼런스 함수를 결정하는 단계 (S30),
    Figure pat00122
    각각의 세트에 대해 그리고 상기 세트의 상기 레퍼런스 함수 이외의 상기 세트의 함수 각각에 대해, 상기 제 1 데이터 및 상기 제 2 데이터를 결정하는 단계 (S40) 및 상기 대체하는 단계 (S50) 를 반복하는 단계
    를 포함하고,
    상기 제 1 데이터 및 상기 제 2 데이터를 결정하는 단계 (S40) 의 상기 레퍼런스 함수는 매번 상기 세트의 상기 레퍼런스 함수인, 컴퓨터 구현 방법.
  3. 제 2 항에 있어서,
    상기 함수들은 파라미터 함수들을 포함하고,
    상기 레퍼런스 함수의 레인지로부터 상기 다른 함수의 레인지로의 매핑 및 상기 다른 함수의 도메인으로부터 상기 레퍼런스 함수의 도메인으로의 매핑은 아핀 매핑 (affine mapping) 들인, 컴퓨터 구현 방법.
  4. 제 3 항에 있어서,
    상기 함수들은 표면 정의들을 포함하고,
    상기 레퍼런스 함수의 레인지로부터 상기 다른 함수의 레인지로의 매핑은, 상기 레퍼런스 함수에 대응하는 표면을 상기 다른 함수에 대응하는 표면으로 변환하는 강체 운동 (rigid motion) 이며,
    상기 다른 함수의 도메인으로부터 상기 레퍼런스 함수의 도메인으로의 매핑은 2D 로컬 맵인, 컴퓨터 구현 방법.
  5. 제 4 항에 있어서,
    상기 함수들은, 각각의 표면 정의의 도메인에 포함된 레인지를 갖는 p-커브들을 더 포함하고,
    상기 레퍼런스 함수의 레인지로부터 상기 다른 함수의 레인지로의 매핑은, 상기 다른 함수의 레인지로부터 상기 레퍼런스 함수의 레인지로의 2D 로컬 맵의 역 (inverse) 이며,
    상기 다른 함수의 도메인으로부터 상기 레퍼런스 함수의 도메인으로의 매핑은 1D 로컬 맵인, 컴퓨터 구현 방법.
  6. 제 5 항에 있어서,
    상기 함수들은, 하나의 레퍼런스 표면 정의, 적어도 하나의 다른 표면 정의, 상기 레퍼런스 표면 정의의 도메인에 포함된 레인지를 갖는 적어도 하나의 p-커브의 레퍼런스 세트 및 상기 다른 표면 정의의 도메인에서의 레인지를 갖고 상기 레퍼런스 세트 중 각각의 하나의 레퍼런스 세트에 대응하는 적어도 하나의 p-커브의 다른 세트와 함께, 서로의 카피인 면들을 정의하고,
    상기 대체하는 단계 (S50) 는, 상기 다른 표면 정의 및 상기 다른 세트를, 상기 레퍼런스 표면 정의에 대한 포인터를 설명하는 데이터, 상기 다른 세트 중 각각의 하나의 다른 세트에 대해 상기 레퍼런스 세트 중 대응하는 것에 대한 포인터, 상기 레퍼런스 표면 정의에 대응하는 표면을 상기 다른 표면 정의에 대응하는 표면으로 변환하는 강체 운동, 상기 다른 표면 정의의 도메인과 상기 레퍼런스 표면 정의의 도메인 사이의 2D 로컬 맵, 및 상기 다른 세트 중 각각의 하나의 다른 세트의 도메인과 상기 레퍼런스 세트 중 대응하는 것의 도메인 사이의 1D 로컬 맵으로 대체하는 단계를 포함하는, 컴퓨터 구현 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항의 상기 컴퓨터 구현 방법에 의해 획득가능한, 3 차원 모델링된 오브젝트.
  8. 제 7 항의 상기 3 차원 모델링된 오브젝트를 저장하는, 데이터 파일.
  9. 제 7 항의 상기 3 차원 모델링된 오브젝트를 압축해제하는 컴퓨터 구현 방법으로서,
    레퍼런스 함수를 상기 레퍼런스 함수에 대한 포인터로 식별하는 단계; 및
    다른 함수의 도메인으로부터 상기 레퍼런스 함수의 도메인으로의 매핑, 상기 레퍼런스 함수, 그리고 그 후에 상기 레퍼런스 함수의 레인지로부터 상기 다른 함수의 레인지로의 매핑을 구성하는 (composing) 단계
    를 포함하는, 컴퓨터 구현 방법.
  10. 제 1 항 내지 제 6 항 및/또는 제 9 항 중 어느 한 항의 상기 컴퓨터 구현 방법을 수행하기 위한 명령들을 포함하는, 컴퓨터 프로그램.
  11. 제 10 항의 상기 컴퓨터 프로그램을 기록하고 있는, 데이터 저장 매체.
  12. 그래픽 사용자 인터페이스 및 메모리에 커플링된 프로세서를 포함하는 CAD 시스템으로서,
    상기 메모리는 제 10 항의 상기 컴퓨터 프로그램을 기록하고 있는, CAD 시스템.
KR20140063978A 2013-05-28 2014-05-27 3d 모델링된 오브젝트의 압축 및 압축해제 KR20140139984A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP13305700.0 2013-05-28
EP13305700.0A EP2808810B1 (en) 2013-05-28 2013-05-28 Compression and decompression of 3d modeled object

Publications (1)

Publication Number Publication Date
KR20140139984A true KR20140139984A (ko) 2014-12-08

Family

ID=48698974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20140063978A KR20140139984A (ko) 2013-05-28 2014-05-27 3d 모델링된 오브젝트의 압축 및 압축해제

Country Status (6)

Country Link
US (1) US9881388B2 (ko)
EP (1) EP2808810B1 (ko)
JP (1) JP6445255B2 (ko)
KR (1) KR20140139984A (ko)
CN (1) CN104217460B (ko)
CA (1) CA2852706A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102272569B1 (ko) 2020-05-26 2021-07-05 한국과학기술원 웨이블릿 기반 변형된 거대 메쉬 데이터의 점진적 고속 재압축 방법 및 그 시스템

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2750106B1 (en) 2012-12-31 2021-09-15 Dassault Systèmes Geometrical elements transformed by rigid motions
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
EP3016058A1 (en) * 2014-10-31 2016-05-04 Chicago Mercantile Exchange, Inc. Generating a blended fx portfolio
EP3098735A1 (en) 2015-05-28 2016-11-30 Dassault Systèmes Querying a database with thickness criterion
EP3098734A1 (en) 2015-05-28 2016-11-30 Dassault Systèmes Querying a database with likeness criterion
EP3179389B1 (en) * 2015-12-07 2019-05-22 Dassault Systèmes Detecting cut-outs
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
EP3340085B1 (en) 2016-12-23 2021-11-03 Dassault Systèmes B-rep of the result of a two-axis 3d printing process
US10872180B2 (en) * 2017-01-20 2020-12-22 Hamilton Sunstrand Corporation Complex feature cloning in additive manufacturing datasets
EP3483755B1 (en) * 2017-11-09 2022-07-13 Dassault Systèmes Additive manufacturing of a 3d part
US11281824B2 (en) 2017-12-13 2022-03-22 Dassault Systemes Simulia Corp. Authoring loading and boundary conditions for simulation scenarios
EP3502930A1 (en) * 2017-12-22 2019-06-26 Dassault Systèmes Method for computing an unfolded part of a modeled bended part of a 3d object
EP3623968A1 (en) 2018-09-17 2020-03-18 Bricsys NV Automated block generation in cad
EP3671492A1 (en) * 2018-12-21 2020-06-24 Dassault Systèmes Adaptive compression of simulation data for visualization
EP3792808A1 (en) * 2019-09-13 2021-03-17 Bricsys NV Regular grid recognition in a cad model

Family Cites Families (30)

* 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
US6778970B2 (en) 1998-05-28 2004-08-17 Lawrence Au Topological methods to organize semantic network data flows for conversational applications
US6768928B1 (en) 1999-05-20 2004-07-27 Olympus Optical Co., Ltd. Mechanism component design support system
US6879946B2 (en) 1999-11-30 2005-04-12 Pattern Discovery Software Systems Ltd. Intelligent modeling, transformation and manipulation system
JP3829972B2 (ja) * 2000-03-06 2006-10-04 サイテック株式会社 3次元cadシステム
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
US6615503B1 (en) 2002-04-16 2003-09-09 General Electric Company Calibration software for surface reconstruction of small objects
US7027054B1 (en) 2002-08-14 2006-04-11 Avaworks, Incorporated Do-it-yourself photo realistic talking head creation system and method
JP4516957B2 (ja) 2003-01-25 2010-08-04 パーデュー リサーチ ファンデーション 3次元オブジェクトについて検索を行なうための方法、システムおよびデータ構造
US7269808B2 (en) 2005-05-26 2007-09-11 International Business Machines Corporation Design verification
US8576224B2 (en) * 2006-05-31 2013-11-05 The Boeing Company Methods and apparatus for automated part positioning based on geometrical comparisons
US8988420B2 (en) * 2006-08-11 2015-03-24 Siemens Product Lifecycle Management Software Inc. Visual file representation
US7688318B2 (en) 2007-02-02 2010-03-30 Dassault Systemes Solidworks Corporation Reusable data constructs for a modeling system
CN100460813C (zh) 2007-05-10 2009-02-11 上海交通大学 三维空间连杆曲线匹配度的检测方法
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
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
CN101995231B (zh) 2010-09-20 2012-07-18 深圳大学 一种大型薄壳物体表面的三维检测系统及其检测方法
EP2439664A1 (en) 2010-09-23 2012-04-11 Dassault Systèmes Designing a modeled object within a session of a computer-aided design system interacting with a database
EP2750107B1 (en) 2012-12-31 2017-03-15 Dassault Systèmes Groups of faces that form a geometrical pattern
EP2750106B1 (en) 2012-12-31 2021-09-15 Dassault Systèmes Geometrical elements transformed by rigid motions
EP2808810B1 (en) 2013-05-28 2017-01-11 Dassault Systèmes Compression and decompression of 3d modeled object
CA2934031C (en) 2013-12-15 2024-03-26 7893159 Canada Inc. Method and system for comparison of 3d models
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102272569B1 (ko) 2020-05-26 2021-07-05 한국과학기술원 웨이블릿 기반 변형된 거대 메쉬 데이터의 점진적 고속 재압축 방법 및 그 시스템
US11875540B2 (en) 2020-05-26 2024-01-16 Korea Advanced Institute Of Science And Technology Progressive fast recompression method and system for wavelet-based large-deformed mesh data

Also Published As

Publication number Publication date
US20140354636A1 (en) 2014-12-04
CN104217460A (zh) 2014-12-17
CN104217460B (zh) 2019-06-04
JP6445255B2 (ja) 2018-12-26
JP2014232534A (ja) 2014-12-11
US9881388B2 (en) 2018-01-30
EP2808810B1 (en) 2017-01-11
EP2808810A1 (en) 2014-12-03
CA2852706A1 (en) 2014-11-28

Similar Documents

Publication Publication Date Title
KR20140139984A (ko) 3d 모델링된 오브젝트의 압축 및 압축해제
JP7206039B2 (ja) レプリカ選択
KR102246170B1 (ko) 3차원 모델링된 오브젝트의 압축
CN108073682B (zh) 基于参数视图函数查询数据库
KR101993935B1 (ko) 기하학적인 패턴을 형성하는 페이스들의 그룹들
EP1710720B1 (en) Method of computer-aided design of a modeled object having several faces
CN105844711B (zh) 在细分曲面上雕刻2d图像
EP2600315B1 (en) Creating a surface from a plurality of 3D curves
KR102055955B1 (ko) 강체 운동들에 의해 변환된 기하학적 엘리먼트들
CN105761303B (zh) 在3d建模组件上创建包围盒
US20150066440A1 (en) System and method for designing three-dimensional objects
JP2005038219A (ja) 境界表現データからボリュームデータを生成する方法及びそのプログラム
US20160042106A1 (en) Generating a cad model from a finite element mesh
EP3895131A1 (en) A system for optimizing a 3d mesh
Xia et al. A novel approach for automatic reconstruction of boundary condition in structure analysis
JP2023143870A (ja) スケッチ加工
KR20140063475A (ko) 오브젝트들의 원형 스태거드 패턴의 설계
US20180232949A1 (en) Medial axis transformation as a solid modeling representation method for computer aided design software
Liu et al. Towards a Unified In-Process Geometrical Model for Multiple Machining and Layered Manufacturing
Saxena et al. Octree-based automatic mesh generation for non-manifold domains
Dhaveji et al. Octree Approach for Simulation of Additive Manufacturing Toolpath

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application