KR102233009B1 - 삼차원 오브젝트의 표현의 직렬화 - Google Patents

삼차원 오브젝트의 표현의 직렬화 Download PDF

Info

Publication number
KR102233009B1
KR102233009B1 KR1020197004571A KR20197004571A KR102233009B1 KR 102233009 B1 KR102233009 B1 KR 102233009B1 KR 1020197004571 A KR1020197004571 A KR 1020197004571A KR 20197004571 A KR20197004571 A KR 20197004571A KR 102233009 B1 KR102233009 B1 KR 102233009B1
Authority
KR
South Korea
Prior art keywords
layer
volume
representation
data
node
Prior art date
Application number
KR1020197004571A
Other languages
English (en)
Other versions
KR20190030720A (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 KR20190030720A publication Critical patent/KR20190030720A/ko
Application granted granted Critical
Publication of KR102233009B1 publication Critical patent/KR102233009B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B29WORKING OF PLASTICS; WORKING OF SUBSTANCES IN A PLASTIC STATE IN GENERAL
    • B29CSHAPING 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/00Additive 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/30Auxiliary operations or equipment
    • B29C64/386Data acquisition or data processing for additive manufacturing
    • B29C64/393Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/40Tree coding, e.g. quadtree, octree
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B33ADDITIVE MANUFACTURING TECHNOLOGY
    • B33YADDITIVE 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/00Data acquisition or data processing for additive manufacturing
    • B33Y50/02Data acquisition or data processing for additive manufacturing for controlling or regulating additive manufacturing processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/18Manufacturability analysis or optimisation for manufacturability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P10/00Technologies related to metal processing
    • Y02P10/25Process efficiency

Abstract

한 예에서, 방법은, 층 단위 가공 프로세스에서 가공될 오브젝트의 적어도 일부를 나타내는 데이터를, 프로세서에서 수신하는 것을 포함한다. 오브젝트의 적어도 일부의 직렬화된 옥트리 표현은 데이터로부터 생성될 수도 있다. 직렬화된 옥트리 표현에서, 노드는, (i) 오브젝트 생성의 의도된 순서에서 더 일찍 생성될 상기 오브젝트의 층을 포함하는 볼륨을 나타내는 노드가, 후속하여 생성될 상기 오브젝트의 층(들)으로 구성되는 볼륨을 나타내는 노드에 선행하도록; (ii) 오브젝트의 주어진 층을 포함하는 볼륨을 나타내는 노드가, 옥트리 표현 - 옥트리 표현 내에서, 부모 노드는 후손 노드보다 먼저 나타남 - 내에서의 노드의 레벨에 기초하여 배열되도록; 그리고 (iii) 오브젝트의 주어진 층을 포함하는 볼륨을 나타내며 옥트리 표현 내에서 동일한 레벨을 갖는 노드가 위치 인코딩 패턴에 따라 배열되도록, 배열된다.

Description

삼차원 오브젝트의 표현의 직렬화
적층 가공 기법(additive manufacturing technique)은, 구축 재료(build material)의 응고(solidification)를 통해 층 단위 기반(layer-by-layer basis)으로 삼차원 오브젝트를 생성할 수도 있다. 이러한 기법의 예에서, 구축 재료는 층 단위 방식으로 공급되고, 응고 방법은, 선택된 영역에서 용융을 야기하도록 구축 재료의 층을 가열하는 것을 포함할 수도 있다. 다른 기법에서, 다른 응고 방법, 예컨대 화학적 응고 방법 또는 결합재(binding material)가 사용될 수도 있다.
생성될 삼차원 오브젝트에 관련이 있는 데이터는, 적층 가공 장치에 제공되어 삼차원 오브젝트를 생성하기 위해 사용될 수도 있다.
비제한적인 예가 첨부의 도면을 참조하여 이제 설명될 것인데, 첨부의 도면에서:
도 1은 삼차원 오브젝트를 나타내는 데이터를 정렬하기 위한 예시적인 방법의 플로우차트이다;
도 2는 옥트리 구조(octree structure)를 예시하는 개략도이다;
도 3은 오브젝트 층을 생성하기 위한 예시적인 방법의 플로우차트이다;
도 4는 예시적인 컴퓨터 시스템의 개략도이다;
도 5는 예시적인 적층 가공 장치의 예시적인 개략도의 개략도이다; 그리고
도 6a 및 도 6b는 옥트리 구조(octree structure)의 표현을 예시하는 개략도이다.
적층 가공 기법은 구축 재료의 응고를 통해 삼차원 오브젝트를 생성할 수도 있다. 몇몇 예에서, 구축 재료는, 예를 들면, 플라스틱, 세라믹 또는 금속 분말일 수도 있는 분말형 입상 재료(powder-like granular material)일 수도 있다. 생성된 오브젝트의 특성(property)은, 사용되는 구축 재료의 타입 및 응고 메커니즘의 타입에 의존할 수도 있다. 구축 재료는, 예를 들면, 인쇄 베드(print bed) 상에 퇴적될 수도 있고, 예를 들면, 제조 챔버 내에서 층 단위로 프로세싱될 수도 있다.
몇몇 예에서, 선택적 응고는, 예를 들면, 지향성 에너지가 인가되는 곳에서 구축 재료의 응고로 나타나는 레이저 또는 전자 빔을 사용하는 에너지의 지향성 인가를 통해 달성된다.
다른 예에서, 적어도 하나의 인쇄 작용제(print agent)가 구축 재료에 선택적으로 도포될 수도 있고, 도포시 액체일 수도 있다. 예를 들면, 융제('유착제(coalescence agent)' 또는 '유착 작용제(coalescing agent)'로 또한 칭해짐)는, 생성될 삼차원 오브젝트의 슬라이스를 나타내는 데이터로부터 유도되는 패턴(이것은, 예를 들면, 구조 설계 데이터로부터 생성될 수도 있음)으로 구축 재료의 층의 부분 상으로 선택적으로 분배될 수도 있다. 융제는, 에너지(예를 들면, 열)가 층에 인가될 때 구축 재료가 유착되고 응고되어 패턴에 따라 삼차원 오브젝트의 슬라이스를 형성하도록, 에너지를 흡수하는 조성물을 가질 수도 있다. 다른 예에서, 유착은 몇몇 다른 방법으로 달성될 수도 있다. 예를 들면, 유착을 감소시키거나 또는 증가시키는 것에 의해 융제의 효과를 수정하도록 또는 오브젝트에 특정한 마무리 또는 외양을 생기게 함에 있어서 보조하도록 작용하는 유착 개질제(coalescence modifying agent)(개질제(modifying agent) 또는 장식제(detailing agent)로 또한 칭해짐)가 몇몇 예에서 인쇄 작용제로서 또한 사용될 수도 있고, 따라서 이러한 작용제는 장식제로 칭해질 수도 있다. 예를 들면, 염료 또는 착색제(colorant)를 포함하는 착색 작용제(coloring agent)가, 몇몇 예에서, 융제 또는 개질제로서, 및/또는 오브젝트에게 특정한 컬러를 제공하기 위한 인쇄 작용제로서 사용될 수도 있다.
적층 가공 시스템은 구조 설계 데이터에 기초하여 오브젝트를 생성할 수도 있다. 이것은 설계자가, 예를 들면, 컴퓨터 지원 설계(computer aided design; CAD) 애플리케이션을 사용하여, 생성될 오브젝트의 삼차원 모델을 생성하는 것을 수반할 수도 있다. 모델은 오브젝트의 입체 부분(solid portion)을 정의할 수도 있다. 적층 가공 시스템을 사용하여 모델로부터 삼차원 오브젝트를 생성하기 위해, 모델 데이터는 모델의 평행한 평면의 슬라이스를 생성하도록 프로세싱될 수 있다. 각각의 슬라이스는, 적층 가공 시스템에 의해 응고될 또는 유착되게 될 구축 재료의 각각의 층의 부분을 정의할 수도 있다.
도 1은 컴퓨터 구현 방법일 수도 있는 방법의 플로우차트인데, 블록(102)에서, 층 단위 가공 프로세스에서 가공될 오브젝트의 적어도 일부의 옥트리 표현을 제공하기 위한 데이터를, 프로세서에서 수신하는 것을 포함한다.
몇몇 예에서, 이 데이터는, 가장 큰 볼륨('루트' 노드)을 나타내는 노드가 먼저 설명되고, 후속하여 그것의 팔분공간(octant)이 설명되고, 후속하여 그들의 팔분공간이 설명되고, 계속 그런 식으로 설명되는, 고전적인 옥트리 표현으로서 제공될 수도 있다.
몇몇 예에서, 옥트리는 오브젝트의 다른 표현으로부터, 예를 들면, STL 파일, .OBJ 파일, DXF 파일, json 파일, 3mf 파일, vtk 파일, 또는 등등과 같은, 설계 파일로부터 구축될 수도 있다. 오브젝트는 메쉬(mesh)(예를 들면, 다각형 메쉬(polygon mesh))로서, 또는 일련의 슬라이스로 표현될 수도 있다. 몇몇 예에서, 표현은, 예를 들면, 오브젝트 및/또는 주변 볼륨(예를 들면, 오브젝트를 둘러싸는 직육면체)의 각각의 '복셀(voxel)'에 대한 인쇄 재료(예를 들면, 인쇄 작용제 또는 구축 재료의 선택) 또는 적어도 하나의 속성(attribute)(예를 들면, 유무(present or absent), 컬러, 텍스쳐, 투명도, 전도도, 강도, 공극률, 탄성, 또는 등등)의 명세를 포함하는, 데이터의 인쇄 해상도 표현을 포함할 수도 있다. 복셀은 부피가 있는 픽셀(volumetric pixel)로 생각될 수도 있고, 각각의 복셀은 인쇄 주소 지정 가능 영역(print addressable area)일 수도 있다. 몇몇 예에서, 복셀은 장치의 인쇄 해상도에서 정의된다. 몇몇 예에서, 각각의 복셀은, 예를 들면, 정육면체 또는 동일한 사이즈를 포함하는, 동일한 형상 및/또는 사이즈이고, 반면, 다른 예에서, 복셀은 사이즈 및/또는 형상에서 상이할 수도 있다.
블록(104)은, 데이터로부터 그리고 프로세서를 사용하여, 오브젝트의 직렬화된 옥트리 표현을 생성하는 것을 포함한다. 몇몇 예에서, 블록(104)은 옥트리 표현을 재배열하는 것을 포함할 수도 있고, 한편, 다른 예에서, 옥트리 표현은, 층 단위 방식으로(예를 들면, 오브젝트의 표현은 오브젝트의 슬라이스를 나타내는 층으로 분할될 수도 있음), 또는 인쇄 해상도에서, 또는 (블록(102)에서 획득되는 데이터는, 비록 그것이 옥트리 표현을 구축하기 위한 데이터를 제공하더라도, 그 자체가 옥트리 표현이 아닐 수도 있다는 것을 유의하는) 몇몇 다른 방식으로 데이터를 나타낼 수도 있는, 오브젝트를 나타내는 데이터로부터 생성될 수도 있다. 하기에서 더 상세하게 설명되는 바와 같이, 직렬화된 표현은, 노드가 특정한 방식으로 배열되도록 구성된다. 이것은, Z 좌표가 오브젝트의 높이에 관련되는 XYZ 공간을 고려하는 경우, XY 평면에 놓이는 층 단위로 Z 좌표가 생성되기 때문에, 'Z 우선(Z-first)' 배열(ordering)로서 생각될 수도 있다. 명백하게 되는 바와 같이, 이러한 배열은, 생성될 삼차원 오브젝트에 관련이 있는 데이터를 층 단위로 프로세싱하는 데 적합할 수도 있다.
이 예에서, 직렬화된 표현은 도 2에서 도시되는 3 레벨 옥트리와 관련하여 논의되는 세 개의 규칙을 따른다. 도 2에서, 루트 노드 A는 단일의 볼륨이다. 다음 레벨은 이 볼륨을 팔분공간(B1 내지 B8)으로 분할하는데, 이들의 각각은 물리적인 서브 볼륨을 나타낸다. B1, B2, B3 및 B4는, 볼륨의 하위 절반의 사분면(quadrant)을 나타내고, 반면 B5, B6, B7 및 B8은 볼륨의 상위 절반(upper half)에 관련된다. 도 2는 또한 다음 레벨을 도시하지만, 그러나 예시의 간략화의 목적 때문에, 이것은 B1에 대해서만 도시된다. 다음 레벨은 B1을 팔분공간(C11 내지 C18)(이 표기법은, B2가 C21 내지 C28로 라벨링되는 팔분공간으로 분할될 수도 있도록, 그리고 더 일반적으로는, Bn이 Cn1 내지 Cn8로 라벨링되는 팔분공간으로 분할될 수도 있도록, 이하에서 확장됨)으로 분할하는데, 그 각각은 물리적인 서브 볼륨을 나타낸다. 다시, 이 예에서, Cn1 내지 Cn4는 각각의 Bn 볼륨(n = 1 내지 8)의 하위 절반을 나타낸다. 하기에서 추가로 설명되는 바와 같이, 각각의 노드는 오브젝트의 적어도 하나의 양태를 설명하는 데이터를 포함한다는 것이 이해될 것이다.
직렬화된 표현을 형성함에 있어서 적용될 제1 규칙은, 오브젝트 생성의 의도된 순서에서 더 일찍 생성될 오브젝트의 층을 포함하는 볼륨을 나타내는 노드가, 후속하여 생성될 오브젝트의 층(들)으로 구성되는 볼륨을 나타내는 노드에 선행한다는 것이다.
적층 가공에서, 오브젝트는 일반적으로 저부(bottom)로부터 위쪽으로 구축된다. 도 2의 예를 취하면, 이러한 예에서 먼저 생성될 층은 Cn1 내지 Cn4(n = 1 내지 4)를 포함하는 최하위 층이다. A와 마찬가지로, B1 내지 B4도 또한 이러한 층을 포함한다. 따라서, 이 규칙은 A 및 B1 내지 B4가, B5 및 B6(이들은 제1 층의 표현을 포함하지 않으며, 제1의 층에 후속하여 생성될 층으로 배타적으로 구성됨)보다 먼저 나열될 것이다는 것을 의미한다. 그것은 또한, Cn1 내지 Cn4(n = 1 내지 4)가 다른 모든 C 노드보다 먼저 나열될 것이다는 것을 의미한다.
제2 규칙은, 오브젝트의 주어진 층을 포함하는 볼륨을 나타내는 노드가, 부모 노드가 후손(descendent) 노드보다 먼저 나타나는 옥트리 표현 내에서의 노드의 레벨에 기초하여 배열된다는 것이다. 따라서, 제1 층의 경우, A는 B1 내지 B4 중 임의의 것보다 먼저 나열될 것이고 그 B1 내지 B4는 Cn1 내지 Cn4(n = 1 내지 4)보다 먼저 나열될 것이다.
제3 규칙은, 제1 및 제2 규칙이 적용된 이후, 즉 오브젝트의 주어진 층을 포함하는 볼륨을 나타내며 옥트리 내에서 동일한 레벨을 갖는 노드의 경우, 노드는 위치 인코딩 패턴에 따라 직렬화된다는 것이다. 예를 들면, 이것은 공간을 통해 특정한 경로를 정의하는 Morton(모턴)(Z 순서(Z-order)) 코드 또는 등등일 수도 있다. 모턴 코드는, 지역성(locality)을 보존하면서 다차원 데이터를 일차원으로 매핑하는 함수의 하나의 예이다. 이 예에서, 위치 인코딩 패턴은, 따라서, B1 내지 B4의 그리고 Cn1 내지 Cn4(n = 1 내지 4)의 순서를 결정하기 위해 적용될 수도 있다.
상기에서 언급되는 바와 같이, 오브젝트의 제1 층의 경우, 이것은 A, (위치 인코딩 패턴에 따라 배열되는) B1 내지 B4, (공간 인코딩 패턴에 따라 배열되는) Cn1 내지 Cn4(n = 1 내지 4)의 순서로 나타날 것이다. 이것은 직렬화된 표현의 제1 부분을 제공한다. 표현의 용이성을 위해, 대괄호(square bracket) 및 이 부분에서 나타내어지는 위치 인코딩 패턴은 다음과 같이 요약될 수 있을 것이다:
Figure 112019016101148-pct00001
Cn1 내지 Cn4(n = 1 내지 4)에 의해 표현되지 않는 위쪽의 다음 층은 Cn5 내지 Cn8(n = 1 내지 4)을 포함한다. 그러나, 이 층은 B1 내지 B4 및 A에 의해서도 또한 표현되며, 따라서, 이 층을 나타내는 것은, 단순히, 상기의 코드 부분의 끝에 Cn1 내지 Cn4(n = 5 내지 8)를 추가하는 것을 의미하며, 이것이 규칙의 어떤 것도 위반하지 않기 때문에, 직렬화 표현을 다음과 확장시킨다:
Figure 112019016101148-pct00002
아직 표현되지 않은 위쪽의 다음 층은 B5 내지 B8의 부분을 포함하는데, 이것은 그들의 후손 노드 이전에 포함되어야 한다. 이것은, 이 예에서, 볼륨 A에 포함되는 오브젝트의 직렬화된 표현을 다음과 같이 제공한다:
Figure 112019016101148-pct00003
비록 도시되지는 않지만, 'D' 레벨 노드가 정의될 수도 있는데, 각각의 Cnm(여기서 n = 1 내지 8 및 m = 1 내지 8) 볼륨이 팔분공간으로 분할되는 것을 포함한다. 한 예에서, 이들 팔분공간은 인쇄 해상도 복셀을 설명할 수도 있다. 이러한 D 레벨 노드는, Z 우선 배열에 따라 그들의 대응하는 'C' 레벨 표현 이후에 직렬화된 표현에 삽입될 수도 있다.
상기의 논의는, 모든 가능한 노드가 명시적으로 표현된다는 의미에서 옥트리가 완전하다는 것을 가정한다. 하기에서 설명되는 바와 같은 모든 예에서 이것은 사실이 아닐 수도 있다.
이러한 데이터 구조는, 오브젝트의 특정한 레벨을 설명하는 데이터가 연속적인 스트링으로 사슬연결되기 때문에, 삼차원 인쇄에 매우 적합하다. 이것은 레벨 순서(이것은 '폭 우선(breadth-first)' 배열로 칭해질 수도 있음)로 표현되는 옥트리와 대조될 수도 있는데, 이 경우, 동일한 표기법 하에서, 오브젝트의 설명은 다음과 같을 수도 있다:
Figure 112019016101148-pct00004
데이터의 다른 가능한 표현은, 다음과 같이 표현될 수도 있는 '깊이 우선(depth first)' 배열일 수도 있다:
Figure 112019016101148-pct00005
이러한 표현에서, 가공될 제1 층, 즉 Cn1 내지 Cn4(n = 1 내지 4)의 설명은, 데이터 전체에 걸쳐 분산되고 데이터를 검색하는 것은 복잡하게 된다. 또한, 후속하는 논의로부터 명백해지는 바와 같이, 이러한 표현은, 하나의 층과 관련하여 검색되는 데이터가, 후속하는 층과 관련하여 데이터를 검색함에 있어서 도움이 되는 것을 허용하지 않는다.
상기의 예에서, 루트 노드 A를 나타내는 노드는 직렬화에서 먼저 배열된다.
데이터는, 데이터가 명시된 순서와 관련된다는 것을 데이터 판독기가 이해할 것이다는 의미에서 직렬화로 배열된다. 몇몇 예에서, 데이터는 저장 매체(예를 들면, 랜덤 액세스 저장 매체) 상에 물리적으로 분산될 수도 있다. 그러나, 데이터는, 데이터의 설명된 배열이 인코딩되는 관계를 가지도록 저장된다.
몇몇 예에서, 옥트리의 노드는 볼륨을 표현하고 여덟 개의 서브 볼륨을 포함하며 각각의 볼륨은 다음 중 하나로서 분류될 수도 있다: (i) 전체 볼륨에 걸쳐 미리 결정된 속성을 가짐(즉, 볼륨의 모든 서브 볼륨 또는 영역이 미리 결정된 속성을 공유함), (ii) 미리 결정된 속성이 완전히 없음(즉, 볼륨의 모든 서브 볼륨 또는 영역이 미리 결정된 속성이 없음) 또는 (iii) 미리 결정된 속성을 갖는 서브 영역 및 미리 결정된 속성이 없는 서브 영역을 포함함.
하나의 예에서, 속성은, 볼륨이 오브젝트의 일부를 포함하는지의 여부일 수도 있고, 각각의 볼륨은 다음 중 하나로서 분류될 수도 있다:
(i) 전체적으로(wholly) 오브젝트 내부에 있음('블랙'으로 칭해짐)
(ii) 전체적으로 오브젝트 외부에 있음('화이트'로 칭해짐),
(iii) 볼륨의 서브 영역이 오브젝트 내부에 있고 다른 서브 영역이 외부에 있도록, 오브젝트 경계에 걸쳐 있음("그레이"로 칭해짐).
그레이, 화이트 및 블랙의 지정은 다른 속성과 관련하여 동등하게 사용될 수 있을 것이다. 이 예에서, 경계를 스캐닝하는 볼륨에 대한 두 개의 가능한 카테고리가 있다: '말단 그레이(terminal grey)' 볼륨 또는 '중간 그레이(intermediate grey)' 볼륨. 말단 그레이 볼륨은, 볼륨이 인쇄 해상도 볼륨이거나, 또는 특정한 모델에 의해 인코딩되는 가장 작은 볼륨인 경우 인코딩될 수도 있다. 볼륨을 블랙 볼륨으로서 취급할지 또는 화이트 볼륨으로서 취급할지의 여부에 관한 결정이 이루어질 수도 있기 때문에 이러한 그레이 볼륨은 중간 그레이 볼륨과는 상이하게 취급될 수도 있다; 즉, 실용적인 면에서, 볼륨은 오브젝트의 내부 또는 외부 중 어느 하나인 것으로 할당된다. 그러나, 이러한 말단 그레이 볼륨은 몇몇 예에서 생략될 수도 있다.
Figure 112019016101148-pct00006
이 예에서, 볼륨의 분류는 2 비트로 표현된다: 화이트 볼륨의 경우 00, 블랙 볼륨의 경우 01, 중간 그레이 볼륨의 경우 10, 말단 그레이 볼륨의 경우 11.
각각의 노드는 자신의 서브 볼륨을 특성 묘사하는 16 비트 스트링으로서 표현된다. 따라서, 오브젝트가, 도 1에서 도시되는 정육면체의 하위 1/4(bottom quarter)을 차지하는, 정육면체의 하위를 채우는 슬라이스를 차지하면, 'A' 노드는 4 개의 '그레이' 서브 볼륨 및 네 개의 화이트 서브 볼륨을 가질 것이다. 몇몇 예에서, 노드를 설명하는 데이터는 볼륨 내의 서브 볼륨의 위치에 기초하여 배열될 수도 있다. 예를 들면, '최하위 비트(least significant bit)', 즉 비트 스트링의 끝에 있는 비트는, 더 작은 z 좌표를 갖는 서브 볼륨에 관한 정보를 포함하고, z 좌표가 동일하면, 더 작은 x 좌표를 갖는 서브 볼륨이 최하위 비트를 차지하고, 및 등등이다. 그러나, 임의의 다른 미리 결정된 순서가 사용될 수 있을 것이다.
예를 들면, A 노드는 자신의 서브 볼륨의 관점에서 다음과 같이 번호 순서로 표현될 수 있을 것이거나
B1{10}, B2{10}, B3{10}, B4{10}, B5{00}, B6{00}, B7{00}, B8{00}, 또는 다음으로서 표현될 수 있을 것이다:
[1010101000000000]
B1 노드는 상위 절반에서 화이트 볼륨을 그리고 하위 절반에서 (오브젝트에 포함되는) 블랙 볼륨을 가지며, 따라서 다음으로서 인코딩될 수 있을 것이다
[0101010100000000]
다른 예에서, 상이한 순서가 사용될 수 있을 것이다.
B5 볼륨은 화이트이다: 몇몇 예에서, 이것은, A 노드의 인코딩에 의해 제공되는 정보를 넘어서는, B5 볼륨과 관련하여 얻어질 어떠한 정보도 존재하지 않기 때문에, B5 볼륨을 나타내는 어떠한 노드도 옥트리 내에서 명시적으로 형성되지 않는다는 것을 의미할 수도 있다. 쉽게 이해될 수 있는 바와 같이, B 레벨 볼륨이 오브젝트에 대해 전체적으로 내부에 있으면, 그에 대한 임의의 서브 노드도 또한 오브젝트에 대해 전체적으로 내부에 있다. 따라서, '그레이' 노드, 즉, 한 속성을 갖는 서브 영역 및 그 속성이 없는 서브 영역을 포함하는 노드만이 저장되는 경우가 있을 수도 있다. 다시 말하면, 몇몇 예에서, 볼륨이 화이트 또는 블랙이면, 볼륨이 선행하는 노드에서 특성 묘사되기 때문에 그것은 노드로서 저장되지 않으며, 이 특성 묘사는 모든 후손에게 확장된다. 예를 들면, 볼륨의 하위 절반을 차지하는 오브젝트의 경우, 이것은, 상위 z를 갖는 4개의 화이트 서브 볼륨 및 하위 z를 갖는 4개의 블랙 서브 볼륨을 갖는, 단일의 노드를 갖는 하나의 레벨 옥트리에 의해 완전히 특성 묘사된다. 예를 들면, 16 비트 스트링은 루트 노드(이것은 그레이 노드임)를 다음과 같이 특성 묘사할 수 있을 것이다: 0000000001010101. 이것은 전체 오브젝트를 완전히 나타낸다. 그러나 블랙 또는 화이트 서브 볼륨 중 하나가 대신 그레이이면, 그 서브 볼륨에 대해, 그 서브 볼륨의 서브 볼륨을 특성 묘사하는 추가적인 노드가 형성될 수 있을 것이다.
따라서, 몇몇 예에서, (블랙 및 화이트 노드 볼륨이 저장될 필요가 없기 때문에) 옥트리는 그레이 노드만을 포함할 수도 있고, 복셀, 또는 인쇄 해상도 레벨에서, 서브 볼륨은 블랙 또는 화이트로서 분류될 수도 있다. 다른 예에서, 그레이 노드는 (심지어 후손 노드 모두가 속성을 갖는 경우에도 또는 속성이 없는 경우에도) 세분되는 임의의 노드일 수도 있다. 블랙 또는 화이트 노드는 세분되지 않는 노드일 수도 있다.
이러한 인코딩은, 임의의 2진 속성, 예를 들면, 특정한 컬러, 전도도, 탄성, 인쇄 작용제, 또는 등등의 존재 또는 부재를 명시하기 위해 사용될 수 있을 것이다. 예를 들면, 각각의 볼륨은 '레드' 또는 '레드가 아님' 또는 '레드 서브 영역 및 레드가 아닌 서브 영역을 포함함'으로 분류될 수 있을 것이거나, 또는 '전도성 있음' 또는 '전도성 없음' 또는 '전도성이 있는 서브 영역 및 비전도성의 서브 영역을 포함함'으로서 분류될 수 있을 것이다. 다른 예에서, 허프만(Huffman) 인코딩과 같은 다른 인코딩이 사용될 수 있을 것이다.
도 3은, 컴퓨터 구현 방법일 수도 있는 방법의 한 예인데, 층 단위 가공 프로세스에서 생성될 오브젝트의 복수의 층의 데이터 표현을 생성하는 것을 포함하며, 그 방법은, 도 1을 참조하여 상기에서 설명되는 바와 같이 배열되는 직렬화된 옥트리 표현에 대해 수행될 수도 있다. 몇몇 예에서, 직렬화된 데이터는 메모리에 저장될 수도 있고, 그 일부는 도 3의 방법을 수행하기 위해 검색될 수도 있다. 다른 예에서, 직렬화된 데이터는, 그것이 형성될 때 프로세싱될 수도 있다.
블록(302)은, 직렬화된 옥트리 표현으로부터, 제1 층의 적어도 일부를 포함하는 모든 노드를 나타내는 데이터를 추출하는 것을 포함한다.
도 2의 예를 고려하면, 오브젝트의 최하위 층의 일부를 포함하는 모든 노드는 단일의 연속하는 스트링으로 배열되는데, 이것은 다음과 같이 표현될 수도 있다:
Figure 112019016101148-pct00007
이 논의에서, 모든 노드 B1 내지 B8 및 모든 C 노드가 옥트리 내에 존재한다는 것이 가정된다 - 이것은, 예를 들면, B 또는 C 노드가, 형성된 경우, 전체적으로 속성을 갖는 또는 전체적으로 속성이 없는 볼륨을 설명할 경우 이것은 사실이 아닐 수도 있다(즉, 상기에서 설명되는 바와 같이, 몇몇 예에서, '그레이' 노드만이 옥트리 내에서, 및/또는 그 직렬화된 표현 내에서 인코딩될 수도 있다). 또한, 이 예의 논의에서, 제1 층은 하위 레벨 C 노드에 대응하고 제2 층은 상위 레벨 C 노드에 대응하지만, 다른 예에서, 이들 노드의 각각은 서브 볼륨으로 분할될 수도 있고, 여러 개의 층을 나타낼 수도 있다.
블록(304)은, 추출된 데이터로부터, 제1 층의 표현을 결정하는 것을 포함한다. 예를 들면, 이것은, 자신의 다수의 서브 볼륨의 각각에 관한 정보를 제공하는 노드 [Cn1-Cn4]n=1-4를 (이들 노드가 명시적으로 표현되는 정도까지) 추출하는 것을 포함할 수도 있다. C 노드 중 임의의 것이 명시적으로 표현되지 않으면, 제1 층의 표현을 결정하는 것은, 더 높은 레벨 노드, 즉, 이 예에서는, B 또는 A 노드인 노드의 콘텐츠를 고려하는 것을 포함할 수도 있다. 몇몇 예에서, 제1 층의 결정된 표현은 오브젝트 생성 해상도에 있을 수도 있다. 말단 그레이 볼륨을 포함하는 예에서, 제1 층의 표현을 결정하는 것은, 각각의 볼륨을 블랙 또는 화이트 볼륨으로서 할당하는 것을 포함할 수도 있다. 몇몇 예에서, 제1 층의 표현은, 적층 가공 장치에 대한 제어 명령어를 생성하기 위한 입력으로서 사용될 수도 있다. 예를 들면, 오브젝트 내부에 있는 것으로서의 볼륨의 특성 묘사는, 그 볼륨에 대응하는 물리적 위치에서 융제를 배치하기 위한 명령어로 나타날 수도 있다. 오브젝트에 대해 완전히 외부에 있는 것으로서의 볼륨의 특성 묘사는, 그 볼륨에 대응하는 물리적 위치에서 어떠한 융제도 배치하지 않기 위한, 또는 장식제를 배치하기 위한 명령어로 나타날 수도 있다.
몇몇 예에서, 제어 명령어는 적층 가공 장치에 의해 오브젝트를 생성하기 위해 사용될 수도 있다.
이 예에서, 블록(306)에서, 방법은 제1 층의 표현을 사용하여 오브젝트 층을 생성하는 것을 더 포함한다.
몇몇 예에서, 제1 층의 표현은 메모리에 저장될 수도 있다.
블록(308)에서, 방법은, 추출된 데이터 및 추출된 데이터에 포함되지 않는 직렬화된 표현에서의 위치를 나타내는 인덱스를 포함하는 데이터 블록을 결정하는 것; 및 블록(310)에서, 데이터 블록을 메모리에 저장하는 것을 더 포함한다.
이 데이터 블록은, 예를 들면, (다른 것들 중에서도) C 프로그래밍 언어에서 사용되는 용어로서의 'struc'를 포함할 수도 있다.
인덱스는, 직렬화된 데이터에서의 마지막으로 추출된 노드, 또는 제1' 추출되지 않은' 노드를 나타내는 포인터를 포함할 수도 있다.
그러한 데이터 블록이 오브젝트의 직렬화된 표현에 비교되는 경우 상대적으로 작을 수도 있기 때문에, 그것은, 실용적인 관점에서, 몇몇 예에서 오브젝트의 직렬화된 표현을 저장할 수도 있는 벌크 또는 더 느린 메모리 리소스(예를 들면, '코어 외(off-core)' 또는 솔리드 스테이트 메모리 리소스)와는 대조적으로, 로컬 메모리, 프로세서 메모리, 또는 상대적으로 빠른 코어 내(in-core) 메모리에 유지될 수도 있다.
블록(312 내지 318)에서, 층 단위 가공 프로세스에서 생성될 오브젝트의 제2 층의 데이터 표현이 생성될 수도 있다. 이 예에서, 제2 층은 제1 층 바로 다음에 생성될 것이다(즉, 제2 층은 물리적으로 생성된 오브젝트에서의 제1 층 바로 위에 놓일 것이다). C 레벨 노드가 하나보다 더 많은 층을 나타내는 예에서, 이러한 층을 생성하기 위한 데이터는 이미 추출된 데이터 내에 포함될 수도 있고, 따라서 이 방법은 적절한 후속 층에 대해 수행될 수도 있다. 그러나, 이 예에서, 제2 층은 상위 C 노드에 대응한다.
블록(312)은 데이터 블록에 액세스하는 것을 포함한다. 상기에서 언급되는 바와 같이, 이 데이터 블록은, 몇몇 예에서, 그것이 상대적으로 작기 때문에, 로컬의 고속 메모리에 유지될 수도 있다. 이것은, 큰 데이터 파일의 경우 상당할 수 있는 메모리 액세스 지연의 감소로 나타날 수 있을 것이다. 블록(314)은, 추출된 데이터로부터, 제2 층의 어떠한 부분도 나타내지 않는 임의의 노드를 나타내는 데이터를 폐기하는 것을 포함한다. 이 예에서, 이것은 데이터를 남긴다:
A:[B1-B4]
블록(316)은 직렬화된 옥트리 데이터에서 시작 위치를 결정하기 위해 인덱스를 사용하는 것을 포함한다. 이 예에서, 인덱스는, 예에서, 하기의 위치 "Loc"인, 마지막으로 판독된 직렬화된 데이터에서의 위치에 대한 포인터일 수도 있다. 실제로, 이것은 추출된 데이터 부분의 끝에 대한, 또는 추출되지 않은 후속 데이터의 시작에 대한 포인터일 수도 있다.
Figure 112019016101148-pct00008
블록(318)은, 직렬화된 옥트리 표현으로부터, 제2 층의 적어도 일부를 나타내는 그리고 시작 위치 이후에 나타나는 모든 노드를 나타내는 데이터를 추출하는 것을 포함한다. 이것은, 유지된 데이터와 함께, 제2 층의 표현을 생성하기 위해 사용될 수도 있다. 이 예에서, 그것이 기초로 하는 데이터는 다음과 같다:
Figure 112019016101148-pct00009
(상기에서 언급되는 바와 같이, B 및/또는 C 노드가 존재하는 경우임).
블록(320)에서, 오브젝트 층은 제2 층의 표현을 사용하여 생성된다.
블록(322)에서, 제1 데이터 블록으로부터 유지되는 데이터 및 블록(318)에서 추출되는 데이터를 포함하는 업데이트된 데이터 블록이, 새로운 위치에 대한 포인터와 함께, 메모리에 저장된다. 이 예에서, 포인터는 하기의 *Loc*로서 나타내어지는 위치에 대한 포인터일 것이다.
Figure 112019016101148-pct00010
이 프로세스는, 최종 층에 관련이 있는 데이터가 검색될 때까지 업데이트된 데이터 블록이 생성되어 다음 층에 대해 사용되면서, 가공의 의도된 순서대로 층 단위로 반복적으로 수행될 수도 있다. 이 예에서, 위쪽의 다음 층은, B1 내지 B4가 아닌 영역 B5 내지 B8에 있고, 따라서, 폐기될 데이터는 이전 데이터 블록으로부터 단지 노드 A를 남길 것이고, 추출될 다음 데이터 스트링은
Figure 112019016101148-pct00011
을 포함할 것이다.
상기에서 논의된 바와 같이, 몇몇 예에서, 데이터 블록은 코어 내, 또는 상대적으로 고속 메모리 리소스(예를 들면, 로컬 RAM)에 유지될 수도 있고 상대적 효율성을 가지고 액세스될 수도 있다. 직렬화된 표현은, 솔리드 스테이트 메모리 리소스와 같은 "코어 외" 고용량 메모리 리소스에 유지될 수도 있다. 데이터 액세스 시간 관점에서 상대적으로 느릴 수도 있는 이러한 고용량 메모리에 대한 데이터 추출 작업은, 층을 생성하기 위한 프로세싱 전반에 걸쳐 효과적으로 분산된다. 상기의 예에서, 방법은 오브젝트 생성 동안 수행되는데, 이 경우, 그것은, 과도하게 길지 않은 실질적으로 일정한 층 프로세싱 시간을 제공하는 데 기여할 수도 있다. 후속 층에 대한 데이터 프로세싱은, 선행하는 층의 생성이 진행되는 동안 수행될 수도 있다. 몇몇 예에서, 복수의 층에 대한 데이터 프로세싱은 동시에 수행될 수도 있다.
층 프로세싱 시간의 영향을 고려하기 위해, 예시적인 적층 가공 프로세스는 다양한 프로세스를 수반할 수도 있다. 구축 재료의 층은 인쇄 베드, 또는 구축 플랫폼(build platform) 상에 형성될 수도 있다. 구축 재료의 층은, 예를 들면, 구축 재료 분배기(build material distributor)를 사용하여 형성될 수도 있는데, 구축 재료 분배기는 구축 재료를 의도된 두께로 인쇄 베드 상으로 퇴적 및 도포할 수도 있다.
구축 재료의 층은, 예를 들면, 적외선 램프와 같은 방사선 소스(radiation source)를 사용하여, 또는 몇몇 다른 수단에 의해 예열될 수도 있다. 인쇄 작용제는, 작용제 배포기에 의해 구축 재료의 층 상으로 배포될 수도 있다. 융제가 적용된 구축 재료의 부분의 유착 및 응고를 야기하기 위해, 에너지, 예를 들면, 하나의 정착 램프(fusing lamp)로부터의 또는 다수의 정착 램프로부터의 열이 구축 재료의 층에 인가될 수도 있다. 추가적인 예에서, 구축 재료의 층은 정착 및 냉각되는 것이 허용될 수도 있다.
예시적인 적층 가공 프로세스를 참조하여 상기에서 설명되는 프로세스는, 생성될 다층 오브젝트의 각각의 층에 대해 반복될 수도 있는 층 프로세싱 사이클의 일부를 형성할 수도 있다. 층 프로세싱 사이클, 또는 층 생성 사이클은, 구축될 삼차원 오브젝트의 슬라이스를 형성하기 위해 구축 재료의 단일의 층에 대해 수행되는 프로세스의 세트를 포함하는 것으로 간주될 수도 있고, 구축 재료의 단일의 층에 대해 프로세스의 세트를 수행할 시간은 층 프로세싱 시간, 또는 층 생성 시간인 것으로 간주될 수도 있다. 이것은, 오브젝트의 표현으로부터 추출되는 데이터에 기초할 수도 있는, 예를 들면 인쇄 작용제의 배치, 온도 또는 등등을 명시하는, 층을 형성함에 있어서 사용될 명령어를 생성하기 위한 프로세싱 시간을 포함할 수도 있다.
층 프로세싱 시간은, 생성될 오브젝트의 모든 층에 대해 동일하거나 또는 대략 동일하다는 것이 의도될 수도 있다. 즉, 적층 가공 프로세스에서 각각의 층에 대한 층 프로세싱 시간은 대략 일정하거나 또는 고정될 수도 있다. 여기서, 표현 "동일"은, 정확하게 동일한 것 또는 대략적으로 동일한 것을 의미하도록 의도된다.
생성될 오브젝트의 모든 층에 대해 일정한 또는 대략적으로 일정한 층 프로세싱 시간을 유지하는 것은, 오브젝트가 일관된 층을 가지고 생성되는 것을 보장하는 데 도움이 된다.
설명되는 직렬화된 방식으로 데이터를 저장하는 것에 의해, 그것의 검색은 데이터 프로세싱 전체에 걸쳐 효율적으로 '분할 상환될(amortized)' 수도 있고, 과도하게 길지 않은 일정한 층 프로세싱 시간이 더욱 쉽게 달성될 수도 있다. 몇몇 예에서, 후속 층의 프로세싱은, 선행하는 층의 생성이 진행 중인 동안, 시작할 수도 있다.
몇몇 예에서, 다수의 층에 관련이 있는 데이터 블록이, 예를 들면, 생성될 오브젝트의 부분의 층간 간격과 같은 소정의 특성의 계산을 돕기 위해, 준비되어 메모리에 동시에 유지될 수도 있다.
도 4는, 프로세서(402), 코어 외 메모리(off-core memory)(404) 및 코어 내 메모리(in-core memory)(406)를 포함하는 컴퓨터 시스템의 개략적인 표현을 도시한다. 코어 외 메모리(404) 및 코어 내 메모리(406)는, 각각, '원격' 및 '로컬' 메모리를 포함할 수도 있는데, 여기서 이들 용어는 프로세서에 대한 데이터 검색의 관점에서 이해되어야 한다: 코어 내 메모리(406)는 코어 외 메모리(404)보다 더욱 신속하게 액세스될 수도 있다. 코어 외 메모리(404)는, 예를 들면, 데이터의 효율적인 대량 저장을 위해 구성될 수도 있고, 반면, 코어 내 메모리는 실질적으로 요구에 따라 데이터를 제공하도록 구성될 수도 있다. 이를 위해, 메모리(404, 406)는 상이한 타입을 가질 수도 있다. 예를 들면, 코어 외 메모리(404)는 솔리드 스테이트 메모리, 예를 들면 하드 디스크 드라이브(Hard Disk Drive; HDD) 또는 솔리드 스테이트 드라이브(Solid State Drive; SSD)를 포함할 수도 있고, 반면, 코어 내 메모리는 랜덤 액세스 메모리(random access memory; RAM)를 포함할 수도 있다. 다른 예에서, 코어 외 메모리(404)는 리드 온리 메모리(read-only memory)를 포함할 수도 있다.
몇몇 예에서, 코어 내 메모리(406)는 (더 짧은 신호 경로를 허용하기 위해) 프로세서(402)에 물리적으로 더 가까울 수도 있고, 코어 외 메모리(404)보다 물리적으로 더 작을 수도 있다. 몇몇 예에서, 프로세서(402)는, 근거리 통신망(Local Area Network), 광역 통신망(Wide Area Network), 또는 인터넷과 같은 컴퓨터 네트워크를 통해 코어 외 메모리(404)에 연결될 수도 있고, 반면, 코어 내 메모리는 프로세서(402)를 포함하는 장치 내에 또는 근처에 배열될 수도 있다. 몇몇 예에서, 코어 내 메모리(406)는 프로세서와 동일한 칩 또는 다이 상에 제공될 수도 있거나, 또는 프로세서는 '메모리 내 프로세싱(processing in memory)' 프로세서일 수도 있다. 몇몇 예에서, 메모리(404, 406)는 실질적으로 병치될(co-located) 수 있을 것이다. 코어 내 및 코어 외 메모리는 다른 예에서 각각 로컬 및 원격 메모리에 의해 대체될 수도 있다.
몇몇 예에서, 직렬화된 데이터는 코어 외 메모리(404)에 저장될 수도 있고, 특정한 층에 관련이 있는 데이터의 일부만을 포함하는 데이터 블록은 코어 내 메모리(406)에 저장될 수도 있다. 일단 제1 층에 대한 데이터 블록이 공식화되면, 제2 층에 관련이 있는 적어도 몇몇 데이터는 코어 외 메모리(404)로부터 이미 검색되었다는 것이 주목될 수도 있다. 데이터의 상대적으로 느린 검색은 데이터 검색 및 프로세싱 전체에 걸쳐 (그리고 몇몇 예에서는, 오브젝트 생성 연습 전체에 걸쳐) 확산된다.
도 5는 프로세싱 회로부(processing circuitry)(504)를 포함하는 적층 가공 장치(502)를 도시한다. 프로세싱 회로부(504)는, 가공될 오브젝트의 적어도 일부의 직렬화된 표현으로부터 층 단위 가공 프로세스에서 생성될 오브젝트의 제1 층의 데이터 표현을 생성하도록 적응되는데, 직렬화된 표현은 복수의 노드를 나타내는 데이터를 포함하고, 노드는 제1 체적 해상도(volumetric resolution) 및 제2 체적 해상도에서 오브젝트를 표현하고, 노드는 다음과 같이, 즉:
오브젝트 생성의 의도된 순서에서 더 일찍 생성될 오브젝트의 층을 포함하는 볼륨을 나타내는 노드가, 후속하여 생성될 오브젝트의 층(들)으로 구성되는(즉, 층(들)으로 완전히 이루어지는) 볼륨을 나타내는 노드에 선행하고,
오브젝트의 주어진 층을 포함하는 볼륨을 나타내는 노드의 경우, 더 거친 체적 해상도에서 오브젝트를 나타내는 노드가, 더 미세한 체적 해상도에서 오브젝트를 나타내는 노드보다 먼저 배열되며,
주어진 층을 포함하는 볼륨을 나타내며 동일한 해상도를 갖는 노드가 미리 결정된 위치 인코딩 패턴에 따라 직렬화되도록, 배열된다.
프로세싱 회로부(504)는, 직렬화된 표현으로부터, 제1 층의 적어도 일부를 나타내는 모든 노드를 나타내는 연속적인 데이터 스트링을 추출하는 것에 의해 제1 층의 데이터 표현을 생성하도록; 그리고, 데이터로부터, 제1 층의 표현을 결정하도록 배열될 수도 있다.
예를 들면, 프로세싱 회로부(504)는 도 3의 블록(302 내지 304)을 수행하도록 배열될 수도 있다. 프로세싱 회로부(504)는, 제1 메모리 리소스(예를 들면, 원격 메모리)로부터의 직렬화된 표현으로부터 데이터를 검색하도록 그리고 검색된 데이터 및/또는 제1 층의 표현을 제2 메모리 리소스(예를 들면, 로컬 메모리)에 저장하도록 배열될 수도 있다. 이러한 예에서, 적층 가공 장치(502)는 제1 또는 제2 메모리 리소스를 포함할 수도 있다. 몇몇 예에서, 적층 가공 장치(502)는 제2 메모리 리소스를 포함하고, 네트워크 또는 등등을 통해 제1 메모리 리소스에 연결된다.
프로세싱 회로부(504)는 제1 및/또는 제2 층(및 임의의 후속 층)의 표현을 결정하도록 배열될 수도 있고, 몇몇 예에서, 인쇄 장치에 의해 지정 가능한 해상도에서 복수의 볼륨의 각각에 대해, 그 볼륨이 오브젝트 내부에 있는지, 또는 오브젝트 외부에 있는지의 여부를 결정하도록 배열될 수도 있다. 다른 예에서, 그 볼륨이 특정한 속성 또는 특성을 가지도록 가공될 것인지 또는 특정한 속성 또는 특성이 없도록 가공될 것인지의 여부가 결정될 수도 있다.
프로세싱 회로부(504)는, 예를 들면, 블록(308)과 관련하여 논의되는 바와 같이, 추출된 데이터 및 추출된 데이터에 포함되지 않는 직렬화된 표현에서의 위치를 나타내는 인덱스를 포함하는 데이터 블록을 결정하도록 배열될 수도 있다.
프로세싱 회로부(504)는 층 단위 가공 프로세스에서 생성될 오브젝트의 제2 층의 데이터 표현을 생성하도록 배열될 수도 있는데, 제2 슬라이스는 제1 슬라이스 이후에 생성되고, 제2 층의 데이터 표현을 생성하는 것은, 추출된 데이터로부터, 제2 층의 어떠한 부분도 포함하지 않는 임의의 노드를 나타내는 데이터를 폐기하는 것; 인덱스를 사용하여, 직렬화된 데이터에서 시작 위치를 결정하는 것; 및 직렬화된 표현으로부터, 제2 층의 적어도 일부를 포함하는 그리고 시작 위치 이후에 나타나는 모든 노드를 나타내는 데이터를 추출하는 것을 포함한다. 이것은 연속적인 데이터 스트링을 추출하는 것을 포함할 수도 있다. 예를 들면, 프로세싱 회로부(504)는 도 3의 블록(312 내지 318)을 수행하도록 배열될 수도 있다.
프로세싱 회로부(504)는 도 3의 임의의 다른 블록을 수행하도록 배열될 수도 있다.
프로세싱 회로부(504)는 프로세서(402)와 관련하여 설명되는 임의의 속성을 가질 수도 있다.
적층 가공 장치(502)는, 프린트 베드, 제조 챔버, 프린트 헤드, 하나 이상의 에너지 소스, 구축 재료의 소스, 소스 또는 하나 이상의 인쇄 작용제, 또는 임의의 다른 적층 가공 장치 컴포넌트를 포함할 수 있거나, 또는 이들과 관련될 수도 있다.
도 6a는 층 단위 가공 프로세스에서 가공될 오브젝트의 적어도 일부의 표현의 옥트리 표현을 도시한다. 표현은, 원으로 도시되는 복수의 노드를 나타내는 데이터를 포함하는데, 노드는, 제1 체적 해상도; 제2 체적 해상도 및 제3 체적 해상도에서의 오브젝트의 표현을 포함하고, 제2 체적 해상도에서, 제1 체적 해상도의 볼륨은 팔분공간으로 세분되고, 제3 체적 해상도에서, 제2 체적 해상도의 볼륨은 팔분공간으로 세분된다. 여기서, 제3 체적 해상도를 나타내는 원은, 제2 체적 해상도를 나타내는 것보다 더 작은데, 제2 체적 해상도를 나타내는 원은 제1 체적 해상도를 나타내는 것보다 더 작다.
표현은, 체적 해상도 내에서의 Z 차원(즉, 오브젝트의 하위 부분을 나타내는 주어진 사이즈의 노드는, 오브젝트에서 상위인 부분을 나타내는 그 사이즈의 노드보다 페이지 상에서 더 하위에 있는 것으로 도시됨)을 도시하면서, 이차원적이지만, 그러나 X 및 Y 차원은 평평하게 된다.
도 6b는 노드의 직렬화된 표현을 도시하는데, 여기서, 오브젝트 생성의 의도된 순서에서 더 일찍 생성될 오브젝트의 층을 포함하는 볼륨을 나타내는 노드는, 후속하여 생성될 오브젝트의 층(들)으로 구성되는 볼륨을 나타내는 노드에 선행한다.
게다가, 오브젝트의 주어진 층을 포함하는 볼륨을 나타내는 노드의 경우, 제1 체적 해상도의 노드는 제2 체적 해상도의 노드에 선행하고 제2 체적 해상도의 노드는 제3 체적 해상도의 노드에 선행한다.
또한, 주어진 층을 포함하는 볼륨을 나타내며 동일한 해상도를 갖는 노드는 미리 결정된 위치 인코딩 패턴에 따라 직렬화된다. 도 6b에서, 이것은 대괄호(square bracket)에 의해 표현된다. 대괄호의 각각의 세트 내의 노드의 세트는 모턴, 또는 Z 순서, 코드, 또는 등등과 같은, 임의의 위치 인코딩 패턴을 사용하여 일차원 어레이로 평평하게 될 수도 있다.
오브젝트는 세 개보다 더 많은 레벨의 해상도로 표현될 수 있을 것이다는 것이 이해될 것이다.
도 6b에서, 직렬화된 코드는 페이지 영역의 제약으로 인해 두 개의 라인 상에서 도시된다. 개념적으로, 이것은 데이터의 연속적인 직렬화로서 간주되어야 한다.
도 6b에서 도시되는 데이터 구조는, 상기에서 설명되는 바와 같이, 적층 가공 프로세스에서 '분할 상환된' 데이터 검색에 적합하다.
본 개시의 예는, 소프트웨어, 하드웨어, 펌웨어 또는 등등의 임의의 조합과 같은, 방법, 시스템 또는 머신 판독 가능 명령어로서 제공될 수 있다. 이러한 머신 판독 가능 명령어는, 안에 또는 상에 컴퓨터 판독 가능 프로그램 코드를 구비하는 (디스크 스토리지, CD-ROM, 광학 스토리지, 등등을 포함하는 그러나 이로 제한되지는 않는) 컴퓨터 판독 가능 저장 매체에 포함될 수도 있다.
본 개시는, 본 개시의 예에 따른 방법, 디바이스 및 시스템의 플로우차트 및/또는 블록도를 참조하여 설명된다. 비록 상기에서 설명되는 흐름도가 실행의 특정한 순서를 나타내지만, 실행의 순서는 묘사되는 순서와는 상이할 수도 있고, 적어도 몇몇 프로세스는 병렬로 수행될 수도 있다. 하나의 플로우차트와 관련하여 설명되는 블록은, 다른 플로우차트의 것과 결합될 수도 있다. 플로우차트에서의 적어도 몇몇 흐름뿐만 아니라, 플로우차트 및/또는 블록도에서의 흐름 및/또는 다이어그램의 조합은, 머신 판독 가능 명령어에 의해 실현될 수 있다는 것이 이해될 수 있을 것이다.
머신 판독 가능 명령어는, 예를 들면, 범용 컴퓨터, 특수 목적 컴퓨터, 임베딩된 프로세서 또는 다른 프로그래밍 가능한 데이터 프로세싱 디바이스의 프로세서에 의해 실행되어, 설명 및 다이어그램에서 설명되는 기능을 실현할 수도 있다. 특히, 프로세서 또는 프로세싱 장치는 머신 판독 가능 명령어를 실행할 수도 있다. 따라서, 장치 및 디바이스의 기능 모듈은, 메모리에 저장되는 머신 판독 가능 명령어를 실행하는 프로세서, 또는 논리 회로부(logic circuitry)에 임베딩되는 명령어에 따라 동작하는 프로세서에 의해 구현될 수도 있다. 용어 '프로세서'는, CPU, 프로세싱 유닛, ASIC, 로직 유닛, 또는 프로그래밍 가능한 게이트 어레이 등등을 포함하도록 광범위하게 해석되어야 한다. 방법 및 기능적 모듈은 모두 단일의 프로세서에 의해 수행될 수도 있거나 또는 여러 개의 프로세서 사이에서 분할될 수도 있다.
특정한 모드에서 동작하도록 컴퓨터 또는 다른 프로그래밍 가능한 데이터 프로세싱 디바이스를 안내할 수 있는 이러한 머신 판독 가능 명령어는 또한, 컴퓨터 판독 가능 스토리지에 저장될 수도 있다.
이러한 머신 판독 가능 명령어는 또한 컴퓨터 또는 다른 프로그래밍 가능한 데이터 프로세싱 디바이스 상으로 로딩될 수도 있고, 그 결과, 컴퓨터 또는 다른 프로그래밍 가능한 데이터 프로세싱 디바이스는 일련의 동작을 수행하여 컴퓨터 구현 프로세싱을 생성하고, 따라서, 컴퓨터 또는 다른 프로그래밍 가능한 디바이스 상에서 실행되는 명령어는 플로우차트에서의 흐름(들) 및/또는 블록도의 블록(들)에 의해 명시되는 기능을 실현한다.
또한, 본원에서의 교시는 컴퓨터 소프트웨어 제품의 형태로 구현될 수도 있는데, 컴퓨터 소프트웨어 제품은 저장 매체에 저장되고, 컴퓨터 디바이스가 본 개시의 예에서 기재되는 방법을 구현하게 만들기 위한 복수의 명령어를 포함한다.
방법, 장치 및 관련 양태가 소정의 예를 참조하여 설명되었지만, 본 개시의 사상을 벗어나지 않으면서 다양한 수정, 변경, 생략, 및 대체가 이루어질 수 있다. 따라서, 방법, 장치 및 관련 양태는, 하기의 청구항 및 그들의 균등물의 범위에 의해서만 제한되어야 한다는 것이 의도된다. 상기 언급된 예는 본원에서 설명되는 것을 제한하기보다는 예시하며, 기술 분야의 숙련된 자는 첨부된 청구항의 범위를 벗어나지 않으면서 많은 대안적인 구현예를 설계할 수 있을 것이다는 것을 유의해야 한다. 하나의 예와 관련하여 설명되는 피쳐는 다른 예의 피쳐와 결합될 수도 있다.
단어 "포함하는(comprising)"은, 청구범위에서 나열되는 것 이외의 엘리먼트의 존재를 배제하지는 않으며, "a(한)"또는 "an(한)"은 복수를 배제하지 않으며, 단일의 프로세서 또는 다른 유닛이 청구항에서 기재되는 여러 개의 유닛의 기능을 수행할 수도 있다.
임의의 종속 청구항의 피쳐는, 독립 청구항 또는 다른 종속 청구항 중 임의의 것의 피쳐와 결합될 수도 있다.

Claims (15)

  1. 방법으로서,
    프로세서에서, 층 단위 가공 프로세스(layer-by-layer manufacturing process)에서 가공될 오브젝트의 적어도 일부를 나타내는 데이터를 수신하는 단계와,
    상기 수신한 데이터로부터 그리고 상기 프로세서를 사용하여, 복수의 노드를 포함하는 상기 오브젝트의 적어도 일부의 직렬화된 옥트리 표현(serialised octree representation)을 생성하는 단계를 포함하되, 상기 직렬화된 옥트리 표현을 생성하는 단계는,
    (i) 오브젝트 생성의 의도된 순서에서 더 일찍 생성될 상기 오브젝트의 층을 포함하는 볼륨을 나타내는 노드가, 후속하여 생성될 상기 오브젝트의 층(들)으로 구성되는 볼륨을 나타내는 노드에 선행하고,
    (ii) 상기 오브젝트의 주어진 층을 포함하는 볼륨을 나타내는 노드가, 상기 옥트리 표현 - 상기 옥트리 표현 내에서, 부모 노드는 후손 노드보다 먼저 나타남 - 내에서의 상기 노드의 레벨에 기초하여 배열되며,
    (iii) 상기 오브젝트의 주어진 층을 포함하는 볼륨을 나타내며 상기 옥트리 표현 내에서 동일한 레벨을 갖는 노드가 위치 인코딩 패턴에 따라 배열되도록
    상기 복수의 노드를 배열하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 직렬화된 옥트리 표현을 생성하는 단계는, 상기 오브젝트의 주어진 층을 포함하는 볼륨을 나타내며 상기 옥트리 표현 내에서 동일한 레벨을 갖는 노드를 Morton(모턴) 코드 패턴을 사용하여 배열하는 단계를 포함하는
    방법.
  3. 제1항에 있어서,
    상기 직렬화된 옥트리 표현을 생성하는 단계는, 루트 노드가 상기 직렬화된 옥트리 표현에서 먼저 나타나도록, 상기 복수의 노드를 배열하는 단계를 포함하는
    방법.
  4. 제1항에 있어서,
    상기 직렬화된 옥트리 표현의 각각의 노드는 여덟 개의 볼륨을:
    (i) 상기 볼륨 전체에 걸쳐 일관된 미리 결정된 속성을 갖는 것,
    (ii) 상기 볼륨 전체에 걸쳐 상기 미리 결정된 속성이 없는 것,
    (iii) 상기 볼륨의 하위 부분에서 상기 미리 결정된 속성을 갖는 것
    중 하나로서 설명하는
    방법.
  5. 제1항에 있어서,
    상기 프로세서를 사용하여 상기 층 단위 가공 프로세스에서 생성될 상기 오브젝트의 제1 층의 데이터 표현을 생성하는 단계를 포함하고, 상기 제1 층의 데이터 표현을 생성하는 단계는:
    상기 직렬화된 옥트리 표현으로부터 상기 제1 층의 적어도 일부를 포함하는 모든 노드를 나타내는 데이터를 추출하는 단계와,
    상기 추출된 데이터로부터, 상기 제1 층의 표현을 결정하는 단계를 포함하는
    방법.
  6. 제5항에 있어서,
    상기 제1 층의 표현을 사용하여 오브젝트 층을 생성하는 단계를 더 포함하는
    방법.
  7. 제5항에 있어서,
    상기 프로세서를 사용하여, 상기 추출된 데이터 및 상기 추출된 데이터에 포함되지 않는 직렬화된 표현에서의 위치를 나타내는 인덱스를 포함하는 데이터 블록을 결정하는 단계와,
    상기 데이터 블록을 메모리에 저장하는 단계를 더 포함하는
    방법.
  8. 제7항에 있어서,
    상기 프로세서를 사용하여 상기 층 단위 가공 프로세스에서 생성될 상기 오브젝트의 제2 층의 데이터 표현을 생성하는 단계를 포함하고, 상기 제2 층은 상기 제1 층 이후에 생성되고 상기 제2 층의 데이터 표현을 생성하는 단계는:
    상기 추출된 데이터로부터, 상기 제2 층의 어떠한 부분에도 포함되지 않는 임의의 노드를 나타내는 데이터를 폐기하는 단계와,
    상기 인덱스를 사용하여, 상기 직렬화된 표현에서 시작 위치를 결정하는 단계와,
    상기 직렬화된 표현으로부터, 상기 제2 층의 적어도 일부를 포함하며 상기 시작 위치 이후에 나타나는 모든 노드를 나타내는 데이터를 추출하는 단계를 포함하는
    방법.
  9. 제1항에 있어서,
    각각의 노드는 미리 결정된 공통 길이의 비트 스트링(bit-string)에 의해 표현되는
    방법.
  10. 제9항에 있어서,
    각각의 비트 스트링은 16 비트의 비트 스트링인
    방법.
  11. 프로세싱 회로부를 포함하는 적층 가공 장치로서,
    상기 프로세싱 회로부는, 가공될 오브젝트의 적어도 일부의 직렬화된 표현으로부터 층 단위 가공 프로세스에서 생성될 오브젝트의 제1 층의 데이터 표현을 생성하고,
    상기 직렬화된 표현은 복수의 노드를 나타내는 데이터를 포함하되, 상기 복수의 노드는 제1 체적 해상도 및 제2 체적 해상도에서 상기 오브젝트를 나타내고, 상기 복수의 노드는:
    (i) 오브젝트 생성의 의도된 순서에서 더 일찍 생성될 상기 오브젝트의 층을 포함하는 볼륨을 나타내는 노드가, 후속하여 생성될 상기 오브젝트의 층(들)으로 구성되는 볼륨을 나타내는 노드에 선행하고,
    (ii) 상기 오브젝트의 주어진 층을 포함하는 볼륨을 나타내는 노드의 경우, 더 거친 체적 해상도에서 상기 오브젝트를 나타내는 노드가, 더 미세한 체적 해상도에서 상기 오브젝트를 나타내는 노드보다 먼저 배열되며,
    (iii) 주어진 층을 포함하는 볼륨을 나타내며 동일한 해상도를 갖는 노드가 미리 결정된 위치 인코딩 패턴에 따라 직렬화되도록,
    배열되고,
    상기 프로세싱 회로부는, 상기 직렬화된 표현으로부터, 상기 제1 층의 적어도 일부를 나타내는 모든 노드를 나타내는 데이터를 추출하는 것에 의해 상기 제1 층의 데이터 표현을 생성하고, 상기 추출된 데이터로부터 상기 제1 층의 표현을 생성하는
    적층 가공 장치.
  12. 제11항에 있어서,
    상기 프로세싱 회로부는, 상기 추출된 데이터 및 상기 추출된 데이터에 포함되지 않는 직렬화된 표현에서의 위치를 나타내는 인덱스를 포함하는 데이터 블록을 결정하는
    적층 가공 장치.
  13. 제12항에 있어서,
    상기 프로세싱 회로부는, 상기 층 단위 가공 프로세스에서 생성될 상기 오브젝트의 제2 층의 데이터 표현을 생성하고, 상기 제2 층은 상기 제1 층 이후에 생성되고, 상기 제2 층의 데이터 표현을 생성하는 것은:
    상기 데이터 블록의 상기 추출된 데이터로부터, 상기 제2 층의 어떠한 부분도 나타내지 않는 임의의 노드를 나타내는 데이터를 폐기하는 것과,
    상기 인덱스를 사용하여, 상기 직렬화된 표현에서 시작 위치를 결정하는 것과,
    상기 직렬화된 표현으로부터, 상기 제2 층의 적어도 일부를 나타내며 상기 시작 위치 이후에 나타나는 모든 노드를 나타내는 데이터를 추출하는 것을 포함하는
    적층 가공 장치.
  14. 제11항에 있어서,
    상기 데이터로부터, 상기 제1 층의 표현을 결정함에 있어서, 상기 프로세싱 회로부는, 인쇄 장치에 의해 지정 가능한 해상도(print apparatus addressable resolution)에서 복수의 볼륨의 각각에 대해, 상기 각각의 볼륨이 상기 오브젝트 내부에 있는지, 또는 상기 오브젝트 외부에 있는지의 여부를 결정하는
    적층 가공 장치.
  15. 층 단위 가공 프로세스에서 가공될 오브젝트의 적어도 일부의 표현을 포함하는 머신 판독가능 매체로서,
    상기 표현은 복수의 노드 - 상기 노드는, 제1 체적 해상도, 제2 체적 해상도 및 제3 체적 해상도에서의 상기 오브젝트의 표현을 포함함 - 를 나타내는 데이터를 포함하고, 상기 제2 체적 해상도에서, 상기 제1 체적 해상도의 볼륨은 팔분공간(octant)으로 세분되고, 상기 제3 체적 해상도에서, 상기 제2 체적 해상도의 볼륨은 팔분공간으로 세분되고, 상기 복수의 노드는:
    (i) 오브젝트 생성의 의도된 순서에서 더 일찍 생성될 상기 오브젝트의 층을 포함하는 볼륨을 나타내는 노드가, 후속하여 생성될 상기 오브젝트의 층(들)으로 구성되는 볼륨을 나타내는 노드에 선행하고,
    (ii) 상기 오브젝트의 주어진 층을 포함하는 볼륨을 나타내는 노드의 경우, 상기 제1 체적 해상도의 노드는 상기 제2 체적 해상도의 노드에 선행하고 상기 제2 체적 해상도의 노드는 상기 제3 체적 해상도의 노드에 선행하며,
    (iii) 주어진 층을 포함하는 볼륨을 나타내며 동일한 해상도를 갖는 노드가 미리 결정된 위치 인코딩 패턴에 따라 배열되도록,
    배열되는
    머신 판독가능 매체.
KR1020197004571A 2016-10-12 2016-10-12 삼차원 오브젝트의 표현의 직렬화 KR102233009B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/056564 WO2018071011A1 (en) 2016-10-12 2016-10-12 Serialising a representation of a three dimensional object

Publications (2)

Publication Number Publication Date
KR20190030720A KR20190030720A (ko) 2019-03-22
KR102233009B1 true KR102233009B1 (ko) 2021-03-29

Family

ID=61905847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197004571A KR102233009B1 (ko) 2016-10-12 2016-10-12 삼차원 오브젝트의 표현의 직렬화

Country Status (7)

Country Link
US (1) US10853998B2 (ko)
EP (1) EP3471945B1 (ko)
JP (1) JP6858246B2 (ko)
KR (1) KR102233009B1 (ko)
CN (1) CN109643457B (ko)
BR (1) BR112019003587A8 (ko)
WO (1) WO2018071011A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112016007098T5 (de) * 2016-07-26 2019-04-18 Hewlett-Packard Development Company, L.P. Indexierung von voxeln für das 3d-drucken
US11910026B2 (en) * 2018-09-28 2024-02-20 Sony Corporation Image processing apparatus and method
GB2583061B (en) * 2019-02-12 2023-03-15 Advanced Risc Mach Ltd Data processing systems
JP7448517B2 (ja) 2019-02-28 2024-03-12 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データの符号化方法、三次元データの復号方法、三次元データの符号化装置、及び三次元データの復号装置
US11822311B2 (en) 2021-04-26 2023-11-21 Hewlett-Packard Development Company, L.P. Generation of representations of three-dimensional objects using Boolean operations
CN116049924B (zh) * 2023-03-07 2023-07-04 武汉益模科技股份有限公司 一种基于Cuda的三维零件差异分析方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006277562A (ja) * 2005-03-30 2006-10-12 Fujitsu Ltd 3次元データ管理装置および3次元データ処理装置
US20090060345A1 (en) 2007-08-30 2009-03-05 Leica Geosystems Ag Rapid, spatial-data viewing and manipulating including data partition and indexing
US20130201189A1 (en) 2007-08-22 2013-08-08 Trimble Navigation Limited Systems for parametric modeling of three dimensional objects
US20130235050A1 (en) * 2012-03-09 2013-09-12 Nvidia Corporation Fully parallel construction of k-d trees, octrees, and quadtrees in a graphics processing unit
EP2933777A1 (en) 2014-04-17 2015-10-21 amberMind Three dimensional modeling
WO2016122625A1 (en) * 2015-01-30 2016-08-04 Hewlett-Packard Development Company, L.P. Generating slicing data from a tree data structure

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694404A (en) 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
US5959631A (en) * 1996-08-28 1999-09-28 Hewlett-Packard Company Hardware and software for the visualization of three-dimensional data sets
KR100450823B1 (ko) * 2001-11-27 2004-10-01 삼성전자주식회사 깊이 이미지 기반 3차원 물체의 표현을 위한 노드 구조
EP1574996A3 (en) * 2004-03-08 2007-03-21 Samsung Electronics Co., Ltd. Adaptive 2n-ary tree generating method, and method and apparatus for encoding and decoding 3D volume data using it
US8970583B1 (en) * 2012-10-01 2015-03-03 Google Inc. Image space stylization of level of detail artifacts in a real-time rendering engine
WO2014094047A1 (en) * 2012-12-18 2014-06-26 Euclideon Pty Ltd A method for efficent streaming of octree data for access
US20140324204A1 (en) * 2013-04-18 2014-10-30 Massachusetts Institute Of Technology Methods and apparati for implementing programmable pipeline for three-dimensional printing including multi-material applications
US10311381B2 (en) * 2014-12-12 2019-06-04 Autodesk, Inc. Tool and method for conductive trace generation in a 3D model for a hybrid electro-mechanical 3D printer
CN104616345B (zh) 2014-12-12 2017-05-24 浙江大学 一种基于八叉树森林压缩的三维体素存取方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006277562A (ja) * 2005-03-30 2006-10-12 Fujitsu Ltd 3次元データ管理装置および3次元データ処理装置
US20130201189A1 (en) 2007-08-22 2013-08-08 Trimble Navigation Limited Systems for parametric modeling of three dimensional objects
US20090060345A1 (en) 2007-08-30 2009-03-05 Leica Geosystems Ag Rapid, spatial-data viewing and manipulating including data partition and indexing
US20130235050A1 (en) * 2012-03-09 2013-09-12 Nvidia Corporation Fully parallel construction of k-d trees, octrees, and quadtrees in a graphics processing unit
EP2933777A1 (en) 2014-04-17 2015-10-21 amberMind Three dimensional modeling
WO2016122625A1 (en) * 2015-01-30 2016-08-04 Hewlett-Packard Development Company, L.P. Generating slicing data from a tree data structure

Also Published As

Publication number Publication date
EP3471945A1 (en) 2019-04-24
US20190114829A1 (en) 2019-04-18
CN109643457A (zh) 2019-04-16
KR20190030720A (ko) 2019-03-22
JP2019524503A (ja) 2019-09-05
EP3471945A4 (en) 2020-01-01
JP6858246B2 (ja) 2021-04-14
US10853998B2 (en) 2020-12-01
WO2018071011A1 (en) 2018-04-19
BR112019003587A8 (pt) 2022-09-27
CN109643457B (zh) 2023-04-21
EP3471945B1 (en) 2020-12-30
BR112019003587A2 (pt) 2019-05-21

Similar Documents

Publication Publication Date Title
KR102192805B1 (ko) 서브 볼륨 옥트리
KR102233009B1 (ko) 삼차원 오브젝트의 표현의 직렬화
US10259164B2 (en) Methods and apparatus for 3D printing of point cloud data
US20140324204A1 (en) Methods and apparati for implementing programmable pipeline for three-dimensional printing including multi-material applications
JP2019531537A (ja) 3dモデルを印刷するシステムおよび方法
CN107250972B (zh) 确定用于3d打印的半色调机制
CN107206692B (zh) 三维对象表示
JP2019532851A (ja) 積層造形の命令の生成
US11221609B2 (en) Determining object volumes in virtual object space
CN107209497B (zh) 设置用于增材制造方法的三维物体打印属性的方法
US11367245B2 (en) Transforming object data models to disperse object properties
US20190205483A1 (en) Data processing in additive manufacturing
US10589509B2 (en) Representing an object in terms of sub-volumes
US11235532B2 (en) Three-dimensional object substructures
BR112019003826B1 (pt) Método e mídia legível por máquina para representar árvores de octantes de subvolumes
US20220342384A1 (en) Generation of representations of three-dimensional objects using boolean operations
WO2022046109A1 (en) Machine learning-based design of beam-based physical structures
CN117396873A (zh) 用于计算机辅助设计(cad)对象的单位单元设计的基于空间分解的填充
CN110809789A (zh) 生成对象模型切片

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant