KR102417745B1 - 3D CAD data conversion method, program and apparatus for 3D printing - Google Patents

3D CAD data conversion method, program and apparatus for 3D printing Download PDF

Info

Publication number
KR102417745B1
KR102417745B1 KR1020210049942A KR20210049942A KR102417745B1 KR 102417745 B1 KR102417745 B1 KR 102417745B1 KR 1020210049942 A KR1020210049942 A KR 1020210049942A KR 20210049942 A KR20210049942 A KR 20210049942A KR 102417745 B1 KR102417745 B1 KR 102417745B1
Authority
KR
South Korea
Prior art keywords
vertex
cad data
printer
data conversion
vertices
Prior art date
Application number
KR1020210049942A
Other languages
Korean (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 KR1020210049942A priority Critical patent/KR102417745B1/en
Priority to PCT/KR2022/005555 priority patent/WO2022220661A1/en
Priority to KR1020220081194A priority patent/KR102476800B1/en
Application granted granted Critical
Publication of KR102417745B1 publication Critical patent/KR102417745B1/en

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
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/964CAD or CAM, e.g. interactive design tools

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

A three-dimensional computer aided design (CAD) data conversion method for three- dimensional printer outputting according to one embodiment of the present invention comprises steps of: receiving three-dimensional CAD data; reducing, to a preset ratio, a three-dimensional modeling object included in the three-dimensional CAD data to convert the three-dimensional CAD data into data for three-dimensional printer outputting; and transmitting the data for three-dimensional printer outputting to a three-dimensional printer, wherein the step of converting the three-dimensional CAD data into the data for three-dimensional printer outputting may comprise steps of: dividing a plane and an edge in the three-dimensional modeling object; parallelly moving, by a certain displacement derived in consideration of the preset ratio and preset thickness, the divided plane in the direction of a first normal vector included in the vertex of the divided plane; and moving the divided edge in the direction that is vertical to a second normal vector direction of an edge surface and is parallel to the planar direction of the edge surface, by referring to the vertex position of the parallelly moved plane. The present invention can reduce a user burden in terms of time and cost.

Description

3D 프린터 출력을 위한 3D CAD 데이터 변환 방법, 프로그램 및 이를 위한 장치{3D CAD data conversion method, program and apparatus for 3D printing}3D CAD data conversion method, program, and apparatus therefor for 3D printer output

본 명세서는 3D(Dimension) CAD(Computer Aided Design) 데이터를 3D 프린터 출력하기에 적합한 형태의 데이터로 변환하는 방법 및 이를 위한 장치를 제안한다. The present specification proposes a method and apparatus for converting 3D (Dimension) CAD (Computer Aided Design) data into data in a form suitable for 3D printer output, and an apparatus therefor.

3D 프린터란 3D 도면을 바탕으로 3차원 입체 형상을 구현/출력하는 장치이다. 3D 프린터는, 출력물의 재질과 출력 방식에 따라 다양한 종류로 구분될 수 있다. A 3D printer is a device that implements/outputs a three-dimensional three-dimensional shape based on a 3D drawing. 3D printers may be classified into various types according to the material and output method of the output.

가장 흔히 접할 수 있는 출력 방식은 소재를 가열하여 노즐로 분사하는 FDM(Fused deposition modeling) 방식으로, 일반적인 출력 해상도는 0.1~0.4mm 정도이다. 출력 가능 크기는 제공되는 베드의 규모에 따라 결정된다. The most commonly encountered printing method is the FDM (Fused deposition modeling) method in which the material is heated and sprayed with a nozzle, and the general output resolution is about 0.1 to 0.4 mm. The printable size is determined by the size of the bed provided.

DfAM(Design for Additive Manufacturing)이란 3D 프린팅의 장점을 극대화 하기 위해 기존의 공정 설계에 적층 요소를 추가한 개념이라고 할 수 있다. 다시 말해, 기존의 공정을 3D 프린터에 맞추는 모델링 방식이다. 기존의 공정의 예로는 3D CAD 모델 등이 있을 수 있으며, 3D CAD 모델을 3D 프린터로 출력하기 위해서는 3D 프린터에 적합한 데이터 형식으로 변환하는 단계를 거쳐야 한다. 예를 들어, 3D CAD 모델이 3D 프린터로 출력 가능한 크기로 스케일링(예를 들어, 축소/확대)되는 과정이 필요하다.DfAM (Design for Additive Manufacturing) is a concept in which additive elements are added to the existing process design to maximize the advantages of 3D printing. In other words, it is a modeling method that adapts an existing process to a 3D printer. An example of the existing process may be a 3D CAD model, and in order to output the 3D CAD model to a 3D printer, a step of converting the 3D CAD model into a data format suitable for the 3D printer is required. For example, a process of scaling (eg, reducing/enlarging) a 3D CAD model to a size that can be printed with a 3D printer is required.

기본적으로 원본 3D CAD 모델을 3D 프린터 출력 크기에 맞게 스케일링하는 데 있어서 확대의 경우에는 큰 문제가 없다. 다만, 축소의 경우 스케일링 후의 구조가 3D 프린터가 출력 가능한 한계를 벗어나는 경우에는 일부 구성의 소실로 이어질 수 있다. 예를 들어, 축소에 따라 일부 구성의 두께가 3D 프린터 노즐의 직경 이하로 줄어드는 경우(즉, 3D 프린터의 해상도 범위를 벗어나는 경우), 변환 과정에서 해당 구성은 출력 불가로 소실되게 된다. 또는, 이와 유사하게 축소된 후의 구성 두께가 3D 프린터의 해상도 범위를 만족한다 하더라도, 3D 프린터 출력물의 품질을 특정 수준 이상으로 유지하기 위해서는, 일정 강도 이상의 구조를 보장하기 위한 각 구성별 최소 두께 조건을 만족할 것이 요구된다.Basically, scaling the original 3D CAD model to fit the 3D printer output size is no big deal in the case of magnification. However, in the case of reduction, if the structure after scaling exceeds the output limit of the 3D printer, it may lead to loss of some components. For example, when the thickness of some components is reduced to less than the diameter of the 3D printer nozzle according to the reduction (ie, out of the resolution range of the 3D printer), the corresponding components are lost due to inability to print during the conversion process. Alternatively, similarly, even if the thickness of the component after reduction satisfies the resolution range of the 3D printer, in order to maintain the quality of the 3D printer output above a certain level, the minimum thickness condition for each component to ensure a structure with a certain strength or higher satisfaction is required.

기존에는, 이러한 문제점을 해결하기 위하여, 사용자가 최종 결과물을 예측하여 직접 3D 모델을 선별하고, 3D 디자인 툴을 이용하여 이를 수작업하여 3D 프린터로 출력 가능한 형태로 수정해야 했다. 그러나 이는, 시간 및 비용 측면에서 사용자에게 매우 큰 부담으로 작용할 수밖에 없다.In the past, in order to solve this problem, a user had to predict the final result, select a 3D model, and manually use a 3D design tool to modify it in a form that can be printed with a 3D printer. However, this inevitably places a very heavy burden on the user in terms of time and cost.

상술한 문제점을 해결하기 위해 제안된 본 발명의 일 실시예예 따르면, 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 노멀 벡터 방향에 대하여 수직이고 상기 테두리 면의 면 방향과 평행한 방향으로 이동시키는 단계; 를 포함할 수 있다.According to an embodiment of the present invention proposed to solve the above problems, there is provided a method of converting 3D CAD (Computer Aided Design) data for 3D (Dimension) printer output, the method comprising: receiving the 3D CAD data; reducing the 3D modeling object included in the 3D CAD data to a preset ratio, and converting the 3D CAD data into data for 3D printer output; and transmitting the data for output to the 3D printer to the 3D printer. Including, wherein the converting of the 3D CAD data to the data for output to the 3D printer comprises: distinguishing a surface and a border in the 3D modeling object; moving the divided surface in parallel by a displacement derived in consideration of the predetermined ratio and predetermined thickness in the direction of a first normal vector of a vertex of the divided surface; and moving the divided edge in a direction perpendicular to a second normal vector direction of the edge surface and parallel to the surface direction of the edge surface with reference to the vertex position of the parallel-moved surface; may include

또한, 본 발명의 다른 실시예에 따르면, 3D(Dimension) 프린터 출력을 위한 3D CAD(Computer Aided Design) 데이터의 변환 프로그램에 있어서, 상기 3D CAD 데이터를 입력받는 오퍼레이션; 상기 3D CAD 데이터에 포함된 3D 모델링 객체를 기설정된 비율로 축소하여, 상기 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환하는 오퍼레이션; 및 상기 3D 프린터 출력용 데이터를 상기 3D 프린터로 전송하는 오퍼레이션; 을 수행하되, 상기 3D CAD 데이터를 상기 3D 프린터 출력용 데이터로 변환하는 오퍼레이션은, 상기 3D 모델링 객체에서 면 및 테두리를 구분하는 오퍼레이션; 상기 구분된 면을, 상기 구분된 면의 정점(vertex)이 갖는 노멀(normal) 벡터의 방향으로, 상기 기설정된 비율 및 기설정된 두께를 고려하여 도출된 변위만큼 평행 이동시키는 오퍼레이션; 및 상기 구분된 테두리를, 상기 평행 이동된 면의 정점 위치를 참조하여, 테두리 면의 노멀 벡터 방향에 대하여 수직이고 상기 테두리 면의 면 방향과 평행한 방향으로 이동시키는 오퍼레이션; 을 수행하기 위하여 매체에 저장될 수 있다.In addition, according to another embodiment of the present invention, there is provided a 3D (Computer Aided Design) data conversion program for 3D (Dimension) printer output, comprising: an operation for receiving the 3D CAD data; an operation of reducing the 3D modeling object included in the 3D CAD data to a preset ratio, and converting the 3D CAD data into data for output to a 3D printer; and transmitting the data for output to the 3D printer to the 3D printer. However, the operation of converting the 3D CAD data to the data for output to the 3D printer may include: an operation of dividing a surface and a border in the 3D modeling object; an operation of moving the divided surface in parallel by a displacement derived in consideration of the predetermined ratio and predetermined thickness in the direction of a normal vector of a vertex of the divided surface; and an operation of moving the divided edge in a direction perpendicular to the normal vector direction of the edge surface and parallel to the surface direction of the edge surface with reference to the vertex position of the parallel-moved surface; may be stored in a medium to perform

본 발명의 일 실시예에 따르면, 3D CAD 데이터가 3D 프린터 출력용 데이터로 자동 변환되므로, 사용자가 직접 수작업할 필요가 없어, 시간 및 비용 측면의 사용자 부담이 크게 줄어든다는 효과가 있다. According to an embodiment of the present invention, since 3D CAD data is automatically converted to data for output by a 3D printer, there is no need for a user to manually work, thereby greatly reducing user burden in terms of time and cost.

특히, 3D CAD 데이터의 3D 모델링 객체를 축소 변환하여 3D 프린터 출력용 데이터로 변환 시, 단순 축소 변환만으로는 일부 구성이 소실되거나 전체적인 형상/비율의 변경이 발생하므로, 이를 방지하기 위한 사용자의 후처리 작업이 필수적으로 수행되어야 했다. 그러나, 본 발명명의 일 실시예에 따르면 사용자의 후처리 작업 없이도 상술한 문제점이 발생하지 않으므로, 후처리 작업에 들어가는 시간/비용이 줄어들 뿐 아니라, 높은 품질로 3D 모델링 객체의 3D 프린터 출력이 가능하다는 효과가 있다. In particular, when reducing the 3D modeling object of 3D CAD data and converting it to data for 3D printer output, some components are lost or the overall shape/ratio is changed only by simple reduction conversion. had to be done. However, according to an embodiment of the present invention, since the above-mentioned problems do not occur without the user's post-processing work, the time/cost for post-processing work is reduced, and 3D printing of 3D modeling objects with high quality is possible. It works.

본 발명의 효과는 이에 한정되지 않으며, 다양한 효과에 대해서는 이하에서 각 실시예를 참조하여 상세히 후술하기로 한다.The effects of the present invention are not limited thereto, and various effects will be described later in detail with reference to each embodiment.

도 1은 본 발명의 일 실시예에 따른 은면 제거 기법을 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 3D CAD 모델에서 꺾인 면을 검출하는 실시예를 예시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 CAD 도면에서 컨테이너 노드의 렌더링 이미지를 예시한다.
도 4는 본 발명의 일 실시예에 따른 납작한 판 형상의 3D 모델링 객체에 대한 면 및 테두리 구별 실시예를 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 3D 모델링 객체의 정점 노멀 벡터를 예시한 도면이다.
도 6 및 7은 본 발명의 일 실시예에 따른 3D 프린터 출력을 위한 3D CAD 데이터의 변환 방법에 관한 순서도이다.
도 8은 본 발명의 일 실시예에 따른 정점 중복 제거에 따른 면 그룹 및 테두리 그룹의 이동 변환을 예시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 면과 테두리를 구분/선별하는 실시예를 예시하는 도면이다.
도 10은 본 발명의 일 실시예에 따른 정점의 노멀 벡터의 획득 방법을 예시한다.
도 11은 본 발명의 일 실시예에 따른 3D CAD 데이터 변환 방법에 따라 변환된 3D 모델링 객체의 렌더링 이미지를 예시한다.
1 is a diagram illustrating a silver surface removal technique according to an embodiment of the present invention.
2 is a diagram illustrating an embodiment of detecting a bent surface in a 3D CAD model according to an embodiment of the present invention.
3 illustrates a rendered image of a container node in a CAD drawing according to an embodiment of the present invention.
4 is a view illustrating an embodiment of distinguishing faces and edges of a flat plate-shaped 3D modeling object according to an embodiment of the present invention.
5 is a diagram illustrating a vertex normal vector of a 3D modeling object according to an embodiment of the present invention.
6 and 7 are flowcharts of a method of converting 3D CAD data for output to a 3D printer according to an embodiment of the present invention.
8 is a diagram illustrating movement transformation of a face group and an edge group according to vertex duplication removal according to an embodiment of the present invention.
9 is a diagram illustrating an embodiment of dividing/selecting a surface and an edge according to an embodiment of the present invention.
10 illustrates a method of obtaining a normal vector of a vertex according to an embodiment of the present invention.
11 illustrates a rendered image of a 3D modeling object converted according to a 3D CAD data conversion method according to an embodiment of the present invention.

이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the technology to be described below may have various changes and may have various embodiments, specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the technology described below to specific embodiments, and it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the technology described below.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. 예를 들어, 'A 및/또는 B'는 'A 또는 B 중 적어도 하나'의 의미로 해석될 수 있다. 또한, '/'는 '및' 또는 '또는'으로 해석될 수 있다.Terms such as first, second, A, and B may be used to describe various components, but the components are not limited by the above terms, and only for the purpose of distinguishing one component from other components. is used only as For example, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component without departing from the scope of the present invention. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items. For example, 'A and/or B' may be interpreted as meaning 'at least one of A or B'. Also, '/' may be interpreted as 'and' or 'or'.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In terms of terms used herein, the singular expression should be understood to include a plural expression unless the context clearly dictates otherwise, and terms such as "comprises" include the specified feature, number, step, operation, and element. , parts or combinations thereof are to be understood, but not to exclude the possibility of the presence or addition of one or more other features or numbers, step operation components, parts or combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Prior to a detailed description of the drawings, it is intended to clarify that the classification of the constituent parts in the present specification is merely a division according to the main function each constituent unit is responsible for. That is, two or more components to be described below may be combined into one component, or one component may be divided into two or more for each more subdivided function. In addition, each of the constituent units to be described below may additionally perform some or all of the functions of other constituent units in addition to the main function it is responsible for. Of course, it can also be performed by being dedicated to it.

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in performing the method or method of operation, each process constituting the method may occur differently from the specified order unless a specific order is clearly described in context. That is, each process may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

본 명세서에서 제안하는 3D CAD 데이터 변환 장치는, 본 명세서에서 제안되는 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법/실시예를 수행/실행 가능하도록 구현된 어플리케이션/프로그램이 사전에 설치되어 실행 중인 전자 서버/기기/장치에 해당할 수 있다. 따라서, 이하에서 별도로 설명하지 않더라도, 본 명세서에서 제안되는 방법/실시예는 상기 어플리케이션/프로그램이 실행 중인 서버/기기/장치를 통해 수행/실행되는 것으로 해석될 수 있으며, 각 서버/기기/장치의 동작은 상기 어플리케이션/프로그램의 동작/기능/오퍼레이션으로 해석될 수 있다. 이하에서는 설명의 편의를 위해, '3D CAD 데이터 변환 장치'를 '데이터 변환 장치'로 약칭하기로 한다.The 3D CAD data conversion apparatus proposed in the present specification is an electronic server in which an application/program implemented to perform/execute the 3D CAD data conversion method/embodiment for 3D printer output proposed in the present specification is installed and executed in advance. This may correspond to /device/device. Therefore, even if not described separately below, the method/embodiment proposed in the present specification may be interpreted as being performed/executed through the server/device/device in which the application/program is running, and the method/embodiment of each server/device/device An operation may be interpreted as an operation/function/operation of the application/program. Hereinafter, for convenience of description, '3D CAD data conversion apparatus' will be abbreviated as 'data conversion apparatus'.

우선, 본 발명 설명에 사용되는 기술 용어에 대해 정의한 후 본 발명에 대해 구체적으로 설명하기로 한다. First, technical terms used in the description of the present invention will be defined, and then the present invention will be described in detail.

- REV(AVEVA Review Model Format): Aveva Marine 사에서 만든 3D CAD 데이터 포맷 및 확장자- REV (AVEVA Review Model Format): 3D CAD data format and extension created by Aveva Marine

- 컨테이너: REV 포맷에서 계층 구조의 노드를 의미- Container: In REV format, it means a node of a hierarchical structure.

- 프리미티브(primitive): 3D 모델에서 기본 기하 요소를 의미, 각 프리미티브는 고유한 기하학적 정의로 표현됨.- Primitive: A basic geometric element in a 3D model, where each primitive is represented by a unique geometric definition.

- 메시(mesh): 폴리곤과 정점으로 구조화된 3D 모델- Mesh: 3D model structured with polygons and vertices

- 폴리곤(Polygon)/페이스(face): 동일 평면상의 3개 이상의 정점으로 구성된 다각형- Polygon/face: A polygon composed of three or more vertices on the same plane.

- 정점(vertex): 3D 공간상의 위치를 나타내는 세 좌표의 집합(예를 들어, (x, y, z))- Vertex: A set of three coordinates representing a position in 3D space (eg (x, y, z))

- 노멀 벡터(normal vector): 평면의 방향을 나타내며(즉, 평면에 수직이며), 길이가 1인 벡터- Normal vector: A vector of length 1 representing the direction of the plane (ie perpendicular to the plane).

- 3D 모델: 3D 공간에 나타낼 수 있는 형상 정보를 가진 데이터 집합 혹은 파일- 3D model: A data set or file with shape information that can be represented in 3D space

- 3D 모델링 객체: 3D 모델에 의해 외형, 형상이 정의되는 3D 객체- 3D modeling object: 3D object whose appearance and shape are defined by the 3D model

본 기술 용어들은 상술한 바에 따라 정의될 수 있으나 반드시 이에 한정되는 것은 아니며, 사전적 정의 또는 당업자에 의해 관용적으로 인식되는 정의로도 사용될 수 있음은 물론이다.These technical terms may be defined as described above, but are not necessarily limited thereto, and may be used as dictionary definitions or definitions commonly recognized by those skilled in the art.

본 명세서는 기본적으로 3D CAD 데이터를 3D 프린터로 출력 가능한 데이터로 변환하는 방법을 제안한다. 즉, 3D CAD 데이터를 DfAM에 적합하게 변환하는 방법을 제안한다. This specification basically proposes a method of converting 3D CAD data into data that can be output by a 3D printer. In other words, a method for converting 3D CAD data to DfAM is proposed.

조선업에 사용되는 3D CAD 데이터의 경우 3D 모델링 객체의 크기가 매우 커 3D 프린터로 바로 출력하는 것은 불가능하므로, 3D 모델링 객체를 일정 비율로 스케일링/축소함으로써 3D 출력 가능한 형태로 데이터 변환이 필수적으로 요구된다. 그러나, 이러한 스케일링/축소 과정에서 일부 구성 요소의 두께가 3D 프린터의 노즐 최소 지름/두께(즉, 해상도) 미만으로까지 축소된 경우, 3D 프린터가 해당 일부 구성 요소를 출력할 수 없어 소실되게 된다. 나아가, 스케일링/축소된 두께가 3D 프린터의 해상도 범위를 만족한다 하더라도 너무 얇은 두께로 축소된 경우, 3D 모델링 객체의 강도/내구성이 매우 약하게 출력될 수 있다. In the case of 3D CAD data used in the shipbuilding industry, the size of the 3D modeling object is very large, so it is impossible to directly output it with a 3D printer, so it is essential to convert the data into a 3D printable form by scaling/reducing the 3D modeling object at a certain rate. . However, when the thickness of some components is reduced to less than the minimum nozzle diameter/thickness (ie, resolution) of the 3D printer during the scaling/reducing process, the 3D printer cannot output the corresponding partial components and is lost. Furthermore, even if the scaled/reduced thickness satisfies the resolution range of the 3D printer, if the scaled/reduced thickness is reduced to a too thin thickness, the strength/durability of the 3D modeling object may be very weakly output.

따라서, 3D 프린터 출력을 위한 데이터 변환 작업에 있어, 3D 출력된 3D 모델링 객체의 전체적인 형상 및 비율은 유지되면서도 일부 구성이 소실되지 않고 일정 수준 이상의 강도/내구성으로 출력되도록 하기 위한 별도의 데이터 처리 과정이 요구된다. Therefore, in the data conversion work for 3D printer output, while maintaining the overall shape and proportion of the 3D printed 3D modeling object, a separate data processing process is performed so that some components are not lost and output with strength/durability above a certain level. is required

본 명세서에서는 3D CAD 데이터 변환 방법에 있어 이러한 처리 방법에 대해 중점적으로 제안하며, 우선 본 발명을 제안하기 전 기반이 되는 기술 및 개념에 대해 설명한다.In this specification, such a processing method is mainly proposed in the 3D CAD data conversion method, and the technology and concept underlying the present invention will be described first.

REV 파일은 AVEVA 사에서 만든 3D 모델 포맷으로, REV 파일은 크게 REV와 RVM 확장자로 나뉘며, 각각 아스키/바이너리 형식에 대응한다.REV file is a 3D model format created by AVEVA, and REV file is largely divided into REV and RVM extensions, and each corresponds to ASCII/binary format.

REV 파일은 파일을 설명하는 메타 데이터와 실제 모델 정보를 가진 컨테이너 집합으로 이루어지는데, 컨테이너 집합은 트리 구조를 이룬다. 컨테이너 노드는 컨테이너 노드는 다른 컨테이너 노드를 포함할 수 있다(즉, nested container nodes). A REV file consists of a container set with metadata and actual model information to describe the file, and the container set forms a tree structure. A container node may include other container nodes (ie, nested container nodes).

컨테이너 노드, 특히 단말 노드는 프리미티브 데이터의 집합으로 구성될 수 있다. 프리미티브 데이터는 각 종류별로 모델의 수학적 정의로 표현된 자료구조로, 메쉬, 블록, 파이프, 원뿔 등이 있고 이들이 3D 모델링 객체의 형태를 결정한다. A container node, particularly a terminal node, may be composed of a set of primitive data. Primitive data is a data structure expressed by the mathematical definition of a model for each type, and there are meshes, blocks, pipes, cones, etc., and these determine the shape of the 3D modeling object.

메쉬는 폴리곤의 집합으로 이루어진 3D 모델이다. REV에서 메쉬 프리미티브는 면 그룹-면-루프-정점(FACET_GROUP - FACET - LOOP - VERTICES)으로 이어지는 계층 구조를 가진다. 정점은 3D 정점 좌표와 정점 노멀 벡터로 구성된다. 여기서, 정점 노멀 벡터는, 정점에 부여된 속성으로서 정점을 기준으로 바라보는 방향을 나타내며, 일반적으로 정점이 속한 폴리곤 면에 수직인 노멀 벡터로 구해질 수 있다. 정점에 대한 정보(즉, 정점 정보)는 각 정점이 속한 폴리곤과 매칭되어 저장되어 있을 수 있다. A mesh is a 3D model made up of a set of polygons. In REV, mesh primitives have a hierarchical structure that consists of face group-face-loop-vertex (FACET_GROUP - FACET - LOOP - VERTICES). A vertex consists of 3D vertex coordinates and a vertex normal vector. Here, the vertex normal vector is a property given to the vertex, indicating a viewing direction with respect to the vertex, and may be obtained as a normal vector perpendicular to the polygonal plane to which the vertex belongs. Information on vertices (ie, vertex information) may be stored by matching with polygons to which each vertex belongs.

메쉬 프리미티브 자료 구조는, 판을 절단 가공한 부품을 표현하는데 적합한데, 하나의 면 그룹은 ?은 판의 테두리를 절단한 면(이하, '테두리'라 지칭함)과 내부를 절단한 구멍인 루프의 조합으로 표현할 수 있기 때문이다. REV의 컨테이너 트리 구조는 계층 구조이기 때문에 사용자가 필요한 부분만 활성화 하거나, 필요한 노드를 중심으로 하위 단계를 병합하고 관리하기 위한 기반 구조로 활용하기에 용이하다.The mesh primitive data structure is suitable for expressing parts cut out of a plate, and one face group consists of a face cut off the edge of the plate (hereinafter referred to as 'border') and a loop that is a hole cut inside. Because it can be expressed as a combination. Since the container tree structure of REV is a hierarchical structure, it is easy for the user to activate only the necessary parts or to use it as an infrastructure for merging and managing sub-steps around the necessary nodes.

도 1은 본 발명의 일 실시예에 따른 은면 제거 기법을 예시한 도면이다.1 is a diagram illustrating a silver surface removal technique according to an embodiment of the present invention.

컴퓨터 그래픽스에서 면 선별이란, 폴리곤의 노멀 벡터와 시선 벡터를 비교하여 보이지 않는 면을 걸러내는 기법이다. 이는, 은면 제거(Back Face Culling)기법이라고도 불린다.In computer graphics, face selection is a technique of filtering out the invisible face by comparing the polygon's normal vector and the gaze vector. This is also called a back face culling technique.

시선 방향(150)을 기준으로 그려야 할 폴리곤은 사잇각이 90도 이하인 것이지만, 실제로는 정점의 회전 순서(110, 130)만 가지고도 선별이 가능하며, 이 경우 복잡한 벡터 사잇각 계산 없이도 은면 제거가 가능하다.The polygon to be drawn based on the gaze direction 150 has an angle of 90 degrees or less, but in reality, it is possible to select only with the order of rotation of the vertices (110, 130), and in this case, it is possible to remove the hidden surface without calculating the angle between the vectors. .

도 2는 본 발명의 일 실시예에 따른 3D CAD 모델에서 꺾인 면을 검출하는 실시예를 예시한 도면이다.2 is a diagram illustrating an embodiment of detecting a bent surface in a 3D CAD model according to an embodiment of the present invention.

메쉬 단순화(Mesh Simplification) 혹은 메쉬 경량화(Mesh Decimation)는, 미리 정해진 규칙에 따라 3D 모델의 정점 수를 줄이는 기법이다. 경량화된 모델의 크기와 품질은 상호 trade-off 관계를 가지기 때문에, 모델의 형태 및 특징점에 따라 경량화 정도를 달리하여 형태를 보존하는 적응적 기법이 수행될 수 있다.Mesh simplification or mesh decimation is a technique for reducing the number of vertices in a 3D model according to a predetermined rule. Since the size and quality of the lightweight model have a trade-off relationship, an adaptive technique for preserving the shape by varying the degree of weight reduction according to the shape and feature points of the model can be performed.

도 2와 같이, 현실 세계에서 인공물의 경우 대개 모서리를 갖는다는 특징이 나타나는데, 절단면이나 꺾인면, 면과 면 사이의 경계에서 평면 노멀 벡터의 급격한 변화가 발생하는 것을 알 수 있다. 3D CAD 데이터에서 표현되는 대상인 3D 모델링 객체는 대부분 인공물이며, 따라서 3D CAD 데이터에서도 역시 이와 같은 동일한 특징이 발견된다.As shown in FIG. 2 , in the case of an artifact in the real world, it is usually characterized as having an edge, and it can be seen that a sharp change in the plane normal vector occurs at a cut surface, a bent surface, or a boundary between a surface and a surface. Most 3D modeling objects, which are objects expressed in 3D CAD data, are artifacts, and therefore, the same characteristics are also found in 3D CAD data.

이러한 점에 착안하여, 노멀 벡터의 변화량을 error metrics로 사용하여 모서리 특징을 검출하거나 보존할 수 있다. 이는 feature preserving mesh smoothing 등의 연구에 사용되고 있다.Taking this into consideration, it is possible to detect or preserve edge features by using the amount of change in the normal vector as error metrics. This is being used in research such as feature preserving mesh smoothing.

도 3은 본 발명의 일 실시예에 따른 CAD 도면에서 컨테이너 노드의 렌더링 이미지를 예시한다. 3 illustrates a rendered image of a container node in a CAD drawing according to an embodiment of the present invention.

3D CAD 데이터(특히, 선박 3D CAD 데이터)에서 3D 모델링 객체의 특징은, 많은 부분이 판 가공의 형태로 구성되어 있다는 점이다. 선박의 부품 판은 넓은 면과 절단면(이하, 테두리라 지칭)으로 구성되어 있다. 3D 모델링 객체에서 단말 노드는 판에서 가공된 소단위 부품을 나타낸다. 단말 노드는 단일 부품으로 관리되지만, 정점의 연속으로 이루어진 폴리곤의 집합으로 추가적인 정보는 없다. A characteristic of 3D modeling objects in 3D CAD data (especially ship 3D CAD data) is that many parts are composed of plate processing. The part plate of the ship is composed of a wide surface and a cut surface (hereinafter referred to as an edge). In the 3D modeling object, the terminal node represents a small unit part machined from the plate. A terminal node is managed as a single component, but as a set of polygons consisting of a series of vertices, there is no additional information.

실제 선박의 조립 블럭 단위는 약 25Х25Х25㎥ 정도의 체적을 차지한다. 선박에 사용되는 강판의 두께는 대략 20㎜ 전후이다. 3D 프린터의 베드 면적은 약 300Х300㎟로, 대략 250㎜정도의 길이로 각 변이 출력될 수 있다. FDM 방식 3D 프린터의 출력 해상도(즉, 노즐 두께/지름)는 0.4㎜ 정도이나, 3D 출력 시 3D 모델링 객체의 구조 강도를 위해 최소 두께로서 2㎜ 값이 설정될 수 있다. 다만, 이에 한정되는 것은 아니며, 최소 두께는 상수 값으로서 사용자에 의해 직접 설정/조정될 수 있다. The actual ship's assembly block unit occupies a volume of about 25Х25Х25㎥. The thickness of the steel plate used in ships is about 20 mm. The bed area of the 3D printer is about 300Х300㎟, and each side can be printed with a length of about 250mm. The output resolution (ie, nozzle thickness/diameter) of the FDM type 3D printer is about 0.4 mm, but a value of 2 mm may be set as the minimum thickness for the structural strength of the 3D modeling object during 3D printing. However, the present invention is not limited thereto, and the minimum thickness may be directly set/adjusted by the user as a constant value.

즉, 3D CAD 데이터에 포함된 3D 모델링 객체는 3D 프린터 출력을 위해 축소 스케일링될 수 있으며, 이때 면의 두께는 미리 설정된 최소 두께 이하로 줄어들지 않도록 선별적으로 확대될 수 있다. 즉, 데이터 변환 장치는, 3D 프린터 출력을 위한 데이터 변환에 있어, 3D 모델링 객체를 전체적으로 기설정된 비율로 스케일링/축소하되, 최소 두께(예를 들어, 2㎜) 이하로 축소된 두께에 대해서는 선별적으로 확대할 수 있다. That is, the 3D modeling object included in the 3D CAD data may be reduced and scaled for output by a 3D printer, and in this case, the thickness of the surface may be selectively enlarged so as not to be reduced below a preset minimum thickness. That is, the data conversion apparatus scales/reduces the overall 3D modeling object at a predetermined ratio in data conversion for 3D printer output, but selectively for the reduced thickness to a minimum thickness (eg, 2 mm) or less can be enlarged to

다만, 이러한 데이터 변환에 있어 다음과 같이 해결해야 할 몇 가지 문제점이 존재한다. However, there are several problems to be solved as follows in this data conversion.

3D CAD 데이터에는, 메쉬를 구성하는 정점 및 폴리곤은 단지 렌더링 알고리즘으로 입력되는 정보만 있으며, 이들 사이에는 아무런 기하학적 관계 정보가 없다. 따라서, 3D CAD 데이터만으로는 어디가 면이고 테두리인지 알 수 없다는 문제점이 있다. 기존에는 이러한 문제점을 해결하기 위해서, 사용자가 직접 렌더링된 결과를 바탕으로 어느 부분이 면이고 테두리인지를 판단할 수 밖에 없었다. 따라서, 본 명세서에서는 데이터 변환 장치가 3D CAD 데이터를 기초로 3D 모델링 객체에서 어디가 면이고 어디가 테두리인지를 판단하는 방법에 대해 도 4와 같이 제안한다.In 3D CAD data, vertices and polygons constituting the mesh have only information input to the rendering algorithm, and there is no geometrical relationship information between them. Accordingly, there is a problem in that it is not possible to know which is a surface and which is an edge only with 3D CAD data. In the past, in order to solve this problem, the user had no choice but to determine which part is the face and which is the border based on the directly rendered result. Accordingly, in the present specification, a method for the data conversion apparatus to determine where is a surface and where is an edge in a 3D modeling object based on 3D CAD data is proposed as shown in FIG. 4 .

도 4는 본 발명의 일 실시예에 따른 납작한 판 형상의 3D 모델링 객체에 대한 면 및 테두리 구별 실시예를 예시한 도면이다.4 is a view illustrating an embodiment of distinguishing faces and edges of a flat plate-shaped 3D modeling object according to an embodiment of the present invention.

3D CAD 데이터에 포함된 정점 정보에는 각 정점별 노멀 벡터 정보가 포함되어 있으나, 각 정점이 이루는 폴리곤을 대표하는 노멀 벡터에 대한 정보는 포함되어 있지 않다. 또한, 3D CAD 데이터의 자료 구조 상 폴리곤 테이블끼리 인접해 있다 하더라도, 해당 테이블에 대응하는 폴리곤이 실제 물리적으로 인접해 있음은 보장되지 않는다. Vertex information included in 3D CAD data includes normal vector information for each vertex, but does not include information on normal vectors representing polygons formed by each vertex. Also, even if polygon tables are adjacent to each other in the data structure of 3D CAD data, it is not guaranteed that polygons corresponding to the table are physically adjacent to each other.

따라서, 본 명세서의 일 실시예에 따른 데이터 변환 장치는, 컨테이너 노드를 구성하는 모든 폴리곤을 탐색하여 폴리곤의 속성(예를 들어, 각 폴리곤의 노멀 벡터-1(410-1~460))을 기초로 적어도 하나의 면 그룹(410, 420) 또는 적어도 하나의 테두리 그룹(430~460)으로 그룹핑한 후, 실제 물리적 구조를 기초로 각 그룹을 정렬하여 자료 구조를 생성할 수 있다. Accordingly, the data conversion apparatus according to an embodiment of the present specification searches all polygons constituting the container node and based on the polygon properties (eg, normal vector-1 (410-1 to 460) of each polygon). After grouping into at least one face group 410, 420 or at least one edge group 430 to 460, the data structure may be generated by aligning each group based on the actual physical structure.

보다 상세하게는, 데이터 변환 장치는, 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)으로 그룹핑할 수 있다.More specifically, the data conversion apparatus may search all polygons constituting the 3D modeling object, and may group the searched polygons into face groups 410 and 420 or border groups 430 to 460 by properties. . Here, as an attribute used as a grouping criterion, for example, normal vectors 410-1 to 460 of polygons may be used. That is, the data conversion apparatus may extract normal vectors 410-1 to 460 representing each of the found polygons, and the face groups 410 and 420 based on the direction of the extracted normal vectors 410-1 to 460. Alternatively, it may be grouped into border groups 430 to 460. For example, the data conversion apparatus is, for polygons in which an angle between normal vectors 410-1 to 460-1 extracted from two adjacent polygons is within a preset angle range (eg, 45 degrees), a plane Groups may be grouped into groups 410 and 420 . Similarly, the data conversion apparatus performs border group for polygons in which the angle between the normal vectors 410-1 to 460-1 extracted from two adjacent polygons exceeds a preset angle range (eg, 45 degrees). (430-460) can be grouped.

도 5는 본 발명의 일 실시예에 따른 3D 모델링 객체의 정점 노멀 벡터를 예시한 도면이다.5 is a diagram illustrating a vertex normal vector of a 3D modeling object according to an embodiment of the present invention.

도 4에서 상술한 바와 같이 면과 테두리에 대한 구분이 완료되면, 구분된 면과 테두리에 대하여 다음과 같이 서로 다른 스케일링 방식을 적용함으로써 3D 프린터 출력용 데이터를 생성할 수 있다.As described above in FIG. 4 , when the division of the surface and the edge is completed, data for 3D printer output can be generated by applying different scaling methods to the divided surface and the edge as follows.

- 면에 대하여: 각 정점이 갖는 노멀 벡터 방향으로, 기설정된 비율 및 기설정된 두께를 고려하여 도출된 변위만큼 평행 이동- With respect to the plane: In the direction of the normal vector of each vertex, it moves in parallel by the displacement derived in consideration of the preset ratio and the preset thickness.

- 테두리에 대하여: 평행 이동된 면의 위치(특히, 정점 위치)를 참조하여 테두리 면의 노멀 벡터 방향에 대하여 수직이면서 테두리 면의 면 방향과 평행한 방향으로 이동- With respect to the border: Referring to the position of the parallel-moved surface (especially the vertex position), it moves in a direction perpendicular to the normal vector direction of the border face and parallel to the face direction of the border face

즉, 데이터 변환 장치는 면을 스케일링한 후(즉, 면의 정점을 평행 이동시킨 후), 단일 폐곡면을 유지하도록 스케일링된 면의 위치를 기초로 테두리를 스케일링(즉, 테두리의 정점을 면의 정점 위치로 평행 이동)할 수 있다. That is, the data transformation device scales the face (i.e., after translating the vertices of the face), and then scales the border based on the position of the scaled face to maintain a single closed surface (i.e., the vertex of the border is the can be translated to the vertex position).

다만, 여기서 발생할 수 있는 한 가지 문제점은, 도 5에 도시한 바와 같이 면과 테두리의 변환 형태/방식이 다르며, 임의의 폴리곤은 이웃한 폴리곤과 정점 정보를 공유하지 않는다는 점이다. 따라서, 테두리가 면과의 경계선에서 인접한 면의 폴리곤이 갖는 노멀 벡터의 방향을 참조할 수가 없다는 문제가 발생한다. 테두리는 평행 이동된 면의 위치를 정확히 알고 이를 기준으로/참조하여 스케일링(또는 평행 이동)되어야 단일 폐곡면의 유지가 가능하기 때문이다. 즉, 각자의 위치를 참조하지 않고 스케일링되는 경우, 면과 테두리 사이의 간격이 벌어지게되어 단일 폐곡면이 유지되지 않아, 3D 프린터 출력 시 3D 모델링 객체의 전체 형상이 유지되지 않거나 아예 출력이 불가능한 경우가 발생할 수 있다. However, one problem that may occur here is that, as shown in FIG. 5 , the conversion form/method of a face and a border is different, and any polygon does not share vertex information with a neighboring polygon. Accordingly, a problem arises that the border cannot refer to the direction of the normal vector of the polygon of the adjacent face at the boundary line with the face. This is because a single closed curved surface can be maintained only when the edge accurately knows the position of the parallel-moved surface and scales (or translates) it based on/referring to it. In other words, when scaling without referring to their respective positions, a single closed curved surface is not maintained because the gap between the surface and the border is widened. may occur.

이러한 문제점을 해결하기 위하여, 본 명세서에서는 3D CAD 데이터의 자료 구조를 모든 폴리곤이 정점의 기하 정보를 참조할 수 있도록 변환하는 방법을 제안한다. 개략적으로 설명하면, 데이터 변환 장치는 컨테이너 노드(즉, 3D 모델링 객체)를 구성하는 모든 정점에 대한 정점 리스트를 생성하고, 모든 폴리곤이 해당 정점 리스트의 접근 가능하도록 3D CAD 데이터를 변환할 수 있다. 나아가, 데이터 변환 장치는 면의 스케일링(또는 평행 이동)에 따라 면에 포함된 정점의 위치를 실시간으로 업데이트할 수 있으며, 테두리는 이렇게 업데이트된 면의 정점의 위치를 참조하여 스케일링(또는 평행 이동)됨으로써 면과의 단일 폐곡면을 유지할 수 있다. In order to solve this problem, the present specification proposes a method of converting the data structure of 3D CAD data so that all polygons can refer to the geometric information of the vertices. Briefly, the data conversion apparatus may generate a vertex list for all vertices constituting a container node (ie, a 3D modeling object), and convert the 3D CAD data so that all polygons of the corresponding vertex list are accessible. Furthermore, the data conversion device may update the position of the vertices included in the face in real time according to the scaling (or translation) of the face, and the border is scaled (or translated) by referring to the updated position of the vertex of the face. As a result, it is possible to maintain a single closed curved surface with the surface.

이렇듯 정점 리스트를 기초로 데이터 변환하는 방법은 이하의 도 6 및 7(특히, 도 7의 S702, S703 및 S709 단계)을 참조하여 이하에서 상세히 후술하기로 한다.As such, a method of data conversion based on the vertex list will be described in detail below with reference to FIGS. 6 and 7 (particularly, steps S702, S703, and S709 of FIG. 7).

도 6 및 7은 본 발명의 일 실시예에 따른 3D 프린터 출력을 위한 3D CAD 데이터의 변환 방법에 관한 순서도이다. 6 and 7 are flowcharts of a method of converting 3D CAD data for output to a 3D printer according to an embodiment of the present invention.

특히, 도 7의 순서도는 도 6의 각 단계를 보다 세분화하여 도시한 순서도로서, 도 6의 S601 단계는 도 7의 S701 단계, 도 6의 S602 단계는 도 7의 S702 내지 S709 단계, 도 6의 S603 단계는 도 7의 S710 단계에 각각 대응한다.In particular, the flowchart of FIG. 7 is a flowchart showing each step of FIG. 6 in more subdivision. Step S601 of FIG. 6 is step S701 of FIG. 7, and step S602 of FIG. 6 is steps S702 to S709 of FIG. Step S603 corresponds to step S710 of FIG. 7 , respectively.

도 6 및 7을 참조하면, 우선 데이터 변환 장치는 3D CAD 데이터를 입력받을 수 있다(S601). 이때 입력되는 3D CAD 데이터는, 예를 들어, REV 파일/데이터에 해당할 수 있다(S701). 6 and 7 , first, the data conversion apparatus may receive 3D CAD data (S601). At this time, the input 3D CAD data may correspond to, for example, REV file/data (S701).

다음으로, 데이터 변환 장치는 3D CAD 데이터에 포함된 3D 모델링 객체를 기설정된 비율로 축소(또는 스케일링)하여 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환할 수 있다. 본 단계는 다음과 같이 도 7의 S702 내지 S709 단계로 세분화될 수 있다.Next, the data conversion apparatus may reduce (or scale) the 3D modeling object included in the 3D CAD data at a preset ratio to convert the 3D CAD data into data for output to a 3D printer. This step may be subdivided into steps S702 to S709 of FIG. 7 as follows.

우선, 데이터 변환 장치는 3D 모델링 객체에 포함되어 있는 모든 정점을 탐색하고 탐색한 정점에 대한 노멀 벡터를 획득할 수 있다(S702). 이를 위해, 데이터 변환 장치는 3D CAD 데이터에 포함된 컨테이너 노드를 리드(read)/읽어/인식하여, 3D 모델링 객체의 각 폴리곤을 구성하는 모든 정점 및 이들의 노멀 벡터를 탐색할 수 있다. First, the data conversion apparatus may search for all vertices included in the 3D modeling object and obtain a normal vector for the searched vertices (S702). To this end, the data conversion apparatus may read/read/recognize container nodes included in 3D CAD data, and search all vertices constituting each polygon of the 3D modeling object and their normal vectors.

이때, 데이터 변환 장치는 탐색된 정점 중 다른 정점과 중복되거나 기설정된 간격 이하로 인접한 정점(즉, 중복 정점)은 제외할 수 있다. In this case, the data conversion apparatus may exclude vertices (ie, overlapping vertices) that overlap with other vertices or are adjacent to each other by a predetermined interval or less among the found vertices.

도 8은 본 발명의 일 실시예에 따른 정점 중복 제거에 따른 면 그룹 및 테두리 그룹의 이동 변환을 예시한 도면이다.8 is a diagram illustrating movement transformation of a face group and an edge group according to vertex duplication removal according to an embodiment of the present invention.

특정 좌표를 중심으로 인접한 폴리곤들은 폴리곤별로 좌표를 각각 저장하고 있으므로, 인접한 폴리곤의 개수만큼 정점이 중복 저장되어 있다. 본 명세서에서는 이러한 폴리곤간의 중복 정점을 제거하는 대신, 폴리곤간 정점을 공유하는 방식을 제안하고자 한다. 이 경우, 도 8에 도시한 바와 같이, 면으로 판별된 폴리곤 그룹의 이동 시, 해당 폴리곤 그룹과 정점을 공유하고 있는 테두리 그룹 역시 면 그룹의 이동에 따라 자연스럽게 늘어나게 되는 효과가 발생하기 때문이다. 이에 대해서는 이하에서 보다 상세히 후술한다.Since the polygons adjacent to the specific coordinates each store coordinates for each polygon, the number of vertices is overlapped by the number of adjacent polygons. In this specification, instead of removing such overlapping vertices between polygons, a method of sharing vertices between polygons is proposed. In this case, as shown in FIG. 8, when the polygon group determined as a face is moved, the border group sharing the vertex with the polygon group is also naturally stretched according to the movement of the face group. This will be described in more detail below.

다시 도 7을 참조하면, 다음으로, 데이터 변환 장치는 중복 제거된 정점 정보가 포함된 정점 리스트를 생성할 수 있다(S703). 보다 상세하게는, 데이터 변환 장치는 S702 단계에서 탐색된 모든 정점(중복 제외)별로 서로 다른 인덱스를 부여하여 정점 리스트를 생성할 수 있다(즉, 모든 정점에 대하여 인덱싱 작업을 수행하여 정점 리스트 생성). 데이터 변환 장치는, 각 정점별로 부여된 인덱스를, 3D CAD 데이터에 저장되어 있는 정점 정보에 기초하여 각 정점과 대응하는 폴리곤에 매칭하여 저장할 수 있다. 예를 들어, 정점 정보에 제1 정점과 제1 폴리곤이 상호 매칭되어 저장되어 있고 정점 리스트 생성에 따라 제1 정점에 제1 인덱스가 부여된 경우, 데이터 변환 장치는 제1 인덱스를 제1 폴리곤과 매칭하여 저장(또는 데이터를 생성)할 수 있다. Referring back to FIG. 7 , next, the data conversion apparatus may generate a vertex list including deduplicated vertex information ( S703 ). More specifically, the data conversion apparatus may generate a vertex list by assigning different indices to all vertices (excluding duplicates) found in step S702 (that is, indexing all vertices to generate the vertex list) . The data conversion apparatus may match and store an index assigned to each vertex to a polygon corresponding to each vertex based on vertex information stored in the 3D CAD data. For example, if the first vertex and the first polygon are stored in vertex information to match each other and the first index is assigned to the first vertex according to the generation of the vertex list, the data conversion device converts the first index to the first polygon You can match and store (or generate data).

이렇듯 컨테이너 노드를 구성하는 모든 정점(중복 제외)이 리스트-업/배열된 정점 리스트를 생성하고, 모든 폴리곤(특히, 테두리에 포함된 폴리곤)이 인덱스를 통해 정점 리스트에 접근 가능하도록 3D CAD 데이터를 변환할 수 있다. 그 결과, 정점 리스트에서 하나의 정점 인덱스와 매칭되어 저장되어 있는 폴리곤들은 기하학적으로 인접한 관계를 갖는 폴리곤들이라는 해석이 가능하며, 이는 앞서 중복 정점을 제외하여 정점 리스트를 생성함에 따른 부가적인 효과로 볼 수 있다. 나아가, 각 폴리곤별로 저장되어 있던 정점 정보를 통해 물리적으로도 해석 가능하게 되어, 데이터 변환 장치는 테두리의 기하학적 인접성을 탐색하기 위해 필요한 정점의 노멀 벡터를 참조할 수 있게 된다. 보다 상세하게는, 데이터 변환 장치는 면 그룹의 폴리곤을 평행 이동한 후 이동된 정점 위치로 정점 리스트를 업데이트할 수 있으며, 이 경우 테두리는 인덱스를 통해 정점 정보에 접근 가능하므로 테두리 이동에 참조되는 정점은 이미 업데이트가 완료된 정점이 된다. 그 결과, 데이터 변환 장치는 테두리 이동 시 면의 정확한 이동 위치를 알 수 있을 뿐 아니라(즉, 도 5에서 상술한 문제점 해결), 테두리 이동을 위한 참조 정점 정보를 별도로 업데이트/변환할 필요가 없다는 효과가 발생한다. In this way, all vertices (except duplicates) composing the container node create a list-up/arranged vertex list, and 3D CAD data is stored so that all polygons (especially polygons included in borders) can access the vertex list through indexes. can be converted As a result, it is possible to interpret that polygons stored by matching one vertex index in the vertex list are polygons having a geometrically adjacent relationship. can Furthermore, it can be physically interpreted through the vertex information stored for each polygon, so that the data conversion apparatus can refer to the normal vector of the vertices required to search for geometrical adjacency of edges. More specifically, the data conversion device can update the vertex list with the moved vertex positions after translating the polygons of the face group. becomes a vertex that has already been updated. As a result, the data conversion device can know the exact movement position of the surface when moving the border (that is, solving the problem described above in FIG. 5), and there is no need to separately update/convert the reference vertex information for moving the border. occurs

구분된 면 및 테두리는 각각에 포함된 정점의 이동에 따라 평행 이동될 수 있으며, 이동된 정점에 관한 정보는 정점 리스트에 반영되어 업데이트될 수 있다. 정점 이동을 기초로 면 및 테두리를 스케일링하는 방식은 S708 단계에서 상세히 후술한다.The separated faces and edges may be moved in parallel according to the movement of the vertices included therein, and information about the moved vertices may be reflected and updated in the vertex list. A method of scaling a face and an edge based on vertex movement will be described in detail later in step S708.

다음으로, 데이터 변환 장치는 면 벡터를 획득할 수 있다(S704). 여기서 면 벡터는 단일 면(face/polygon)이 가리키는 방향을 나타내는 노멀 벡터를 의미한다. 이러한 면 벡터는, 면을 이루는 연속된 세 정점이 이루는 두 벡터를 벡터곱(cross product)하여 계산하거나, 정점이 가진 정점 노멀 벡터를 모두 더한 후 정규화하여 산출될 수 있다. 이렇게 계산된 면 벡터는 이후에 면 그룹 판별 시 노멀 벡터 변화량의 변수로 사용되게 된다. Next, the data conversion apparatus may obtain a plane vector (S704). Here, the face vector refers to a normal vector indicating the direction a single face (face/polygon) points. Such a surface vector may be calculated by cross product of two vectors formed by three consecutive vertices constituting the surface, or may be calculated by adding up all vertex normal vectors of the vertices and then normalizing them. The surface vector calculated in this way is used as a variable of the normal vector change amount when a surface group is determined later.

다음으로, 데이터 변환 장치는 탐색된 모든 폴리곤으로 구성된 메쉬(즉, 3D 모델링 객체 메쉬)를 생성할 수 있다(S705). 다음으로, 데이터 변환 장치는 생성된 메쉬에서 면 그룹을 선별(S706)하여, 3D 모델링 객체에서 면과 테두리를 구분/선별할 수 있다(S707). 면과 테두리의 구분 방법은 3D 모델링 객체가 곡면을 이루는지 여부에 따라 크게 2가지로 구분되며, 곡면이 아닐 경우에는 도 4에서 상술한 기술이 적용될 수 있다. 3D 모델링 객체가 곡면을 이루는 경우에는, 도 9에서 후술하는 기술이 적용될 수 있다.Next, the data conversion apparatus may generate a mesh (ie, a 3D modeling object mesh) composed of all the found polygons (S705). Next, the data conversion apparatus may select a face group from the generated mesh (S706) to classify/select a face and an edge in the 3D modeling object (S707). A method of distinguishing a surface and an edge is largely divided into two types depending on whether the 3D modeling object forms a curved surface, and when it is not a curved surface, the technique described above in FIG. 4 may be applied. When the 3D modeling object forms a curved surface, the technique described later with reference to FIG. 9 may be applied.

도 9는 본 발명의 일 실시예에 따른 면과 테두리를 구분/선별하는 실시예를 예시하는 도면이다.9 is a diagram illustrating an embodiment of dividing/selecting a surface and an edge according to an embodiment of the present invention.

도 9에 도시한 바와 같이, 데이터 변환 장치는 폴리곤 노멀 벡터의 변화량에 기초하여 꺾이는 부분을 판별하여 3D 모델링 객체가 곡면을 이루는지 판단할 수 있으며, 만일 곡면을 이룬다고 판단된 경우 각 면의 넓이를 기초로 면과 테두리를 구별/선별할 수 있다. 보다 상세하게는, 데이터 변환 장치는 이웃한 두 면의 노멀 벡터가 이루는 사잇각을 변화량으로 하여, 두 사잇각이 임계값 이내이면 완만하게 변하는 면으로 판단할 수 있으며, 임계값을 벗어나면 급격히 꺾이는 부분으로 판단할 수 있다. 이때 사용되는 임계값은, 반복 실험을 통해 면 그룹을 기설정된 비율 이상의 정확도로 판별할 수 있는 값으로 heuristic하게 도출될 수 있다. 데이터 변환 장치는 곡면을 이루는 3D 모델링 객체에서 각 면의 넓이를 계산하고, 가장 넓은 면을 상하면(즉, 면 그룹)으로 구분/선별하고, 이외의 면을 측면(즉, 테두리 그룹)으로 구분/선별할 수 있다. As shown in FIG. 9 , the data conversion apparatus may determine whether the 3D modeling object forms a curved surface by determining the bent portion based on the amount of change in the polygon normal vector, and if it is determined that the 3D modeling object forms a curved surface, the area of each surface You can distinguish/select faces and borders based on In more detail, the data conversion device can determine the surface that changes gently when the angle between the two adjacent surfaces is within a threshold value by using the angle between the normal vectors of the two adjacent surfaces as the amount of change, can judge In this case, the threshold value used may be derived heuristically as a value capable of discriminating a face group with an accuracy greater than or equal to a preset ratio through repeated experiments. The data conversion device calculates the area of each face in the 3D modeling object constituting the curved surface, divides/selects the widest face into upper and lower (i.e., face group), and divides/selects other faces into sides (i.e., border group) can be selected

다시 도 7을 참조하면, 다음으로, 데이터 변환 장치는 구분된 면과 테두리에 서로 다른 스케일링 방식을 적용함으로써 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환할 수 있다(S708). 보다 상세하게는, 데이터 변환 장치는 우선 구분된 면을, 구분된 면의 정점이 갖는 노멀 벡터의 방향으로, 스케일링/축소 비율 및 기설정된 최소 두께(예를 들어, 2㎜)를 고려하여 도출된 변위만큼 평행 이동시킬 수 있다. 면의 평행 이동을 완료한 후, 데이터 변환 장치는 구분된 테두리를, 이동된 면의 정점 위치를 참조하여, 테두리 면의 노멀 벡터 방향에 대하여 수직이고 테두리 면의 면 방향과 평행한 방향으로 이동시킬 수 있다.Referring back to FIG. 7 , next, the data conversion apparatus may convert 3D CAD data into data for 3D printer output by applying different scaling methods to the separated faces and edges ( S708 ). In more detail, the data conversion apparatus first calculates the divided surface in the direction of the normal vector of the vertex of the divided surface, taking into account the scaling/reduction ratio and the preset minimum thickness (eg, 2 mm). It can be translated as much as the displacement. After completing the parallel movement of the face, the data conversion device moves the divided border in a direction perpendicular to the normal vector direction of the border face and parallel to the face direction of the border face by referring to the vertex position of the moved face. can

도 10은 본 발명의 일 실시예에 따른 정점의 노멀 벡터의 획득 방법을 예시한다.10 illustrates a method of obtaining a normal vector of a vertex according to an embodiment of the present invention.

S708 단계에서 사용되는 정점 노멀 벡터는, 정점 중복 제거 전 중복된/공유된 각 정점이 갖는 노멀 벡터를 모두 더하여 구해진 평균 노멀 벡터(본 도면 참조)를 의미할 수 있다. 이러한 정점 노멀 벡터는 정점 중복 제거 동작 시 획득되어 각 정점에 대한 정보와 함께 저장될 수 있다. 정점 노멀 벡터 획득 시, 테두리에 속한 정점의 노멀 벡터는 포함되지 않는다.The vertex normal vector used in step S708 may mean an average normal vector (refer to this figure) obtained by adding all normal vectors of overlapping/shared vertices before vertex duplication is removed. Such a vertex normal vector may be obtained during a vertex deduplication operation and stored together with information about each vertex. When obtaining the vertex normal vector, the normal vector of the vertex belonging to the border is not included.

즉, 데이터 변환 장치는 먼저 면을 스케일링하여 이동시킨 후, 이동된 면과 테두리가 상호 연결되어 단일 폐곡면을 형성하도록 이동된 면의 정점 위치를 참조하여 면의 이동 방향으로 테두리를 평행 이동시키는 방식으로 스케일링을 수행할 수 있다. 특히, 데이터 변환 장치는 면 및 테두리의 스케일링(또는 평행 이동)에 정점 및 정점 리스트를 다음과 같이 활용할 수 있다.That is, the data conversion device first scales and moves the face, and then moves the border in the direction of movement of the face in parallel with reference to the vertex position of the moved face so that the moved face and the edge are interconnected to form a single closed curved surface. scaling can be performed. In particular, the data conversion apparatus can utilize vertices and vertex lists for scaling (or translation) of faces and edges as follows.

일 실시예로서, 데이터 변환 장치는 면을 평행 이동시키는 데 있어서, 우선 인덱스가 부여된 면의 모든 정점을, 각 정점이 갖는 노멀 벡터의 방향으로 기설정된 변위만큼 평행 이동시킬 수 있다. 이를 수학식으로 표현하면 수학식 1과 같으며, 기설정된 변위는 수학식 2에 의해 도출될 수 있다.As an embodiment, in translating the plane, the data conversion apparatus may first move all vertices of the indexed plane in parallel by a predetermined displacement in the direction of a normal vector of each vertex. If this is expressed as an equation, it is the same as in Equation 1, and a preset displacement may be derived by Equation 2.

Figure 112021044769670-pat00001
Figure 112021044769670-pat00001

수학식 1에서, P는 평행 이동 후 정점 좌표, Po는 평행 이동 전 정점 좌표, d는 기설정된 변위,

Figure 112021044769670-pat00002
는 평행 이동 전 정점의 노멀 벡터를 각각 의미한다.In Equation 1, P is the vertex coordinates after translation, Po is the vertex coordinates before translation, d is the preset displacement,
Figure 112021044769670-pat00002
are the normal vectors of the vertices before translation, respectively.

Figure 112021044769670-pat00003
Figure 112021044769670-pat00003

수학식 2에서, S는 기설정된 비율(스케일링 비율), Lr은 3D 모델링 객체의 실제 크기, Lp는 3D 모델링 객체의 3D 프린터 출력 크기, tp는 기설정된 두께이다. 특히, 기설정된 두께는 사용자가 의도하는 3D 프린터 출력 두께로서, 앞서 상술한 최소 두께 이상인 범위 내에서 사용자에 의해 상수 값으로 직접 설정/입력될 수 있다. 이렇듯 수학식 2를 통해, 3D 모델링 객체의 두께가 기설정된 두께 이상인 값으로 설정되므로, 3D 프린터기의 해상도 범위가 만족될 뿐 아니라 특정 수준 이상의 내구성을 갖춘 3D 모델링 객체의 출력이 가능하게 된다. In Equation 2, S is a preset ratio (scaling ratio), Lr is an actual size of the 3D modeling object, Lp is a 3D printer output size of the 3D modeling object, and tp is a preset thickness. In particular, the preset thickness is a 3D printer output thickness intended by the user, and may be directly set/input as a constant value by the user within a range equal to or greater than the above-mentioned minimum thickness. As such, through Equation 2, since the thickness of the 3D modeling object is set to a value equal to or greater than the preset thickness, the resolution range of the 3D printer is satisfied, and the output of a 3D modeling object with durability above a certain level is possible.

데이터 변환 장치는 수학식 1 및 2에 따라 이동된 정점의 위치를 반영하여 정점 리스트를 업데이트할 수 있으며, 이렇게 업데이트된 정점 리스트의 정점 위치를 참조하여 테두리를 이동시킬 수 있다. The data conversion apparatus may update the vertex list by reflecting the positions of the vertices moved according to Equations 1 and 2, and may move the border with reference to the vertex positions of the updated vertex list.

보다 상세하게는, 데이터 변환 장치는 구분된 테두리에 포함된 폴리곤별로 매칭되어 있는 인덱스를 업데이트된 정점 리스트에서 검색하여 업데이트된 정점의 위치를 획득할 수 있다. 데이터 변환 장치는 이렇게 획득한 정점의 위치를 참조하여, 테두리를 노멀 벡터 방향에 대하여 수직이면서 테두리의 면 방향과 평행한 방향으로 이동시킬 수 있다. In more detail, the data conversion apparatus may obtain the updated position of the vertex by searching the updated vertex list for an index matched for each polygon included in the divided border. The data conversion apparatus may move the edge in a direction perpendicular to the normal vector direction and parallel to the plane direction of the edge with reference to the obtained position of the vertex.

다시 말하면, 면과 테두리간 공유하고 있던 정점이 면의 이동에 따라 이동됨으로써, 결과적으로 이동한 정점을 공유하는 테두리 역시 면의 이동에 따라 자연스럽게 함께 이동하게 되는 효과가 발생하게 된다. 즉, 데이터 변환 장치는 면 그룹만 이동시키더라도 테두리와의 정점 공유로 인해 테두리 역시 자동으로 면 그룹과 폐곡면을 유지하면서 이동하는 효과가 발생하게 되는 것이다. 메시의 모든 폴리곤들은 자신의 정점을 정점 리스트에서 참조한다. 그에 따라 물리적으로 인접한, 이웃한 폴리곤들은 특정 정점을 공유하게 된다. 이때 만일 면을 이루는 폴리곤과 테두리를 이루는 폴리곤이 특정 정점을 공유한다면, 면을 이루는 폴리곤이 면 벡터 방향으로 이동 변환됨에 따라 공유 중인 정점의 위치가 정점 리스트에서 업데이트되면, 테두리를 이루는 폴리곤은 업데이트된 정점을 참조함으로써 변경된 정점의 위치가 자동으로 반영되게 되는 것이다. 그 결과, 폐곡면을 이루면서도 의도된 스케일링 비율로, 면의 변형에 따라 테두리의 폴리곤이 자동으로 변형될 수 있다.In other words, since the vertices shared between the face and the edge are moved according to the movement of the face, as a result, the edge sharing the moved vertex is also naturally moved along with the movement of the face. That is, even if the data conversion device moves only the face group, the edge is automatically moved while maintaining the face group and the closed curved surface due to the sharing of vertices with the border. All polygons in the mesh refer to their vertices in the vertex list. As a result, physically adjacent, neighboring polygons share a specific vertex. At this time, if the polygon forming the face and the polygon forming the border share a specific vertex, the position of the shared vertex is updated in the vertex list as the polygon forming the face is moved and transformed in the face vector direction. By referencing the vertex, the changed position of the vertex is automatically reflected. As a result, the polygon of the edge may be automatically deformed according to the deformation of the surface at the intended scaling ratio while forming a closed curved surface.

다시 도 7을 참조하면, 데이터 변환 장치는 상술한 S702 내지 S709 단계를 순차적으로 수행함에 따라 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환할 수 있다. 데이터 변환 장치는 3D 프린터 출력용 데이터를 3D 프린터로 전송하여(S603) 3D 프린터가 스케일링된 3D 모델링 객체를 3D 프린트하도록 할 수 있다(S709). Referring back to FIG. 7 , the data conversion apparatus may convert 3D CAD data into data for 3D printer output by sequentially performing steps S702 to S709 described above. The data conversion apparatus may transmit data for 3D printer output to the 3D printer (S603) so that the 3D printer 3D prints the scaled 3D modeling object (S709).

도 6 및 7 순서도에서 제안된 각 단계는, 3D CAD 데이터 변환 방법을 수행하도록 설계된 어플리케이션/프로그램의 기능/오퍼레이션으로 해석될 수 있다. 이와 유사하게, 도 6 및 7 순서도에서 제안된 각 단계는, 기능에 따라 구분된 데이터 변환 장치의 각 구성 요소에 의해 수행되는 것으로 해석될 수 있다. Each step proposed in the flowcharts of FIGS. 6 and 7 may be interpreted as a function/operation of an application/program designed to perform the 3D CAD data conversion method. Similarly, each of the steps proposed in the flowcharts of FIGS. 6 and 7 may be interpreted as being performed by each component of the data conversion apparatus classified according to a function.

도 11은 본 발명의 일 실시예에 따른 3D CAD 데이터 변환 방법에 따라 변환된 3D 모델링 객체의 렌더링 이미지를 예시한다. 11 illustrates a rendered image of a 3D modeling object converted according to a 3D CAD data conversion method according to an embodiment of the present invention.

특히, 도 11(a)는 3D CAD 데이터의 3D 모델링 객체 원본이며, 도 11(b)는 본 발명의 실시예에 따라 변환된 3D 프린터 출력용 데이터의 3D 모델링 객체 스케일링본(또는 축소본)이며, 도 11(c)는 도 11(a)의 부분 확대도이며, 도 11(d)는 도 11(b)의 부분 확대도이다. In particular, Fig. 11 (a) is an original 3D modeling object of 3D CAD data, and Fig. 11 (b) is a 3D modeling object scaled version (or reduced version) of data for 3D printer output converted according to an embodiment of the present invention, Fig. 11(c) is a partially enlarged view of Fig. 11(a), and Fig. 11(d) is a partially enlarged view of Fig. 11(b).

본 도면은 Lr은 25,000㎜, Lp는 250㎜, d는 200㎜로 각각 설정된 상황에서 도출된 렌더링 이미지이다. In this figure, Lr is 25,000 mm, Lp is 250 mm, and d is 200 mm, which is a rendered image derived from a situation where it is set, respectively.

도 11을 참조하면, 3D 모델링 객체의 원본의 비율과 형상/형태는 그대로 유지된 상태로 축소되되, 각 구성 요소별 두께(혹은 테두리의 폭)만 확대된 것을 확인할 수 있다. 즉, 본 명세서에서 제안된 실시예에 따르면, 3D CAD 데이터에 포함된 3D 모델링 객체는, 3D 프린터 출력을 위하여 스케일링/축소 변환되더라도, 소실되는 구성 없이 일정 수준의 내구성을 갖춘 상태로 3D 프린터 출력될 수 있다는 효과가 있다. Referring to FIG. 11 , it can be seen that the original proportions and shapes/forms of the 3D modeling object are reduced while maintaining, but only the thickness (or the width of the border) of each component is enlarged. That is, according to the embodiment proposed in this specification, even if the 3D modeling object included in the 3D CAD data is scaled/reduced for output to the 3D printer, the 3D printer will be outputted with a certain level of durability without a lost configuration. It has the effect that it can.

한편, 본 도면에는 도시하지 않았으나, 3D 모델링 객체의 일부 구성을 의도적으로 소실함으로써 3D 프린터 출력용 데이터를 생성하는 실시예도 제안될 수 있다.Meanwhile, although not shown in this drawing, an embodiment in which data for output to a 3D printer is generated by intentionally losing some configuration of a 3D modeling object may also be proposed.

본 명세서에서 제안된 실시예에 따르면, 3D 모델링 객체를 3D 프린터로 출력 가능한 크기로 축소 변환/스케일링하되, 두께는 최소 두께 이상으로 유지시키므로 특정 구성/요소에 대해서는 부분적으로 확대 변환/스케일링되는 효과가 발생한다. 그 결과, 구성간의 간격은 짧아지지만, 구성 자체의 두께는 확대 혹은 유지되어 분리되어 있던 구성들이 상호 접촉되거나 오버랩되는 경우가 발생할 수 있다. 이 경우, 3D 프린터 출력 시 3D 모델링 객체의 외형/형상이 원본과 다르게 출력되는 문제가 발생할 수 있다. 따라서, 본 명세서에서는, 데이터 변환 결과 상술한 바와 같이 기설정된 간격 미만으로 짧아지거나 상호 오버랩되는 구성들이 탐색되는 경우, 해당 구성들을 하나의 구성으로 통합하는 방법에 대해 제안한다. According to the embodiment proposed in this specification, the 3D modeling object is reduced and converted/scaled to a size that can be printed with a 3D printer, but the thickness is maintained above the minimum thickness, so the effect of partially expanding/converting/scaling for a specific component/element is Occurs. As a result, although the interval between the components is shortened, the thickness of the components itself is enlarged or maintained, so that the separated components may contact each other or overlap. In this case, when the 3D printer is output, there may be a problem in that the appearance/shape of the 3D modeling object is output differently from the original. Accordingly, in the present specification, as a result of data conversion, when configurations that are shorter than a preset interval or overlap each other are found as described above, a method for integrating the configurations into one configuration is proposed.

즉, 데이터 변환 장치는 상기 조건을 만족하는 구성들이 발견된 경우, 해당 구성들을 하나의 구성으로 통합하거나 이들 중 어느 하나의 구성을 의도적으로 삭제/소실시켜 데이터를 변환할 수 있다. 예를 들어, 데이터 변환 장치는 서로 접촉되거나 중첩된 제1 및 제2 기둥 구성을 발견한 경우, 상기 제1 및 제2 기둥 구성을 제3 구성으로 통합하거나 제1 또는 제2 기둥 구성을 의도적으로 삭제/소실시킬 수 있다. 전자의 경우, 제3 구성의 위치는 제1 및 제2 기둥 구성의 중심에 배치될 수 있다. That is, when the components satisfying the above conditions are found, the data conversion apparatus may convert the data by integrating the components into one component or by intentionally deleting/losing any one of them. For example, when the data conversion device finds first and second pillar configurations contacting or overlapping with each other, the first and second pillar configurations are integrated into the third configuration, or the first or second pillar configurations are intentionally combined. It can be deleted/deleted. In the former case, the position of the third configuration may be disposed at the center of the first and second pillar configurations.

다만, 본 실시예의 수행되기 위한 전제 조건으로는, 대체되거나 소실되는 대상이 되는 구성들은 모두 동일/유사한 형상/외형을 갖는 구성임을 전제로 한다. 상기 예시를 기초로 설명하면, 대체 또는 소실 대상이 되는 제1 및 제2 기둥은 동일한 기하학적 속성(예를 들어, 높이, 형상, 외형, 두께, 크기 등)을 가짐을 전제로 한다.However, as a prerequisite for carrying out the present embodiment, it is premised that the components to be replaced or lost are all components having the same/similar shape/outer appearance. When described based on the above example, it is assumed that the first and second pillars to be replaced or lost have the same geometric properties (eg, height, shape, appearance, thickness, size, etc.).

본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.Embodiments according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof. In the case of implementation by hardware, an embodiment of the present invention provides one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs ( field programmable gate arrays), a processor, a controller, a microcontroller, a microprocessor, and the like.

또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, in the case of implementation by firmware or software, an embodiment of the present invention is implemented in the form of a module, procedure, function, etc. that performs the functions or operations described above, and is stored in a recording medium readable through various computer means. can be recorded. Here, the recording medium may include a program command, a data file, a data structure, etc. alone or in combination. The program instructions recorded on the recording medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. For example, the recording medium includes a magnetic medium such as a hard disk, a floppy disk, and a magnetic tape, an optical recording medium such as a compact disk read only memory (CD-ROM), a digital video disk (DVD), and a floppy disk. Magneto-Optical Media, such as a disk, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level language codes that can be executed by a computer using an interpreter or the like as well as machine language codes such as those generated by a compiler. Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.In addition, the device or terminal according to the present invention may be driven by a command to cause one or more processors to perform the functions and processes described above. For example, such instructions may include interpreted instructions, such as script instructions, such as JavaScript or ECMAScript instructions, or executable code or other instructions stored on a computer-readable medium. Furthermore, the device according to the present invention may be implemented in a distributed manner over a network, such as a server farm, or may be implemented in a single computer device.

또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.Further, a computer program (also known as a program, software, software application, script or code) mounted on the device according to the invention and executing the method according to the invention includes compiled or interpreted language or a priori or procedural language. It can be written in any form of programming language, and can be deployed in any form, including stand-alone programs, modules, components, subroutines, or other units suitable for use in a computer environment. A computer program does not necessarily correspond to a file in a file system. A program may be placed in a single file provided to the requested program, or in multiple interacting files (eg, files that store one or more modules, subprograms, or portions of code), or portions of files that hold other programs or data. (eg, one or more scripts stored within a markup language document). The computer program may be deployed to be executed on a single computer or multiple computers located at one site or distributed over a plurality of sites and interconnected by a communication network.

설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시예들을 병합하여 새로운 실시예를 구현하도록 설계하는 것도 가능하다. 또한, 본 발명은 상술한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상술한 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.Although each drawing is described separately for convenience of description, it is also possible to design to implement a new embodiment by merging the embodiments described in each drawing. In addition, the present invention is not limited to the configuration and method of the described embodiments as described above, but the above-described embodiments are configured by selectively combining all or part of each embodiment so that various modifications can be made. it might be

또한, 이상에서는 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 명세서는 상술한 특정의 실시예에 한정되지 아니하며, 청구 범위에서 청구하는 요지를 벗어남이 없이 당해 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 명세서의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.In addition, although preferred embodiments have been illustrated and described above, the present specification is not limited to the specific embodiments described above, and those of ordinary skill in the art to which the specification belongs without departing from the gist of the claims Various modifications are possible by a person, of course, and these modifications should not be individually understood from the technical spirit or perspective of the present specification.

S601: 3D CAD 데이터를 입력받는 단계
S602: 3D CAD 데이터를 3D 프린터 출력용 데이터로 변환하는 단계
S603: 3D 프린터 출력용 데이터를 3D 프린터로 전송하는 단계
S601: Step of receiving 3D CAD data
S602: Converting 3D CAD data to data for 3D printer output
S603: Step of sending data for 3D printer output to 3D printer

Claims (22)

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 데이터 변환 방법.
A method of converting 3D CAD (Computer Aided Design) data for 3D (Dimension) printer output, the method comprising:
receiving the 3D CAD data;
reducing the 3D modeling object included in the 3D CAD data to a preset ratio, and converting the 3D CAD data into data for 3D printer output; and
transmitting the data for output to the 3D printer to the 3D printer; including,
The step of converting the 3D CAD data into the data for output to the 3D printer comprises:
distinguishing a face and a border from the 3D modeling object;
moving the divided surface in parallel by a displacement derived in consideration of the predetermined ratio and predetermined thickness in the direction of a first normal vector of a vertex of the divided surface; and
moving the divided edge in a direction perpendicular to a second normal vector direction of the edge surface and parallel to the surface direction of the edge surface with reference to the vertex position of the parallel-moved surface; including,
When the 3D CAD data includes vertex information for each polygon constituting the 3D modeling object, converting the 3D CAD data into data for output to the 3D printer comprises:
searching for all vertices included in the 3D modeling object;
generating a vertex list by assigning different indices to each of the found vertices; and
storing an index assigned to each vertex by matching with a polygon corresponding to each vertex based on the vertex information; A 3D CAD data conversion method for 3D printer output, including.
제 1 항에 있어서,
상기 면 및 테두리를 구분하는 단계는,
상기 3D 모델링 객체를 구성하는 모든 폴리곤(Polygon)을 탐색하는 단계;
상기 탐색된 폴리곤을 속성별로 면 그룹 또는 테두리 그룹으로 그룹핑하는 단계;
상기 모든 폴리곤으로 구성된 메쉬를 생성하는 단계;
상기 생성된 메쉬에서 상기 면 그룹을 선별하고, 상기 선별된 면 그룹간 간격을 계산하는 단계; 및
상기 계산된 간격에 따라 상기 면 그룹 또는 상기 테두리 그룹이 정렬된 데이터 구조를 생성하는 단계; 를 포함하는, 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법.
The method of claim 1,
The step of separating the face and the border is,
searching for all polygons constituting the 3D modeling object;
grouping the found polygons into face groups or border groups by properties;
generating a mesh composed of all the polygons;
selecting the face group from the generated mesh and calculating an interval between the selected face groups; and
generating a data structure in which the face group or the edge group is arranged according to the calculated interval; Containing, 3D CAD data conversion method for 3D printer output.
제 2 항에 있어서,
상기 탐색된 폴리곤을 상기 속성별로 그룹핑하는 단계는,
상기 탐색된 폴리곤 각각을 대표하는 노멀 벡터를 추출하는 단계;
상기 탐색된 폴리곤 중 인접한 폴리곤들로부터 추출된 노멀 벡터간의 사잇각이 기설정된 각도 범위 이하인 경우 상기 인접한 폴리곤들을 상기 면 그룹으로 그룹핑하고, 상기 추출된 노멀 벡터간의 사잇각이 상기 기설정된 각도 범위를 초과하는 경우 상기 인접한 폴리곤을 상기 테두리 그룹으로 그룹핑하는 단계; 를 포함하는, 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법.
3. The method of claim 2,
The step of grouping the searched polygons by the properties comprises:
extracting a normal vector representing each of the found polygons;
When the angle between normal vectors extracted from adjacent polygons among the searched polygons is less than or equal to a preset angle range, the adjacent polygons are grouped into the face group, and when the angle between the extracted normal vectors exceeds the preset angle range grouping the adjacent polygons into the border group; Containing, 3D CAD data conversion method for 3D printer output.
삭제delete 제 1 항에 있어서,
상기 정점 리스트를 생성하는 단계는,
상기 탐색된 정점 중 다른 정점과 중복되거나 기설정된 간격 이하로 인접한 정점을 제외하여 상기 정점 리스트를 생성하는 단계인, 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법.
The method of claim 1,
The step of generating the vertex list comprises:
generating the vertex list by excluding vertices that overlap with other vertices from among the searched vertices or are adjacent to each other within a predetermined interval or less.
제 1 항에 있어서,
상기 구분된 면을 평행 이동시키는 단계는,
상기 인덱스가 부여된 상기 면의 모든 정점을, 상기 제1 노멀 벡터의 방향으로 상기 도출된 변위만큼 평행 이동시키는 단계; 및
상기 이동된 정점의 위치를 반영하여 상기 정점 리스트를 업데이트하는 단계; 을 포함하는, 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법.
The method of claim 1,
The step of moving the divided surface in parallel is,
moving all the vertices of the surface to which the index is assigned in parallel by the derived displacement in the direction of the first normal vector; and
updating the vertex list by reflecting the position of the moved vertex; A 3D CAD data conversion method for 3D printer output, including.
제 6 항에 있어서,
상기 면의 모든 정점을 평행 이동시키는 단계는, 수학식 1을 기초로 수행되는, 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법.
[수학식 1]
Figure 112021044769670-pat00004

상기 P는 평행 이동 후 정점 좌표, 상기 Po는 평행 이동 전 정점 좌표, 상기 d는 상기 도출된 변위, 상기
Figure 112021044769670-pat00005
는 상기 평행 이동 전 정점의 제1 노멀 벡터임.
7. The method of claim 6,
The step of translating all the vertices of the surface is performed based on Equation 1, 3D CAD data conversion method for 3D printer output.
[Equation 1]
Figure 112021044769670-pat00004

wherein P is the vertex coordinate after translation, Po is the vertex coordinate before translation, and d is the derived displacement, the
Figure 112021044769670-pat00005
is the first normal vector of the vertex before the translation.
제 7 항에 있어서,
상기 다른 정점과 중복된 정점의 제1 노멀 벡터는, 중복된 각 정점이 갖는 노멀 벡터를 모두 더하여 구해진 평균 노멀 벡터로 정의되는, 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법.
8. The method of claim 7,
The 3D CAD data conversion method for 3D printer output, wherein the first normal vector of the vertex overlapping with the other vertices is defined as an average normal vector obtained by adding all of the normal vectors of each overlapping vertex.
제 7 항에 있어서,
상기 변위는 수학식 2를 기초로 도출되는, 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법.
[수학식 2]
Figure 112021044769670-pat00006

상기 S는 상기 기설정된 비율, 상기 Lr은 상기 3D 모델링 객체의 실제 크기, 상기 Lp는 상기 3D 모델링 객체의 3D 프린터 출력 크기, 상기 tp는 상기 기설정된 두께임.
8. The method of claim 7,
The displacement is derived based on Equation 2, 3D CAD data conversion method for 3D printer output.
[Equation 2]
Figure 112021044769670-pat00006

Wherein S is the preset ratio, Lr is the actual size of the 3D modeling object, Lp is the 3D printer output size of the 3D modeling object, and tp is the preset thickness.
제 9 항에 있어서,
상기 기설정된 두께는,
상기 3D 프린터의 해상도 이상인 두께 범위에서 사용자에 의해 입력되는 상수 값인, 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법.
10. The method of claim 9,
The predetermined thickness is,
3D CAD data conversion method for 3D printer output, which is a constant value input by a user in a thickness range equal to or greater than the resolution of the 3D printer.
제 6 항에 있어서,
상기 구분된 테두리를 이동시키는 단계는,
상기 구분된 테두리에 포함된 폴리곤별로 매칭되어 있는 인덱스를 상기 업데이트된 정점 리스트에서 검색하는 단계;
검색한 인덱스와 대응되어 저장되어 있는 업데이트된 정점의 위치를 획득하는 단계; 및
상기 업데이트된 정점의 위치를 참조하여 상기 구분된 테두리를 상기 제2 노멀 벡터 방향에 대하여 수직이고 상기 테두리 면의 면 방향과 평행한 방향으로 이동시키는 단계; 를 포함하는, 3D 프린터 출력을 위한 3D CAD 데이터 변환 방법.
7. The method of claim 6,
The step of moving the divided border is,
searching the updated vertex list for an index matched for each polygon included in the divided border;
obtaining a position of an updated vertex stored in correspondence with the searched index; and
moving the divided edge in a direction perpendicular to the second normal vector direction and parallel to the surface direction of the edge face with reference to the updated vertex position; Containing, 3D CAD data conversion method for 3D printer output.
◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 12 was abandoned when paying the registration fee.◈ 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 데이터 변환 프로그램.
In the conversion program of 3D CAD (Computer Aided Design) data for 3D (Dimension) printer output,
an operation for receiving the 3D CAD data;
an operation of reducing the 3D modeling object included in the 3D CAD data to a preset ratio, and converting the 3D CAD data into data for output to a 3D printer; and
an operation of transmitting the data for output to the 3D printer to the 3D printer; do, but
The operation of converting the 3D CAD data into data for output to the 3D printer comprises:
an operation of distinguishing a face and a border in the 3D modeling object;
an operation of moving the divided surface in parallel by a displacement derived in consideration of the predetermined ratio and predetermined thickness in the direction of a first normal vector of a vertex of the divided surface; and
an operation of moving the divided edge in a direction perpendicular to a second normal vector direction of the edge surface and parallel to the surface direction of the edge surface with reference to the vertex position of the parallel-moved surface; including,
When the 3D CAD data includes vertex information for each polygon constituting the 3D modeling object, the operation of converting the 3D CAD data into data for output to the 3D printer includes:
an operation of searching for all vertices included in the 3D modeling object;
generating a vertex list by assigning different indices to each of the found vertices; and
an operation of matching and storing an index assigned to each vertex to a polygon corresponding to each vertex based on the vertex information; to perform,
3D CAD data conversion program for 3D printer output stored in recording media.
◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 13 was abandoned when paying the registration fee.◈ 제 12 항에 있어서,
상기 면 및 테두리를 구분하는 오퍼레이션은,
상기 3D 모델링 객체를 구성하는 모든 폴리곤(Polygon)을 탐색하는 오퍼레이션;
상기 탐색된 폴리곤을 속성별로 면 그룹 또는 테두리 그룹으로 그룹핑하는 오퍼레이션; 및
각 그룹별로 분류된 데이터 구조를 생성하는 오퍼레이션; 을 포함하는,
기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
13. The method of claim 12,
The operation to distinguish the face and the border is,
an operation of searching all polygons constituting the 3D modeling object;
an operation of grouping the searched polygons into face groups or border groups for each attribute; and
an operation of generating a classified data structure for each group; containing,
3D CAD data conversion program for 3D printer output stored in recording media.
◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 14 was abandoned at the time of payment of the registration fee.◈ 제 13 항에 있어서,
상기 탐색된 폴리곤을 상기 속성별로 그룹핑하는 오퍼레이션은,
상기 탐색된 폴리곤 각각을 대표하는 노멀 벡터를 추출하는 오퍼레이션;
상기 탐색된 폴리곤 중 인접한 폴리곤들로부터 추출된 노멀 벡터간의 사잇각이 기설정된 각도 범위 이하인 경우 상기 인접한 폴리곤들을 상기 면 그룹으로 그룹핑하고, 상기 추출된 노멀 벡터간의 사잇각이 상기 기설정된 각도 범위를 초과하는 경우 상기 인접한 폴리곤을 상기 테두리 그룹으로 그룹핑하는 오퍼레이션; 을 포함하는,
기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
14. The method of claim 13,
The operation of grouping the searched polygons by the attribute is,
an operation of extracting a normal vector representing each of the searched polygons;
When the angle between normal vectors extracted from adjacent polygons among the searched polygons is less than or equal to a preset angle range, the adjacent polygons are grouped into the face group, and when the angle between the extracted normal vectors exceeds the preset angle range grouping the adjacent polygons into the border group; containing,
3D CAD data conversion program for 3D printer output stored in recording media.
삭제delete ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 16 was abandoned when paying the registration fee.◈ 제 12 항에 있어서,
상기 정점 리스트를 생성하는 오퍼레이션은,
상기 탐색된 정점 중 다른 정점과 중복되거나 기설정된 간격 이하로 인접한 정점을 제외하여 상기 정점 리스트를 생성하는 오퍼레이션인,
기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
13. The method of claim 12,
The operation to generate the vertex list is,
An operation of generating the vertex list by excluding vertices that overlap with other vertices or adjacent to within a preset interval from among the searched vertices,
3D CAD data conversion program for 3D printer output stored in recording media.
◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 17 was abandoned when paying the registration fee.◈ 제 12 항에 있어서,
상기 구분된 면을 평행 이동시키는 오퍼레이션은,
상기 인덱스가 부여된 상기 면의 모든 정점을, 상기 제1 노멀 벡터의 방향으로 상기 도출된 변위만큼 평행 이동시키는 오퍼레이션; 및
상기 이동된 정점의 위치를 반영하여 상기 정점 리스트를 업데이트하는 오퍼레이션; 을 포함하는,
기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
13. The method of claim 12,
The operation of moving the divided surface in parallel is,
an operation of moving all vertices of the surface to which the index is assigned in parallel by the derived displacement in the direction of the first normal vector; and
updating the vertex list by reflecting the position of the moved vertex; containing,
3D CAD data conversion program for 3D printer output stored in recording media.
◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 18 was abandoned when paying the registration fee.◈ 제 17 항에 있어서,
상기 면의 모든 정점을 평행 이동시키는 오퍼레이션은, 수학식 1을 기초로 수행되는,
기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
[수학식 1]
Figure 112022016487385-pat00007

