KR102476800B1 - 3d 모델링 객체의 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치 - Google Patents

3d 모델링 객체의 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치 Download PDF

Info

Publication number
KR102476800B1
KR102476800B1 KR1020220081194A KR20220081194A KR102476800B1 KR 102476800 B1 KR102476800 B1 KR 102476800B1 KR 1020220081194 A KR1020220081194 A KR 1020220081194A KR 20220081194 A KR20220081194 A KR 20220081194A KR 102476800 B1 KR102476800 B1 KR 102476800B1
Authority
KR
South Korea
Prior art keywords
vertex
cad data
printer
data conversion
vertices
Prior art date
Application number
KR1020220081194A
Other languages
English (en)
Other versions
KR20220143612A (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 주식회사 팀솔루션
Priority to KR1020220081194A priority Critical patent/KR102476800B1/ko
Publication of KR20220143612A publication Critical patent/KR20220143612A/ko
Application granted granted Critical
Publication of KR102476800B1 publication Critical patent/KR102476800B1/ko

Links

Images

Classifications

    • 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
    • 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
    • B33Y30/00Apparatus for additive manufacturing; Details thereof or accessories therefor
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/10Additive manufacturing, e.g. 3D printing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Materials Engineering (AREA)
  • Geometry (AREA)
  • Chemical & Material Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Manufacturing & Machinery (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Architecture (AREA)
  • Mechanical Engineering (AREA)
  • Optics & Photonics (AREA)

Abstract

본 발명의 일 실시예에 따른 3D 프린터 출력을 위한 3D CAD 데이터의 변환 방법에 있어서, 상기 3D CAD 데이터를 입력받는 단계; 상기 3D CAD 데이터에 포함된 3D 모델링 객체를 기설정된 비율로 축소하여, 상기 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환하는 단계; 및 상기 3D 프린터 출력용 데이터를 상기 3D 프린터로 전송하는 단계; 를 포함하되, 상기 3D CAD 데이터를 상기 3D 프린터 출력용 데이터로 변환하는 단계는, 상기 3D 모델링 객체에서 면 및 테두리를 구분하는 단계; 상기 구분된 면을, 상기 구분된 면의 정점(vertex)이 갖는 제1 노멀(normal) 벡터의 방향으로, 상기 기설정된 비율 및 기설정된 두께를 고려하여 도출된 변위만큼 평행 이동시키는 단계; 및 상기 구분된 테두리를, 상기 평행 이동된 면의 정점 위치를 참조하여, 테두리 면의 제2 노멀 벡터 방향에 대하여 수직이고 상기 테두리 면의 면 방향과 평행한 방향으로 이동시키는 단계; 를 포함할 수 있다.

Description

3D 모델링 객체의 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법, 프로그램 및 이를 위한 장치{3D CAD data conversion method, program and apparatus for 3D printing of 3D modeling object}
본 명세서는 3D(Dimension) CAD(Computer Aided Design) 데이터를 3D 프린터 출력하기에 적합한 형태의 데이터로 변환하는 방법 및 이를 위한 장치를 제안한다.
3D 프린터란 3D 도면을 바탕으로 3차원 입체 형상을 구현/출력하는 장치이다. 3D 프린터는, 출력물의 재질과 출력 방식에 따라 다양한 종류로 구분될 수 있다.
가장 흔히 접할 수 있는 출력 방식은 소재를 가열하여 노즐로 분사하는 FDM(Fused deposition modeling) 방식으로, 일반적인 출력 해상도는 0.1~0.4mm 정도이다. 출력 가능 크기는 제공되는 베드의 규모에 따라 결정된다.
DfAM(Design for Additive Manufacturing)이란 3D 프린팅의 장점을 극대화 하기 위해 기존의 공정 설계에 적층 요소를 추가한 개념이라고 할 수 있다. 다시 말해, 기존의 공정을 3D 프린터에 맞추는 모델링 방식이다. 기존의 공정의 예로는 3D CAD 모델 등이 있을 수 있으며, 3D CAD 모델을 3D 프린터로 출력하기 위해서는 3D 프린터에 적합한 데이터 형식으로 변환하는 단계를 거쳐야 한다. 예를 들어, 3D CAD 모델이 3D 프린터로 출력 가능한 크기로 스케일링(예를 들어, 축소/확대)되는 과정이 필요하다.
기본적으로 원본 3D CAD 모델을 3D 프린터 출력 크기에 맞게 스케일링하는 데 있어서 확대의 경우에는 큰 문제가 없다. 다만, 축소의 경우 스케일링 후의 구조가 3D 프린터가 출력 가능한 한계를 벗어나는 경우에는 일부 구성의 소실로 이어질 수 있다. 예를 들어, 축소에 따라 일부 구성의 두께가 3D 프린터 노즐의 직경 이하로 줄어드는 경우(즉, 3D 프린터의 해상도 범위를 벗어나는 경우), 변환 과정에서 해당 구성은 출력 불가로 소실되게 된다. 또는, 이와 유사하게 축소된 후의 구성 두께가 3D 프린터의 해상도 범위를 만족한다 하더라도, 3D 프린터 출력물의 품질을 특정 수준 이상으로 유지하기 위해서는, 일정 강도 이상의 구조를 보장하기 위한 각 구성별 최소 두께 조건을 만족할 것이 요구된다.
기존에는, 이러한 문제점을 해결하기 위하여, 사용자가 최종 결과물을 예측하여 직접 3D 모델을 선별하고, 3D 디자인 툴을 이용하여 이를 수작업하여 3D 프린터로 출력 가능한 형태로 수정해야 했다. 그러나 이는, 시간 및 비용 측면에서 사용자에게 매우 큰 부담으로 작용할 수밖에 없다.
상술한 문제점을 해결하기 위해 제안된 본 발명의 일 실시예예 따르면, 3D(Dimension) 프린터 출력을 위한 3D CAD(Computer Aided Design) 데이터의 변환 방법에 있어서, 상기 3D CAD 데이터를 입력받는 단계; 상기 3D CAD 데이터에 포함된 3D 모델링 객체를 기설정된 비율로 축소하여, 상기 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환하는 단계; 및 상기 3D 프린터 출력용 데이터를 상기 3D 프린터로 전송하는 단계; 를 포함하되, 상기 3D CAD 데이터를 상기 3D 프린터 출력용 데이터로 변환하는 단계는, 상기 3D 모델링 객체에서 면 및 테두리를 구분하는 단계; 상기 구분된 면을, 상기 구분된 면의 정점(vertex)이 갖는 제1 노멀(normal) 벡터의 방향으로, 상기 기설정된 비율 및 기설정된 두께를 고려하여 도출된 변위만큼 평행 이동시키는 단계; 및 상기 구분된 테두리를, 상기 평행 이동된 면의 정점 위치를 참조하여, 테두리 면의 제2 노멀 벡터 방향에 대하여 수직이고 상기 테두리 면의 면 방향과 평행한 방향으로 이동시키는 단계; 를 포함할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 3D(Dimension) 프린터 출력을 위한 3D CAD(Computer Aided Design) 데이터의 변환 프로그램에 있어서, 상기 3D CAD 데이터를 입력받는 오퍼레이션; 상기 3D CAD 데이터에 포함된 3D 모델링 객체를 기설정된 비율로 축소하여, 상기 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환하는 오퍼레이션; 및 상기 3D 프린터 출력용 데이터를 상기 3D 프린터로 전송하는 오퍼레이션; 을 수행하되, 상기 3D CAD 데이터를 상기 3D 프린터 출력용 데이터로 변환하는 오퍼레이션은, 상기 3D 모델링 객체에서 면 및 테두리를 구분하는 오퍼레이션; 상기 구분된 면을, 상기 구분된 면의 정점(vertex)이 갖는 노멀(normal) 벡터의 방향으로, 상기 기설정된 비율 및 기설정된 두께를 고려하여 도출된 변위만큼 평행 이동시키는 오퍼레이션; 및 상기 구분된 테두리를, 상기 평행 이동된 면의 정점 위치를 참조하여, 테두리 면의 노멀 벡터 방향에 대하여 수직이고 상기 테두리 면의 면 방향과 평행한 방향으로 이동시키는 오퍼레이션; 을 수행하기 위하여 매체에 저장될 수 있다.
본 발명의 일 실시예에 따르면, 3D CAD 데이터가 3D 프린터 출력용 데이터로 자동 변환되므로, 사용자가 직접 수작업할 필요가 없어, 시간 및 비용 측면의 사용자 부담이 크게 줄어든다는 효과가 있다.
특히, 3D CAD 데이터의 3D 모델링 객체를 축소 변환하여 3D 프린터 출력용 데이터로 변환 시, 단순 축소 변환만으로는 일부 구성이 소실되거나 전체적인 형상/비율의 변경이 발생하므로, 이를 방지하기 위한 사용자의 후처리 작업이 필수적으로 수행되어야 했다. 그러나, 본 발명명의 일 실시예에 따르면 사용자의 후처리 작업 없이도 상술한 문제점이 발생하지 않으므로, 후처리 작업에 들어가는 시간/비용이 줄어들 뿐 아니라, 높은 품질로 3D 모델링 객체의 3D 프린터 출력이 가능하다는 효과가 있다.
본 발명의 효과는 이에 한정되지 않으며, 다양한 효과에 대해서는 이하에서 각 실시예를 참조하여 상세히 후술하기로 한다.
도 1은 본 발명의 일 실시예에 따른 은면 제거 기법을 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 3D CAD 모델에서 꺾인 면을 검출하는 실시예를 예시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 CAD 도면에서 컨테이너 노드의 렌더링 이미지를 예시한다.
도 4는 본 발명의 일 실시예에 따른 납작한 판 형상의 3D 모델링 객체에 대한 면 및 테두리 구별 실시예를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 3D 모델링 객체의 정점 노멀 벡터를 예시한 도면이다.
도 6 및 7은 본 발명의 일 실시예에 따른 3D 프린터 출력을 위한 3D CAD 데이터의 변환 방법에 관한 순서도이다.
도 8은 본 발명의 일 실시예에 따른 정점 중복 제거에 따른 면 그룹 및 테두리 그룹의 이동 변환을 예시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 면과 테두리를 구분/선별하는 실시예를 예시하는 도면이다.
도 10은 본 발명의 일 실시예에 따른 정점의 노멀 벡터의 획득 방법을 예시한다.
도 11은 본 발명의 일 실시예에 따른 3D CAD 데이터 변환 방법에 따라 변환된 3D 모델링 객체의 렌더링 이미지를 예시한다.
이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. 예를 들어, 'A 및/또는 B'는 'A 또는 B 중 적어도 하나'의 의미로 해석될 수 있다. 또한, '/'는 '및' 또는 '또는'으로 해석될 수 있다.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 명세서에서 제안하는 3D CAD 데이터 변환 장치는, 본 명세서에서 제안되는 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법/실시예를 수행/실행 가능하도록 구현된 어플리케이션/프로그램이 사전에 설치되어 실행 중인 전자 서버/기기/장치에 해당할 수 있다. 따라서, 이하에서 별도로 설명하지 않더라도, 본 명세서에서 제안되는 방법/실시예는 상기 어플리케이션/프로그램이 실행 중인 서버/기기/장치를 통해 수행/실행되는 것으로 해석될 수 있으며, 각 서버/기기/장치의 동작은 상기 어플리케이션/프로그램의 동작/기능/오퍼레이션으로 해석될 수 있다. 이하에서는 설명의 편의를 위해, '3D CAD 데이터 변환 장치'를 '데이터 변환 장치'로 약칭하기로 한다.
우선, 본 발명 설명에 사용되는 기술 용어에 대해 정의한 후 본 발명에 대해 구체적으로 설명하기로 한다.
- REV(AVEVA Review Model Format): Aveva Marine 사에서 만든 3D CAD 데이터 포맷 및 확장자
- 컨테이너: REV 포맷에서 계층 구조의 노드를 의미
- 프리미티브(primitive): 3D 모델에서 기본 기하 요소를 의미, 각 프리미티브는 고유한 기하학적 정의로 표현됨.
- 메시(mesh): 폴리곤과 정점으로 구조화된 3D 모델
- 폴리곤(Polygon)/페이스(face): 동일 평면상의 3개 이상의 정점으로 구성된 다각형
- 정점(vertex): 3D 공간상의 위치를 나타내는 세 좌표의 집합(예를 들어, (x, y, z))
- 노멀 벡터(normal vector): 평면의 방향을 나타내며(즉, 평면에 수직이며), 길이가 1인 벡터
- 3D 모델: 3D 공간에 나타낼 수 있는 형상 정보를 가진 데이터 집합 혹은 파일
- 3D 모델링 객체: 3D 모델에 의해 외형, 형상이 정의되는 3D 객체
본 기술 용어들은 상술한 바에 따라 정의될 수 있으나 반드시 이에 한정되는 것은 아니며, 사전적 정의 또는 당업자에 의해 관용적으로 인식되는 정의로도 사용될 수 있음은 물론이다.
본 명세서는 기본적으로 3D CAD 데이터를 3D 프린터로 출력 가능한 데이터로 변환하는 방법을 제안한다. 즉, 3D CAD 데이터를 DfAM에 적합하게 변환하는 방법을 제안한다.
조선업에 사용되는 3D CAD 데이터의 경우 3D 모델링 객체의 크기가 매우 커 3D 프린터로 바로 출력하는 것은 불가능하므로, 3D 모델링 객체를 일정 비율로 스케일링/축소함으로써 3D 출력 가능한 형태로 데이터 변환이 필수적으로 요구된다. 그러나, 이러한 스케일링/축소 과정에서 일부 구성 요소의 두께가 3D 프린터의 노즐 최소 지름/두께(즉, 해상도) 미만으로까지 축소된 경우, 3D 프린터가 해당 일부 구성 요소를 출력할 수 없어 소실되게 된다. 나아가, 스케일링/축소된 두께가 3D 프린터의 해상도 범위를 만족한다 하더라도 너무 얇은 두께로 축소된 경우, 3D 모델링 객체의 강도/내구성이 매우 약하게 출력될 수 있다.
따라서, 3D 프린터 출력을 위한 데이터 변환 작업에 있어, 3D 출력된 3D 모델링 객체의 전체적인 형상 및 비율은 유지되면서도 일부 구성이 소실되지 않고 일정 수준 이상의 강도/내구성으로 출력되도록 하기 위한 별도의 데이터 처리 과정이 요구된다.
본 명세서에서는 3D CAD 데이터 변환 방법에 있어 이러한 처리 방법에 대해 중점적으로 제안하며, 우선 본 발명을 제안하기 전 기반이 되는 기술 및 개념에 대해 설명한다.
REV 파일은 AVEVA 사에서 만든 3D 모델 포맷으로, REV 파일은 크게 REV와 RVM 확장자로 나뉘며, 각각 아스키/바이너리 형식에 대응한다.
REV 파일은 파일을 설명하는 메타 데이터와 실제 모델 정보를 가진 컨테이너 집합으로 이루어지는데, 컨테이너 집합은 트리 구조를 이룬다. 컨테이너 노드는 컨테이너 노드는 다른 컨테이너 노드를 포함할 수 있다(즉, nested container nodes).
컨테이너 노드, 특히 단말 노드는 프리미티브 데이터의 집합으로 구성될 수 있다. 프리미티브 데이터는 각 종류별로 모델의 수학적 정의로 표현된 자료구조로, 메쉬, 블록, 파이프, 원뿔 등이 있고 이들이 3D 모델링 객체의 형태를 결정한다.
메쉬는 폴리곤의 집합으로 이루어진 3D 모델이다. REV에서 메쉬 프리미티브는 면 그룹-면-루프-정점(FACET_GROUP - FACET - LOOP - VERTICES)으로 이어지는 계층 구조를 가진다. 정점은 3D 정점 좌표와 정점 노멀 벡터로 구성된다. 여기서, 정점 노멀 벡터는, 정점에 부여된 속성으로서 정점을 기준으로 바라보는 방향을 나타내며, 일반적으로 정점이 속한 폴리곤 면에 수직인 노멀 벡터로 구해질 수 있다. 정점에 대한 정보(즉, 정점 정보)는 각 정점이 속한 폴리곤과 매칭되어 저장되어 있을 수 있다.
메쉬 프리미티브 자료 구조는, 판을 절단 가공한 부품을 표현하는데 적합한데, 하나의 면 그룹은 판의 테두리를 절단한 면(이하, '테두리'라 지칭함)과 내부를 절단한 구멍인 루프의 조합으로 표현할 수 있기 때문이다. REV의 컨테이너 트리 구조는 계층 구조이기 때문에 사용자가 필요한 부분만 활성화 하거나, 필요한 노드를 중심으로 하위 단계를 병합하고 관리하기 위한 기반 구조로 활용하기에 용이하다.
도 1은 본 발명의 일 실시예에 따른 은면 제거 기법을 예시한 도면이다.
컴퓨터 그래픽스에서 면 선별이란, 폴리곤의 노멀 벡터와 시선 벡터를 비교하여 보이지 않는 면을 걸러내는 기법이다. 이는, 은면 제거(Back Face Culling)기법이라고도 불린다.
시선 방향(150)을 기준으로 그려야 할 폴리곤은 사잇각이 90도 이하인 것이지만, 실제로는 정점의 회전 순서(110, 130)만 가지고도 선별이 가능하며, 이 경우 복잡한 벡터 사잇각 계산 없이도 은면 제거가 가능하다.
도 2는 본 발명의 일 실시예에 따른 3D CAD 모델에서 꺾인 면을 검출하는 실시예를 예시한 도면이다.
메쉬 단순화(Mesh Simplification) 혹은 메쉬 경량화(Mesh Decimation)는, 미리 정해진 규칙에 따라 3D 모델의 정점 수를 줄이는 기법이다. 경량화된 모델의 크기와 품질은 상호 trade-off 관계를 가지기 때문에, 모델의 형태 및 특징점에 따라 경량화 정도를 달리하여 형태를 보존하는 적응적 기법이 수행될 수 있다.
도 2와 같이, 현실 세계에서 인공물의 경우 대개 모서리를 갖는다는 특징이 나타나는데, 절단면이나 꺾인면, 면과 면 사이의 경계에서 평면 노멀 벡터의 급격한 변화가 발생하는 것을 알 수 있다. 3D CAD 데이터에서 표현되는 대상인 3D 모델링 객체는 대부분 인공물이며, 따라서 3D CAD 데이터에서도 역시 이와 같은 동일한 특징이 발견된다.
이러한 점에 착안하여, 노멀 벡터의 변화량을 error metrics로 사용하여 모서리 특징을 검출하거나 보존할 수 있다. 이는 feature preserving mesh smoothing 등의 연구에 사용되고 있다.
도 3은 본 발명의 일 실시예에 따른 CAD 도면에서 컨테이너 노드의 렌더링 이미지를 예시한다.
3D CAD 데이터(특히, 선박 3D CAD 데이터)에서 3D 모델링 객체의 특징은, 많은 부분이 판 가공의 형태로 구성되어 있다는 점이다. 선박의 부품 판은 넓은 면과 절단면(이하, 테두리라 지칭)으로 구성되어 있다. 3D 모델링 객체에서 단말 노드는 판에서 가공된 소단위 부품을 나타낸다. 단말 노드는 단일 부품으로 관리되지만, 정점의 연속으로 이루어진 폴리곤의 집합으로 추가적인 정보는 없다.
실제 선박의 조립 블럭 단위는 약 25Х25Х25㎥ 정도의 체적을 차지한다. 선박에 사용되는 강판의 두께는 대략 20㎜ 전후이다. 3D 프린터의 베드 면적은 약 300Х300㎟로, 대략 250㎜정도의 길이로 각 변이 출력될 수 있다. FDM 방식 3D 프린터의 출력 해상도(즉, 노즐 두께/지름)는 0.4㎜ 정도이나, 3D 출력 시 3D 모델링 객체의 구조 강도를 위해 최소 두께로서 2㎜ 값이 설정될 수 있다. 다만, 이에 한정되는 것은 아니며, 최소 두께는 상수 값으로서 사용자에 의해 직접 설정/조정될 수 있다.
즉, 3D CAD 데이터에 포함된 3D 모델링 객체는 3D 프린터 출력을 위해 축소 스케일링될 수 있으며, 이때 면의 두께는 미리 설정된 최소 두께 이하로 줄어들지 않도록 선별적으로 확대될 수 있다. 즉, 데이터 변환 장치는, 3D 프린터 출력을 위한 데이터 변환에 있어, 3D 모델링 객체를 전체적으로 기설정된 비율로 스케일링/축소하되, 최소 두께(예를 들어, 2㎜) 이하로 축소된 두께에 대해서는 선별적으로 확대할 수 있다.
다만, 이러한 데이터 변환에 있어 다음과 같이 해결해야 할 몇 가지 문제점이 존재한다.
3D CAD 데이터에는, 메쉬를 구성하는 정점 및 폴리곤은 단지 렌더링 알고리즘으로 입력되는 정보만 있으며, 이들 사이에는 아무런 기하학적 관계 정보가 없다. 따라서, 3D CAD 데이터만으로는 어디가 면이고 테두리인지 알 수 없다는 문제점이 있다. 기존에는 이러한 문제점을 해결하기 위해서, 사용자가 직접 렌더링된 결과를 바탕으로 어느 부분이 면이고 테두리인지를 판단할 수 밖에 없었다. 따라서, 본 명세서에서는 데이터 변환 장치가 3D CAD 데이터를 기초로 3D 모델링 객체에서 어디가 면이고 어디가 테두리인지를 판단하는 방법에 대해 도 4와 같이 제안한다.
도 4는 본 발명의 일 실시예에 따른 납작한 판 형상의 3D 모델링 객체에 대한 면 및 테두리 구별 실시예를 예시한 도면이다.
3D CAD 데이터에 포함된 정점 정보에는 각 정점별 노멀 벡터 정보가 포함되어 있으나, 각 정점이 이루는 폴리곤을 대표하는 노멀 벡터에 대한 정보는 포함되어 있지 않다. 또한, 3D CAD 데이터의 자료 구조 상 폴리곤 테이블끼리 인접해 있다 하더라도, 해당 테이블에 대응하는 폴리곤이 실제 물리적으로 인접해 있음은 보장되지 않는다.
따라서, 본 명세서의 일 실시예에 따른 데이터 변환 장치는, 컨테이너 노드를 구성하는 모든 폴리곤을 탐색하여 폴리곤의 속성(예를 들어, 각 폴리곤의 노멀 벡터-1(410-1~460))을 기초로 적어도 하나의 면 그룹(410, 420) 또는 적어도 하나의 테두리 그룹(430~460)으로 그룹핑한 후, 실제 물리적 구조를 기초로 각 그룹을 정렬하여 자료 구조를 생성할 수 있다.
보다 상세하게는, 데이터 변환 장치는, 3D 모델링 객체를 구성하는 모든 폴리곤을 탐색할 수 있으며, 탐색된 폴리곤을 속성별로 면 그룹(410, 420) 또는 테두리 그룹(430~460)으로 그룹핑할 수 있다. 여기서, 그룹핑 기준으로 사용되는 속성으로는, 예를 들어 폴리곤의 노멀 벡터(410-1~460)가 사용될 수 있다. 즉, 데이터 변환 장치는 탐색된 폴리곤 각각을 대표하는 노멀 벡터(410-1~460)를 추출할 수 있으며, 추출한 노멀 벡터(410-1~460)의 방향을 기준으로 면 그룹(410, 420) 또는 테두리 그룹(430~460)으로 그룹핑할 수 있다. 예를 들어, 데이터 변환 장치는, 인접한 두 폴리곤으로부터 추출된 노멀 벡터(410-1~460-1)가 이루는 사잇각이, 기설정된 각도 범위(예를 들어, 45도) 이내인 폴리곤들에 대해서는 면 그룹(410, 420)으로 그룹핑할 수 있다. 이와 유사하게, 데이터 변환 장치는 인접한 두 폴리곤으로부터 추출된 노멀 벡터(410-1~460-1)가 이루는 사잇각이 기설정된 각도 범위(예를 들어, 45도)를 초과하는 폴리곤들에 대해서는 테두리 그룹(430~460)으로 그룹핑할 수 있다.
도 5는 본 발명의 일 실시예에 따른 3D 모델링 객체의 정점 노멀 벡터를 예시한 도면이다.
도 4에서 상술한 바와 같이 면과 테두리에 대한 구분이 완료되면, 구분된 면과 테두리에 대하여 다음과 같이 서로 다른 스케일링 방식을 적용함으로써 3D 프린터 출력용 데이터를 생성할 수 있다.
- 면에 대하여: 각 정점이 갖는 노멀 벡터 방향으로, 기설정된 비율 및 기설정된 두께를 고려하여 도출된 변위만큼 평행 이동
- 테두리에 대하여: 평행 이동된 면의 위치(특히, 정점 위치)를 참조하여 테두리 면의 노멀 벡터 방향에 대하여 수직이면서 테두리 면의 면 방향과 평행한 방향으로 이동
즉, 데이터 변환 장치는 면을 스케일링한 후(즉, 면의 정점을 평행 이동시킨 후), 단일 폐곡면을 유지하도록 스케일링된 면의 위치를 기초로 테두리를 스케일링(즉, 테두리의 정점을 면의 정점 위치로 평행 이동)할 수 있다.
다만, 여기서 발생할 수 있는 한 가지 문제점은, 도 5에 도시한 바와 같이 면과 테두리의 변환 형태/방식이 다르며, 임의의 폴리곤은 이웃한 폴리곤과 정점 정보를 공유하지 않는다는 점이다. 따라서, 테두리가 면과의 경계선에서 인접한 면의 폴리곤이 갖는 노멀 벡터의 방향을 참조할 수가 없다는 문제가 발생한다. 테두리는 평행 이동된 면의 위치를 정확히 알고 이를 기준으로/참조하여 스케일링(또는 평행 이동)되어야 단일 폐곡면의 유지가 가능하기 때문이다. 즉, 각자의 위치를 참조하지 않고 스케일링되는 경우, 면과 테두리 사이의 간격이 벌어지게되어 단일 폐곡면이 유지되지 않아, 3D 프린터 출력 시 3D 모델링 객체의 전체 형상이 유지되지 않거나 아예 출력이 불가능한 경우가 발생할 수 있다.
이러한 문제점을 해결하기 위하여, 본 명세서에서는 3D CAD 데이터의 자료 구조를 모든 폴리곤이 정점의 기하 정보를 참조할 수 있도록 변환하는 방법을 제안한다. 개략적으로 설명하면, 데이터 변환 장치는 컨테이너 노드(즉, 3D 모델링 객체)를 구성하는 모든 정점에 대한 정점 리스트를 생성하고, 모든 폴리곤이 해당 정점 리스트의 접근 가능하도록 3D CAD 데이터를 변환할 수 있다. 나아가, 데이터 변환 장치는 면의 스케일링(또는 평행 이동)에 따라 면에 포함된 정점의 위치를 실시간으로 업데이트할 수 있으며, 테두리는 이렇게 업데이트된 면의 정점의 위치를 참조하여 스케일링(또는 평행 이동)됨으로써 면과의 단일 폐곡면을 유지할 수 있다.
이렇듯 정점 리스트를 기초로 데이터 변환하는 방법은 이하의 도 6 및 7(특히, 도 7의 S702, S703 및 S709 단계)을 참조하여 이하에서 상세히 후술하기로 한다.
도 6 및 7은 본 발명의 일 실시예에 따른 3D 프린터 출력을 위한 3D CAD 데이터의 변환 방법에 관한 순서도이다.
특히, 도 7의 순서도는 도 6의 각 단계를 보다 세분화하여 도시한 순서도로서, 도 6의 S601 단계는 도 7의 S701 단계, 도 6의 S602 단계는 도 7의 S702 내지 S709 단계, 도 6의 S603 단계는 도 7의 S710 단계에 각각 대응한다.
도 6 및 7을 참조하면, 우선 데이터 변환 장치는 3D CAD 데이터를 입력받을 수 있다(S601). 이때 입력되는 3D CAD 데이터는, 예를 들어, REV 파일/데이터에 해당할 수 있다(S701).
다음으로, 데이터 변환 장치는 3D CAD 데이터에 포함된 3D 모델링 객체를 기설정된 비율로 축소(또는 스케일링)하여 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환할 수 있다. 본 단계는 다음과 같이 도 7의 S702 내지 S709 단계로 세분화될 수 있다.
우선, 데이터 변환 장치는 3D 모델링 객체에 포함되어 있는 모든 정점을 탐색하고 탐색한 정점에 대한 노멀 벡터를 획득할 수 있다(S702). 이를 위해, 데이터 변환 장치는 3D CAD 데이터에 포함된 컨테이너 노드를 리드(read)/읽어/인식하여, 3D 모델링 객체의 각 폴리곤을 구성하는 모든 정점 및 이들의 노멀 벡터를 탐색할 수 있다.
이때, 데이터 변환 장치는 탐색된 정점 중 다른 정점과 중복되거나 기설정된 간격 이하로 인접한 정점(즉, 중복 정점)은 제외할 수 있다.
도 8은 본 발명의 일 실시예에 따른 정점 중복 제거에 따른 면 그룹 및 테두리 그룹의 이동 변환을 예시한 도면이다.
특정 좌표를 중심으로 인접한 폴리곤들은 폴리곤별로 좌표를 각각 저장하고 있으므로, 인접한 폴리곤의 개수만큼 정점이 중복 저장되어 있다. 본 명세서에서는 이러한 폴리곤간의 중복 정점을 제거하는 대신, 폴리곤간 정점을 공유하는 방식을 제안하고자 한다. 이 경우, 도 8에 도시한 바와 같이, 면으로 판별된 폴리곤 그룹의 이동 시, 해당 폴리곤 그룹과 정점을 공유하고 있는 테두리 그룹 역시 면 그룹의 이동에 따라 자연스럽게 늘어나게 되는 효과가 발생하기 때문이다. 이에 대해서는 이하에서 보다 상세히 후술한다.
다시 도 7을 참조하면, 다음으로, 데이터 변환 장치는 중복 제거된 정점 정보가 포함된 정점 리스트를 생성할 수 있다(S703). 보다 상세하게는, 데이터 변환 장치는 S702 단계에서 탐색된 모든 정점(중복 제외)별로 서로 다른 인덱스를 부여하여 정점 리스트를 생성할 수 있다(즉, 모든 정점에 대하여 인덱싱 작업을 수행하여 정점 리스트 생성). 데이터 변환 장치는, 각 정점별로 부여된 인덱스를, 3D CAD 데이터에 저장되어 있는 정점 정보에 기초하여 각 정점과 대응하는 폴리곤에 매칭하여 저장할 수 있다. 예를 들어, 정점 정보에 제1 정점과 제1 폴리곤이 상호 매칭되어 저장되어 있고 정점 리스트 생성에 따라 제1 정점에 제1 인덱스가 부여된 경우, 데이터 변환 장치는 제1 인덱스를 제1 폴리곤과 매칭하여 저장(또는 데이터를 생성)할 수 있다.
이렇듯 컨테이너 노드를 구성하는 모든 정점(중복 제외)이 리스트-업/배열된 정점 리스트를 생성하고, 모든 폴리곤(특히, 테두리에 포함된 폴리곤)이 인덱스를 통해 정점 리스트에 접근 가능하도록 3D CAD 데이터를 변환할 수 있다. 그 결과, 정점 리스트에서 하나의 정점 인덱스와 매칭되어 저장되어 있는 폴리곤들은 기하학적으로 인접한 관계를 갖는 폴리곤들이라는 해석이 가능하며, 이는 앞서 중복 정점을 제외하여 정점 리스트를 생성함에 따른 부가적인 효과로 볼 수 있다. 나아가, 각 폴리곤별로 저장되어 있던 정점 정보를 통해 물리적으로도 해석 가능하게 되어, 데이터 변환 장치는 테두리의 기하학적 인접성을 탐색하기 위해 필요한 정점의 노멀 벡터를 참조할 수 있게 된다. 보다 상세하게는, 데이터 변환 장치는 면 그룹의 폴리곤을 평행 이동한 후 이동된 정점 위치로 정점 리스트를 업데이트할 수 있으며, 이 경우 테두리는 인덱스를 통해 정점 정보에 접근 가능하므로 테두리 이동에 참조되는 정점은 이미 업데이트가 완료된 정점이 된다. 그 결과, 데이터 변환 장치는 테두리 이동 시 면의 정확한 이동 위치를 알 수 있을 뿐 아니라(즉, 도 5에서 상술한 문제점 해결), 테두리 이동을 위한 참조 정점 정보를 별도로 업데이트/변환할 필요가 없다는 효과가 발생한다.
구분된 면 및 테두리는 각각에 포함된 정점의 이동에 따라 평행 이동될 수 있으며, 이동된 정점에 관한 정보는 정점 리스트에 반영되어 업데이트될 수 있다. 정점 이동을 기초로 면 및 테두리를 스케일링하는 방식은 S708 단계에서 상세히 후술한다.
다음으로, 데이터 변환 장치는 면 벡터를 획득할 수 있다(S704). 여기서 면 벡터는 단일 면(face/polygon)이 가리키는 방향을 나타내는 노멀 벡터를 의미한다. 이러한 면 벡터는, 면을 이루는 연속된 세 정점이 이루는 두 벡터를 벡터곱(cross product)하여 계산하거나, 정점이 가진 정점 노멀 벡터를 모두 더한 후 정규화하여 산출될 수 있다. 이렇게 계산된 면 벡터는 이후에 면 그룹 판별 시 노멀 벡터 변화량의 변수로 사용되게 된다.
다음으로, 데이터 변환 장치는 탐색된 모든 폴리곤으로 구성된 메쉬(즉, 3D 모델링 객체 메쉬)를 생성할 수 있다(S705). 다음으로, 데이터 변환 장치는 생성된 메쉬에서 면 그룹을 선별(S706)하여, 3D 모델링 객체에서 면과 테두리를 구분/선별할 수 있다(S707). 면과 테두리의 구분 방법은 3D 모델링 객체가 곡면을 이루는지 여부에 따라 크게 2가지로 구분되며, 곡면이 아닐 경우에는 도 4에서 상술한 기술이 적용될 수 있다. 3D 모델링 객체가 곡면을 이루는 경우에는, 도 9에서 후술하는 기술이 적용될 수 있다.
도 9는 본 발명의 일 실시예에 따른 면과 테두리를 구분/선별하는 실시예를 예시하는 도면이다.
도 9에 도시한 바와 같이, 데이터 변환 장치는 폴리곤 노멀 벡터의 변화량에 기초하여 꺾이는 부분을 판별하여 3D 모델링 객체가 곡면을 이루는지 판단할 수 있으며, 만일 곡면을 이룬다고 판단된 경우 각 면의 넓이를 기초로 면과 테두리를 구별/선별할 수 있다. 보다 상세하게는, 데이터 변환 장치는 이웃한 두 면의 노멀 벡터가 이루는 사잇각을 변화량으로 하여, 두 사잇각이 임계값 이내이면 완만하게 변하는 면으로 판단할 수 있으며, 임계값을 벗어나면 급격히 꺾이는 부분으로 판단할 수 있다. 이때 사용되는 임계값은, 반복 실험을 통해 면 그룹을 기설정된 비율 이상의 정확도로 판별할 수 있는 값으로 heuristic하게 도출될 수 있다. 데이터 변환 장치는 곡면을 이루는 3D 모델링 객체에서 각 면의 넓이를 계산하고, 가장 넓은 면을 상하면(즉, 면 그룹)으로 구분/선별하고, 이외의 면을 측면(즉, 테두리 그룹)으로 구분/선별할 수 있다.
다시 도 7을 참조하면, 다음으로, 데이터 변환 장치는 구분된 면과 테두리에 서로 다른 스케일링 방식을 적용함으로써 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환할 수 있다(S708). 보다 상세하게는, 데이터 변환 장치는 우선 구분된 면을, 구분된 면의 정점이 갖는 노멀 벡터의 방향으로, 스케일링/축소 비율 및 기설정된 최소 두께(예를 들어, 2㎜)를 고려하여 도출된 변위만큼 평행 이동시킬 수 있다. 면의 평행 이동을 완료한 후, 데이터 변환 장치는 구분된 테두리를, 이동된 면의 정점 위치를 참조하여, 테두리 면의 노멀 벡터 방향에 대하여 수직이고 테두리 면의 면 방향과 평행한 방향으로 이동시킬 수 있다.
도 10은 본 발명의 일 실시예에 따른 정점의 노멀 벡터의 획득 방법을 예시한다.
S708 단계에서 사용되는 정점 노멀 벡터는, 정점 중복 제거 전 중복된/공유된 각 정점이 갖는 노멀 벡터를 모두 더하여 구해진 평균 노멀 벡터(본 도면 참조)를 의미할 수 있다. 이러한 정점 노멀 벡터는 정점 중복 제거 동작 시 획득되어 각 정점에 대한 정보와 함께 저장될 수 있다. 정점 노멀 벡터 획득 시, 테두리에 속한 정점의 노멀 벡터는 포함되지 않는다.
즉, 데이터 변환 장치는 먼저 면을 스케일링하여 이동시킨 후, 이동된 면과 테두리가 상호 연결되어 단일 폐곡면을 형성하도록 이동된 면의 정점 위치를 참조하여 면의 이동 방향으로 테두리를 평행 이동시키는 방식으로 스케일링을 수행할 수 있다. 특히, 데이터 변환 장치는 면 및 테두리의 스케일링(또는 평행 이동)에 정점 및 정점 리스트를 다음과 같이 활용할 수 있다.
일 실시예로서, 데이터 변환 장치는 면을 평행 이동시키는 데 있어서, 우선 인덱스가 부여된 면의 모든 정점을, 각 정점이 갖는 노멀 벡터의 방향으로 기설정된 변위만큼 평행 이동시킬 수 있다. 이를 수학식으로 표현하면 수학식 1과 같으며, 기설정된 변위는 수학식 2에 의해 도출될 수 있다.
Figure 112022068910619-pat00001
수학식 1에서, P는 평행 이동 후 정점 좌표, Po는 평행 이동 전 정점 좌표, d는 기설정된 변위,
Figure 112022068910619-pat00002
는 평행 이동 전 정점의 노멀 벡터를 각각 의미한다.
Figure 112022068910619-pat00003
수학식 2에서, S는 기설정된 비율(스케일링 비율), Lr은 3D 모델링 객체의 실제 크기, Lp는 3D 모델링 객체의 3D 프린터 출력 크기, tp는 기설정된 두께이다. 특히, 기설정된 두께는 사용자가 의도하는 3D 프린터 출력 두께로서, 앞서 상술한 최소 두께 이상인 범위 내에서 사용자에 의해 상수 값으로 직접 설정/입력될 수 있다. 이렇듯 수학식 2를 통해, 3D 모델링 객체의 두께가 기설정된 두께 이상인 값으로 설정되므로, 3D 프린터기의 해상도 범위가 만족될 뿐 아니라 특정 수준 이상의 내구성을 갖춘 3D 모델링 객체의 출력이 가능하게 된다.
데이터 변환 장치는 수학식 1 및 2에 따라 이동된 정점의 위치를 반영하여 정점 리스트를 업데이트할 수 있으며, 이렇게 업데이트된 정점 리스트의 정점 위치를 참조하여 테두리를 이동시킬 수 있다.
보다 상세하게는, 데이터 변환 장치는 구분된 테두리에 포함된 폴리곤별로 매칭되어 있는 인덱스를 업데이트된 정점 리스트에서 검색하여 업데이트된 정점의 위치를 획득할 수 있다. 데이터 변환 장치는 이렇게 획득한 정점의 위치를 참조하여, 테두리를 노멀 벡터 방향에 대하여 수직이면서 테두리의 면 방향과 평행한 방향으로 이동시킬 수 있다.
다시 말하면, 면과 테두리간 공유하고 있던 정점이 면의 이동에 따라 이동됨으로써, 결과적으로 이동한 정점을 공유하는 테두리 역시 면의 이동에 따라 자연스럽게 함께 이동하게 되는 효과가 발생하게 된다. 즉, 데이터 변환 장치는 면 그룹만 이동시키더라도 테두리와의 정점 공유로 인해 테두리 역시 자동으로 면 그룹과 폐곡면을 유지하면서 이동하는 효과가 발생하게 되는 것이다. 메시의 모든 폴리곤들은 자신의 정점을 정점 리스트에서 참조한다. 그에 따라 물리적으로 인접한, 이웃한 폴리곤들은 특정 정점을 공유하게 된다. 이때 만일 면을 이루는 폴리곤과 테두리를 이루는 폴리곤이 특정 정점을 공유한다면, 면을 이루는 폴리곤이 면 벡터 방향으로 이동 변환됨에 따라 공유 중인 정점의 위치가 정점 리스트에서 업데이트되면, 테두리를 이루는 폴리곤은 업데이트된 정점을 참조함으로써 변경된 정점의 위치가 자동으로 반영되게 되는 것이다. 그 결과, 폐곡면을 이루면서도 의도된 스케일링 비율로, 면의 변형에 따라 테두리의 폴리곤이 자동으로 변형될 수 있다.
다시 도 7을 참조하면, 데이터 변환 장치는 상술한 S702 내지 S709 단계를 순차적으로 수행함에 따라 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환할 수 있다. 데이터 변환 장치는 3D 프린터 출력용 데이터를 3D 프린터로 전송하여(S603) 3D 프린터가 스케일링된 3D 모델링 객체를 3D 프린트하도록 할 수 있다(S709).
도 6 및 7 순서도에서 제안된 각 단계는, 3D CAD 데이터 변환 방법을 수행하도록 설계된 어플리케이션/프로그램의 기능/오퍼레이션으로 해석될 수 있다. 이와 유사하게, 도 6 및 7 순서도에서 제안된 각 단계는, 기능에 따라 구분된 데이터 변환 장치의 각 구성 요소에 의해 수행되는 것으로 해석될 수 있다.
도 11은 본 발명의 일 실시예에 따른 3D CAD 데이터 변환 방법에 따라 변환된 3D 모델링 객체의 렌더링 이미지를 예시한다.
특히, 도 11(a)는 3D CAD 데이터의 3D 모델링 객체 원본이며, 도 11(b)는 본 발명의 실시예에 따라 변환된 3D 프린터 출력용 데이터의 3D 모델링 객체 스케일링본(또는 축소본)이며, 도 11(c)는 도 11(a)의 부분 확대도이며, 도 11(d)는 도 11(b)의 부분 확대도이다.
본 도면은 Lr은 25,000㎜, Lp는 250㎜, d는 200㎜로 각각 설정된 상황에서 도출된 렌더링 이미지이다.
도 11을 참조하면, 3D 모델링 객체의 원본의 비율과 형상/형태는 그대로 유지된 상태로 축소되되, 각 구성 요소별 두께(혹은 테두리의 폭)만 확대된 것을 확인할 수 있다. 즉, 본 명세서에서 제안된 실시예에 따르면, 3D CAD 데이터에 포함된 3D 모델링 객체는, 3D 프린터 출력을 위하여 스케일링/축소 변환되더라도, 소실되는 구성 없이 일정 수준의 내구성을 갖춘 상태로 3D 프린터 출력될 수 있다는 효과가 있다.
한편, 본 도면에는 도시하지 않았으나, 3D 모델링 객체의 일부 구성을 의도적으로 소실함으로써 3D 프린터 출력용 데이터를 생성하는 실시예도 제안될 수 있다.
본 명세서에서 제안된 실시예에 따르면, 3D 모델링 객체를 3D 프린터로 출력 가능한 크기로 축소 변환/스케일링하되, 두께는 최소 두께 이상으로 유지시키므로 특정 구성/요소에 대해서는 부분적으로 확대 변환/스케일링되는 효과가 발생한다. 그 결과, 구성간의 간격은 짧아지지만, 구성 자체의 두께는 확대 혹은 유지되어 분리되어 있던 구성들이 상호 접촉되거나 오버랩되는 경우가 발생할 수 있다. 이 경우, 3D 프린터 출력 시 3D 모델링 객체의 외형/형상이 원본과 다르게 출력되는 문제가 발생할 수 있다. 따라서, 본 명세서에서는, 데이터 변환 결과 상술한 바와 같이 기설정된 간격 미만으로 짧아지거나 상호 오버랩되는 구성들이 탐색되는 경우, 해당 구성들을 하나의 구성으로 통합하는 방법에 대해 제안한다.
즉, 데이터 변환 장치는 상기 조건을 만족하는 구성들이 발견된 경우, 해당 구성들을 하나의 구성으로 통합하거나 이들 중 어느 하나의 구성을 의도적으로 삭제/소실시켜 데이터를 변환할 수 있다. 예를 들어, 데이터 변환 장치는 서로 접촉되거나 중첩된 제1 및 제2 기둥 구성을 발견한 경우, 상기 제1 및 제2 기둥 구성을 제3 구성으로 통합하거나 제1 또는 제2 기둥 구성을 의도적으로 삭제/소실시킬 수 있다. 전자의 경우, 제3 구성의 위치는 제1 및 제2 기둥 구성의 중심에 배치될 수 있다.
다만, 본 실시예의 수행되기 위한 전제 조건으로는, 대체되거나 소실되는 대상이 되는 구성들은 모두 동일/유사한 형상/외형을 갖는 구성임을 전제로 한다. 상기 예시를 기초로 설명하면, 대체 또는 소실 대상이 되는 제1 및 제2 기둥은 동일한 기하학적 속성(예를 들어, 높이, 형상, 외형, 두께, 크기 등)을 가짐을 전제로 한다.
본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.
또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시예들을 병합하여 새로운 실시예를 구현하도록 설계하는 것도 가능하다. 또한, 본 발명은 상술한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상술한 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
또한, 이상에서는 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 명세서는 상술한 특정의 실시예에 한정되지 아니하며, 청구 범위에서 청구하는 요지를 벗어남이 없이 당해 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 명세서의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
S601: 3D CAD 데이터를 입력받는 단계
S602: 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환하는 단계
S603: 3D 프린터 출력용 데이터를 3D 프린터로 전송하는 단계

Claims (10)

  1. 3D(Dimension) 프린터 출력을 위한 3D CAD(Computer Aided Design) 데이터의 변환 프로그램에 있어서,
    상기 3D CAD 데이터를 입력받는 오퍼레이션;
    상기 3D CAD 데이터에 포함된 3D 모델링 객체를 기설정된 비율로 축소하여, 상기 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환하는 오퍼레이션; 및
    상기 3D 프린터 출력용 데이터를 상기 3D 프린터로 전송하는 오퍼레이션; 을 수행하되,
    상기 3D CAD 데이터를 상기 3D 프린터 출력용 데이터로 변환하는 오퍼레이션은,
    상기 3D 모델링 객체에서 면 및 테두리를 구분하는 오퍼레이션;
    상기 구분된 면을, 상기 구분된 면의 정점(vertex)이 갖는 제1 노멀(normal) 벡터의 방향으로, 상기 기설정된 비율 및 기설정된 두께를 고려하여 도출된 변위만큼 평행 이동시키는 오퍼레이션; 및
    상기 구분된 테두리를, 상기 평행 이동된 면의 정점 위치를 참조하여, 테두리 면의 제2 노멀 벡터 방향에 대하여 수직이고 상기 테두리 면의 면 방향과 평행한 방향으로 이동시키는 오퍼레이션; 을 포함하되,
    상기 3D CAD 데이터에, 상기 3D 모델링 객체를 구성하는 폴리곤별 정점 정보가 포함되어 있는 경우, 상기 3D CAD 데이터를 상기 3D 프린터 출력용 데이터로 변환하는 오퍼레이션은,
    상기 3D 모델링 객체에 포함된 모든 정점을 탐색하는 오퍼레이션;
    상기 탐색된 정점별로 서로 다른 인덱스를 부여하여 정점 리스트를 생성하는 오퍼레이션; 및
    각 정점별로 부여된 인덱스를, 상기 정점 정보에 기초하여 상기 각 정점과 대응되는 폴리곤에 매칭하여 저장하는 오퍼레이션; 수행하기 위하여,
    기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
  2. 제 1 항에 있어서,
    상기 면 및 테두리를 구분하는 오퍼레이션은,
    상기 3D 모델링 객체를 구성하는 모든 폴리곤(Polygon)을 탐색하는 오퍼레이션;
    상기 탐색된 폴리곤을 속성별로 면 그룹 또는 테두리 그룹으로 그룹핑하는 오퍼레이션; 및
    각 그룹별로 분류된 데이터 구조를 생성하는 오퍼레이션; 을 포함하는,
    기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
  3. 제 2 항에 있어서,
    상기 탐색된 폴리곤을 상기 속성별로 그룹핑하는 오퍼레이션은,
    상기 탐색된 폴리곤 각각을 대표하는 노멀 벡터를 추출하는 오퍼레이션;
    상기 탐색된 폴리곤 중 인접한 폴리곤들로부터 추출된 노멀 벡터간의 사잇각이 기설정된 각도 범위 이하인 경우 상기 인접한 폴리곤들을 상기 면 그룹으로 그룹핑하고, 상기 추출된 노멀 벡터간의 사잇각이 상기 기설정된 각도 범위를 초과하는 경우 상기 인접한 폴리곤을 상기 테두리 그룹으로 그룹핑하는 오퍼레이션; 을 포함하는,
    기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
  4. 제 1 항에 있어서,
    상기 정점 리스트를 생성하는 오퍼레이션은,
    상기 탐색된 정점 중 다른 정점과 중복되거나 기설정된 간격 이하로 인접한 정점을 제외하여 상기 정점 리스트를 생성하는 오퍼레이션인,
    기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
  5. 제 1 항에 있어서,
    상기 구분된 면을 평행 이동시키는 오퍼레이션은,
    상기 인덱스가 부여된 상기 면의 모든 정점을, 상기 제1 노멀 벡터의 방향으로 상기 도출된 변위만큼 평행 이동시키는 오퍼레이션; 및
    상기 이동된 정점의 위치를 반영하여 상기 정점 리스트를 업데이트하는 오퍼레이션; 을 포함하는,
    기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
  6. 제 5 항에 있어서,
    상기 면의 모든 정점을 평행 이동시키는 오퍼레이션은, 수학식 1을 기초로 수행되는,
    기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
    [수학식 1]
    Figure 112022068910619-pat00004

    상기 P는 평행 이동 후 정점 좌표, 상기 Po는 평행 이동 전 정점 좌표, 상기 d는 상기 도출된 변위, 상기
    Figure 112022068910619-pat00005
    는 상기 평행 이동 전 정점의 제1 노멀 벡터임.
  7. 제 6 항에 있어서,
    상기 다른 정점과 중복된 정점의 제1 노멀 벡터는, 중복된 각 정점이 갖는 노멀 벡터를 모두 더하여 구해진 평균 노멀 벡터로 정의되는,
    기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
  8. 제 6 항에 있어서,
    상기 변위는 수학식 2를 기초로 도출되는,
    기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
    [수학식 2]
    Figure 112022068910619-pat00006

    상기 S는 상기 기설정된 비율, 상기 Lr은 상기 3D 모델링 객체의 실제 크기, 상기 Lp는 상기 3D 모델링 객체의 3D 프린터 출력 크기, 상기 tp는 상기 기설정된 두께임.
  9. 제 8 항에 있어서,
    상기 기설정된 두께는,
    상기 3D 프린터의 해상도 이상인 두께 범위에서 사용자에 의해 입력되는 상수 값인,
    기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
  10. 제 5 항에 있어서,
    상기 구분된 테두리를 이동시키는 오퍼레이션은,
    상기 구분된 테두리에 포함된 폴리곤별로 매칭되어 있는 인덱스를 상기 업데이트된 정점 리스트에서 검색하는 오퍼레이션;
    검색한 인덱스와 대응되어 저장되어 있는 업데이트된 정점의 위치를 획득하는 오퍼레이션; 및
    상기 업데이트된 정점의 위치를 기준으로 상기 구분된 테두리를 상기 제2 노멀 벡터 방향에 대하여 수직이고 상기 테두리 면의 면 방향과 평행한 방향으로 이동시키는 오퍼레이션; 을 포함하는,
    기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
KR1020220081194A 2021-04-16 2022-07-01 3d 모델링 객체의 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치 KR102476800B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220081194A KR102476800B1 (ko) 2021-04-16 2022-07-01 3d 모델링 객체의 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210049942A KR102417745B1 (ko) 2021-04-16 2021-04-16 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치
KR1020220081194A KR102476800B1 (ko) 2021-04-16 2022-07-01 3d 모델링 객체의 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210049942A Division KR102417745B1 (ko) 2021-04-16 2021-04-16 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20220143612A KR20220143612A (ko) 2022-10-25
KR102476800B1 true KR102476800B1 (ko) 2022-12-12

Family

ID=82400668

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020210049942A KR102417745B1 (ko) 2021-04-16 2021-04-16 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치
KR1020220081194A KR102476800B1 (ko) 2021-04-16 2022-07-01 3d 모델링 객체의 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020210049942A KR102417745B1 (ko) 2021-04-16 2021-04-16 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치

Country Status (2)

Country Link
KR (2) KR102417745B1 (ko)
WO (1) WO2022220661A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102540518B1 (ko) * 2022-11-10 2023-06-13 주식회사 스탠스 3차원 모델을 생성하는 장치 및 방법
KR102583104B1 (ko) * 2022-11-23 2023-09-27 주식회사 에이디 2d 도면을 이용하여 3d 객체를 생성하는 방법 및 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004001531A (ja) 2003-06-06 2004-01-08 Hitachi Ltd 光造形用形状データ処理方法、光造形方法及び光造形装置
US20110087350A1 (en) 2009-10-08 2011-04-14 3D M.T.P. Ltd Methods and system for enabling printing three-dimensional object models
JP2016221790A (ja) 2015-05-28 2016-12-28 キヤノン株式会社 造形支援装置、3次元造形システム
US20190333284A1 (en) 2016-09-14 2019-10-31 Mixed Dimensions Inc. 3d model validation and optimization system and method thereof
JP2020075450A (ja) 2018-11-09 2020-05-21 富士ゼロックス株式会社 三次元形状データの生成装置、三次元造形装置、及び三次元形状データの生成プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170054645A (ko) * 2015-11-10 2017-05-18 한국전자통신연구원 제한된 3차원 조형 장치 및 방법
JP2017146818A (ja) * 2016-02-18 2017-08-24 キヤノン株式会社 三次元データ処理装置および三次元データ処理方法
JP6252651B1 (ja) * 2016-10-19 2017-12-27 富士ゼロックス株式会社 三次元形状データの編集装置、三次元形状データの編集プログラム、及び三次元形状データのデータ構造

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004001531A (ja) 2003-06-06 2004-01-08 Hitachi Ltd 光造形用形状データ処理方法、光造形方法及び光造形装置
US20110087350A1 (en) 2009-10-08 2011-04-14 3D M.T.P. Ltd Methods and system for enabling printing three-dimensional object models
JP2016221790A (ja) 2015-05-28 2016-12-28 キヤノン株式会社 造形支援装置、3次元造形システム
US20190333284A1 (en) 2016-09-14 2019-10-31 Mixed Dimensions Inc. 3d model validation and optimization system and method thereof
JP2020075450A (ja) 2018-11-09 2020-05-21 富士ゼロックス株式会社 三次元形状データの生成装置、三次元造形装置、及び三次元形状データの生成プログラム

Also Published As

Publication number Publication date
KR20220143612A (ko) 2022-10-25
WO2022220661A1 (ko) 2022-10-20
KR102417745B1 (ko) 2022-07-06

Similar Documents

Publication Publication Date Title
KR102476800B1 (ko) 3d 모델링 객체의 3d 프린터 출력을 위한 3d cad 데이터 변환 방법, 프로그램 및 이를 위한 장치
CN108228987B (zh) 副本选择
US10719549B2 (en) Querying a database based on a parametric view function
EP3040797B1 (en) Simulating the machining of a workpiece
US9881388B2 (en) Compression and decompression of a 3D modeled object
US11436795B2 (en) Learning a neural network for inference of editable feature trees
US10929433B2 (en) Querying a database with morphology criterion
JP2020115337A (ja) ニューラルネットワークのセット
EP1989685B1 (en) A method for comparing a first computer-aided 3d model with a second computer-aided 3d model
JP2022075560A (ja) 開表面を用いた現実のシーンの構造の3d再構成
Schmidt et al. Adaptive mesh booleans
Zhao et al. HSW: Heuristic Shrink-wrapping for automatically repairing solid-based CityGML LOD2 building models
CN114089692A (zh) 一种适用于零件复杂细长面的快速数控编程方法
US20230229824A1 (en) Designing a product using procedural graphs
EP4332817A1 (en) Generating 3d model representing factory
Harris et al. Geometric representation of flow features using the medial axis for mesh generation
Weber Methods for detection and reconstruction of sharp features in point cloud data
Yasmin et al. A Method for 3D Morphing Using Slices
Batsos et al. Clustering and cartographic simplification of point data set
Jie et al. 3D object surface meshing based on occupancy grids
Jie et al. Meshes: a new type of digital media?
JP2006344034A (ja) コンピュータ支援設計プログラム及びそのシステム

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant