KR102040988B1 - 복수의 3d 곡선들로부터의 표면 생성 - Google Patents

복수의 3d 곡선들로부터의 표면 생성 Download PDF

Info

Publication number
KR102040988B1
KR102040988B1 KR1020120137398A KR20120137398A KR102040988B1 KR 102040988 B1 KR102040988 B1 KR 102040988B1 KR 1020120137398 A KR1020120137398 A KR 1020120137398A KR 20120137398 A KR20120137398 A KR 20120137398A KR 102040988 B1 KR102040988 B1 KR 102040988B1
Authority
KR
South Korea
Prior art keywords
curves
determining
computer
mesh
crossings
Prior art date
Application number
KR1020120137398A
Other languages
English (en)
Other versions
KR20130060162A (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 KR20130060162A publication Critical patent/KR20130060162A/ko
Application granted granted Critical
Publication of KR102040988B1 publication Critical patent/KR102040988B1/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
    • 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/20Finite element generation, e.g. wire-frame surface description, tesselation
    • 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/30Polynomial surface description

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법이 제공된다. 본 방법은 복수의 3D 곡선들을 제공하는 단계 (S10), 곡선들의 쌍들 사이의 크로싱들을 결정하는 단계 (S20), 크로싱들을 나타내는 노드들 및 이웃들인 크로싱들을 나타내는 노드들의 쌍들을 연결하는 원호들을 포함하는 기본 그래프를 정의하는 단계 (S30), 그래프로부터 3D 포지션에 의해 정의된 정점들 및 정점들의 쌍들을 연결하는 에지들을 포함하는 메시를 결정하는 단계 (S40), 및 메시를 표면과 핏팅하는 단계 (S50) 를 포함한다.
이러한 방법은 복수의 3D 곡선들로부터 표면의 생성을 보다 용이하게 한다.

Description

복수의 3D 곡선들로부터의 표면 생성{CREATING A SURFACE FROM A PLURALITY OF 3D CURVES}
본 발명은 컴퓨터 프로그램들 및 시스템들의 분야에 관한 것이고, 더 상세하게는, 복수의 3D 곡선들로부터 표면을 생성하기 위한 방법, 시스템 및 프로그램에 관한 것이다.
오브젝트들의 설계, 엔지니어링 및 제조를 위해 다수의 시스템들 및 프로그램들이 시중에 제공되어 있다. CAD는 컴퓨터 지원 설계 (Computer-Aided Design) 의 두문자어 (acronym) 이며, 예컨대 그것은 오브젝트를 설계하기 위한 소프트웨어 솔루션들에 관한 것이다. CAE는 컴퓨터 지원 엔지니어링 (Computer-Aided Engineering) 의 두문자어이며, 예컨대 그것은 미래 제품의 물리적 거동을 시뮬레이션하기 위한 소프트웨어 솔루션들에 관한 것이다. CAM은 컴퓨터 지원 제조 (Computer-Aided Manufacturing) 의 두문자어이며, 예컨대 그것은 제조 프로세스 및 동작들을 정의하기 위한 소프트웨어 솔루션들에 관한 것이다. 이러한 시스템들에서, 그래픽 사용자 인터페이스 (GUI) 는 기법의 효율과 관련하여 중요한 역할을 담당한다. 이들 기법들은 제품 수명주기 관리 (Product Lifecycle Management; PLM) 시스템들 내에 임베딩될 수도 있다. PLM은, 기업들이, 확장된 기업의 개념 전체에 걸쳐서, 제품 데이터를 공유하고, 공통 프로세스들을 적용하고, 구상에서부터 제품들의 수명의 종료까지 제품들의 개발을 위한 기업의 지식에 영향력을 행사하는 것을 돕는 경영 전략을 말한다.
다솔 시스템므 (Dassault Systemes) 에 의해 (CATIA, ENOVIA 및 DELMIA라는 상표들 하에서) 제공되는 PLM 솔루션들은, 제품 엔지니어링 지식을 조직하는 엔지니어링 허브, 제조 엔지니어링 지식을 관리하는 제조 허브, 그리고 엔지니어링 및 제조 허브들 양쪽 모두로의 기업 통합 및 연결을 가능하게 하는 기업 허브를 제공한다. 이 시스템은 다 함께 제품들, 프로세스들, 리소스들을 링크하는 개방형 오브젝트 모델을 전달하여 최적화된 제품 정의, 제조 준비, 생산 및 서비스를 추진하는 동적인 지식 기반 제품 생성 및 결정 지원을 가능하게 한다.
이들 시스템들 중 일부는 복수의 3D 곡선들로부터 표면을 생성하는 것을 허용하고, 이것은 기하학적 모델링 및 보다 정밀하게는 표면 설계의 일반적인 카테고리 내에 있다. 소개용 게시물은 다음과 같다: "Geometric Modeling", 제 3 판, Michael E. Mortenson 편, Industrial Press, 2006년 5월. 특별히 흥미로운 것은, 임의 종류의 복합 표면들 (하나 또는 많은 표면들의 퀼트), 특히 만곡된 표면들의 퀼트들, (평평한 패싯 (facet) 들로 구성되는) 삼각형 메시 표면들, 또는 하위분할 (Subdivision) 표면들이다.
B-Rep (Boundary Representation) 은 본원에서 언급될 수학적 모델인데, 그것이 모든 위에서 언급된 표면들을 단일 개념으로 그룹화하기 때문이다. B-Rep는 f i (s, t) →(x, y, z) 로서 도메인이 R 2 이고 범위가 R 3인 하나 이상의 함수들과, 개별 피스들이 서로 "소잉되는 (sewn)" 방법에 관한 논리 정보를 종합한다. 소잉 (sewing) 은 표면들이 "트리밍"되도록 이용될 수 있고 이는 각각의 함수의 R 2 도메인이 통째로 이용되지 않는 것을 의미한다. 곡선들의 세트들로부터 표면들의 이러한 패치워크 (patchwork) 를 생성하는 것이 최선의 방법인가는 기하학적 모델링에서의 전형적인 문제이다. 삼각형 메시의 특수한 경우에, 각각의 개별 표면 요소는 평평한 패싯, 다르게 말하면 평면이다. B-Rep의 널리 알려진 정의는 STEP AP203이다. 이는 CATPart를 a.stp 파일로서 내보내기하는 경우 CATIA V5 및 CATIA V6가 적용되는 표준이다. B-Rep들은 그것들이 볼륨을 밀폐하지 않는 경우로 열릴 수 있거나, 또는 그것들이 볼륨의 경계를 서술하는 경우로 닫힐 수 있고 이와 같이 솔리드 오브젝트를 나타낼 수도 있다. STEP AP203에서, 그것들은 키워드들인 OPEN_SHELL 및 CLOSED_SHELL에 의해 각각 지칭된다. 그러나 용어 B-Rep는 AP203 놈 (norm) 보다 넓은 의미로 이용될 수도 있다. AP203에서, 개방형 B-Rep의 경우는 그냥 개방형 셸 (shell) 이라 불리고, (키워드 "ADVANCED_BREP_SHAPE_REPRESENTATION"에서의) 용어 B-Rep는 닫힌 셸의 경우로 예약된다. 볼륨을 밀폐하지 않는 B-Rep는, 많은 서브-함수들로 구성되는 경우에도, 표면 (단수형으로) 이라고 종종 지칭된다. 이는 특히 서브 피스들 (sub-pieces) 사이의 접합부들이 매끄럽게 되어, 오브젝트의 복합적인 성질을 사용자에게 차폐하는 경우이다. 엔지니어들 또는 스타일리스트들은 단일 표면으로서 생성된 복합 형상들을 자주 언급한다.
특히 자유 형태의 형상들에서, 3D 모델들의 작성을 용이하기 하기 위해, 일부 CAD 시스템들은 보다 낮은 치수 입력들의 세트로부터 B-Rep (또는 그것의 부분) 를 생성하는 다양한 방법들을 제공한다. 이들 입력들은 일정한 간격들의 지점 (point) 들의 세트, 지점들 및 탄젠트 (tangent) 평면들의 세트, 프로파일 및 돌출 방향, 스위프 프로파일들 및 스위프 레일들의 조합, 보간하는 곡선들의 세트일 수 있다. 곡선들의 세트들의 경우에, 이것들은 완전히 교차되거나 또는 시퀀싱될 것을 일반적으로 필요로 한다. 예를 들어, CATIA V5/6의 NET 서피스는 교차하는 곡선들의 그리드로부터 표면들을 생성한다.
R 2 에서부터 R 3 로 매핑하는 다양한 함수들이 B-Rep를 형성하는데 이용될 수 있다. 이것들은 단순한 평면들 (삼각형 메시에서처럼) 로부터 매우 높은 차수의 다각형들까지 갈 수 있고, 또한 실린더와 같은 정준 (canonic) 표면들을 포함할 수 있다. 미국 특허 7,595,799 및 7,400,323에 기재된 바와 같이, 예컨대 CATIA에 통합된 "Catmull-Clark Subdivision Surface"를 이용하는 것 또한 가능하다. 이들 시스템들에서, 하위분할 표면은 먼저 실시간 시각화를 위해 삼각형 메시로 변환된 다음, 최고의 (definitive) 고품질 결과를 위해 B-스플라인 표면들로 변환된다.
또한 특히 언급할 만한 것은 컴퓨터 지원 곡선 스케칭 (Computer-Aided Curve Sketching) 이다. 곡선들로부터 표면들의 생성은, 곡선들이 빠르고 쉽게 생성될 수 있는 상황에서 최상으로 이용된다. 곡선 스케칭은 컴퓨터 그래픽스에서 다채로운 분야이다. 게시물 제목 "ILoveSketch: As-natural-as-possible sketching system for creating 3D curve models," ACM Symposium on User Interface Software and Technology 2008, Monterey, CA, USA, October 19-22, 2008과, 게시물 제목 "EverybodyLovesSketch: 3D Sketching for a Broader Audience," Seok-Hyung Bae, Ravin Balakrishnan, 및 Karan Singh, Proceedings of ACM Symposium on User Interface Software and Technology 2009 (Victoria, BC, Canada, October 4-7, 2009, pp. 59-68는 곡선 스케칭을 제시한다. 이들 두 개의 게시물들은 형상을 정의하는 곡선들의 네트워크를 다루지만, 형상을 표면들로 꾸미는 것을 제안하지 않는데, 이 동작의 어려움 때문이다.
복수의 3D 곡선들로부터 표면을 생성하는 현존 솔루션들의 하나의 문제는 형상 정의 시에 아티스트 또는 엔지니어에게 주어지는 유연성이 적다는 것이다. 현존 솔루션들은 무제한적 설계 액션들을 허용하지 않는다. 보통, 그것들은 새로운 아이디어들을 화판 (drawing board) 에 담으려고 하는 경우에 컴퓨터 시스템의 임의의 비유연성을 (제대로) 참지 못하는 매우 독창적인 아티스트 사용자를 만족시키지 못한다. 그것들은 시행착오와 형상의 매우 인터랙티브한 수정을 허용하지 않는다. 그것들은 제품 설계에 관계가 있는 임의의 사람에 의해 이용가능하지 않고 제품 설계 아티스트들에 의해서만 이용가능하다. 제품 설계에 관계가 있는 임의의 사람에 의해 이용가능한 시스템은 도움이 될 것인데, 모두가 아이디어를 교환할 수 있고 따라서 아티스트와 동일한 즉석 (instant) 생성의 제약을 받기 때문이다.
곡선들로부터 표면을 만드는 종래 기술의 방법들은 두 개의 카테고리들, 즉 스위프/로프트 (loft) 형 방법들, 및 네트 (net) 서피스들 (네트워크에서와 같은 네트) 로 나뉜다.
스위프/로프트 방법들은 곡선들의 상이한 카테고리들로의 분리를 요구하며; 통상 하나의 곡선은 가이드가 될 것이고, 다른 것들은 단면 형상들이 될 것이거나, 또는 어쩌면 단면 형상들이 주어지지만 가이드는 없을 것이다. 이들 경우들의 모두에서, 입력들은 주의 깊게 조직되어야 하고 결과적인 표면은 진정한 자유 형태가 아니고 그보다는 주어진 방향으로 (하나의 섹션에서부터 다음 섹션으로, 또는 가이드 곡선을 따라) 배향되는 플로잉 (flowing) 형상이다. 스위핑 및 로프팅은 매우 유용하고, CAD 시스템들에서 집중적으로 이용되지만, 3D 형상들의 진정한 자유 형태 스케칭에 적용가능하지 않는데, 그것이 획득될 형상의 상세한 뷰를 요구하고, 이에 따라 개방식 (open ended) 시행착오형 접근법을 지원하지 않기 때문이다.
네트워크 서피스들 (줄여서 네트) 은 가장 잘 알려진 것이 쿤즈 서피스 (Coons surface) 인 기법들의 패밀리이다. 쿤즈 서피스의 양호한 논의는 논문 "Discrete Coons Patches" Farin & Hansford, Computer Aided Geometric Design 16 (1999) 691-700에서 발견될 수 있다. 위에서 언급된 CATIA 네트 서피스, 또는 곡선들로 수렴하는 특정 하위분할 스킴을 정의하는 것에 기초하는 하위분할 표면들을 곡선들에 핏팅하는 방법을 다루는 게시물 ("Interpolating Nets of Curves by Smooth Subdivision Surfaces", Levin, Siggraph 99) 에 기재된 방법을 포함하여, 네트 서피스들의 많은 다른 유형들이 존재한다. 네트 서피스들 모두는 그것들이 곡선들의 네트워크를 보간한다는 것이 공통적이다. 표면이 곡선들을 통과하기 때문에, 곡선들은 서로 교차하여, 닫힌 루프들을 갖는 그리드를 형성해야 한다. 이는 대부분의 예술 작품에 대한 쇼스토퍼 조건인데, 곡선들의 세트를 3D로 자유롭게 스케치하여 서로 터치하도록 하는 것이 실제로 불가능해서이다.
또한 특히 언급할만한 것은 게시물 제목 "fitting subdivision surfaces", Litke, Levin 및 Schroder 편, Siggraph 2001에 있는 핏팅에 대한 언급이다. 이 논문에 기재된 방법은 일반 타겟에 노력을 들이고 있다 (모든 지점들은 그것들이 획득해야 하는 타겟 위치들을 가진다).
이런 상황 내에서, 복수의 3D 곡선들로부터 표면을 생성하는 개선된 해결책이 여전히 필요하다.
본 발명의 요약
따라서, 일 양태에 따라, 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법이 제공된다. 본 방법은 복수의 3D 곡선들을 제공하는 단계, 곡선들의 쌍들 사이의 크로싱들 (crossings) 을 결정하는 단계, 크로싱들을 나타내는 노드들 및 이웃들인 크로싱들을 나타내는 노드들의 쌍들을 연결하는 원호 (arc) 들을 포함하는 기본 그래프를 정의하는 단계, 그 그래프로부터 3D 포지션에 의해 정의된 정점들 및 정점들의 쌍들을 연결하는 에지들을 포함하는 메시를 결정하는 단계, 및 메시를 표면과 핏팅하는 단계를 포함한다.
본 방법은 다음 중 하나 이상을 포함할 수도 있다:
- 크로싱들을 결정하는 것은, 곡선들의 개별 쌍 사이의 적어도 하나의 크로싱을, 각 지점이 곡선들의 개별 쌍의 상이한 하나에 속하는 지점들의 쌍으로서 결정하는 것을 포함한다;
- 본 방법은 복수의 3D 곡선들을 서포트 상에 투영하여, 복수의 상응하는 투영된 곡선들을 획득하고, 투영된 곡선들의 쌍들 사이의 크로싱들을 결정하며, 그리고 투영된 곡선들의 쌍들 사이의 크로싱들에 상응하는 곡선들의 지점들의 쌍을 취출하는 것을 포함한다;
- 복수의 3D 곡선들을 서포트 상에 투영하는 것은, 복수의 3D 곡선들을 일 세트의 세그먼트들로 이루어지는 폴리라인들로 분리 (discretize) 하고, 그리고 세그먼트들을 서포트 상에 투영하여, 복수의 상응하는 투영된 세그먼트들을 획득하는 것을 포함하고; 그리고 투영된 곡선들의 쌍들 사이의 크로싱들을 결정하는 것은, 동일한 복셀 (voxel) 에 속하는 상이한 곡선들에 상응하는 투영된 세그먼트들의 쌍들을 결정하고, 결정된 투영된 세그먼트들의 쌍들 사이에 이중 수직선들을 결정하며, 그리고 이중 수직선들의 말단 (extremity) 들을 결정하는 것을 포함한다;
- 메시를 결정하는 것은, 그래프의 모든 타일들이 3개 또는 4개의 원호들을 갖는 면들로 분할될 때까지, 그래프에 원호들 및/또는 노드들을 추가하는 것을 포함한다;
- 메시를 결정하는 것은, 어떠한 T-조인트도 남지 않을 때까지, 그래프에 원호들 및/또는 노드들을 추가하는 것을 포함한다;
- 메시를 결정하는 것은, 메시 하위분할 스킴 (mesh subdivision scheme) 에 따라 그래프에 원호들 및/또는 노드들을 추가하는 것을 포함한다.
- 크로싱들은, 각 지점이 곡선들의 개별 쌍의 상이한 하나에 속하는 지점들의 쌍으로서 결정된 곡선들의 개별 쌍 사이의 적어도 하나의 크로싱을 포함하고, 그리고 메시를 결정하는 것은 적어도 하나의 크로싱을 나타내는 노드에, 지점들의 쌍의 중간의 3D 포지션을 연관시키는 것을 포함한다;
- 메시를 결정하는 것은, 그래프에 노드들을 추가하고, 그리고 노드들의 추가 이전에 그래프에 대한 주어진 노드의 토포로지컬 (topological) 포지션에 의존하는 3D 포지션을, 주어진 추가된 노드에 연관시키는 것을 포함한다;
- 주어진 추가된 노드에 연관된 3D 포지션은, 주어진 추가된 노드의 토포로지컬 포지션이 노드들을 추가하기 이전에 그래프의 원호 상에 있는 경우에는, 원호의 말단들에서의 노드들에 연관된 3D 포지션들에 따라 원호에 의해 나타낸 곡선을 오프셋함으로써 계산된 포지션이거나, 또는 노드의 토포로지컬 포지션이 노드들을 4변인 그래프에 추가하기 이전에 그래프의 타일의 내부 상에 있는 경우에는, 쿤즈 (Coons) 방법에 의해 계산된 포지션이거나, 또는 임의의 다른 경우에는, 이웃들인 3D 포지션들을 평균함으로써 계산된 포지션이다;
- 복수의 3D 곡선들은 손으로만 스케치된 곡선들을 포함한다.
상기 방법을 수행하기 위한 명령들이 기록된 적어도 하나의 메모리, 메모리와 연결된 적어도 하나의 프로세서, 및 프로세서와 연결되고 명령들의 실행에 적합한 적어도 하나의 그래픽 사용자 인터페이스를 포함하는 CAM 시스템이 또한 제안된다.
상기 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 프로그램이 또한 제안된다.
상기 컴퓨터 프로그램이 기록된 컴퓨터 판독가능 저장 매체가 또한 제안된다.
이하, 본 발명의 실시형태들을 비한정적인 예시에 의해, 그리고 첨부된 도면들을 참조하여 설명한다.
- 도 1은 본 발명의 일 예의 플로우차트를 도시한다.
- 도 2는 그래픽 사용자 인터페이스의 일 예를 도시한다.
- 도 3은 클라이언트 컴퓨터 시스템의 일 예를 도시한다;
- 도 4는 본 발명의 일 예의 플로우차트를 도시한다.
- 도 5 내지 도 14는 본 방법의 예들을 개략적으로 도시한다.
도 1은 복수의 3D 곡선들로부터 표면을 생성하는 컴퓨터 구현 방법의 일 예의 플로우차트를 도시한다. 본 방법은 복수의 3D 곡선들을 제공하는 단계 (S10), 곡선들의 쌍들 사이의 크로싱들을 결정하는 단계 (S20), 및 기본 그래프를 정의하는 단계 (S30) 를 포함한다. 기본 그래프는 크로싱들을 나타내는 노드들과, 이웃들인 크로싱들을 나타내는 노드들의 쌍들을 연결시키는 원호들을 포함한다. 본 방법은 또한 그래프로부터, 3D 포지션에 의해 정의된 정점들 및 이 정점들의 쌍들을 연결시키는 에지들을 포함하는 메시를 결정하는 단계 (S40) 를 포함한다. 그 후 본 방법은 메시를 표면과 핏팅하는 단계 (S50) 를 포함한다. 이러한 방법은 복수의 3D 곡선들로부터의 표면의 생성을 개선시킨다.
본 방법은 CAD 모델링된 오브젝트를 설계하는 프로세스에 포함될 수도 있다. "CAD 모델링된 오브젝트를 설계한다는 것"은 CAD 모델링된 오브젝트를 정교화하는 (elaborating) 프로세스의 적어도 부분인 임의의 액션 또는 액션들의 시리즈를 나타낸다. 그래서, 본 방법은 스크래치 (scratch) 로부터 CAD 모델링된 오브젝트를 생성하는 단계를 포함할 수도 있다. 다르게는, 본 방법은 이전에 생성된 CAD 모델링된 오브젝트를 제공한 다음 CAD 모델링된 오브젝트를 수정하는 단계를 포함할 수도 있다. 어쨌든, 본 방법에 의해 생성된 표면은 CAD 모델링된 오브젝트 또는 그것의 적어도 부분, 예컨대 CAD 모델링된 오브젝트의 경계를 나타낼 수도 있다. 본 방법이 복수의 3D 곡선들로부터 표면의 생성을 더 쉽도록 만들기 때문에, 본 방법은 CAD 모델링된 오브젝트의 설계를 더 쉽도록 만든다.
모델링된 오브젝트는 CAD 시스템의 메모리에 저장된 데이터에 의해 정의되는 임의의 오브젝트이다. 확장에 의해, "모델링된 오브젝트 (modeled object)"라는 표현은 데이터 자체를 가리킨다. 이 시스템의 유형에 따르면, 모델링된 오브젝트들은 데이터의 상이한 종류들에 의해 정의될 수도 있다. CAD 시스템은 모델링된 오브젝트의 그래픽 표현을 기초로 하여 모델링된 오브젝트를 설계하는데에는 적어도 적합한 임의의 시스템, 이를테면 CATIA이다. 따라서, CAD 모델링된 오브젝트를 정의하는 데이터는 모델링된 오브젝트의 표현 (예컨대, 공간에서의 상대적인 포지션들을 예를 들어 포함하는 기하학적 데이터) 을 포함한다. CAD 시스템은 예를 들어 CAD 모델링된 오브젝트들의 표현을 에지들 또는 선들을, 특정한 경우들에서는 면 (face) 들 또는 표면들과 함께 이용하여 제공할 수도 있다. 선들, 에지들, 또는 표면들은 갖가지 방식들, 예컨대 비균일 유리 B-스플라인들 (non-uniform rational B-splines; NURBS) 로 표현될 수도 있다. 구체적으로는, CAD 파일은 명세사항들 (specifications) 을 담고 있을 수도 있으며, 이 명세사항들로부터 기하학적 구조 (geometry) 가 생성될 수 있으며, 이 기하학적 구조는 결국 표현이 생성되는 것을 허용한다. 모델링된 오브젝트의 명세사항들은 단일 CAD 파일 또는 다수의 CAD 파일들에 저장될 수도 있다. CAD 시스템에서 모델링된 오브젝트를 표현하는 파일의 전형적인 사이즈는 부품 당 1 메가바이트의 범위에 있다. 그리고 모델링된 오브젝트는 통상 수천 부품들의 어셈블리일 수도 있다.
본 방법은, 본 방법을 수행한 후, CAD 모델링된 오브젝트에 대응하는 물리적 제품을 생산하는 단계를 포함할 수도 있는 제조 프로세스에 포함될 수도 있다. 어쨌든, 본 방법에 의해 복수의 3D 곡선들로부터 생성되는 표면은 제조 오브젝트, 예컨대 이러한 오브젝트의 경계를 나타낼 수도 있다. 제조 오브젝트는 제품, 이를테면 부품, 또는 부품들의 어셈블리일 수도 있다. 본 방법이 설계를 더 쉽게 하기 때문에, 본 방법은 또한 제품의 제조가 더 빨라지게 하고 이에 따라 제조 프로세스의 생산성을 증가시킨다.
본 방법은 컴퓨터로 구현된다. 이는 본 방법이 적어도 하나의 컴퓨터, 또는 유사한 임의의 시스템 상에서 실행된다는 것을 의미한다. 달리 언급되지 않는 한, 본 방법의 모든 단계들은 컴퓨터에 의해, 즉, 사용자의 개입 없이 수행된다. 예를 들어, 결정하는 단계 (S20), 정의하는 단계 (S30), 결정하는 단계 (S40) 및 그 후의 핏팅하는 단계 (S50) 는 단독 컴퓨터에 의해 수행될 수도 있는 반면, 복수의 3D 곡선들을 제공하는 단계 (S10) 는 사용자-상호작용을 통해 수행될 수도 있다. 따라서, 사용자는 복수의 3D 곡선들을 제공하는 단계 (S10) 에 개입할 수도 있고, 그 후 본 방법은 자동으로 수행될 수도 있다. 이에 의해 본 방법은 나중에 논의될 것들인 결정하는 단계 (S20), 정의하는 단계 (S30), 결정하는 단계 (S40) 및 그 후의 핏팅하는 단계 (S50) 를 통해 복수의 3D 곡선들로부터 표면의 자동 생성을 허용한다. 본 방법의 이들 단계들의 일부가 사용자의 개입을 허용할 수도 있다는 것 또한 특히 언급할 만하다. 예를 들어, 나중에 언급될 바와 같이, 결정하는 단계 (S20), 정의하는 단계 (S30), 결정하는 단계 (S40) 및 그 후의 핏팅하는 단계 (S50) 가 단독 컴퓨터에 의해 자동으로 수행될 수도 있지만, 사용자는 (예컨대 컴퓨터에 의한 알고리즘 실행의 결과를 수정하기 위해, 예를 들어 (S30) 에서 정의된 기본 그래프를 수정하기 위해) 개입할 수도 있다.
본 방법의 컴퓨터 구현의 전형적인 예는 이 목적에 적합한 그래픽 사용자 인터페이스 (GUI) 를 포함하는 CAD 시스템으로 본 방법을 수행하는 것이다. CAD 시스템은 하드웨어를 포함하고 GUI는 임의의 소프트웨어를 설치하는 일 없이 본 방법을 수행하기에 적합하다. 다르게 말하면, 소프트웨어는 즉각적인 사용을 위해 GUI 상에 미리 준비된다 (또는 그 GUI와 연결된다). 다르게 말하면, 본 시스템은 프로세서에 연결된 메모리 상에 코딩된 명령들을 포함하며, 이 명령들은 본 방법을 수행하기 위한 수단을 제공한다. 이러한 시스템은 복수의 3D 곡선들로부터의 표면의 생성이 용이한 도구이다. 이러한 시스템은 따라서, 통상 창조적인 아티스트 사용자들이고 복잡한 CAD 시스템들에는 익숙하지 않은 전문가 설계자들을 포함한, 사용자들의 광범위한 집합체 (array) 에 의해 이용될 수도 있다.
본 시스템은 또한 CAE 및/또는 CAM 시스템일 수도 있고, CAD 모델링된 오브젝트는 또한 CAE 모델링된 오브젝트 및/또는 CAM 모델링된 오브젝트일 수도 있다. 사실상, CAD, CAE 및 CAM 시스템들은 하나를 다른 하나로부터 배제하지 않는데, 모델링된 오브젝트가 이들 시스템들의 임의의 조합에 상응하는 데이터에 의해 정의될 수 있어서이다.
곡선들이 3D (즉 3차원) 이므로, 본 방법에 의해 생성된 표면 또한 3D일 수도 있다. 이는 표면이 그것의 3D 표현을 허용하는 데이터에 의해 정의된다는 것을 의미한다. 3D 표현은 표현된 표면의 모든 각도들로부터의 뷰잉을 허용한다. 예를 들어, 3D 표면은, 3D 표현되는 경우, 그것의 축들 중의 임의의 것을 중심으로 또는 그 표현이 디스플레이되는 스크린에서의 임의의 축을 중심으로 핸들링 및 회전될 수도 있다. 이는 특히, 3D 모델링되지 않는 2D 아이콘들을 배제한다. 3D 표현의 디스플레이는 설계를 용이하게 한다 (즉 설계자들이 그들의 과업을 통계적으로 달성하는 속도를 증가시킨다). 이는 업계에서 제조 프로세스의 속도를 높이는데, 제품들의 설계가 제조 프로세스의 부분이어서이다.
3D 곡선들과 생성된 표면은 파라메트릭 (parametric) 일 수도 있다. 이는 표면이 CAD 동작들의 광범위한 집합체에서 입력으로서 곧바로 이용되는 것을 보장한다. 파라메트릭 형상 (곡선 또는 표면) 은 적어도 하나의 매개변수 (parameter) 의 적어도 하나의 함수 (즉 시스템의 메모리에 저장된 그런 함수) 에 의해 모델링되는 형상이다. 이 함수는 형상의 지점들의 포지션을 제공할 수도 있다. 예를 들어, 3D 파라메트릭 곡선은 함수 C(u) = (x(u), y(u), z(u)) 에 의해 모델링될 수도 있고 3D 파라메트릭 표면은 함수 S(u,v) = (x(u,v), y(u,v), z(u,v)), 예컨대 NURBS에 의해 모델링될 수도 있다. CAD 분야에서, 곡선들 또는 표면들과 같은 CAD 모델링된 오브젝트의 모델링 요소들은 파라메트릭 함수들과 함께 형상에 대한 CAD 동작들을 수행하는 것을 허용한다. 사실상, 대부분의 CAD 시스템들의 CAD 동작들은 오브젝트의 표현인 간단한 화소 맵 상에서 수행가능하지 않다. 다르게 말하면, CAD 시스템들의 대부분의 CAD 동작들은, 실행될 입력으로서 파라메트릭 함수를 필요로 한다.
도 2는 통상적인 CAD 시스템의 GUI의 일 예를 도시한다.
GUI (2100) 는, 표준 메뉴 바들 (2110, 2120), 그리고 하부 및 측면 툴바들 (2140, 2150) 을 갖는 통상적인 CAD 형 인터페이스일 수도 있다. 그러한 메뉴바들 및 툴바들은 사용자 선택가능 아이콘들의 세트를 포함하고, 각 아이콘은 당업계에 알려진 바처럼, 하나 이상의 동작들 또는 기능들과 연관된다. 이들 아이콘들 중 일부는 GUI (2100) 에서 디스플레이되는 3D 모델링된 오브젝트 (2000) 상에서 편집 및/또는 동작시키는데 적합화된, 소프트웨어 툴들과 연관된다. 소프트웨어 툴들은 워크벤치 (workbench) 들로 그룹화될 수도 있다. 각 워크벤치는 소프트웨어 툴들의 서브세트를 포함한다. 특히, 워크벤치들 중 하나는 모델링된 제품 (2000) 의 기하학적 피쳐들을 편집하는데 적합한, 편집 워크벤치 (edition workbench) 이다. 동작시, 설계자는 예를 들면, 오브젝트 (2000) 의 부분을 미리 선택하고 그 다음 동작 (예를 들면, 치수, 컬러 등의 변경) 을 개시하거나, 또는 적절한 아이콘을 선택하는 것에 의해 기하학적 제한 (geometrical constraints) 들을 편집할 수도 있다. 예를 들면, 통상적인 CAD 동작들은 스크린 상에 디스플레이된 3D 모델링된 오브젝트의 폴딩 (folding) 또는 펀칭 (punching) 의 모델링이다.
GUI는 예를 들면, 디스플레이된 제품 (2000) 에 관련된 데이터 (2500) 를 디스플레이할 수도 있다. 도 2의 예에서, "피쳐 트리" 로 디스플레이된 데이터 (2500) 및 그들의 3D 표현 (2000) 은 브레이크 캘리퍼 및 디스크 등을 포함하는 브레이크 어셈블리에 속한다. GUI는 또한 예를 들면, 오브젝트의 3D 오리엔테이션 (orientation) 을 용이하게 하기 위한, 편집된 제품의 동작의 시뮬레이션을 트리거하기 위한, 다양한 타입들의 그래픽 툴들 (2130, 2070, 2080) 을 보여줄 수도 있거나, 또는 디스플레이된 제품 (2000) 의 다양한 속성들을 렌더링할 수도 있다. 커서 (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 (application-specific integrated circuit) 들에 의해 보충되거나 또는 특수 설계된 ASIC들에 포함될 수도 있다. 네트워크 어댑터 (1050) 는 네트워크 (1060) 에 대한 액세스를 관리한다. 클라이언트 컴퓨터는 또한 커서 제어 디바이스, 키보드 등과 같은 햅틱 디바이스 (1090) 를 포함할 수도 있다. 도 2를 참조하여 언급된 바처럼, 커서 제어 디바이스는 클라이언트 컴퓨터에 사용되어 사용자가 스크린 (1080) 상의 임의의 원하는 위치에 커서를 선택적으로 포지셔닝하는 것을 허용한다. 스크린은 컴퓨터 모니터와 같은, 디스플레이가 수행될 수도 있는 임의의 서포트 (support) 를 의미한다. 또한, 커서 제어 디바이스는 사용자로 하여금 다양한 커맨드들을 선택하고 제어 신호들을 입력하는 것을 허용한다. 커서 제어 디바이스는 시스템으로의 입력 제어 신호들을 위한 다수의 신호 생성 디바이스들을 포함한다. 통상적으로, 커서 제어 디바이스는 마우스일 수도 있으며, 마우스의 버튼은 신호들을 생성하기 위하여 사용된다.
시스템으로 하여금 본 방법을 수행하게 하기 위하여, 컴퓨터에 의한 실행을 위한 명령들을 포함하는 컴퓨터 프로그램이 제공되며, 그 명령들은 이러한 목적을 위한 수단을 포함한다. 예를 들면, 프로그램은 디지털 전자 회로에서 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합에서 구현될 수도 있다. 본 발명의 장치는 프로그램가능 프로세서에 의한 실행을 위한 머신 판독가능 저장 디바이스에 유형적으로 담긴 컴퓨터 프로그램 제품에서 구현될 수도 있고; 본 발명의 방법 단계들은 입력 데이터 상에서 동작하고 출력을 생성하는 것에 의해 본 발명의 기능들을 수행하기 위한 명령들의 프로그램을 실행하는 프로그램가능 프로세서에 의해 수행될 수도 있다. 그 명령들은 유리하게는, 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 그들로 데이터 및 명령들 송신하도록 연결된 적어도 하나의 프로그램가능 프로세서를 포함하는 프로그램가능 시스템 상에서 실행가능한 하나 이상의 컴퓨터 프로그램들에서 구현될 수도 있다. 애플리케이션 프로그램은 하이 레벨 프로시져 또는 오브젝트 지향 프로그래밍 언어로 또는 원하는 경우 어셈블리 또는 기계 언어로 구현될 수도 있고; 어느 경우든, 언어는 컴파일형 (compiled) 또는 해석형 (interpreted) 언어일 수도 있다. 프로그램은 전체 설치 프로그램 또는 업데이트 프로그램일 수도 있다. 후자의 경우에, 프로그램은 기존 CAD 시스템을, 그 시스템이 본 방법을 수행하는데 적합한 상태로 업데이트한다.
본 방법은 복수의 3D 곡선들을 제공하는 단계 (S10) 를 포함한다. 예를 들어, 복수의 3D 곡선들은 사용자에 의해 제공될 수도 있다. 예를 들어, 복수의 3D 곡선들은 손으로만 스케치된 곡선들을 포함한다. 곡선들을 손으로만 스케치하는 것은 파라메트릭일 수도 있는 곡선들로 변환되는 스트로크들을 사용자가 그린다는 것을 의미한다. 스트로크들은, 예를 들어, 스크린이 감응성 스크린이면 스크린에 직접, 또는 감응성 탭 (sensitive tab) 상에 그려질 수도 있다. 이는 전문가 설계자들과 같이 종이에 디자인들을 스케칭하는데 이용하는 설계자들에게 표면의 생성을 쉽고 직관적이게 한다.
본 방법은 또한 곡선들의 쌍들 사이의 크로싱들을 결정하는 단계 (S20) 를 포함한다. 곡선들의 주어진 쌍 사이의 크로싱은, 곡선들의 주어진 쌍이 특히 서로 가까운 경우의 영역의 표시이다. "서로 가깝게 (close to each other)"는, 주어진 쌍의 두 개의 곡선들 사이의 거리가 소정의 임계값 미만임을 의미한다. "특히" 서로 가깝게는, 크로싱에서의 두 개의 곡선들 사이의 거리가 이 곡선들의 다른 영역들에 대한 것보다 작다는 의미이다. 두 개의 곡선들 사이의 크로싱은 두 개의 곡선들 사이의 교차지점 (intersection) 이다. 그러나, 곡선들이 사용자에 의해 제공될 수 있으므로, 곡선들이 일반적으로 정확히 서로 교차하지 않을 확률이 높지만, 사용자는 그것들을 교차시킬 생각이다. 크로싱들은 따라서 전형적인 교차지점들의 확장물이고 곡선들을 교차시키고자하는 사용자의 의향을 포착한다. 일 예에서, 크로싱들을 결정하는 단계 (S20) 는, 곡선들의 개별 쌍 사이의 적어도 하나의 크로싱을, 각 지점이 곡선들의 개별 쌍의 상이한 하나에 속하는 지점들의 쌍으로서 결정하는 단계를 포함한다. 다르게 말하면, 적어도 하나의 크로싱은 정확한 교차지점이 아니다. 본 방법은 따라서 곡선들 사이의 의도된 교차지점들을 포착하지만, 그 곡선들은 완벽하게 교차하지는 않는다. 이는 곡선들을 제공하는 단계 (S10) 전의 곡선들을 정의하는 시간에 높은 유연성을 제공한다.
그 후 본 방법은 기본 그래프 (즉 초기 그래프) 를 정의하는 단계 (S30) 를 포함한다. 기본 그래프는 크로싱들을 나타내는 노드들과, 이웃들인 크로싱들을 나타내는 노드들의 쌍들을 연결시키는 원호들을 포함한다. 두 개의 크로싱들은 그것들이 동일한 곡선에 연관되고 그것들 사이에 다른 크로싱이 없다면 이웃들이라고 간주된다.
그 후 본 방법은 그래프로부터, 3D 포지션에 의해 정의된 정점들 및 이 정점들의 쌍들을 연결시키는 에지들을 포함하는 메시를 결정하는 단계 (S40) 를 포함한다. 메시는 CAD에서 광범위하게 이용되는 특정 종류의 그래프이다. 메시는 각각의 노드 (메시의 경우 "정점"이라고 불리우는 반면, 원호들에서는 "에지들"이라고 불리운다) 에 연관된 3D 포지션을 가지는 그래프이다. 본 방법은 최종적으로 메시를 표면과 핏팅하는 단계 (S50) 를 포함한다.
사실상, CAD에서, 메시들은 메시들을 표면들과 핏팅함으로써 표면들을 생성하는데 광범위하게 이용된다. 본 방법은 메시들을 표면과 핏팅하는데 CAD 시스템들의 임의의 현존 모듈을 적용할 수도 있다. 핏팅 표면들은 하위분할 표면들, 또는 NURBS일 수도 있다. 이러한 표면들은 파라메트릭이고 그것들의 간단한 표현을 넘어서는 표면의 의도가 있는 사용 (ulterior use) 을 허용한다. 주목할 만하게도, 생성되는 표면이 부품 또는 부품의 어셈블리와 같은 제품을 나타내는 경우, 하위분할 표면들은 이러한 모델링된 오브젝트들에 필요한 높은 레벨의 기하학적 정밀도를 제공한다.
이에 의해 본 방법은, 크로싱들이란 개념의 이용 덕분에, 3D에서 교차하지 않는 곡선들의 세트에 대한 표면의 핏팅을 허용한다. 곡선들이 서로 터치되는 것을 요구하는 종래 방법들과는 대조적으로, 정확한 교차지점들에 관한 우려 없이 아티스트들이 곡선들을 3D로 그리는 것을 허용하는 막대한 이점이 있다.
더욱이, 본 방법은, 일단 곡선들이 제공되면, 완전 자동이 될 수도 있다. 그러므로, 사용자는 임의의 안내 곡선 또는 그와 같은 것을 나타낼 필요가 없다. 본 방법은 크로싱들을 평가하며, 이 크로싱들로부터 그래프를 정의하고, 그 후에 그래프로부터 메시들을 생성하는 것을 통해, 그래프를 표면과 핏팅한다. 메시가 그래프로부터 생성되므로, 사용자 의도가 존중되는 것이 보장된다 (즉 생성된 표면이 제공된 곡선들을 나타낸다).
이하, 본 방법의 예들을 도 4 내지 도 14 를 참조하여 설명한다. 도 4 는 본 방법의 일 예의 플로우차트를 나타낸다. 도 5 내지 도 14 는 도 4 의 방법의 단계들의 예들을 도시한다.
이 예에서, 본 방법은 복수의 3D 곡선들을 서포트 상에 투영하는 것 (S22) 을 포함한다. 서포트는 사용자가 생성하기를 원하는 표면의 유형을 (예컨대, 대략적으로) 나타내는 3D 형상 (표면 또는 볼륨) 이다. 이에 의해, 복수의 대응하는 투영된 곡선들이 획득된다. 따라서, 이 예에서의 방법은 투영된 곡선들의 쌍들 사이의 크로싱들 (crossings) 을 결정하는 것 (S23) 을 포함한다. 마지막으로, 본 방법은 그 투영된 곡선들의 쌍들 사이의 크로싱들에 대응하는 곡선들의 지점들의 쌍들을 취출하는 것 (S24) 을 포함한다. 즉, 3D 곡선들 사이의 크로싱들이 3D 곡선들의 투영들 사이의 크로싱들에 대응하여 결정된다 (S20). 따라서, 이 예에서, 크로싱들의 결정 (S20) 은 서포트를 통해서 수행되며, 이것은 크로싱들이 검출되어야 하는 것과 관련하여 더 나은 제어를 가능하게 한다.
사실상, 서포트는 표시자 형상 (indicator shape) 으로서 기능한다. 도 5 내지 도 7 를 참조하면, 사용자는 카탈로그로부터 이런 초기 표시자 형상 (50) (즉, 서포트) 을 생성하거나 또는 선택할 수도 있다. 사실상, 선택적인 사전 프로세싱 단계로서, 표시자 형상이 사용될 수 있다. 3D 곡선들을 도시하기 전에, 사용자는 먼저 3D 형상들을 구성하는 임의의 신속한 방법으로 대략적인 초기 형상을 생성하며, 그 형상을 카탈로그로부터 취출하는 것도 또한 가능하다. 볼륨메트릭 클레이-모델링 (Volumetric clay-modeling) 소프트웨어가 표시자 형상을 제조하려는 목적으로 사용될 수도 있다. 그후, 사용자는 그 형상을 흑판으로서 효과적으로 이용하여, 표시자 형상 둘레에 또는 심지어 표시자 형상 자체 상에, 곡선들을 3D 로 도시한다. 따라서, 사용자는 표시자 형상 (50) 상에 투영되는 곡선들 (62) 을 생성할 수도 있다. 결국, 표면 (70) 은, 특히 (도 6 상에 표시자 형상 (50) 상의 점선들로서 나타낸) 그들의 투영들 (62) 을 통해서 곡선들 사이의 크로싱들을 결정한 후, 본 방법에 의해 자동으로 생성되고 업데이트될 수도 있다. 후속 표면 (70) 구성은 오직 곡선들 (62) 에만 의존할 수도 있다. 사용된다면, 표시자 형상 (50) 은 곡선 크로싱들을 검출하는 것을 보조하도록 기능할 수도 있다. 표시자 형상이 크로싱들의 좀더 안정된 검출을 가능하게 하며, 따라서 유익한 것으로 발견되었다. 본 방법에서, 사용자는 곡선들이 서로 교차하는 방법을 통해서 더 많은 제어를 행한다.
복수의 3D 곡선들을 서포트 상에 투영하는 것 (S22) 은 복수의 3D 곡선들을 폴리라인들로 분리하는 (즉, 샘플링하는) 것 (S221) 을 포함할 수도 있다. 폴리라인은, 널리 알려져 있는 바와 같이, 세그먼트들의 세트이다. 따라서, 투영하는 것 (S22) 은 세그먼트들을 서포트 상에 투영하는 것 (S222) 을 포함할 수도 있다. 이에 의해, 복수의 대응하는 투영된 세그먼트들 (즉, 세그먼트들의 투영들) 이 획득된다. 이때, 3D 곡선들은 3D 곡선들의 분리 (discretization) 에 기인하는 폴리라인들의 투영들로서 표현된다. 서포트는 패싯들 (평면들) 을 포함할 수도 있으며, 따라서 폴리라인들의 투영은 폴리라인들 자신일 수도 있다. 즉, 폴리라인들의 세그먼트들의 투영들, 즉 "투영된 세그먼트들" 은 또한 세그먼트들일 수도 있다. 또한, 투영된 곡선들의 쌍들 사이의 크로싱들을 결정하는 것 (S23) 은, 동일한 복셀에 속하는 상이한 곡선들에 대응하는 투영된 세그먼트들의 쌍들을 결정하고 (S231), 그후 그 결정된 투영된 세그먼트들의 쌍들 사이의 이중-수직선들 (bi-perpendiculars) 을 결정하고 (S232), 마지막으로 이중-수직선들의 말단 (extremity) 들을 결정하는 것 (S233) 을 포함할 수도 있다. 이 절차의 방법은 크로싱들의 신속한 결정 (S20) 을 가능하게 한다.
사용자가 3D 곡선들을 스케치할 때, 3D 곡선들은 보통 서로 정확하게 교차하지 않으며, 알고리즘이 (크로싱들의 개념을 통해서) 이들 교차지점들 (intersections) 을 추정하여, 설계자가 표현하기를 원하는 것을 계산하려고 시도해야 한다. 이 예의 방법은 근사치 계산 (proximity computation) 의 비용을 감소시키기 위해 각각의 곡선을 폴리라인 유형 (많은 작은 세그먼트들) 으로 변환하고, 곡선들 사이의 크로싱들에 대한 탐색을 위해서 세그먼트들을 서포트 상에 투영한다. 그후, 본 방법은 2개 투영된 세그먼트들 (Da 및 Db) 에 대해 도 8 에 도시된 바와 같이, 양자의 세그먼트들을 교차시키고 그들 양자에 수직한 고유 라인 (이중-수직선) 을 계산함으로써, 세그먼트들 사이의 크로싱들을 탐색한다. 2개의 교차 지점들 (도 8 상의 x 및 y) 이 세그먼트들 (Da 및 Db) 상에 있고 그 지점들 사이의 거리가 임계치보다 작으면, 본 방법은 2개의 세그먼트들이 서로 교차하는 것처럼 해석할 수도 있다 (즉, 크로싱이 결정된다). 본 방법은 2개 곡선들 상의 지점들 (x 및 y) 로 기술되는 크로싱을 생략할 수도 있다. 이 테스트의 시간 비용을 감소시키기 위해, 도 9 에 도시된 바와 같이, 본 방법은 복셀들을 이용할 수도 있다. 이것이 그 경우이면, 본 방법은 공간을 입방체들 (90) 의 그리드로 분할할 수도 있으며, 오직 동일한 입방체 (92) 의 내부에 있는 세그먼트들 (94) 만이 (세그먼트들 사이에 크로싱이 있는지 여부에 관하여) 테스트될 것이다.
본 예에서, 메시를 결정하는 것 (S40) 은 그래프의 모든 타일들이 3개 또는 4개 원호들을 갖는 면들로 분할될 때까지, 원호들 및/또는 노드들을 그래프에 추가하는 것 (S401) 을 포함한다. 결정되는 (S40) 메시는 (면 (face) 당 3개 또는 4개 에지들을 각각 갖는) 삼각형 메시 또는 쿼드 메시 (quad mesh) 일 수도 있다. 쿼드 메시는 높은 품질의 최종 표면을 제공한다. 추가하는 것 (S401) 은, 그래프가 "불규칙하고" 메시가 될 준비가 바로 되어 있지 않은 경우에, 면 당 에지들의 수의 감소를 가능하게 한다. 일단 그래프가 단지 3개 또는 4개 원호들을 갖는 타일들 (즉, 루프들) 을 가지면, 삼각형 또는 쿼드 메시로 되는 것에 더 가깝다.
일단 크로싱들이 결정되면 (S20), 본 방법은 각각의 크로싱에 대해 이웃들인 크로싱들을 나타내는 그래프를 생성한다. 크로싱들 사이에 어떤 다른 교차지점도 없이, 크로싱들이 동일한 곡선 상에 있으면, 2개 크로싱들은 이웃들이다. 이 그래프로부터, 첫번째 중간 메시 (intermediary mesh) 가 생성된다. 귀납적인 알고리즘에 의해, 본 방법은 그래프에서 타일 (tile) 로서 해석되는 그래프 내의 사이클들을 검출한다. 타일은 3 내지 6 개의 변들을 갖는 그래프의 면이다. 따라서, 이때, 메시는 타일들로 이루어지지만, 이 타일들은 본 방법이 이 내부의 (intern) 메시를 하위분할 메시들과 같은 하부의 모델로 변환할 수 있게 분할된다. 다음에서, 비분할된 타일은 "기본 타일" 로 지칭될 것이다. 각각의 분할된 타일에 대해, 본 방법은 어느 기본 타일이 분할된 타일을 형성하기 위해 스플릿되었는지에 관한 정보를 보유한다.
잠재적으로, 타일들은 3 내지 6 개의 변들 이외의 변들을 가질 수 있지만, 임의의 개수의 변들에 대해, 스플릿 스킴이 고안될 수 있다는 것을 따르는 점에서는 명백할 것이다. 사실상, 다른 경우들이 드물고 설계자에게 크게 유용하지 않기 때문에, 3 내지 6 개의 변 범위를 포괄하는 최상의 가능한 전략들 중 하나가 본질적으로 중요한 것으로 발견되었다. 따라서, 이 예의 방법은 먼저 6각형들 및 5각형들을 삼각형들 또는 쿼드들로 자른다. 도 10 상에 나타낸 바와 같이, 5각형 (100) 은 하나의 에지 (104) 를 추가하여 하나의 쿼드 (102) 및 하나의 삼각형 (103) 으로 스플릿되거나, 또는 하나의 정점 (vertex) (107) 및 5개 에지들 (108) 을 추가하여 5개 쿼드들 (106) 로 스플릿될 수도 있다. 도 11 상에 나타낸 바와 같이, 6각형 (110) 은 하나의 에지 (113) 를 추가하여 2개 쿼드들 (112) 로 스플릿될 수도 있다.
이 예의 방법에서, 메시를 결정하는 것 (S40) 은 어떤 T-조인트도 남지 않을 때까지, 원호들 및/또는 노드들을 그래프에 추가하는 것 (S402) 을 더 포함한다. T-조인트는 곡선이 또다른 곡선과 교차한 후 (즉, 또다른 곡선과 크로싱을 가진 후) 종료될 때에 발생한다. 그 곡선이 끝나는 장소가 그 표면의 외부 에지가 아니면, T 조인트가 그 메시에 생성된다. T-조인트들은 하부의 표면 모델에서 항상 허용가능한 것은 아니다. 이 예의 방법의 목표들 중 하나는 완전히 일반적으로 유지하고 모든 종류의 표면 모델들을 지원하는 것이다. 이를 위해, 본 방법은, 본 방법이 네트워크에 걸쳐서 모든 커트들 (cuts) 을 증가시켜, T-조인트를 효과적으로 제거하는 모드를 제공한다. 이것은 결국 더 높은 품질의 표면을 가능하게 한다.
이것은 메시가 단지 쿼드들 및 삼각형들만을 포함할 때, 토폴로지의 발생의 최종 단계로서 수행될 수도 있다. 이에 대한 알고리즘은, 알고리즘이 그 위에서 루프할 수 있을 때까지, 또는, 알고리즘이 그 표면의 한계에 도달할 때까지, T 조인트가 더 이상 문제가 없을 때까지, 다른 변의 에지 상에서 T 조인트들을 증가시키는 것일 수도 있다. 알고리즘에서 무한 루프를 피하기 위해서, 본 방법은 알고리즘이 초기 기본 타일에 다시 도달하면, 그 증가 (propagation) 를 중지할 수도 있다.
그러나, 다른 예에서, 본 방법은 T-스플라인들 (Splines) 과 같은 T-조인트된 표면 모델을 구현할 수도 있다. 이런 경우, 단계 (S402) 는 필수적이 아니며, 본 방법의 나머지는 완전히 적용가능하다. 이 증가는 간단히 비활성화되며, T-조인트들이 보존된다.
도 12 및 도 13 은 추가하는 것 (S402) 의 예들을 도시한다. 양자의 도면들에서, 메시 (120) 는 T-조인트 (122) 를 갖는다. 도 12 의 경우, T-조인트 (122) 는 에지 (124) 를 추가하여 제거되는 반면, 도 13 의 경우, T-조인트 (122) 는 에지 (126) 및 정점 (128) 을 추가하여 제거된다.
이 예의 방법에서, 메시를 결정하는 것 (S40) 은 또한 원호들 및/또는 노드들을 사실상에 따라서 그래프에 추가하는 것 (S403) 을 포함한다. 메시 하위분할 스킴은 임의의 알려진 메시 하위분할 스킴, 예를 들어 Catmull-Clark 하위분할 스킴일 수도 있다. 이것은 메시의 개선을 가능하게 하고 면 당 에지들의 규칙적인 수의 획득을 가능하게 한다. 이것은 표면과의 핏팅 (S50) 의 기대로 메시를 매끄럽게 하고, 이로써 결과적으로 더 매끄러운 표면을 초래한다.
이하, 크로싱들이, 각 지점이 곡선들의 개별 쌍의 상이한 하나에 속하는 지점들의 쌍으로서 결정되는 곡선들의 개별 쌍 사이의 적어도 하나의 크로싱을 포함하는 경우가 논의된다. 즉, 이것은 곡선들이 완전히 서로 교차하지 않지만 서로 교차하게 될 것이 의미되는 경우이다. 이런 경우, 메시를 결정하는 것 (S40) 은, 도 4 의 예에 대한 경우와 같이, 적어도 하나의 크로싱을 나타내는 노드에, 지점들의 쌍의 중간의 3D 포지션을 연관시키는 것 (S406) 을 포함할 수도 있다. 사실상, 메시를 표면과 핏팅하기 (S50) 위해서, 본 방법은 3D 포지션들을 메시의 정점들에 미리 연관시킬 (S406, S407) 수도 있다. 크로싱을 나타내는 정점에 대해, 크로싱을 형성하는 2개 지점들의 중간이 본 방법에 의해 이용될 수도 있다. 물론, (일 예에서, 거의 일어나지 않을 지도 모르는) 완전한 교차지점인 크로싱에 대해, 그 교차지점의 포지션이 사용될 수도 있다.
(메시를 결정하는 것 (S40) 이 노드들을 그래프에 추가하는 것 (S401, S402, S403) 을 포함하는 경우에) 메시의 다른 정점들에 대해, 본 방법은 노드들을 추가하기 이전에, 그래프에 대한 주어진 노드의 토포로지컬 포지션에 의존하는 3D 포지션을 주어진 추가된 노드에 연관시키는 것 (S407) 을 포함할 수도 있다. 예를 들어, 주어진 추가된 노드에 연관되는 3D 포지션은, 주어진 추가된 노드의 토포로지컬 포지션이 노드들을 추가하기 이전에 그래프의 원호 상에 있으면, 원호의 말단에서 노드들에 연관되는 3D 포지션들에 따라서, 원호로 표현되는 곡선을 오프셋함으로써 계산되는 위치일 수도 있다.
이 경우가 도 14 에 도시되어 있다. 도 14 을 참조하면, 3개 곡선들 (140, 142, 및 144) 이 표시되어 있다. 곡선 (140) 과 곡선 (142) 사이의 크로싱 (x1, y1), 및 곡선 (140) 과 곡선 (144) 사이의 크로싱 (x2, y2) 이 결정되었다. 이들 크로싱들은, A 및 B 로 표시되는, 메시 내의 개별 최종 정점들에 대응하며, 최종 정점들에 x1 과 y1 의 중간 위치 및 다음 x2 및 y2 의 중간 위치가 각각 연관된다. 이 예에서, 본 방법은 정점 (X) 을 메시에 추가하였다. 정점 (X) 은 토포로지컬하게 곡선 (140) 에 속한다. 정점 (X) 에 연관되는 3D 포지션은, 이 경우, A 및 B 의 3D 포지션만큼 통과하도록 곡선 (140) 을 오프셋하고, 그 곡선 상의 X 의 토포로지컬 포지션에 대응하는 그 오프셋 곡선 상의 포지션을 평가함으로써 계산된다 (후자는 X 가 메시에 추가되는 방법에 의해 제공된다).
노드들을 4개의 변으로 된 그래프에 추가하기 이전에, 주어진 추가된 노드의 토포로지컬 포지션이 그래프의 타일의 내부 상에 있으면, 주어진 추가된 노드에 연관되는 3D 포지션은 널리 공지된 쿤즈 (Coons) 방법에 의해 계산되는 포지션일 수도 있다. 임의의 다른 경우, 주어진 추가된 노드에 연관되는 3D 포지션은 이웃들의 3D 포지션들을 평균함으로써 계산될 수도 있다. 후자의 경우, 더 매끄러운 결과를 얻어서 의도되는 결과로의 수렴을 획득하기 위해서, 평균하는 것이 반복되어, 그 계산된 3D 포지션들이 매번 개선될 수도 있다.
따라서, 당업자가 알 수 있는 바와 같이, 본 방법은 어느 기본 타일에 각각의 정점이 속하는지를 계속 추적할 수도 있다. 더욱이, 4변 타일의 경우, (타일이 스플릿될 때에 항상 업데이트되는) (u, v) 좌표들이 또한 메모리에 유지될 수도 있다.

Claims (12)

  1. 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법으로서,
    복수의 3D 곡선들을 제공하는 단계 (S10),
    상기 3D 곡선들의 개별 쌍 사이의 적어도 하나의 크로싱 (crossing) 을, 각 지점이 상기 3D 곡선들의 개별 쌍의 상이한 하나에 속하는 지점들의 쌍으로서 결정하는 것을 포함하는, 상기 3D 곡선들의 쌍들 사이의 크로싱들을 결정하는 단계 (S20) 로서,
    복수의 상응하는 투영된 곡선들을 획득하기 위해, 상기 복수의 3D 곡선들을 서포트 상에 투영하는 단계 (S22),
    상기 투영된 곡선들의 쌍들 사이의 크로싱들을 결정하는 단계 (S23), 및
    상기 투영된 곡선들의 쌍들 사이의 상기 크로싱들에 상응하는 상기 3D 곡선들의 지점들의 쌍을 취출하는 단계 (S24)
    에 의해서, 상기 3D 곡선들의 쌍들 사이의 크로싱들을 결정하는 단계 (S20),
    상기 크로싱들을 나타내는 노드들 및 이웃들인 크로싱들을 나타내는 노드들의 쌍들을 연결하는 원호들을 포함하는 기본 그래프를 정의하는 단계 (S30),
    상기 기본 그래프로부터, 3D 포지션에 의해 정의된 정점들 및 상기 정점들의 쌍들을 연결하는 에지들을 포함하는 메시를 결정하는 단계 (S40), 및
    상기 메시를 표면과 핏팅하는 단계 (S50) 를 포함하는, 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 복수의 3D 곡선들을 서포트 상에 투영하는 단계 (S22) 는, 상기 복수의 3D 곡선들을 일 세트의 세그먼트들로 이루어지는 폴리라인들로 분리 (discretize) 하는 단계 (S221), 및 상기 세그먼트들을 상기 서포트 상에 투영하여, 복수의 상응하는 투영된 세그먼트들을 획득하는 단계 (S222) 를 포함하고; 그리고
    상기 투영된 곡선들의 쌍들 사이의 크로싱들을 결정하는 단계 (S23) 는, 동일한 복셀 (voxel) 에 속하는 상이한 곡선들에 상응하는 상기 투영된 세그먼트들의 쌍들을 결정하는 단계 (S231), 상기 결정된 투영된 세그먼트들의 쌍들 사이에 이중 수직선들을 결정하는 단계 (S232), 및 상기 이중 수직선들의 말단들을 결정하는 단계 (S233) 를 포함하는, 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법.
  3. 제 1 항에 있어서,
    상기 메시를 결정하는 단계 (S40) 는, 상기 기본 그래프의 모든 타일들이 3개 또는 4개의 원호들을 갖는 면들로 분할될 때까지, 상기 기본 그래프에 원호들 및 노드들 중 적어도 하나를 추가하는 단계 (S401) 를 포함하는, 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법.
  4. 제 1 항에 있어서,
    상기 메시를 결정하는 단계 (S40) 는, 어떠한 T-조인트도 남지 않을 때까지, 상기 기본 그래프에 원호들 및 노드들 중 적어도 하나를 추가하는 단계 (S402) 를 포함하는, 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법.
  5. 제 1 항에 있어서,
    상기 메시를 결정하는 단계 (S40) 는, 메시 하위분할 스킴 (mesh subdivision scheme) 에 따라 상기 기본 그래프에 원호들 및 노드들 중 적어도 하나를 추가하는 단계 (S403) 를 포함하는, 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법.
  6. 제 1 항에 있어서,
    상기 크로싱들은, 각 지점이 상기 3D 곡선들의 개별 쌍의 상이한 하나에 속하는 지점들의 쌍으로서 결정된 상기 3D 곡선들의 개별 쌍 사이의 적어도 하나의 크로싱을 포함하고,
    상기 메시를 결정하는 단계 (S40) 는, 상기 적어도 하나의 크로싱을 나타내는 노드에, 상기 지점들의 쌍의 중간의 3D 포지션을 연관시키는 단계 (S406) 를 포함하는, 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법.
  7. 제 1 항에 있어서,
    상기 메시를 결정하는 단계 (S40) 는, 상기 기본 그래프에 노드들을 추가하는 단계들, 및 노드들을 추가하기 이전에 상기 기본 그래프에 대한 주어진 추가된 노드의 토포로지컬 (topological) 포지션에 의존하는 3D 포지션을, 상기 주어진 추가된 노드에 연관시키는 단계 (S407) 를 포함하는, 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법.
  8. 제 7 항에 있어서,
    상기 주어진 추가된 노드에 연관된 3D 포지션은:
    상기 주어진 추가된 노드의 토포로지컬 포지션이 노드들을 추가하기 이전에 상기 기본 그래프의 원호 상에 있는 경우에는, 상기 원호의 말단들에서의 노드들에 연관된 3D 포지션들에 따라 상기 원호에 의해 나타낸 곡선을 오프셋함으로써 계산된 포지션이거나, 또는
    상기 주어진 추가된 노드의 토포로지컬 포지션이 노드들을 4변인 상기 기본 그래프에 추가하기 이전에 상기 기본 그래프의 타일의 내부 상에 있는 경우에는, 쿤즈 (Coons) 방법에 의해 계산된 포지션이거나, 또는
    그 이외의 경우에는, 이웃들인 3D 포지션들을 평균함으로써 계산된 포지션인, 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법.
  9. 제 1 항에 있어서,
    상기 복수의 3D 곡선들은 손으로만 스케치된 곡선들을 포함하는, 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법.
  10. CAD (Computer-Aided Design) 시스템으로서,
    제 1 항 내지 제 9 항 중 어느 한 항에 기재된 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법을 수행하기 위한 명령들이 기록된 적어도 하나의 메모리,
    상기 메모리와 연결된 적어도 하나의 프로세서, 및
    상기 프로세서와 연결되고 상기 명령들의 실행에 적합한 적어도 하나의 그래픽 사용자 인터페이스를 포함하는, CAD 시스템.
  11. 제 1 항 내지 제 9 항 중 어느 한 항에 기재된 복수의 3D 곡선들로부터 표면을 생성하기 위한 컴퓨터 구현 방법을 수행하기 위한 명령들을 포함하는 컴퓨터 프로그램이 기록된, 컴퓨터 판독가능 저장 매체.
  12. 삭제
KR1020120137398A 2011-11-29 2012-11-29 복수의 3d 곡선들로부터의 표면 생성 KR102040988B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11306583.3A EP2600315B1 (en) 2011-11-29 2011-11-29 Creating a surface from a plurality of 3D curves
EP11306583.3 2011-11-29

Publications (2)

Publication Number Publication Date
KR20130060162A KR20130060162A (ko) 2013-06-07
KR102040988B1 true KR102040988B1 (ko) 2019-11-05

Family

ID=45406550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120137398A KR102040988B1 (ko) 2011-11-29 2012-11-29 복수의 3d 곡선들로부터의 표면 생성

Country Status (6)

Country Link
US (1) US9171400B2 (ko)
EP (1) EP2600315B1 (ko)
JP (1) JP6196032B2 (ko)
KR (1) KR102040988B1 (ko)
CN (1) CN103136790B (ko)
CA (1) CA2797162C (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2600315B1 (en) 2011-11-29 2019-04-10 Dassault Systèmes Creating a surface from a plurality of 3D curves
EP3057805A4 (en) * 2013-10-14 2017-07-12 United Technologies Corporation Automated laminate composite solid ply generation
EP2930692A1 (en) * 2014-04-10 2015-10-14 Dassault Systèmes Fitting sample points of 3D curves sketched by a user with an isovalue surface
EP2930691A1 (en) 2014-04-10 2015-10-14 Dassault Systèmes Fitting sample points with an isovalue surface
US10062202B2 (en) 2014-12-22 2018-08-28 General Electric Company System and methods of generating a computer model of a composite component
WO2017139194A1 (en) * 2016-02-11 2017-08-17 3M Innovative Properties Company Population-based surface mesh reconstruction
IL247245B (en) 2016-08-11 2019-01-31 Technion Res & Dev Foundation Systems and methods for printing 3D models
CN106599426A (zh) * 2016-12-05 2017-04-26 中船黄埔文冲船舶有限公司 一种空间过渡板件的生成方法及装置
EP3563353A1 (en) * 2017-09-07 2019-11-06 Siemens Product Lifecycle Management Software Inc. Systems and methods for lightweight precise 3d visual format
EP3460760B1 (en) * 2017-09-26 2021-05-19 Dassault Systèmes Generating a 2d drawing representing a mechanical part
US20210081583A1 (en) * 2018-01-29 2021-03-18 Siemens Industry Software Limited A method of operating a cad system model for modelling an article to be manufactured
CN108763668B (zh) * 2018-05-15 2022-03-01 杭州电子科技大学 基于细分技术与边界替换的齿轮模型区域参数化方法
US11663372B2 (en) * 2018-09-04 2023-05-30 Siemens Industry Software Inc. Spatially-aware detection of trapped support areas in 3D printing
CN109598793B (zh) * 2018-11-27 2022-04-12 武大吉奥信息技术有限公司 基于倾斜摄影测量快速修改植被和水体的制作方法及装置
CN110111396B (zh) * 2019-05-13 2023-05-26 武汉轻工大学 柱面方程的图像绘制方法、设备、存储介质及装置
EP4016465A1 (en) * 2020-12-17 2022-06-22 Dassault Systèmes Method for designing a 3d object by using a virtual 3d grid and hand drawn sketches
EP4016363A1 (en) * 2020-12-21 2022-06-22 Dassault Systèmes Topology optimization with reaction-diffusion equations
CN113192158B (zh) * 2021-03-09 2022-08-02 江苏大学 一种基于计算机几何偏移算法的3d模型放样方法
KR102403256B1 (ko) * 2021-12-29 2022-05-30 주식회사 리콘랩스 기계학습을 위한 프리핸드 스케치 이미지 생성 방법 및 시스템
CN114820991B (zh) * 2022-06-30 2022-09-16 中国空气动力研究与发展中心计算空气动力研究所 一种非结构附面层网格交叉处理方法及装置
CN116393769B (zh) * 2023-04-17 2024-03-26 南京工大数控科技有限公司 一种基于附加抛物线运动的磨削齿面偏差修正方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030020710A1 (en) 2001-07-24 2003-01-30 Henning Biermann Method and apparatus for providing sharp features on multiresolution subdivision surfaces
US20050018885A1 (en) 2001-05-31 2005-01-27 Xuesong Chen System and method of anatomical modeling
US20060284871A1 (en) 2004-11-27 2006-12-21 Bracco Imaging, S.P.A. Systems and methods for generating and measuring surface lines on mesh surfaces and volume objects and for mesh cutting techniques ("curved measurement")
US20090002376A1 (en) 2007-06-29 2009-01-01 Microsoft Corporation Gradient Domain Editing of Animated Meshes
US20110015910A1 (en) 2009-07-16 2011-01-20 Ran Longmin Method of generating a hex-dominant mesh of a faulted underground medium

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371845A (en) * 1990-04-27 1994-12-06 Ashlar, Inc. Technique for providing improved user feedback in an interactive drawing system
GB2253772B (en) * 1991-03-12 1995-01-25 Honda Motor Co Ltd Method of creating solid model
US5768156A (en) * 1995-10-25 1998-06-16 Sandia Corporation Connectivity-based, all-hexahedral mesh generation method and apparatus
JP3341548B2 (ja) * 1995-11-14 2002-11-05 ミノルタ株式会社 3次元形状データの生成方法及び処理装置
US6639592B1 (en) * 1996-08-02 2003-10-28 Silicon Graphics, Inc. Curve network modeling
JP3039387B2 (ja) * 1996-08-06 2000-05-08 日本電気株式会社 3次元cadにおけるb−スプライン曲線と直線との交点算出装置
JPH11126262A (ja) * 1997-10-23 1999-05-11 Sharp Corp カーブメッシュ生成装置およびカーブメッシュ曲面生成装置
US7742629B2 (en) * 2003-09-25 2010-06-22 Paieon Inc. System and method for three-dimensional reconstruction of a tubular organ
EP1562138B1 (en) * 2004-02-06 2009-08-19 Dassault Systèmes A process for drafting a curve in a computer-aided design system
US7646383B1 (en) * 2004-05-28 2010-01-12 Autodesk, Inc. Methods and apparatuses to effect deformation of computer-generated three-dimensional surfaces
US7408548B2 (en) * 2005-06-30 2008-08-05 Microsoft Corporation Triangulating procedural geometric objects
US7595799B2 (en) * 2005-08-04 2009-09-29 Dassault Systemes Process for creating from a mesh an isotopologic set of parameterized surfaces
US7400323B2 (en) 2005-08-04 2008-07-15 Dassault Systemes Process for creating a parametric surface having a required geometrical continuity
EP1804187B1 (en) * 2005-12-30 2020-09-09 Dassault Systèmes Process for displaying objects in a PLM database and apparatus implementing this process
KR20070097605A (ko) * 2006-03-28 2007-10-05 이문권 곡선을 이용한 컴퓨터 모델링 2
US8259101B2 (en) * 2006-06-07 2012-09-04 Carnegie Mellon University Sketch-based design system, apparatus, and method for the construction and modification of three-dimensional geometry
EP1881458B1 (en) * 2006-07-21 2011-06-08 Dassault Systèmes Computer-implemented process for creating a parametric surface
US20080303810A1 (en) * 2007-06-07 2008-12-11 Seockhoon Bae System and method for calculating loft surfaces using 3d scan data
EP2333683A1 (en) * 2009-11-06 2011-06-15 Dassault Systèmes Method and system for designing an assembly of objects in a system of computer-aided design
EP2333682B1 (en) * 2009-11-06 2020-05-20 Dassault Systèmes Method and system for designing an assembly of objects in a system of computer-aided design
EP2383669B1 (en) * 2010-04-02 2018-07-11 Dassault Systèmes Design of a part modeled by parallel geodesic curves
US8659599B2 (en) * 2010-08-27 2014-02-25 Adobe Systems Incorporated System and method for generating a manifold surface for a 3D model of an object using 3D curves of the object
US10019440B2 (en) * 2011-05-27 2018-07-10 Adobe Systems Incorporated Methods and apparatus for three-dimensional (3D) sketching
EP2600315B1 (en) 2011-11-29 2019-04-10 Dassault Systèmes Creating a surface from a plurality of 3D curves

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050018885A1 (en) 2001-05-31 2005-01-27 Xuesong Chen System and method of anatomical modeling
US20030020710A1 (en) 2001-07-24 2003-01-30 Henning Biermann Method and apparatus for providing sharp features on multiresolution subdivision surfaces
US20060284871A1 (en) 2004-11-27 2006-12-21 Bracco Imaging, S.P.A. Systems and methods for generating and measuring surface lines on mesh surfaces and volume objects and for mesh cutting techniques ("curved measurement")
US20090002376A1 (en) 2007-06-29 2009-01-01 Microsoft Corporation Gradient Domain Editing of Animated Meshes
US20110015910A1 (en) 2009-07-16 2011-01-20 Ran Longmin Method of generating a hex-dominant mesh of a faulted underground medium

Also Published As

Publication number Publication date
EP2600315A1 (en) 2013-06-05
US9171400B2 (en) 2015-10-27
JP6196032B2 (ja) 2017-09-13
CA2797162A1 (en) 2013-05-29
CN103136790B (zh) 2017-08-15
CN103136790A (zh) 2013-06-05
JP2013114694A (ja) 2013-06-10
EP2600315B1 (en) 2019-04-10
KR20130060162A (ko) 2013-06-07
US20130135302A1 (en) 2013-05-30
CA2797162C (en) 2020-06-02

Similar Documents

Publication Publication Date Title
KR102040988B1 (ko) 복수의 3d 곡선들로부터의 표면 생성
CN108228987B (zh) 副本选择
JP6356378B2 (ja) 幾何学的三次元モデルオブジェクトを設計する方法
JP6721332B2 (ja) 3dモデル化されたアセンブリ上で境界ボックスを生成すること
JP6787661B2 (ja) 工作物の機械加工のシミュレート
JP6445255B2 (ja) 3dモデル化オブジェクトの圧縮および展開
JP2019106177A (ja) 3d部品の付加製造
JP6441664B2 (ja) 三次元モデル化オブジェクトの設計
EP3340085B1 (en) B-rep of the result of a two-axis 3d printing process
JP6721333B2 (ja) オブジェクトのセットの視点の選択
JP6437847B2 (ja) 方程式によって制約された物理システムの設計
US9245060B2 (en) Selection of three-dimensional parametric shapes
US11195330B2 (en) Generation of a structured 3D model from a raw mesh
KR102055952B1 (ko) 오브젝트들의 원형 스태거드 패턴의 설계
JP2021131852A (ja) 機械部品の構造シミュレーション
JP7338322B2 (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