상기 P는 평행 이동 후 정점 좌표, 상기 Po는 평행 이동 전 정점 좌표, 상기 d는 상기 도출된 변위, 상기
Figure 112022016487385-pat00008
는 상기 평행 이동 전 정점의 제1 노멀 벡터임.
18. The method of claim 17,
The operation of moving all vertices of the plane in parallel is performed based on Equation 1,
stored on the recording medium 3D CAD data conversion program for 3D printer output.
[Equation 1]
Figure 112022016487385-pat00007

wherein P is the vertex coordinate after translation, Po is the vertex coordinate before translation, and d is the derived displacement, the
Figure 112022016487385-pat00008
is the first normal vector of the vertex before the translation.
◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 19 was abandoned at the time of payment of the registration fee.◈ 제 18 항에 있어서,
상기 다른 정점과 중복된 정점의 제1 노멀 벡터는, 중복된 각 정점이 갖는 노멀 벡터를 모두 더하여 구해진 평균 노멀 벡터로 정의되는,
기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
19. The method of claim 18,
The first normal vector of the vertex overlapping with the other vertices is defined as an average normal vector obtained by adding all the normal vectors of each overlapping vertex,
3D CAD data conversion program for 3D printer output stored in recording media.
◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 20 was abandoned when paying the registration fee.◈ 제 18 항에 있어서,
상기 변위는 수학식 2를 기초로 도출되는,
기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
[수학식 2]
Figure 112022016487385-pat00009

상기 S는 상기 기설정된 비율, 상기 Lr은 상기 3D 모델링 객체의 실제 크기, 상기 Lp는 상기 3D 모델링 객체의 3D 프린터 출력 크기, 상기 tp는 상기 기설정된 두께임.
19. The method of claim 18,
The displacement is derived based on Equation 2,
3D CAD data conversion program for 3D printer output stored in recording media.
[Equation 2]
Figure 112022016487385-pat00009

Wherein S is the preset ratio, Lr is the actual size of the 3D modeling object, Lp is the 3D printer output size of the 3D modeling object, and tp is the preset thickness.
◈청구항 21은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 21 has been abandoned at the time of payment of the registration fee.◈ 제 20 항에 있어서,
상기 기설정된 두께는,
상기 3D 프린터의 해상도 이상인 두께 범위에서 사용자에 의해 입력되는 상수 값인,
기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
21. The method of claim 20,
The predetermined thickness is,
A constant value input by the user in a thickness range equal to or greater than the resolution of the 3D printer,
3D CAD data conversion program for 3D printer output stored in recording media.
◈청구항 22은(는) 설정등록료 납부시 포기되었습니다.◈◈Claim 22 was abandoned when paying the registration fee.◈ 제 17 항에 있어서,
상기 구분된 테두리를 이동시키는 오퍼레이션은,
상기 구분된 테두리에 포함된 폴리곤별로 매칭되어 있는 인덱스를 상기 업데이트된 정점 리스트에서 검색하는 오퍼레이션;
검색한 인덱스와 대응되어 저장되어 있는 업데이트된 정점의 위치를 획득하는 오퍼레이션; 및
상기 업데이트된 정점의 위치를 기준으로 상기 구분된 테두리를 상기 제2 노멀 벡터 방향에 대하여 수직이고 상기 테두리 면의 면 방향과 평행한 방향으로 이동시키는 오퍼레이션; 을 포함하는,
기록매체에 저장된 3D 프린터 출력을 위한 3D CAD 데이터 변환 프로그램.
18. The method of claim 17,
The operation to move the divided border is,
an operation of searching the updated vertex list for an index matched for each polygon included in the divided border;
an operation of obtaining a location of an updated vertex stored in correspondence with the searched index; and
an operation of moving the divided edge in a direction perpendicular to the second normal vector direction and parallel to a plane direction of the edge surface based on the updated vertex position; containing,
3D CAD data conversion program for 3D printer output stored in recording media.
KR1020210049942A 2021-04-16 2021-04-16 3D CAD data conversion method, program and apparatus for 3D printing KR102417745B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210049942A KR102417745B1 (en) 2021-04-16 2021-04-16 3D CAD data conversion method, program and apparatus for 3D printing
PCT/KR2022/005555 WO2022220661A1 (en) 2021-04-16 2022-04-18 3d cad data-conversion method and program for 3d printer outputting, and device therefor
KR1020220081194A KR102476800B1 (en) 2021-04-16 2022-07-01 3D CAD data conversion method, program and apparatus for 3D printing of 3D modeling object

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210049942A KR102417745B1 (en) 2021-04-16 2021-04-16 3D CAD data conversion method, program and apparatus for 3D printing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220081194A Division KR102476800B1 (en) 2021-04-16 2022-07-01 3D CAD data conversion method, program and apparatus for 3D printing of 3D modeling object

Publications (1)

Publication Number Publication Date
KR102417745B1 true KR102417745B1 (en) 2022-07-06

Family

ID=82400668

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020210049942A KR102417745B1 (en) 2021-04-16 2021-04-16 3D CAD data conversion method, program and apparatus for 3D printing
KR1020220081194A KR102476800B1 (en) 2021-04-16 2022-07-01 3D CAD data conversion method, program and apparatus for 3D printing of 3D modeling object

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220081194A KR102476800B1 (en) 2021-04-16 2022-07-01 3D CAD data conversion method, program and apparatus for 3D printing of 3D modeling object

Country Status (2)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102540518B1 (en) * 2022-11-10 2023-06-13 주식회사 스탠스 Method and device for generating three-dimensional model
KR102583104B1 (en) * 2022-11-23 2023-09-27 주식회사 에이디 Method and apparatus for generating 3D OBJECTs using 2D drawings

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004001531A (en) * 2003-06-06 2004-01-08 Hitachi Ltd Method for processing stereo lithographic shape data, method and apparatus for stereo lithography
JP2016221790A (en) * 2015-05-28 2016-12-28 キヤノン株式会社 Molding support apparatus and three-dimensional molding system
KR20170054645A (en) * 2015-11-10 2017-05-18 한국전자통신연구원 Apparatus and method for limited 3d printing
KR20190065241A (en) * 2016-10-19 2019-06-11 후지제롯쿠스 가부시끼가이샤 A three-dimensional shape data editing apparatus, a three-dimensional shape data editing program, and a three-dimensional shape data structure

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8175734B2 (en) 2009-10-08 2012-05-08 3D M. T. P. Ltd. Methods and system for enabling printing three-dimensional object models
JP2017146818A (en) * 2016-02-18 2017-08-24 キヤノン株式会社 Device and method for processing three-dimensional data
US20190332723A1 (en) 2016-09-14 2019-10-31 Mixed Dimensions Inc. 3d model validation and optimization system and method thereof
JP7215095B2 (en) 2018-11-09 2023-01-31 富士フイルムビジネスイノベーション株式会社 3D shape data generation device, 3D modeling device, and 3D shape data generation program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004001531A (en) * 2003-06-06 2004-01-08 Hitachi Ltd Method for processing stereo lithographic shape data, method and apparatus for stereo lithography
JP2016221790A (en) * 2015-05-28 2016-12-28 キヤノン株式会社 Molding support apparatus and three-dimensional molding system
KR20170054645A (en) * 2015-11-10 2017-05-18 한국전자통신연구원 Apparatus and method for limited 3d printing
KR20190065241A (en) * 2016-10-19 2019-06-11 후지제롯쿠스 가부시끼가이샤 A three-dimensional shape data editing apparatus, a three-dimensional shape data editing program, and a three-dimensional shape data structure

Also Published As

Publication number Publication date
KR102476800B1 (en) 2022-12-12
KR20220143612A (en) 2022-10-25
WO2022220661A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
CN108099203B (en) Orientation of real objects for 3D printing
US10719549B2 (en) Querying a database based on a parametric view function
CN108228987B (en) Copy selection
Shi et al. Adaptive simplification of point cloud using k-means clustering
KR102476800B1 (en) 3D CAD data conversion method, program and apparatus for 3D printing of 3D modeling object
Foucault et al. Adaptation of CAD model topology for finite element analysis
US6377865B1 (en) Methods of generating three-dimensional digital models of objects by wrapping point cloud data points
JP2020115336A (en) Machine learning for estimating 3d modeled object
JP7428516B2 (en) Learning neural networks to infer editable feature trees
Sheen et al. Transformation of a thin-walled solid model into a surface model via solid deflation
JP2020109660A (en) To form data set for inference of editable feature tree
CN107622530B (en) Efficient and robust triangulation network cutting method
Governi et al. 3D geometry reconstruction from orthographic views: A method based on 3D image processing and data fitting
JP2022075560A (en) Three-dimensional reconstruction of structure of real scene with open surface
JP7017852B2 (en) Positioning of 3D objects using descriptors
US20220004675A1 (en) Vehicle impact analysis with two-point-contact curves
CN114943130A (en) Segmenting a 3D modeled object representing a mechanical component
Leymarie et al. Computation of the shock scaffold for unorganized point clouds in 3D
CN109983509B (en) Instant Boolean operation method using geometric surface
JP2017162447A (en) Localization of 3d object with quantization
KR101359661B1 (en) conversion system and method for 3D object represented by triangle mesh to 3D object represented by DoSurface
Shen et al. A framework from point clouds to workpieces
JP2020115338A (en) Generation of structured 3d model from raw mesh
US20230205820A1 (en) Geometry-based design data search tool
CN114089692A (en) Rapid numerical control programming method suitable for complex and long surface of part

Legal Events

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