KR20190093552A - 그래픽스 프로세싱 유닛(gpu)들을 사용한 고분해능 격자 구조들에 대한 컴퓨터 보조 설계 - Google Patents
그래픽스 프로세싱 유닛(gpu)들을 사용한 고분해능 격자 구조들에 대한 컴퓨터 보조 설계 Download PDFInfo
- Publication number
- KR20190093552A KR20190093552A KR1020197007108A KR20197007108A KR20190093552A KR 20190093552 A KR20190093552 A KR 20190093552A KR 1020197007108 A KR1020197007108 A KR 1020197007108A KR 20197007108 A KR20197007108 A KR 20197007108A KR 20190093552 A KR20190093552 A KR 20190093552A
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- gpu
- processing
- computer
- high resolution
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 91
- 238000011960 computer-aided design Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 52
- 238000004891 communication Methods 0.000 claims description 20
- 238000004519 manufacturing process Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 17
- 239000000654 additive Substances 0.000 claims description 11
- 230000000996 additive effect Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000399 orthopedic effect Effects 0.000 description 1
- 238000010248 power generation Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G06F17/50—
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B29—WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
- B29C—SHAPING OR JOINING OF PLASTICS; SHAPING OF MATERIAL IN A PLASTIC STATE, NOT OTHERWISE PROVIDED FOR; AFTER-TREATMENT OF THE SHAPED PRODUCTS, e.g. REPAIRING
- B29C64/00—Additive manufacturing, i.e. manufacturing of three-dimensional [3D] objects by additive deposition, additive agglomeration or additive layering, e.g. by 3D printing, stereolithography or selective laser sintering
- B29C64/30—Auxiliary operations or equipment
- B29C64/386—Data acquisition or data processing for additive manufacturing
- B29C64/393—Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y10/00—Processes of additive manufacturing
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B33—ADDITIVE MANUFACTURING TECHNOLOGY
- B33Y—ADDITIVE MANUFACTURING, i.e. MANUFACTURING OF THREE-DIMENSIONAL [3-D] OBJECTS BY ADDITIVE DEPOSITION, ADDITIVE AGGLOMERATION OR ADDITIVE LAYERING, e.g. BY 3-D PRINTING, STEREOLITHOGRAPHY OR SELECTIVE LASER SINTERING
- B33Y50/00—Data acquisition or data processing for additive manufacturing
- B33Y50/02—Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/10—Additive manufacturing, e.g. 3D printing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Chemical & Material Sciences (AREA)
- Materials Engineering (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- Manufacturing & Machinery (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mechanical Engineering (AREA)
- Optics & Photonics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Image Generation (AREA)
- Architecture (AREA)
Abstract
컴퓨터 보조 설계 애플리케이션과 관련된 고분해능 격자의 정보를 프로세싱하기 위한 시스템 및 방법은, 제1 컴퓨터 프로세서에서, 부품 표면들을 테셀레이팅하고 그리고 이를 그래픽스 프로세싱 유닛(GPU)과 연관된 메모리에 복사하는 단계를 포함한다. 로드들에 기반하는 추가의 프로세싱은 GPU와 연관된 프로세서 상에서 수행되며, 프로세싱 태스크들은 세분되고, GPU의 복수의 프로세싱 코어들에서 병렬로 수행된다. 각각의 세분된 프로세싱 태스크는 서브태스크에 할당된 별개의 프로세싱 스레드에서 수행될 수 있다. GPU 프로세서는 추가의 프로세싱에 기반하여 출력을 생성하고, 출력 정보를 제1 컴퓨터 프로세서에 복사한다. 제1 컴퓨터 프로세서는 GPU에 의해 제공된 출력에 추가의 프로세싱을 수행할 수 있다.
Description
[0001]
본 출원은 오브젝트(object)들의 설계 및 제조에 관한 것이다. 더 구체적으로, 본 출원은, 적층 제조(additive manufacturing)를 사용한 오브젝트들의 컴퓨터 보조 설계(computer aided design) 및 제조에 관한 것이다.
[0002]
격자 구조(lattice structure)들은, 고체 볼륨(solid volume)을 근사(approximate)하는, 그리드형 패턴(grid-like pattern)으로 스트럿형 형상(strut-like shape)들의 반복되는 어레인지먼트(arrangement)들이다. 격자들로부터 생성되는 제품들은 더 낮은 질량으로 높은 구조적 강도의 장점들을 나타내며, 향상된 냉각, 진동/음향/충격 에너지 감쇠(energy damping), 정형외과적 임플란트 생체-통합(orthopedic implant bio-integration)을 나타낸다. 따라서, 이러한 제품들은, 항공우주, 자동차, 발전(power generation), 산업 기계 및 헬스케어(healthcare)에 이르는 여러 애플리케이션(application)들에 걸쳐 매우 바람직하다. 1 입방 밀리미터(cubic millimeter)(mm3)의 격자 분해능(lattice resolution)을 갖는 대략 1 입방 미터(cubic meter)(m3)의 볼륨을 갖는 부품(part)은 대략 10억 개의 격자 스트럿(lattice strut)들을 포함할 것이다. 수억 내지 수십억 개의 격자 스트럿들을 포함하는 그러한 고분해능 격자 구조들의 컴퓨터 보조 설계(CAD; computer aided design) 모델링(modeling)은 계산적으로 극히 까다롭다. 그러한 고분해능 격자들을 이용한 인터랙티브 모델링(interactive modeling)을 가능하게 하는 새로운 방법들이 필요하다.
[0003]
상업적 CAD 시스템(system)들에서의 격자 모델링은 통상적으로, 네이티브(native) 경계 표현(BRep; boundary representation) CAD를 기능적으로 사용하여 수행되었다. 그러한 방법들은 계산적으로 까다롭고 노동 집약적이다. 격자 모델링을 위한 독립적인 상업적 애플리케이션들이 존재하지만, CAD 시스템들과 통합되지 않아서, 통상적인 설계 프로세스(design process)들에서의 그들의 사용이 제한된다. 다각형 기반 모델링, 암시적 표면 기반 모델링, 및 절차적 모델링 기법들이 학술 문헌에서 제시되었다. 이러한 기법들은, 수백만 개의 또는 심지어 수십억 개의 격자 스트럿들 또는 엘리먼트(element)들을 포함하는 고분해능 격자들을 처리하지 못한다.
[0004]
아래에서 설명되는 실시예들의 양상들에 따르면, 컴퓨터 보조 설계(CAD) 애플리케이션과 연관된 고분해능 격자에서 정보를 프로세싱(processing)하는 컴퓨터화된 방법(computerized method)은, 호스트 컴퓨팅 디바이스(host computing device)의 제1 프로세서(processor)에서, 부품 표면(part surface)들을 나타내는 복수의 꼭짓점들(vertices)을 결정하는 단계, 및 복수의 꼭짓점들을 그래픽스 프로세싱 유닛(GPU; graphics processing unit)의 제2 프로세서와 연관된 메모리(memory)에 전송하는 단계를 포함한다. 제2 프로세서는 격자 내의 로드(rod)들의 세트(set)들을 따라 배향된 복수의 광선(ray)들과 관련된 프로세싱 태스크(processing task)들을 세분하고, 세분된 프로세싱 태스크들을 병렬로 프로세싱(process)한다.
[0005]
본 개시내용의 실시예들의 양상들에 따르면, 제2 프로세서는, 세분된 프로세싱 태스크들의 프로세싱으로부터 출력 정보를 생성하고; 출력 정보를 호스트 컴퓨팅 디바이스의 제1 프로세서와 연관된 메모리에 복사(copy)한다.
[0006]
일부 실시예들의 양상들에 따르면, 출력 정보는 고분해능 격자에 의해 표현되는 오브젝트의 질량 특성들과 관련된다.
[0007]
일부 실시예들의 양상들에 따르면, 출력 정보는 고분해능 격자에 의해 표현되는 오브젝트의 슬라이스(slice)를 생성하는 것과 관련된다.
[0008]
일부 실시예들의 양상들에 따르면, 제1 프로세서는, 제2 프로세서에 의해 생성된 출력 정보에 추가의 프로세싱을 수행한다.
[0009]
일부 실시예들의 양상들에 따르면, 추가의 프로세싱은 적층 제조 프로세스의 툴(tool)을 위한 툴 경로들을 컴퓨팅(compute)한다.
[0010]
일부 실시예들의 양상들에 따르면, 제1 프로세서는 툴 경로들을 G-코드(code)로서 컴퓨팅하도록 구성된다.
[0011]
일부 실시예들의 양상들에 따르면, 제1 프로세서는 호스트 컴퓨팅 디바이스의 중앙 프로세싱 유닛(central processing unit)이다.
[0012]
일부 실시예들의 양상들에 따르면, GPU 컴퓨터 프로세서는 복수의 프로세싱 코어(processing core)들을 갖는 GPU 프로세서이다.
[0013]
일부 실시예들의 양상들에 따르면, 제2 컴퓨터 프로세서는 복수의 프로세싱 스레드(processing thread)들을 통해 병렬로 복수의 프로세싱 코어들에서 정보를 프로세싱(process)하도록 구성된다.
[0014]
아래에서 설명되는 실시예들의 양상들에 따른 시스템은, 제1 컴퓨터 프로세서, 제1 컴퓨터 프로세서와 통신하는 제1 메모리, 및 그래픽스 프로세싱 유닛(GPU)을 포함하며, GPU는, 복수의 프로세싱 코어들을 포함하는 GPU 프로세서 및 GPU 프로세서와 통신하는 메모리를 포함한다. 컴퓨터 실행가능 명령들의 세트는 제1 메모리에 저장되며, 제1 컴퓨터 프로세서에 의해 실행될 때, 제1 컴퓨터 프로세서로 하여금, 고분해능 격자가 포함되는 부품 표면들을 나타내는 복수의 꼭짓점들을 결정하게 하고, 복수의 꼭짓점들을 제2 프로세서와 연관된 메모리에 전송하게 하며, 제2 프로세서는 그래픽스 프로세싱 유닛(GPU)의 프로세서이다.
컴퓨터 실행가능 명령들의 세트는 추가로, GPU 프로세서 상에서 실행가능하며, GPU 프로세서 상에서 실행될 때, GPU 프로세서로 하여금, 격자의 로드들의 세트들을 따라 배향된 복수의 광선들과 관련된 프로세싱 태스크들을 세분하게 하고, 그리고 세분된 프로세싱 태스크들을 병렬로 프로세싱하게 한다.
[0015]
일부 실시예들의 양상들에 따르면, 컴퓨터 실행가능 명령들의 세트는 추가로, GPU 프로세서로 하여금, 세분된 프로세싱 태스크들의 프로세싱으로부터 출력 정보를 생성하는 단계 및 출력 정보를 제1 컴퓨터 프로세서와 연관된 제1 메모리에 복사(copy)하는 단계를 수행하게 한다.
[0016]
일부 실시예들의 양상들에 따르면, 출력 정보는 고분해능 격자에 의해 표현되는 오브젝트의 질량 특성들과 관련된다.
[0017]
일부 실시예들의 양상들에 따르면, 출력 정보는 고분해능 격자에 의해 표현되는 오브젝트의 슬라이스를 생성하는 것과 관련된다.
[0018]
일부 실시예들의 양상들에 따르면, 제1 컴퓨터 프로세서는, GPU 프로세서에 의해 생성된 출력 정보에 추가의 프로세싱을 수행한다.
[0019]
일부 실시예들의 양상들에 따르면, 추가의 프로세싱은 적층 제조 프로세스의 툴을 위한 툴 경로들을 컴퓨팅한다.
[0020]
일부 실시예들의 양상들에 따르면, 제1 컴퓨터 프로세서는 툴 경로들을 G-코드로서 컴퓨팅하도록 구성된다.
[0021]
다른 실시예들에서, 제1 프로세서는 호스트 컴퓨팅 디바이스의 중앙 프로세싱 유닛이다.
[0022]
일부 실시예들의 양상들에 따르면, 컴퓨터 실행가능 명령들의 세트는, 프로세서에 의해 실행될 때, 제1 컴퓨터 프로세서로 하여금, 부품 표면들의 삼각형 메시 표현(triangle mesh representation)을 생성하기 위해 부품 표면들을 테셀레이팅(tessellate)하게 하고, 삼각형 메시의 삼각형들의 꼭짓점들을 GPU의 메모리에 복사(copy)하게 하는 명령들을 더 포함한다. 명령들은 추가로, GPU 프로세서로 하여금, 격자 로드 배향들과 정렬된 광선들의 세트를 인스턴스화(instantiate)하게 하고, GPU의 복수의 프로세싱 스레드들 중 하나를 광선들의 세트의 각각의 광선에 할당하게 하고, 할당된 프로세싱 스레드들을 복수의 스레드 블록(thread block)들에 고르게 분산시키게 하고, 부품 표면들 내에 놓이는 각각의 광선의 부분들을 컴퓨팅하게 하고, 그러한 부분들을 따라 로드들 및 구(sphere)들의 질량 특성들을 컴퓨팅하게 하고, 그리고 그 결과를 제1 컴퓨터 프로세서와 통신하는 메모리에 축적하게 한다.
[0023]
일부 실시예들의 양상들에 따르면, 컴퓨터 실행가능 명령들의 세트는, 프로세서에 의해 실행될 때, 제1 컴퓨터 프로세서로 하여금, 부품 표면들의 삼각형 메시 표현을 생성하기 위해 부품 표면들을 테셀레이팅하게 하고, 삼각형 메시의 삼각형들의 꼭짓점들을 GPU의 메모리에 복사하게 하는 명령들을 더 포함한다. 명령들은 추가로, GPU 프로세서로 하여금, 제1 슬라이싱 평면(slicing plane)과 교차하고 그리고 부품 표면들 내측에 있는, 격자 구조의 로드 세그먼트(rod segment)들의 세트를 결정하게 하고, GPU의 복수의 프로세싱 스레드들 중 하나를 제1 슬라이싱 평면과 교차하는 로드 세그먼트들의 세트의 각각의 로드에 할당하게 하고, 할당된 프로세싱 스레드들을 복수의 스레드 블록들에 고르게 분산시키게 하고, 슬라이스 평면의 국부적 이웃(local neighborhood)에서의 각각의 로드 세그먼트의 삼각형 메시 표현에 기반하여 제1 슬라이싱 평면과 교차하는 각각의 로드 세그먼트에 대한 교차 곡선(intersection curve)을 컴퓨팅하게 하고, 그리고 컴퓨팅된(computed) 교차 곡선들을 제1 컴퓨터 프로세서와 통신하는 메모리에 복사하게 한다. 실행가능 명령들은, 제1 컴퓨터 프로세서로 하여금, 에지 곡선(edge curve)들을 추출하기 위해 슬라이싱 평면 상의 교차 곡선들 각각의 2차원 부울 유니온(Boolean union)들을 컴퓨팅하게 하는 명령들을 더 포함한다.
[0024]
다른 대표 실시예에서, 고분해능 격자 구조에 기반하여 적층 제조를 사용하여 부품을 제조하기 위한 방법은, 제1 컴퓨터 프로세서에서, 부품의 일시적 삼각형 메시 표현(temporary triangle mesh representation)을 생성하기 위해 부품 표면들을 테셀레이팅(tessellating)하는 단계 및 삼각형 메시의 삼각형들의 꼭짓점들을 그래픽스 프로세싱 유닛의 제2 프로세서에 전송하는 단계를 포함한다. GPU에서, 삼각형 메시의 복수의 로드 세그먼트들에 대한 교차 곡선들이 계산되며, 복수의 로드 세그먼트들은 오브젝트의 제1 슬라이싱 평면과 교차하고, 복수의 로드 세그먼트들 각각은 GPU 프로세서의 별개의 스레드에서 프로세싱된다(processed). 계산된 교차 곡선들은 제1 컴퓨터 프로세서에 전송되고; 그리고 제1 컴퓨터 프로세서는, 제1 슬라이싱 평면의 교차 곡선들에 대해 2차원 부울 유니온들을 수행하고, 제1 슬라이싱 평면 상의 툴 경로들을 컴퓨팅하고, 그리고 컴퓨터화된 툴(computerized tool)에 대한 입력을 위한 G-코드를 생성한다.
[0025]
본 발명의 전술한 양상들 및 다른 양상들은, 첨부 도면들과 관련하여 읽혀질 때, 다음의 상세한 설명으로부터 최상으로 이해된다. 본 발명을 예시하는 목적을 위해, 현재 바람직한 실시예들이 도면들에 도시되지만, 본 발명은 개시된 특정 수단들로 제한되지 않는다는 것이 이해된다. 도면들에는 다음의 도면들이 포함된다:
[0026] 도 1은 본 개시내용의 실시예들의 양상들에 따른, 로드들, 및 로드들 사이의 구형 연결부(spherical connector)들을 포함하는 격자 구조의 예시이다.
[0027] 도 2는 본 개시내용의 실시예들의 양상들에 따른, 오브젝트의 질량 특성들(예컨대, 격자 표현의 질량, 볼륨, 표면적)을 계산하는 프로세스를 예시하는 프로세스 흐름도이다.
[0028] 도 3은 본 개시내용의 실시예들의 양상들에 따른, 고분해능 격자 구조로 표현되는 3차원 오브젝트를 슬라이싱(slicing)하는 방법을 예시하는 프로세스 흐름도이다.
[0029] 도 4는 본 개시내용의 실시예들의 양상들에 따른, GPU의 병렬 컴퓨팅 파워(parallel computing power)를 레버리징(leveraging)할 수 있는 컴퓨팅 시스템의 블록도(block diagram)이다.
[0030] 도 5는 본 개시내용의 실시예들의 양상들을 수행할 수 있는 컴퓨팅 시스템의 블록도이다.
[0026] 도 1은 본 개시내용의 실시예들의 양상들에 따른, 로드들, 및 로드들 사이의 구형 연결부(spherical connector)들을 포함하는 격자 구조의 예시이다.
[0027] 도 2는 본 개시내용의 실시예들의 양상들에 따른, 오브젝트의 질량 특성들(예컨대, 격자 표현의 질량, 볼륨, 표면적)을 계산하는 프로세스를 예시하는 프로세스 흐름도이다.
[0028] 도 3은 본 개시내용의 실시예들의 양상들에 따른, 고분해능 격자 구조로 표현되는 3차원 오브젝트를 슬라이싱(slicing)하는 방법을 예시하는 프로세스 흐름도이다.
[0029] 도 4는 본 개시내용의 실시예들의 양상들에 따른, GPU의 병렬 컴퓨팅 파워(parallel computing power)를 레버리징(leveraging)할 수 있는 컴퓨팅 시스템의 블록도(block diagram)이다.
[0030] 도 5는 본 개시내용의 실시예들의 양상들을 수행할 수 있는 컴퓨팅 시스템의 블록도이다.
[0031]
본 발명의 다양한 양상들은, 로드 접합부들에서 선택적 구형 볼(spherical ball)들을 갖는 일반화된 원통형 로드들의 어레인지먼트에 의해 정의되는 로드 격자 표현에 관한 것이다. 로드들의 형상들 및 단면 크기들은 일정하거나 또는 일부 기능에 의해 정의될 수 있다. 로드 어레인지먼트들은, 축-정렬형(axis-aligned), 원통형(cylindrical) 또는 구형(spherical)일 수 있는 좌표계에 따라 정렬될 수 있다.
[0032]
도 1은 로드들의 교차점들에서의 구(sphere)들 및 로드들의 세트에 의해 표현되는 오브젝트 메시(object mesh)의 예들을 예시한다. 로드들은 기하학적 형상들을 정의하도록 배열될 수 있다. 기하학적 형상들은 파형 삼각형(corrugated triangle)들(예 (a))을 포함할 수 있거나 또는 입방체 형상들(예 (b))이 사용될 수 있다.
[0033]
본 발명의 양상들은, 그래픽스 프로세싱 유닛(GPU)들의 방대한 병렬 컴퓨팅 파워를 레버리징(leverage)하는 알고리즘(algorithm)들을 사용하여, 고분해능 격자 구조들을 갖는 부품들을 설계하기 위한 새로운 접근법에 관한 것이다. 격자 그 자체는, 로드 밀도(주어진 방향에서의 로드들의 수), 로드 레이아웃 좌표계(rod layout coordinate system)(축-정렬형, 원통형 등), 및 로드 두께들과 같은, 작은 세트의 파라미터(parameter)들을 이용하여 정의된다. GPU들을 사용하여 격자들을 갖는 부품들을 설계 및 제조하기 위해 요구되는 대표적이고 중요한 모델링 동작들을 위한 알고리즘들이 제시된다. 특히, 질량 특성들 및 슬라이싱을 컴퓨팅하기 위한 GPU 방법들이 제시된다.
[0034]
GPU들의 프로세싱 능력들은, 특히 CUDA 및 OpenCL과 같은 인터페이스(interface)들을 통해 액세스될(accessed) 수 있다. 컴퓨팅 애플리케이션은, GPU 인터페이스에 대해 특정한 애플리케이션 프로그래밍 인터페이스(API; Application Programming Interface)에 따라 프로그래밍될(programmed) 수 있으며, 이는, 원하는 프로그래밍된 기능을 GPU의 병렬 컴퓨팅 아키텍처(parallel computing architecture)에 제공한다. 종래의 CPU가 다수의 프로세싱 코어들(예컨대, 1 내지 12 개의 코어들)을 가질 수 있지만, GPU는 수백 개의 더 작은 프로세싱 코어들을 포함할 수 있다. 이는, 큰 프로그래밍 태스크들이 세분되어, 다수의 병렬 프로세싱 스레드들 사이에서 분산되는 것을 가능하게 하며, 그 각각은 프로세싱 코어들 중 하나에서 프로세싱된다.
[0035]
모든 격자 로드들의 표면들을 생성하는 대신에, 본 개시내용의 양상들은, 병렬 방식으로 로드들의 감소된 차수 또는 국부적으로 인스턴스화된(instantiated) 표현들을 사용하여, 요구될 때, 소정의 관련 정보를 컴퓨팅하도록 구성된다.
[0036]
예컨대, 격자를 갖는 부품의 질량 특성들이 요구될 때, 대응하는 알고리즘은, 격자의 인스턴스화된 표현을 사용함이 없이, 질량 특성 값들을 컴퓨팅하여 사용자에게 제시하기 위해, GPU들을 활용하여 인보크될(invoked) 수 있다. GPU 상에서의 질량 특성 계산은, 병렬 방식으로 개별적인 로드들의 질량 특성들을 독립적으로 컴퓨팅하고, 이어서 개별적인 값들을 함께 어그리게이팅(aggregating)함으로써, 완수된다.
[0037]
도 2는 본 개시내용의 실시예들의 양상들에 따른, GPU의 도움으로 부품 내의 격자의 질량 특성들을 컴퓨팅하기 위한 프로세스 흐름도이다. 첫 번째로, 호스트 CPU 상에서 일시적 메시 표현을 생성하기 위해, 부품 표면들이 테셀레이팅된다(tessellated)(201). 이어서, 메시의 표면을 나타내는 결과적인 삼각형들의 꼭짓점들은 GPU와 연관된 메모리에 복사된다(203). 광선 시작점들은 CPU에서 수행되는 프로세싱을 이용하여 격자 로드 배향들을 따라 샘플링된다(sampled)(205). 이어서, 샘플링된 광선 시작점들은 GPU의 메모리에 복사된다(207).
[0038]
병렬 방식으로, GPU 프로세싱 코어들은, 각각의 광선이, 오브젝트 메시의 표면을 나타내는 꼭짓점들에 의해 정의된 삼각형들과 교차하는 교차점들을 컴퓨팅한다. 각각의 광선은 연관된 프로세싱 스레드에서 프로세싱된다(209). 각각의 스레드는 단일 광선과 모든 삼각형들의 교차점들을 체크(check)한다. 시작점들은 스레드 블록들 내로 고르게 분산된다. 대안적으로, 스레드는 단일 광선과 단일 삼각형의 교차를 수행하고, 스레드는 모든 각각의 광선-삼각형 쌍에 대해 인스턴스화된다. 교차점들(광선을 따르는 거리)은 호스트 CPU와 통신하는 메모리 상에 복사된다(211). 광선들 각각에 대한 교차점들이 컴퓨팅되고 호스트 CPU에 다시(back) 복사될 때, 교차점들은 광선 방향을 따라 분류될(sorted) 수 있고, 교번하는(alternative) 연속적 교차점들 사이의 로드들의 질량 특성들이 계산된다(213).
[0039]
격자를 렌더링(rendering)하는 것은, 부품의 형태에 대한 핵심 시각적 통찰력(key visual insight)을 설계자에게 제공한다. 그러나, 고분해능 격자들의 경우, 모든 로드들이 서로 매우 가까이 있기 때문에, 모든 로드들을 시각화할 필요가 없을 수 있다. 따라서, 격자의 존재를 표시하기 위해, 뷰잉 볼륨(viewing volume) 내의 격자의 추상적 표현이 보여질 수 있다.
[0040]
적층 제조 동안, 오브젝트는 슬라이스들로 분할된다. 이어서, 각각의 슬라이스는, 슬라이스에 포함된 구조들을 생성하는 3D 프린터(printer) 또는 다른 제조 수단을 통해 제조된다. 일단 슬라이스가 완성되면, 3D 프린터는 인접한 슬라이스를 구성하기 시작할 것이다. 슬라이스들은, 전체 오브젝트가 제조될 때까지, 순차적으로 완성된다.
[0041]
격자를 갖는 부품을 제조하기 위해, 첫 번째 단계는, 슬라이스 평면들과 격자의 교차점들을 컴퓨팅하는 것이며, 각각의 슬라이스는 증착될 또는 형성될 재료의 층을 나타낸다.
[0042]
도 3은, 다음과 같이 동작을 병렬화함으로써, 단일 슬라이스를 효율적이고 신속하게 컴퓨팅하기 위해 GPU들이 사용될 수 있는, 본 개시내용의 실시예들의 양상들에 따른 프로세스 흐름도이다:
[0043]
호스트 CPU 상에서 일시적 삼각형 메시 표현을 생성하기 위해, 부품 표면들이 테셀레이팅된다(301). 오브젝트 표면을 나타내는 삼각형들의 꼭짓점들은 GPU와 연관된 메모리에 복사된다(303). 부품 표면들에 의해 경계가 지어지는(bounded) 구역 내에 있고 그리고 관심 슬라이싱 평면과 교차하는 로드 세그먼트들의 연결된 세트가 결정되고, 스레드는 모든 각각의 로드 세그먼트에 대해 인스턴스화된다(305). 로드의 종단점들이 평면의 대향 측들 상에 있는 경우 또는 로드의 종단점들 중 하나가 로드 반경보다 슬라이싱 평면에 더 가까운 경우, 로드 세그먼트는 슬라이스 평면과 교차하는 것으로 간주된다. 로드 세그먼트들에 대한 스레드들은 스레드 블록들 내로 고르게 분산될 수 있다.
[0044]
각각의 교차하는 세그먼트에 대해, 슬라이싱 평면의 국부적 이웃의 로드 세그먼트의 기하학적 표현이 인스턴스화된다(307). 이어서, 평면과 로드의 교차 곡선이 GPU 상에서 컴퓨팅된다(309). 스레드는 모든 각각의 세그먼트에 대해 인스턴스화되고, 스레드 블록들 내로 고르게 분산된다. 각각의 로드 세그먼트에 대한 교차 곡선은 병렬 프로세싱 스레드들을 사용하여 컴퓨팅되며, 여기서, 각각의 스레드는 로드 세그먼트들 중 하나에 할당된다(309). 교차 곡선들의 프로세싱은 GPU의 프로세싱 코어들 상에서 병렬로 수행된다. 일단 GPU 상에서 계산되면, 슬라이싱 평면과 교차하는 모든 로드 세그먼트들에 대한 교차 곡선들은 호스트 CPU와 연관된 메모리에 복사된다(311). 호스트 컴퓨터 CPU에서, 슬라이싱 평면의 모든 교차 곡선들의 2D 부울 유니온들이 수행되고, 슬라이스를 제조하기 위한 툴 경로들을 컴퓨팅하는 데 사용된다(313). 툴 경로들은 적층 제조와 같은 산업 프로세스에서 툴을 제어하기 위한 G-코드 명령들로서 인스턴스화될 수 있다.
[0045]
도 4는 GPU의 병렬 컴퓨팅 파워를 레버리징함으로써 적층 제조 사전-프로세싱(additive manufacturing pre-processing)을 수행하기에 적절한 시스템의 하이 레벨 블록도(high level block diagram)이다. 컴퓨팅 디바이스(401)는 호스트 중앙 프로세싱 유닛(CPU; central processing unit)(403)을 포함한다. CPU(403)는 통신 버스(communications bus)(407)를 통해 메모리(405)와 통신한다. 통신 버스(407)는 추가로, GPU(410)를 프로세서(403) 및 메모리(405)에 연결한다. GPU(410)는, 병렬 프로세싱 스레드(parallel processing thread)들로 데이터(data)를 프로세싱할 수 있는 수백 개의 프로세싱 코어들을 포함할 수 있는 GPU 프로세서(411)를 포함한다. GPU(410)는 GPU 프로세서(411)와 통신하는 온보드 메모리(onboard memory)(413)를 포함할 수 있다. 데이터는 CPU(403)에서 프로세싱될 수 있고, 프로세싱을 위해 통신 버스(407)를 따라 GPU(410)에 송신될 수 있다. 데이터는, 병렬 프로세싱 스레드들 사이에서 분산될 수 있는 더 작은 태스크들로 세분될 수 있다. 본 개시내용에서 설명된 알고리즘들은, 적층 제조와 관련된 특성들을 계산하기 위한 고분해능 3D 오브젝트 메시들의 효율적인 프로세싱을 가능하게 한다. 컴퓨팅 디바이스(401)는 도 4에 도시된 컴포넌트(component)들 이외의 컴포넌트들을 포함할 수 있는데, 이러한 컴포넌트들은 명확성을 위해 그리고 본원에서 설명되는 실시예들의 더 양호한 이해를 제공하기 위해 생략되었다.
[0046]
병렬로 다수의 동작들을 프로세싱하는 GPU(410)의 능력은, 컴퓨터 보조 설계에서, 격자에 모든 로드들에 대한 표면들을 생성하기보다는 메시 격자의 관련 부분들만을 고려하는 장점을 제공한다. 고도로 병렬적 방식으로 로드들의 감소된 차수 또는 국부적으로 인스턴스화된 표현들을 사용하여, 요구될 때, 관련 정보만을 컴퓨팅(computing)하는 것은, 그렇지 않으면, 종래의 CPU들 상에서 실행되는 종래의 CAD 애플리케이션들에 의해서는 실행가능하지 않을 수 있는 매우 고분해능의 격자 구조들을 프로세싱하는 것을 가능하게 한다.
[0047]
도 5는 본 발명의 실시예들이 구현될 수 있는 예시적 컴퓨팅 환경(500)을 예시한다. 컴퓨터들 및 컴퓨팅 환경들, 이를테면, 컴퓨터 시스템(510) 및 컴퓨팅 환경(500)은 당업자들에게 알려져 있으며, 따라서 여기서 간단히 설명된다.
[0048]
도 5에 도시된 바와 같이, 컴퓨터 시스템(510)은 시스템 버스(521)와 같은 통신 메커니즘(communication mechanism) 또는 컴퓨터 시스템(510) 내에서 정보를 통신하기 위한 다른 통신 메커니즘을 포함할 수 있다. 컴퓨터 시스템(510)은, 시스템 버스(521)와 커플링된(coupled), 정보를 프로세싱하기 위한 하나 이상의 프로세서들(520)을 더 포함한다.
[0049]
프로세서들(520)은 하나 이상의 중앙 프로세싱 유닛(CPU)들, 그래픽 프로세싱 유닛(GPU; graphical processing unit)들, 또는 당해 기술분야에서 알려진 임의의 다른 프로세서를 포함할 수 있다. 더 일반적으로, 본원에서 사용되는 바와 같은 프로세서는, 태스크들을 수행하기 위해, 컴퓨터 판독가능 매체 상에 저장된 머신-판독가능 명령(machine-readable instruction)들을 실행하기 위한 디바이스이고, 하드웨어(hardware) 및 펌웨어(firmware) 중 임의의 하나 또는 하드웨어와 펌웨어의 조합을 포함할 수 있다. 프로세서는 또한, 태스크들을 수행하기 위해 실행가능한 머신-판독가능 명령들을 저장하는 메모리를 포함할 수 있다. 프로세서는, 실행가능 프로시저(executable procedure) 또는 정보 디바이스에 의한 사용을 위해 정보를 조작, 분석, 수정, 변환 또는 송신함으로써, 그리고/또는 정보를 출력 디바이스로 라우팅(routing)함으로써, 정보에 작용한다. 프로세서는, 예컨대 컴퓨터, 제어기 또는 마이크로프로세서(microprocessor)의 능력들을 사용하거나 또는 포함할 수 있고, 범용 컴퓨터에 의해 수행되지 않는 특수 목적 기능들을 수행하기 위해 실행가능한 명령들을 사용하여 컨디셔닝될(conditioned) 수 있다. 프로세서는 임의의 다른 프로세서와 (전기적으로 그리고/또는 실행가능 컴포넌트들을 포함하여) 커플링되어서, 프로세서와 임의의 다른 프로세서 사이의 상호작용 및/또는 통신을 가능하게 할 수 있다. 사용자 인터페이스 프로세서 또는 생성기는, 디스플레이 이미지(display image)들 또는 그 부분들을 생성하기 위한 전자 회로 또는 소프트웨어(software) 또는 그 둘의 조합을 포함하는 알려진 엘리먼트이다. 사용자 인터페이스는, 사용자가 프로세서 또는 다른 디바이스와 상호작용하는 것을 가능하게 하는 하나 이상의 디스플레이 이미지들을 포함한다.
[0050]
도 5를 계속 참조하면, 컴퓨터 시스템(510)은 또한, 시스템 버스(521)에 커플링된, 프로세서들(520)에 의해 실행될 명령들 및 정보를 저장하기 위한 시스템 메모리(530)를 포함한다. 시스템 메모리(530)는 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 판독가능 저장 매체들, 이를테면, 판독 전용 메모리(ROM; read only memory)(531) 및/또는 랜덤 액세스 메모리(RAM; random access memory)(532)를 포함할 수 있다. RAM(532)은 다른 동적 저장 디바이스(들)(예컨대, 동적 RAM, 정적 RAM, 및 동기식 DRAM)를 포함할 수 있다. ROM(531)은 다른 정적 저장 디바이스(들)(예컨대, 프로그램가능 ROM(programmable ROM), 소거가능 PROM, 및 전기적 소거가능 PROM)를 포함할 수 있다. 부가하여, 시스템 메모리(530)는, 프로세서들(520)에 의한 명령들의 실행 동안에 일시적 변수들 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 이를테면, 시동 동안, 컴퓨터 시스템(510) 내의 엘리먼트들 사이에서 정보를 전달하는 것을 돕는 기본 루틴(basic routine)들을 포함하는 기본 입력/출력 시스템(533)(BIOS; basic input/output system)은 ROM(531)에 저장될 수 있다. RAM(532)은, 프로세서들(520)에 의해 즉각적으로 액세스가능(accessible)하고 그리고/또는 프로세서들(520)에 의해 현재 동작되고 있는 데이터 및/또는 프로그램 모듈(program module)들을 포함할 수 있다. 시스템 메모리(530)는 부가적으로, 예컨대, 운영 체제(operating system)(534), 애플리케이션 프로그램들(535), 다른 프로그램 모듈들(536) 및 프로그램 데이터(537)를 포함할 수 있다.
[0051]
컴퓨터 시스템(510)은 또한, 정보 및 명령들을 저장하기 위한 하나 이상의 저장 디바이스들, 이를테면, 자기 하드 디스크(magnetic hard disk)(541) 및 제거가능 매체 드라이브(removable media drive)(542)(예컨대, 플로피 디스크 드라이브(floppy disk drive), 콤팩트 디스크 드라이브(compact disc drive), 테이프 드라이브(tape drive), 및/또는 고체 상태 드라이브)를 제어하기 위한, 시스템 버스(521)에 커플링된 디스크 제어기(540)를 포함한다. 저장 디바이스들은, 적절한 디바이스 인터페이스(예컨대, 소형 컴퓨터 시스템 인터페이스(SCSI; small computer system interface), 통합 디바이스 전자기기(IDE; integrated device electronics), 범용 직렬 버스(USB; Universal Serial Bus), 또는 파이어와이어(FireWire))를 사용하여 컴퓨터 시스템(510)에 추가될 수 있다.
[0052]
컴퓨터 시스템(510)은 또한, 정보를 컴퓨터 사용자에게 디스플레이(displaying)하기 위한 디스플레이(display) 또는 모니터(monitor)(566), 이를테면, 음극선관(CRT; cathode ray tube) 또는 액정 디스플레이(LCD; liquid crystal display)를 제어하기 위한, 시스템 버스(521)에 커플링된 디스플레이 제어기(565)를 포함할 수 있다. 컴퓨터 시스템은, 컴퓨터 사용자와 상호작용하고 정보를 프로세서들(520)에 제공하기 위한 입력 인터페이스(560) 및 하나 이상의 입력 디바이스들, 이를테면, 키보드(keyboard)(562) 및 포인팅 디바이스(pointing device)(561)를 포함한다. 포인팅 디바이스(561)는, 예컨대, 지시 정보 및 커맨드 선택(command selection)들을 프로세서(520)에 통신하고 디스플레이(566) 상에서의 커서(cursor) 이동을 제어하기 위한 마우스(mouse), 라이트 펜(light pen), 트랙볼(trackball), 또는 포인팅 스틱(pointing stick)일 수 있다. 디스플레이(566)는, 입력이 포인팅 디바이스(561)에 의한 지시 정보 및 커맨드 선택들의 통신을 보충하거나 또는 대체하는 것을 가능하게 하는 터치 스크린 인터페이스(touch screen interface)를 제공할 수 있다. 일부 실시예들에서, 사용자가 착용가능한 증강 현실 디바이스(567)는, 사용자가 물리적 세계 및 가상 세계 둘 모두와 상호작용하는 것을 가능하게 하는 입력/출력 기능을 제공할 수 있다. 증강 현실 디바이스(567)는 디스플레이 제어기(565) 및 사용자 입력 인터페이스(560)와 통신하여, 사용자가 디스플레이 제어기(565)에 의해 증강 현실 디바이스(567)에서 생성되는 가상 아이템(virtual item)들과 상호작용하는 것을 가능하게 한다. 사용자는 또한, 제스처(gesture)들을 제공할 수 있으며, 제스처들은 증강 현실 디바이스(567)에 의해 검출되고 입력 신호들로서 사용자 입력 인터페이스(560)에 송신된다.
[0053]
컴퓨터 시스템(510)은, 프로세서들(520)이 메모리, 이를테면, 시스템 메모리(530)에 포함된 하나 이상의 명령들의 하나 이상의 시퀀스(sequence)들을 실행하는 것에 대한 응답으로, 본 발명의 실시예들의 프로세싱 단계들 중 일부 또는 전부를 수행할 수 있다. 그러한 명령들은 다른 컴퓨터 판독가능 매체, 이를테면, 자기 하드 디스크(541) 또는 제거가능 매체 드라이브(542)로부터 시스템 메모리(530)로 판독될 수 있다. 자기 하드 디스크(541)는 본 발명의 실시예들에 의해 사용되는 하나 이상의 데이터 스토어(data store)들 및 데이터 파일(data file)들을 포함할 수 있다. 데이터 스토어 콘텐츠(data store contents) 및 데이터 파일들은, 보안을 개선시키기 위해 암호화될 수 있다. 프로세서들(520)은 또한, 시스템 메모리(530)에 포함된 명령들의 하나 이상의 시퀀스들을 실행하기 위해 멀티-프로세싱 어레인지먼트(multi-processing arrangement)로 이용될 수 있다. 대안적인 실시예들에서, 하드-와이어드 회로(hard-wired circuitry)가 소프트웨어 명령들 대신에 또는 소프트웨어 명령들과 조합하여 사용될 수 있다. 따라서, 실시예들은 하드웨어 회로와 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
[0054]
위에서 언급된 바와 같이, 컴퓨터 시스템(510)은, 본 발명의 실시예들에 따라 프로그래밍된 명령들을 유지하고 데이터 구조들, 표들, 레코드(record)들, 또는 본원에서 설명된 다른 데이터를 포함하기 위한 적어도 하나의 컴퓨터 판독가능 매체 또는 메모리를 포함할 수 있다. 본원에서 사용되는 "컴퓨터 판독가능 매체"라는 용어는, 실행을 위해 명령들을 프로세서들(520)에 제공하는 데 참여하는 임의의 매체를 지칭한다. 컴퓨터 판독가능 매체는 비-일시적, 비-휘발성 매체들, 휘발성 매체들, 및 송신 매체들을 포함하는(그러나 이에 제한되지 않음) 많은 형태들을 취할 수 있다. 비-휘발성 매체들의 비-제한적 예들은 광 디스크들, 고체 상태 드라이브들, 자기 디스크들, 및 광자기 디스크(magneto-optical disk)들, 이를테면, 자기 하드 디스크(541) 또는 제거가능 매체 드라이브(542)를 포함한다. 휘발성 매체들의 비-제한적 예들은 동적 메모리, 이를테면, 시스템 메모리(530)를 포함한다. 송신 매체들의 비-제한적 예들은, 시스템 버스(521)를 형성하는 와이어(wire)들을 포함하는 동축 케이블(coaxial cable)들, 구리 와이어, 및 광섬유들을 포함한다. 송신 매체들은 또한, 음향파 또는 광파, 이를테면, 라디오 파(radio wave) 및 적외선 데이터 통신들 동안에 생성되는 것들의 형태를 취할 수 있다.
[0055]
컴퓨팅 환경(500)은, 하나 이상의 원격 컴퓨터들, 이를테면, 원격 컴퓨팅 디바이스(580)에 대한 논리적 연결들을 사용하여 네트워킹된 환경(networked environment)에서 동작하는 컴퓨터 시스템(510)을 더 포함할 수 있다. 원격 컴퓨팅 디바이스(580)는 퍼스널 컴퓨터(personal computer)(랩톱(laptop) 또는 데스크톱(desktop)), 모바일 디바이스(mobile device), 서버(server), 라우터(router), 네트워크 PC(network PC), 피어 디바이스(peer device) 또는 다른 공통 네트워크 노드(common network node)일 수 있고, 통상적으로, 컴퓨터 시스템(510)에 대해 위에서 설명된 엘리먼트들 중 많은 엘리먼트들 또는 전부를 포함한다. 네트워킹 환경(networking environment)에서 사용될 때, 컴퓨터 시스템(510)은 네트워크(571), 이를테면, 인터넷(Internet)을 통한 통신들을 확립하기 위한 모뎀(modem)(572)을 포함할 수 있다. 모뎀(572)은 사용자 네트워크 인터페이스(570)를 통해 또는 다른 적절한 메커니즘을 통해 시스템 버스(521)에 연결될 수 있다.
[0056]
네트워크(571)는, 인터넷, 인트라넷(intranet), 로컬 영역 네트워크(LAN; local area network), 광역 네트워크(WAN; wide area network), 메트로폴리탄 영역 네트워크(MAN; metropolitan area network), 직접 연결 또는 일련의 연결들, 셀룰러 전화 네트워크(cellular telephone network), 또는 컴퓨터 시스템(510)과 다른 컴퓨터들(예컨대, 원격 컴퓨팅 디바이스(580)) 사이의 통신을 가능하게 할 수 있는 임의의 다른 네트워크 또는 매체를 포함하는, 당해 기술분야에서 일반적으로 알려진 임의의 네트워크 또는 시스템일 수 있다. 네트워크(571)는 유선, 무선 또는 이들의 결합일 수 있다. 유선 연결들은, 이더넷(Ethernet), 범용 직렬 버스(USB), RJ-6 또는 당해 기술분야에서 일반적으로 알려진 임의의 다른 유선 연결을 사용하여 구현될 수 있다. 무선 연결들은, Wi-Fi, WiMAX, 및 블루투스(Bluetooth), 적외선, 셀룰러 네트워크들, 위성 또는 당해 기술분야에서 일반적으로 알려진 임의의 다른 무선 연결 방법론을 사용하여 구현될 수 있다. 부가적으로, 몇몇 네트워크들은 단독으로 동작하거나, 또는 네트워크(571)에서의 통신을 가능하게 하기 위해 서로 통신하여 동작할 수 있다.
[0057]
본원에서 사용되는 실행가능 애플리케이션은, 예컨대, 사용자 커맨드 또는 입력에 대한 응답으로, 미리 결정된 기능들, 이를테면, 운영 체제, 콘텍스트 데이터 포착 시스템(context data acquisition system) 또는 다른 정보 프로세싱 시스템의 미리 결정된 기능들을 구현하도록 프로세서를 컨디셔닝(conditioning)하기 위한 코드 또는 머신 판독가능 명령들을 포함한다. 실행가능 프로시저는 코드 또는 머신 판독가능 명령의 세그먼트, 서브-루틴(sub-routine), 또는 하나 이상의 특정 프로세스들을 수행하기 위한 실행가능 애플리케이션의 코드 또는 부분의 다른 별개의 섹션(section)이다. 이러한 프로세스들은 입력 데이터 및/또는 파라미터들을 수신하는 것, 수신된 입력 데이터에 대한 동작들을 수행하는 것 및/또는 수신된 입력 파라미터들에 대한 응답으로 기능들을 수행하는 것, 및 결과적인 출력 데이터 및/또는 파라미터들을 제공하는 것을 포함할 수 있다.
[0058]
본원에서 사용되는 그래픽 사용자 인터페이스(GUI; graphical user interface)는, 디스플레이 프로세서에 의해 생성되고, 프로세서 또는 다른 디바이스와의 사용자 상호작용 그리고 연관된 데이터 포착 및 프로세싱 기능들을 가능하게 하는 하나 이상의 디스플레이 이미지들을 포함한다. GUI는 또한, 실행가능 프로시저 또는 실행가능 애플리케이션을 포함한다. 실행가능 프로시저 또는 실행가능 애플리케이션은, GUI 디스플레이 이미지들을 표현하는 신호들을 생성하도록 디스플레이 프로세서를 컨디셔닝한다(condition). 이러한 신호들은 디스플레이 디바이스에 공급되며, 디스플레이 디바이스는 사용자에 의한 뷰잉(viewing)을 위해 이미지를 디스플레이(display)한다. 프로세서는, 실행가능 프로시저 또는 실행가능 애플리케이션의 제어 하에서, 입력 디바이스들로부터 수신된 신호들에 대한 응답으로 GUI 디스플레이 이미지들을 조작한다. 이러한 방식으로, 사용자는 입력 디바이스들을 사용하여 디스플레이 이미지와 상호작용할 수 있고, 이는 프로세서 또는 다른 디바이스와의 사용자 상호작용을 가능하게 한다.
[0059]
본원의 기능들 및 프로세스 단계들은 사용자 커맨드에 대한 응답으로 자동으로 또는 전체적으로 또는 부분적으로 수행될 수 있다. 자동으로 수행되는 활동(단계를 포함함)은, 활동의 사용자 직접 개시 없이, 하나 이상의 실행가능 명령들 또는 디바이스 동작에 대한 응답으로 수행된다.
[0060]
도면들의 시스템 및 프로세스들은 한정적이지 않다. 동일한 목적들을 달성하기 위해, 본 발명의 원리들에 따라, 다른 시스템들, 프로세스들 및 메뉴(menu)들이 도출될 수 있다. 본 발명이 특정 실시예들을 참조하여 설명되었지만, 본원에서 도시되고 설명되는 실시예들 및 변형들이 단지 예시 목적들만을 위한 것임이 이해되어야 한다. 본 발명의 범위를 벗어나지 않으면서, 현재 설계에 대한 수정들이 당업자들에 의해 구현될 수 있다. 본원에서 설명된 바와 같이, 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들, 및/또는 이들의 결합들을 사용하여 다양한 시스템들, 서브시스템(subsystem)들, 에이전트(agent)들, 관리자들 및 프로세스들이 구현될 수 있다. 청구항 엘리먼트가 명백히 "~을 위한 수단"이라는 문구를 사용하여 언급되지 않는 한, 본원의 어떤 청구항 엘리먼트도 35 U.S.C. 112, 6항의 조항들 하에서 해석되어야 하는 것은 아니다.
Claims (20)
- 컴퓨터 보조 설계(CAD; computer aided design) 애플리케이션과 연관된 고분해능 격자(high resolution lattice)에서 정보를 프로세싱하는 컴퓨터화된 방법으로서,
호스트 컴퓨팅 디바이스의 제1 프로세서에서, 격자 로드(lattice rod) 배향들을 따라 샘플링된 광선(ray)들을 포함하는 부품 표면의 기하학적 표현을 생성하기 위해 부품 표면들을 테셀레이팅(tessellating)하는 단계;
상기 기하학적 표현을 제2 프로세서와 연관된 메모리에 복사(copy)하는 단계 ― 상기 제2 프로세서는 그래픽스 프로세싱 유닛(GPU; graphics processing unit)의 프로세서임 ―;
상기 제2 프로세서에서, 복수의 광선들과 관련된 프로세싱 태스크(processing task)들을 세분(subdividing)하는 단계; 및
상기 제2 프로세서에서, 상기 세분된 프로세싱 태스크들을 병렬로 프로세싱하는 단계
를 포함하는,
방법. - 제1항에 있어서,
상기 제2 프로세서에서, 상기 세분된 프로세싱 태스크들의 프로세싱으로부터 출력 정보를 생성하는 단계; 및
상기 출력 정보를 상기 호스트 컴퓨팅 디바이스의 제1 프로세서와 연관된 메모리에 복사하는 단계
를 더 포함하는,
방법. - 제2항에 있어서,
상기 출력 정보는 상기 고분해능 격자에 의해 표현되는 오브젝트(object)의 질량 특성들과 관련되는,
방법. - 제2항에 있어서,
상기 출력 정보는 상기 고분해능 격자에 의해 표현되는 오브젝트의 슬라이스(slice)를 생성하는 것과 관련되는,
방법. - 제2항에 있어서,
상기 제1 프로세서에서, 상기 제2 프로세서에 의해 생성된 상기 출력 정보에 추가의 프로세싱을 수행하는 단계를 더 포함하는,
방법. - 제5항에 있어서,
상기 추가의 프로세싱은 적층 제조 프로세스(additive manufacturing process)의 툴(tool)을 위한 툴 경로들을 컴퓨팅(compute)하는,
방법. - 제6항에 있어서,
상기 제1 프로세서는 상기 툴 경로들을 G-코드(code)로서 컴퓨팅하도록 구성되는,
방법. - 제1항에 있어서,
상기 제1 프로세서는 상기 호스트 컴퓨팅 디바이스의 중앙 프로세싱 유닛(central processing unit)인,
방법. - 제1항에 있어서,
제2 컴퓨터 프로세서는 복수의 프로세싱 코어(processing core)들을 갖는 GPU 프로세서인,
방법. - 제8항에 있어서,
제2 컴퓨터 프로세서는 복수의 프로세싱 스레드(processing thread)들을 통해 병렬로 복수의 프로세싱 코어들에서 정보를 프로세싱(process)하도록 구성되는,
방법. - 컴퓨터 보조 설계(CAD) 애플리케이션과 연관된 고분해능 격자에서 정보를 프로세싱하기 위한 시스템으로서,
제1 컴퓨터 프로세서;
상기 제1 컴퓨터 프로세서와 통신하는 제1 메모리; 및
그래픽스 프로세싱 유닛(GPU) ― 상기 그래픽스 프로세싱 유닛(GPU)은, 복수의 프로세싱 코어들을 포함하는 GPU 프로세서; 및 상기 GPU 프로세서와 통신하는 메모리를 포함함 ―;
상기 제1 메모리에 저장된 컴퓨터 실행가능 명령들의 세트(set)
를 포함하고,
상기 컴퓨터 실행가능 명령들의 세트는, 상기 제1 컴퓨터 프로세서에 의해 실행될 때, 상기 제1 컴퓨터 프로세서로 하여금,
격자 로드 배향들을 따라 샘플링된 광선들을 포함하는 부품 표면의 기하학적 표현을 생성하기 위해 부품 표면들을 테셀레이팅(tessellate)하게 하고,
상기 기하학적 표현을 제2 프로세서와 연관된 메모리에 복사하게 하며,
상기 제2 프로세서는 그래픽스 프로세싱 유닛(GPU)의 프로세서이고,
상기 컴퓨터 실행가능 명령들의 세트는 추가로, 상기 GPU 프로세서 상에서 실행가능하고, 그리고 상기 GPU 프로세서 상에서 실행될 때, 상기 GPU 프로세서로 하여금,
복수의 광선들과 관련된 프로세싱 태스크들을 세분하게 하고, 그리고
상기 제2 프로세서에서, 상기 세분된 프로세싱 태스크들을 병렬로 프로세싱하게 하는,
시스템. - 제11항에 있어서,
상기 컴퓨터 실행가능 명령들의 세트는 추가로, 상기 GPU 프로세서로 하여금,
상기 세분된 프로세싱 태스크들의 프로세싱으로부터 출력 정보를 생성하는 단계; 및
상기 출력 정보를 상기 제1 컴퓨터 프로세서와 연관된 제1 메모리에 복사하는 단계를 수행하게 하는,
시스템. - 제12항에 있어서,
상기 출력 정보는 상기 고분해능 격자에 의해 표현되는 오브젝트의 질량 특성들과 관련되는,
시스템. - 제12항에 있어서,
상기 출력 정보는 상기 고분해능 격자에 의해 표현되는 오브젝트의 슬라이스를 생성하는 것과 관련되는,
시스템. - 제12항에 있어서,
상기 제1 프로세서에서, 상기 GPU 프로세서에 의해 생성된 상기 출력 정보에 추가의 프로세싱을 수행하는 단계를 더 포함하는,
시스템. - 제15항에 있어서,
상기 추가의 프로세싱은 적층 제조 프로세스의 툴을 위한 툴 경로들을 컴퓨팅하는,
시스템. - 제16항에 있어서,
상기 제1 컴퓨터 프로세서는 상기 툴 경로들을 G-코드로서 컴퓨팅하도록 구성되는,
시스템. - 제1항에 있어서,
상기 제1 프로세서는 상기 호스트 컴퓨팅 디바이스의 중앙 프로세싱 유닛인,
시스템. - 제11항에 있어서,
상기 컴퓨터 실행가능 명령들의 세트는 추가로, 프로세서에 의해 실행될 때,
상기 제1 컴퓨터 프로세서로 하여금,
부품 표면들의 삼각형 메시 표현(triangle mesh representation)을 생성하기 위해 상기 부품 표면들을 테셀레이팅하게 하고;
상기 삼각형 메시의 삼각형들의 꼭짓점들(vertices)을 상기 GPU의 메모리에 복사하게 하며; 그리고
상기 GPU 프로세서로 하여금,
제1 슬라이싱 평면(slicing plane)과 교차하고 그리고 상기 부품 표면들에 의해 경계가 지어지는(bounded) 구역 내에 놓이는, 상기 격자 구조의 로드 세그먼트(rod segment)들의 세트를 결정하게 하고;
상기 제1 슬라이싱 평면과 교차하는 상기 로드 세그먼트들의 세트의 각각의 로드에, 상기 GPU의 복수의 프로세싱 스레드들 중 하나를 할당하게 하고;
상기 할당된 프로세싱 스레드들을 복수의 스레드 블록(thread block)들에 고르게 분산시키게 하고;
슬라이스 평면의 국부적 이웃(local neighborhood)에서의 각각의 로드 세그먼트의 삼각형 메시 표현에 기반하여 상기 제1 슬라이싱 평면과 교차하는 각각의 로드 세그먼트에 대한 교차 곡선(intersection curve)을 컴퓨팅하게 하고;
상기 컴퓨팅된(computed) 교차 곡선들을 상기 제1 컴퓨터 프로세서와 통신하는 메모리에 복사하게 하며; 그리고
상기 제1 컴퓨터 프로세서로 하여금, 에지 곡선(edge curve)들을 추출하기 위해 상기 슬라이싱 평면 상의 교차 곡선들 각각의 2차원 부울 유니온(Boolean union)들을 컴퓨팅하게 하는
명령들을 더 포함하는,
시스템. - 고분해능 격자 구조에 기반하여 적층 제조를 사용하여 부품을 제조하기 위한 방법으로서,
제1 컴퓨터 프로세서에서, 상기 부품의 일시적 삼각형 메시 표현(temporary triangle mesh representation)을 생성하기 위해 부품 표면들을 테셀레이팅하는 단계;
상기 삼각형 메시의 삼각형들의 꼭짓점들을 그래픽스 프로세싱 유닛(GPU)의 제2 프로세서에 전송하는 단계;
상기 GPU 프로세서에서, 상기 삼각형 메시의 복수의 로드 세그먼트들에 대한 교차 곡선들을 계산하는 단계 ― 상기 복수의 로드 세그먼트들은 상기 오브젝트의 제1 슬라이싱 평면과 교차하고, 상기 복수의 로드 세그먼트들 각각은 상기 GPU 프로세서의 별개의 스레드에서 프로세싱됨(processed) ―;
상기 계산된 교차 곡선들을 상기 제1 컴퓨터 프로세서에 전송하는 단계; 및
상기 제1 컴퓨터 프로세서에서, 상기 부품의 표면들에 의해 경계가 지어지는 구역 내에 있고 그리고 상기 제1 슬라이싱 평면의 교차 곡선들에 대해 2차원 부울 유니온들을 수행하는 단계; 및
상기 제1 컴퓨터 프로세서에서, 상기 제1 슬라이싱 평면 상의 툴 경로들을 컴퓨팅(computing)하고 그리고 컴퓨터화된 툴(computerized tool)에 대한 입력을 위한 G-코드를 생성하는 단계
를 포함하는,
방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662374353P | 2016-08-12 | 2016-08-12 | |
US62/374,353 | 2016-08-12 | ||
PCT/US2017/046539 WO2018031904A1 (en) | 2016-08-12 | 2017-08-11 | Computer aided design with high resolution lattice structures using graphics processing units (gpu) |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190093552A true KR20190093552A (ko) | 2019-08-09 |
Family
ID=59738427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197007108A KR20190093552A (ko) | 2016-08-12 | 2017-08-11 | 그래픽스 프로세싱 유닛(gpu)들을 사용한 고분해능 격자 구조들에 대한 컴퓨터 보조 설계 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20190176405A1 (ko) |
EP (1) | EP3485403A1 (ko) |
KR (1) | KR20190093552A (ko) |
CA (1) | CA3033502A1 (ko) |
WO (1) | WO2018031904A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10723079B2 (en) * | 2017-08-23 | 2020-07-28 | Lawrence Livermore National Security, Llc | Fast, efficient direct slicing method for lattice structures |
CN108804821A (zh) * | 2018-06-11 | 2018-11-13 | 北京航空航天大学 | 一种基于空间网格的三维点阵结构设计方法 |
US20220058298A1 (en) * | 2018-09-13 | 2022-02-24 | Siemens Industry Software Inc. | Computer Aided Design System For Designing Multilevel Lattice Structures |
EP4070226A1 (en) * | 2019-12-05 | 2022-10-12 | Siemens Industry Software Inc. | Machine learning-based selective incarnation of computer-aided design objects |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NO20045586L (no) * | 2004-12-21 | 2006-06-22 | Sinvent As | Anordning og fremgangsmate for bestemmelse av skjaeringslinjer |
US8760450B2 (en) * | 2007-10-30 | 2014-06-24 | Advanced Micro Devices, Inc. | Real-time mesh simplification using the graphics processing unit |
US8400458B2 (en) * | 2009-09-09 | 2013-03-19 | Hewlett-Packard Development Company, L.P. | Method and system for blocking data on a GPU |
US8503539B2 (en) * | 2010-02-26 | 2013-08-06 | Bao Tran | High definition personal computer (PC) cam |
GB201007348D0 (en) * | 2010-04-30 | 2010-06-16 | Imagination Tech Ltd | Programmable tessellation in a tile based rendering system |
US9218289B2 (en) * | 2012-08-06 | 2015-12-22 | Qualcomm Incorporated | Multi-core compute cache coherency with a release consistency memory ordering model |
US9111360B2 (en) * | 2013-03-14 | 2015-08-18 | Nvidia Corporation | Technique for improving the performance of a tessellation pipeline |
US9694544B2 (en) * | 2013-03-22 | 2017-07-04 | Markforged, Inc. | Methods for fiber reinforced additive manufacturing |
AU2013267004A1 (en) * | 2013-12-04 | 2015-06-18 | Canon Kabushiki Kaisha | Method, apparatus and system for tessellating a parametric patch |
US9902114B2 (en) * | 2014-01-09 | 2018-02-27 | Siemens Product Lifecycle Management Software Inc. | Method for creating three dimensional lattice structures in computer-aided design models for additive manufacturing |
EP3345742A1 (en) * | 2014-11-17 | 2018-07-11 | Markforged, Inc. | Multilayer fiber reinforcement design for 3d printing |
KR20160063081A (ko) * | 2014-11-26 | 2016-06-03 | 삼성전자주식회사 | 선택적 테셀레이션 방법 및 장치 |
US10068306B2 (en) * | 2014-12-18 | 2018-09-04 | Intel Corporation | Facilitating dynamic pipelining of workload executions on graphics processing units on computing devices |
EP3040797B1 (en) * | 2014-12-31 | 2020-10-28 | Dassault Systèmes | Simulating the machining of a workpiece |
GB201512304D0 (en) * | 2015-07-13 | 2015-08-19 | Whispering Gibbon Ltd | Preparing a polygon mesh for printing |
EP3362921A4 (en) * | 2015-11-25 | 2019-05-15 | Siemens Product Lifecycle Management Software Inc. | SYSTEM AND METHOD FOR MODELING PARTS WITH TREILLIS STRUCTURES |
US10269326B2 (en) * | 2015-12-19 | 2019-04-23 | Intel Corporation | Method and apparatus for color buffer compression |
US10521517B2 (en) * | 2016-02-10 | 2019-12-31 | Autodesk, Inc. | Designing objects using lattice structure optimization |
-
2017
- 2017-08-11 KR KR1020197007108A patent/KR20190093552A/ko not_active Application Discontinuation
- 2017-08-11 CA CA3033502A patent/CA3033502A1/en not_active Abandoned
- 2017-08-11 US US16/321,893 patent/US20190176405A1/en not_active Abandoned
- 2017-08-11 WO PCT/US2017/046539 patent/WO2018031904A1/en unknown
- 2017-08-11 EP EP17758676.5A patent/EP3485403A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
WO2018031904A1 (en) | 2018-02-15 |
US20190176405A1 (en) | 2019-06-13 |
CA3033502A1 (en) | 2018-02-15 |
EP3485403A1 (en) | 2019-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10140395B2 (en) | Detecting collisions in a simulated machining of a workpiece represented by dexels | |
JP6282798B2 (ja) | 工作物の機械加工のシミュレーション | |
US10216172B2 (en) | Functional 3-D: optimized lattice partitioning of solid 3-D models to control mechanical properties for additive manufacturing | |
KR20190093552A (ko) | 그래픽스 프로세싱 유닛(gpu)들을 사용한 고분해능 격자 구조들에 대한 컴퓨터 보조 설계 | |
Ghossein et al. | Random generation of periodic hard ellipsoids based on molecular dynamics: A computationally-efficient algorithm | |
CN110167756B (zh) | 用于通过增材制造构造实体物体的基于构建方向的划分 | |
CN104217460A (zh) | 3d建模对象的压缩与解压缩 | |
JP6042697B2 (ja) | 複数のデクセルによって表わされるモデル化ボリュームの設計 | |
TW201616449A (zh) | 點雲網格精細化系統及方法 | |
US10289771B2 (en) | Modification of a constrained asymmetrical subdivision mesh | |
JP4936522B2 (ja) | 画像処理方法、画像処理装置 | |
CN112655026A (zh) | 用于有限元分析的混合网格化方法 | |
US10943037B2 (en) | Generating a CAD model from a finite element mesh | |
Yu et al. | A robust Delaunay-AFT based parallel method for the generation of large-scale fully constrained meshes | |
Shchurova | A methodology to design a 3D graphic editor for micro-modeling of fiber-reinforced composite parts | |
Zhang et al. | A novel contour generation algorithm for surface reconstruction from dexel data | |
JP2010072765A (ja) | 演算処理装置、演算処理方法、及び演算処理プログラム並びに記録媒体 | |
Abram et al. | In-situ visualization of natural hazards with Galaxy and Material Point Method | |
Caplan | Tessellation and interactive visualization of four-dimensional spacetime geometries | |
Ali et al. | Fast Generation of Demolition Special Effects on 3D Buildings | |
Gorlatch et al. | Clayworks: Toward user-oriented software for collaborative modeling and simulation | |
Fujita et al. | Clayworks: Toward User-Oriented Software for Collaborative Modeling and Simulation | |
Zhang et al. | Accuracy and computational complexity analysis of design models created by virtual sculpting | |
Hu et al. | An adaptive mesh model for 3D reconstruction from unorganized data points | |
Muller et al. | Clayworks: A system for collaborative real-time modeling and high-performance simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |