KR20150137787A - 3d 프린트 스트리밍 장치 및 방법 - Google Patents

3d 프린트 스트리밍 장치 및 방법 Download PDF

Info

Publication number
KR20150137787A
KR20150137787A KR1020140066278A KR20140066278A KR20150137787A KR 20150137787 A KR20150137787 A KR 20150137787A KR 1020140066278 A KR1020140066278 A KR 1020140066278A KR 20140066278 A KR20140066278 A KR 20140066278A KR 20150137787 A KR20150137787 A KR 20150137787A
Authority
KR
South Korea
Prior art keywords
output
file
printer
job information
printers
Prior art date
Application number
KR1020140066278A
Other languages
English (en)
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 KR1020140066278A priority Critical patent/KR20150137787A/ko
Publication of KR20150137787A publication Critical patent/KR20150137787A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • G06F3/1262Job scheduling, e.g. queuing, determine appropriate device by grouping or ganging jobs
    • 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
    • B33Y50/00Data acquisition or data processing for additive manufacturing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1245Job translation or job parsing, e.g. page banding by conversion to intermediate or common format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Manufacturing & Machinery (AREA)
  • Mechanical Engineering (AREA)
  • Optics & Photonics (AREA)

Abstract

3D 프린트 스트리밍 장치 및 방법이 개시된다. 본 발명의 실시예에 따른 3D 프린트 스트리밍 장치는 복수의 사용자 단말 각각으로부터 출력 방식을 포함한 3D 이미지 파일에 대한 오브젝트 출력 요청이 수신되면, 상기 출력 요청 각각에 대응하는 복수의 출력 작업 정보를 생성하는 파일 관리부; 상기 복수의 출력 작업 정보 내 출력 방식을 고려하여 네트워크를 통해 연결된 복수의 3D 프린터 중 적어도 하나 이상을 선택하며, 상기 선택된 3D 프린터 각각에 상기 복수의 출력 작업 정보를 분배하여 할당한 후 상기 할당된 출력 작업 정보 내 3D 오브젝트들을 병합하여 상기 선택된 3D 프린터 각각에 전송될 단일 출력 파일을 생성하는 배치 및 병합부; 및 상기 배치 및 병합부에 의해 생성된 단일 출력 파일을 상기 선택된 3D 프린터에 전송하여 출력을 요청하는 파일 전송부를 포함할 수 있다.

Description

3D 프린트 스트리밍 장치 및 방법{APPARATUS AND METHOD FOR STREAMING 3 DIMENSION PRINT}
본 발명의 실시예들은 3D 이미지 파일을 스트리밍으로 전송하여 프린팅할 수 있는 기술에 관한 것이다.
3D 프린팅 기술의 발전에 따라 산업용 3D 프린터뿐만 아니라 개인용 3D 프린터 역시 점차적으로 도입 및 사용되고 있는 추세이다.
이에 따라 3D 프린팅은 제조분야의 혁신 만이 아닌 사용자들이 직접 디자인하고 생산할 수 있는 기회를 열어주며 생산 및 소비 패러다임의 변화를 이끌어내고 있다.
사용자는 제품 이미지 파일만 있다면 언제 어디서든 3D 프린터를 사용하여 제품을 출력할 수 있으며, 자신의 디자인을 타인에게 공유하거나 다른 사용자의 디자인을 공유 받아 이를 실물화할 수 있는 이른바 프로슈머(Prosumer)의 시대가 도래하고 있다.
이에 따라 현재 3D 프린팅과 인터넷이 연계된 다양한 3D 프린팅 서비스가 생겨나고 있다. 3D 프린팅 서비스의 예로는 3D 콘텐트를 타인에게 공유 및 판매하는 파일 공유 사이트 외에도 개인이 직접 디자인한 3D 파일을 다양한 3D 프린터를 이용하여 출력 및 배송해줄 뿐만 아니라, 타인에게 판매할 기회도 제공하는 온라인 마켓 플레이스 등이 있다.
그러나, 디지털화된 3D 이미지 파일은 네트워크를 통해 전달 및 공유되며 웹에서 설계 데이터를 불법으로 유통하거나, 해킹을 통해 제품 디자인을 무단 도용해서 제품 생산이 가능하기 때문에 저작권, 라이선스와 같은 지적 재산권 문제가 주요 이슈로 떠오르고 있다. 웹 상에서 3D 이미지 파일을 직접 공유 및 저장하는 행위는 불법 배포 및 복제의 위험이 매우 크다. 갖가지 보안을 적용한 서버와 달리 일반 PC의 경우 해킹의 위험이 매우 높은 것 또한 사실이다. 이러한 지적 재산권 문제를 해결하기 위한 기술이 바로 3D 프린트 스트리밍이다.
3D 프린트 스트리밍이란 호스트 PC 내에 파일 저장 없이 서버에서 네트워크를 통해 3D 출력 파일을 잘게 쪼개 3D 프린터로 전송하는 기술로서 마치 iTune와 같이 One-Time Printing을 통해 3D 파일의 불법 배포 및 지적 재산권 문제 해결할 수 있다.
3D 프린트 스트리밍과 관련된 종래 기술에는 "Secure Management of 3D Print Media, Mercury 3D LLC, US20130235412"가 있다. 이 특허에서 발명자는 3D 프린팅을 이용한 3D 파일의 불법 복제를 방지하기 위해 3D 이미지 파일을 3D 오브젝트 출력을 위한 프린터 제어 명령어 단위로 나눈 뒤 이를 3D 프린터로 전송하는 시스템을 제안하였다. 다음 명령어 셋을 수신하기 전 메모리 상에 저장된 이전 명령어 셋을 삭제함으로써 전체 파일이 저장되는 것을 방지하여 3D 출력 파일의 저작권을 보호한다. 이를 위해 3D 이미지 파일을 판매하는 판매자와 구매자의 PC에 에이전트가 설치되고 판매자 PC에 설치된 에이전트가 PC 내 메모리에 저장된 명령어 셋을 암호화하여 네트워크를 통해 3D 프린터가 연결된 구매자의 PC로 전송하고 구매자 측 에이전트가 이를 복호화하여 프린터로 전달한다. 그러나, 이 방식의 경우 판매자와 구매자 간 1:1 전송만이 가능하여 확장성에 한계가 있으며 단일 3D 오브젝트만을 출력하여 프린터 생산성이 떨어지는 단점이 있다.
상기 기술과 달리 Fabulonia와 Authentise라는 Startup 회사 2곳에서 클라우드 기반 3D 프린트 스트리밍을 적용한 3D 프린팅 서비스를 제공하고 있다. 클라우드 기반 3D 프린트 스트리밍의 경우, 사용자로부터 3D 이미지 파일 또는 출력 파일을 전달받아 클라우드 스토리지 상에서 통합 관리하며 해당 파일을 공유 또는 판매할 경우 구매자의 PC나 클라우드 스토리지에 파일을 저장 또는 공유하는 것이 아닌 판매자의 클라우드 스토리지에서 구매자가 선택한 원격지의 3D 프린터로 파일을 잘게 쪼개 전송하게 된다. 원격지의 3D 프린터에서 출력이 진행되는 도중 타 사용자로부터 출력 요청이 들어올 경우, 작업 큐에 저장하여 이전 작업이 완료된 후 순차 출력을 하게 된다. 이러한 클라우드 기반 3D 프린터의 경우, N:N 전송을 지원하지만 여러 사용자로부터 출력 요청 시 큐잉(Queuing)을 통해 순차 출력함으로써 오브젝트가 제조되기까지 소요되는 리드 타임(Lead Time)이 길며 1회 출력 시 소모되는 재료의 낭비가 심하다는 단점이 있다. 따라서, 적층 방식인 3D 프린터의 비싼 재료비와 절삭 가공에 비해 늦은 작업 속도를 고려할 때, 회당 최대한 많은 3D 오브젝트를 출력해야 하나 기존의 3D 프린트 스트리밍 방식들은 이를 해결하지 못하며 특정 3D 프린터에 사용자의 요구가 집중될 경우 상당한 지연이 발생하는 문제점이 존재한다.
대한민국 공개특허공보 제2004-0104714호 (2004. 12. 10.)
본 발명의 실시예들은 네트워크 상에 다양한 3D 프린터가 존재하는 환경에서 여러 사용자로부터 동시에 여러 3D 이미지 파일에 대한 출력이 요청될 경우 실시간으로 원격지의 3D 프린터에서 안전하게 출력하기 위한 3D 프린트 스트리밍 장치 및 방법을 제공하기 위한 것이다.
또한, 본 발명의 실시예들은 복수의 3D 프린터와 사용자가 존재하는 3D 프린트 서비스 환경에서 다수의 사용자로부터 출력 요청 시 요청된 3D 이미지 파일의 배치를 통해 단일 출력 파일로 구성한 뒤 이를 프린트 제어를 위한 기계어 코드로 변환하여 3D 프린터로 분할 전송하여 3D 프린터의 생산성을 개선할 수 있는 3D 프린트 스트리밍 장치 및 방법을 제공하기 위한 것이다.
본 발명의 예시적인 실시예에 따르면, 복수의 사용자 단말 각각으로부터 3D 이미지 파일에 대한 출력 요청이 수신되면, 상기 출력 요청 각각에 대응하는 복수의 출력 작업 정보를 생성하는 파일 관리부; 상기 복수의 출력 작업 정보를 고려하여 네트워크를 통해 연결된 복수의 3D 프린터 중 적어도 하나 이상을 선택하며, 상기 선택된 3D 프린터 각각에 상기 복수의 출력 작업 정보를 분배하여 할당한 후 상기 할당된 출력 작업 정보 내 3D 이미지 파일 또는 상기 3D 이미지 파일 내 3D 오브젝트들을 이용하여 상기 선택된 3D 프린터 각각에 전송될 단일 출력 파일을 생성하는 배치 및 병합부; 및 상기 배치 및 병합부에 의해 생성된 단일 출력 파일을 상기 선택된 3D 프린터에 전송하여 출력을 요청하는 파일 전송부를 포함하는 3D 프린트 스트리밍 장치가 제공된다.
상기 3D 프린트 스트리밍 장치에서 상기 파일 관리부는 상기 3D 이미지 파일을 3D 프린팅을 위한 파일 형식으로 변환하여 3D 오브젝트를 포함하는 변환 파일을 생성하며, 상기 변환 파일을 포함하는 출력 작업 정보를 생성할 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 파일 관리부는 상기 복수의 사용자 단말 각각으로부터 사용자의 출력 요구 사항 및 3D 이미지 파일에 대한 출력 방식을 수신하며, 상기 수신된 출력 요구 사항, 상기 출력 방식 또는 상기 3D 이미지 파일의 특성을 고려하여 상기 출력 작업 정보를 생성할 수 있다.
상기 3D 프린트 스트리밍 장치는 복수의 3D 이미지 파일에 각기 다른 아이디를 부여하여 저장하고 있는 파일 저장소와 연동되며, 상기 파일 관리부는 3D 이미지 파일에 대한 아이디를 포함한 출력 요청을 수신하며, 상기 아이디에 해당하는 3D 이미지 파일을 상기 파일 저장소에서 읽어드릴 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 배치 및 병합부는 상기 복수의 3D 프린터를 스펙 정보에 따라 분류하여 복수의 그룹으로 관리하며, 상기 스펙 정보와 상기 출력 작업 정보를 기반으로 상기 복수의 그룹 중 적어도 하나 이상의 그룹의 선택을 통해 상기 복수의 출력 작업 정보를 처리할 3D 프린터를 선택할 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 배치 및 병합부는 소정의 스케줄링 주기를 갖는 스케줄링 큐에 상기 출력 작업 정보들을 저장한 후 상기 스케줄링 큐에 저장된 출력 작업 정보들을 상기 선택된 3D 프린터별 출력 상태를 고려하여 상기 선택된 3D 프린터 각각에 분배하여 할당할 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 스케줄링 큐의 스케줄링 주기는 3D 프린터의 1회 출력 시 소요 시간이며, 상기 배치 및 병합부는 상기 스케줄링 주기 동안 상기 파일 관리부에서 생성되는 출력 작업 정보를 상기 스케줄링 큐에 저장할 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 배치 및 병합부는 상기 선택된 그룹 내 3D 프린터 각각의 출력 상태에 따라 우선 순위를 부여하며, 상기 우선 순위가 높은 순서에 해당하는 3D 프린터부터 상기 스케줄링 큐에 저장된 출력 작업 정보들을 분배하여 할당하며, 상기 할당된 출력 작업 정보들의 3D 이미지 파일 또는 3D 오브젝트의 크기와 상기 출력 작업 정보들이 할당된 3D 프린터의 출력 크기를 고려하여 상기 할당된 출력 작업 정보들의 3D 이미지 파일 또는 3D 오브젝트들 중 전부 또는 일부를 선택 및 배치하여 단일 출력 파일을 생성할 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 배치 및 병합부는 상기 배치되지 못한 출력 작업 정보가 존재할 경우 상기 배치되지 못한 출력 작업 정보를 상기 스케줄링 큐에 저장시킬 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 출력 상태는, 3D 프린터의 대기 시간, 출력 속도 및 출력 크기 중 적어도 하나 이상일 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 파일 전송부는 상기 단일 출력 파일을 기계어 코드로 변환하며, 상기 기계어 코드를 복수의 청크로 분할하여 3D 프린터에 전송하여 출력을 요청할 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 파일 전송부는 상기 청크를 수신하는 3D 프린터의 출력 속도와 네트워크 환경을 고려하여 상기 청크의 크기를 결정할 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 청크의 크기는 수학식(CS = CSdefault * (Tps / AVGps) * (Tns / AVGns)(CS는 청크의 크기, CSdefault는 기본 청크 크기, AVGps는 프린트 스트리밍 서비스 내 모든 3D 프린터들의 평균 출력 속도, Tps는 대상 3D 프린터의 출력속도, AVFns는 3D 프린트 스트리밍 장치와 전체 3D 프린터 간 네트워크 평균 전송 속도, Tns는 3D 프린트 스트리밍 장치와 대상 3D 프린터 간의 네트워크 전송 속도)으로 결정될 수 있다.
상기 3D 프린트 스트리밍 장치에서 상기 파일 전송부는 상기 단일 출력 파일을 수신하는 3D 프린터의 상태 정보를 수신하며, 상기 수신된 상태 정보에 따라 상기 청크의 송신을 제어할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 네트워크를 통해 연결된 복수의 3D 프린터를 관리하는 3D 프린트 스트리밍 장치를 이용한 프린트 스트리밍 방법으로서, 복수의 사용자 단말 각각으로부터 3D 이미지 파일에 대한 출력 요청이 수신되면, 상기 출력 요청 각각에 대한 출력 작업 정보를 생성하는 단계; 상기 복수의 출력 작업 정보를 고려하여 상기 복수의 3D 프린터에서 적어도 하나 이상을 선택하는 단계; 상기 선택된 3D 프린터에 상기 복수의 출력 작업 정보를 분배하여 할당하며, 상기 할당된 출력 작업 정보에 포함된 3D 이미지 파일 또는 3D 이미지 파일 내 3D 오브젝트를 병합하여 상기 선택된 3D 프린터에 전송될 단일 출력 파일을 생성하는 단계; 및 상기 생성된 단일 출력 파일 각각을 상기 선택된 3D 프린터에 전송하여 출력을 요청하는 단계를 포함하는 3D 프린트 스트리밍 방법이 제공된다.
상기 3D 프린트 스트리밍 방법에서 상기 출력 작업 정보를 생성하는 단계는 상기 3D 이미지 파일을 3D 프린팅을 위한 파일 형식으로 변환하는 단계; 및 상기 변환된 3D 이미지 파일을 포함하는 출력 작업 정보를 생성하는 단계를 포함할 수 있다.
상기 3D 프린트 스트리밍 방법에서 상기 출력 작업 정보를 생성하는 단계는 상기 복수의 사용자 단말로부터 사용자의 출력 요구 사항 또는 3D 이미지 파일에 대한 출력 방식을 수신하는 단계; 및 상기 수신된 출력 요구 사항, 상기 출력 방식 또는 3D 이미지 파일의 특성을 이용하여 상기 출력 작업 정보를 생성하는 단계를 포함할 수 있다.
상기 3D 프린트 스트리밍 장치는 복수의 3D 이미지 파일에 각기 다른 아이디를 부여하여 저장하고 있는 파일 저장소와 연동되며, 상기 3D 프린트 스트리밍 방법에서 상기 출력 작업 정보를 생성하는 단계는 3D 이미지 파일에 대한 아이디를 포함한 출력 요청을 수신하며, 상기 아이디에 해당하는 3D 이미지 파일을 상기 파일 저장소에서 읽어드리는 단계를 더 포함할 수 있다.
상기 3D 프린트 스트리밍 방법에서 상기 복수의 3D 프린터는 스펙 정보에 따라 분류하여 복수의 그룹으로 관리되며, 상기 선택하는 단계는 상기 스펙 정보와 상기 출력 작업 정보를 기반으로 상기 복수의 그룹 중 적어도 하나 이상의 그룹의 선택을 통해 상기 복수의 출력 작업 정보를 처리할 3D 프린터를 선택할 수 있다.
상기 3D 프린트 스트리밍 방법에서 상기 선택된 그룹에 할당된 출력 작업 정보들은 소정의 스케줄링 주기를 갖는 스케줄링 큐에 저장되며, 상기 단일 출력 파일을 생성하는 단계는 상기 스케줄링 큐에 저장된 출력 작업 정보들을 상기 선택된 그룹의 3D 프린터별 출력 상태를 고려하여 상기 선택된 그룹의 3D 프린터 각각에 분배하여 할당할 수 있다.
상기 3D 프린트 스트리밍 방법에서 상기 스케줄링 큐의 스케줄링 주기는 3D 프린터의 1회 출력 시 소요 시간이며, 상기 단일 출력 파일 생성하는 단계는 상기 스케줄링 주기 동안 상기 생성되는 출력 작업 정보를 상기 스케줄링 큐에 저장할 수 있다.
상기 3D 프린트 스트리밍 방법에서 상기 단일 출력 파일을 생성하는 단계는 상기 선택된 그룹 내 3D 프린터 각각의 출력 상태에 따라 우선 순위를 부여하며, 상기 우선 순위가 높은 순서에 해당하는 3D 프린터부터 상기 스케줄링 큐에 저장된 출력 작업 정보들을 할당하는 단계; 및 상기 할당된 출력 작업 정보들의 3D 이미지 파일 또는 3D 오브젝트의 크기와 상기 출력 작업 정보들이 할당된 3D 프린터의 출력 크기를 고려하여 상기 할당된 출력 작업 정보들의 3D 이미지 파일 또는 3D 오브젝트들 중 전부 또는 일부를 선택 및 배치하여 단일 출력 파일을 생성하는 단계를 포함할 수 있다.
상기 3D 프린트 스트리밍 방법은 상기 배치되지 못한 출력 작업 정보가 존재할 경우 상기 배치되지 못한 출력 작업 정보를 상기 스케줄링 큐에 저장시키는 단계를 더 포함할 수 있다.
상기 3D 프린트 스트리밍 방법에서 상기 요청하는 단계는 상기 단일 출력 파일을 기계어 코드로 변환하는 단계; 및 상기 기계어 코드를 복수의 청크로 분할하여 3D 프린터에 전송하여 출력을 요청하는 단계를 포함할 수 있다.
상기 3D 프린트 스트리밍 방법에서 상기 요청하는 단계는 상기 청크를 수신하는 3D 프린터의 출력 속도와 네트워크 환경을 고려하여 상기 청크의 크기를 결정할 수 있다.
상기 3D 프린트 스트리밍 방법은 상기 단일 출력 파일을 수신하는 3D 프린터의 상태 정보를 수신하며, 상기 수신된 상태 정보에 따라 상기 청크의 송신을 제어할 수 있다.
본 발명의 실시예에 따른 3D 프린트 스트리밍 시스템은 여러 사용자들로부터 동시 출력 요청 시 출력 작업 정보 스케줄링을 통해 최적 배치 및 파일 병합을 실시한 후 단일 기계어 코드로 변환하여 이를 스트리밍함으로써 복수 개의 3D 오브젝트 출력을 가능하게 하여 3D 프린터의 생산성을 개선할 수 있다. 또한, 네트워크 환경 및 3D 프린터의 출력 속도를 고려하여 3D 프린터에 전송되는 크기를 가변적으로 설정함으로써 스트리밍 효율을 개선할 수 있다.
또한, 본 발명의 실시예들에 따르면, 출력 요청 받은 다수의 3D 오브젝트를 최적 배치를 통해 단일 출력 파일로 구성함으로써 여러 3D 오브젝트들에 대한 동시 출력이 가능하여 리드 타임(Lead Time)을 단축하고 재료의 낭비를 줄일 수 있다.
도 1은 본 발명의 실시예에 따른 3D 프린트 스트리밍 시스템을 도시한 블록도
도 2는 본 발명의 실시예에 따른 배치 및 병합부가 출력 작업 정보를 배치 및 병합하는 과정을 도시한 흐름도
도 3은 본 발명의 스케줄링에 따른 3D 이미지 파일 병합 과정을 도시한 예시도
도 4는 본 발명의 실시예에 따른 3D 프린트 스트리밍 장치를 이용한 3D 프린트 스트리밍 방법을 도시한 흐름도.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 실시예에 따른 3D 프린트 스트리밍 시스템을 도시한 블록도이다.
도 1의 3D 프린트 스트리밍 시스템은 복수의 사용자 단말(100), 파일 저장소(200), 3D 프린트 스트리밍 장치(300) 및 복수의 3D 프린터(400)를 포함할 수 있다.
사용자 단말(100)은 유선 도는 무선 네트워크를 이용하여 3D 프린트 스트리밍 장치(300)에 접속 가능한 장치로, 데스크톱, 노트북 등과 같은 개인용 컴퓨터, 태블릿, 스마트폰 등을 들 수 있다.
일 실시예에서, 사용자 단말(100)는 기 저장된 3D 이미지 파일이나 3D 출력 파일을 3D 프린트 스트리밍 장치(300)에 업로딩할 수 있을 뿐만 아니라 3D 이미지 파일에 대한 정보의 전송을 통해 3D 프린트 스트리밍 장치(300)에 3D 이미지 파일 내 오브젝트에 대한 출력 작업 정보를 요청할 수 있는 인터페이스를 제공할 수 있다.
또한, 사용자 단말(100)에는 3D 스캐너, 3D cad, 3D 이미지 변환 툴 등과 같은 3D 모델링 프로그램들이 설치되어 있다. 사용자는 이러한 프로그램들을 이용하여 3D 이미지를 생성하거나 유선 또는 무선 네트워크를 통해 접속된 임의의 단말, 예컨대 서버, 다른 사용자 단말로부터 자신이 원하는 3D 이미지를 제공받을 수 있다.
사용자는 3D 프린트 스트리밍 장치(300)에 업로딩한 파일, 예컨대 3D 이미지 파일을 공유/판매할 수 있다.
파일 저장소(200)는 사용자 단말(100)에서 업로딩된 3D 이미지 파일 또는 3D 출력 파일을 위한 저장 공간을 제공할 수 있다. 일 실시예에서, 파일 저장소(200)는 하드디스크, DAS 등과 같은 로컬 스토리지, NAS 또는 SAN과 같은 네트워크 스토리지 및 클라우드 스토리지를 이용하여 구현될 수 있다.
3D 프린트 스트리밍 장치(300)는 복수의 사용자 단말(100)로부터 3D 이미지 파일에 대한 출력 요청을 수신하여 복수의 출력 작업 정보를 생성하며, 복수의 출력 작업 정보 내 오브젝트를 네트워크로 연결된 복수의 3D 프린터(400)에 적절하게 분배하여 처리할 수 있다. 구체적으로, 3D 프린트 스트리밍 장치(300)는 3D 이미지 파일 또는 3D 이미지 파일 내 3D 오브젝트의 크기와 3D 프린터(400)의 출력 크기를 기반으로 3D 이미지 파일 또는 3D 이미지 파일 내 3D 오브젝트를 적절하게 병합하여 단일 출력 파일을 생성할 수 있다.
한편, 3D 프린트 스트리밍 장치(300)는 복수의 사용자 단말(100)에 출력 요구 사항을 입력할 수 있는 인터페이스를 제공하며, 인터페이스를 통해 입력된 출력 요구 사항과 출력 요청받은 3D 이미지 파일의 특성 또는 출력 방식을 고려하여 출력 작업 정보를 생성할 수 있다.
또한, 3D 프린트 스트리밍 장치(300)는 사용자 단말(100)로부터 3D 이미지 파일을 수신받아 이를 파일 저장소(200)에 저장하여 통합 관리하고, 사용자 단말(100)로부터의 출력 요청 시 파일 저장소(200)에 저장된 다수의 3D 이미지 파일을 각 3D 프린터(400)에 분배한 후 각 3D 이미지 파일 또는 3D 이미지 파일 내 3D 오브젝트를 3D 프린터(400) 상태에 맞게 최적 배치하여 단일 파일로 병합하여 단일 출력 파일(STL 파일)을 생성할 수 있다.
또한, 3D 프린트 스트리밍 장치(300)는 단일 출력 파일을 3D 프린터(400)의 제어 명령, 예컨대 기계어 코드로 변환하여 원격지의 3D 프린터(400)로 전송할 수 있다.
또한, 3D 프린트 스트리밍 장치(300)는 기계어 코드를 기 설정된 크기를 갖는 청크(chunk)로 분할하여 3D 프린터(400)에 전송하여 출력을 요청할 수 있다.
상기와 같은 3D 프린트 스트리밍 장치(300)의 세부 구성에 대해 설명하면 아래와 같다.
도 1에 도시된 바와 같이, 3D 프린트 스트리밍 장치(300)는 사용자 데이터베이스(310), 프린터 데이터베이스(320), 파일 관리부(300), 배치 및 병합부(340) 및 파일 전송부(350)를 포함할 수 있다.
사용자 데이터베이스(310)는 3D 프린트 스트리밍 서비스를 위한 사용자 정보 및 사용자가 접근 가능한 파일 정보 등을 저장하고 있다. 일 실시예에서, 사용자 정보는 사용자 아이디(ID), 이메일(Email), 전화번호 등과 같은 신상 정보, 출력 요청을 위해 인증된 사용자 단말 관련 정보, 사용자에게 할당된 파일 저장소 관련 정보, 파일 ID, 파일 저장 위치, 출력 및 공유 권한 등과 같은 사용자가 소유 또는 접근 가능한 파일 정보, 선호하는 출력 방식 및 재료 등을 포함할 수 있다.
일 실시예에서, 사용자 데이터베이스(310)에 저장된 정보는 사용자 단말(100)로부터 출력 요청이 수신될 때 사용자의 인증 및 파일 접근 가능 여부를 판단하는데 이용될 수 있다.
프린터 데이터베이스(320)는 스트리밍을 통해 출력이 가능한 3D 프린터(400)의 구성 정보를 저장하고 있다. 일 실시예에서, 3D 프린터(400)의 구성 정보에는 프린터 ID, 이름, 네트워크 주소 등과 같은 일반 정보와 출력 방식, 출력 가능 색상, 지원 재료, 출력 크기, 출력 파일 형식, 출력 레이어 두께, 출력 속도 등과 같은 출력 관련 정보, 프린터별 접근 가능 사용자 목록 등을 포함할 수 있다.
일 실시예에서, 프린터 데이터베이스(320)에 저장된 3D 프린터(400)의 구성 정보는 사용자 단말(100)의 출력 요청을 처리할 때 3D 프린터(400)의 선택에 이용될 수 있다.
파일 관리부(330)는 파일 저장을 위해 파일 저장소(200)에 사용자별 저장 공간을 할당하고, 사용자 단말(100)로부터 업로딩된 파일, 예컨대 3D 이미지 파일을 3D 프린터(400)에서 지원하는 출력 파일 형식으로 변환하여 STL 파일을 생성한 후 이를 파일 저장소(200)에 저장 및 관리할 수 있다. 예컨대, 3D 이미지 파일 형식이 CAD일 경우 파일 관리부(330)는 CAD 파일을 3D 프린터(400)의 표준 형식인 STL(Stero Lithography)로 변환하여 파일 저장소(200)에 저장할 수 있다.
또한, 파일 관리부(330)는 사용자별 파일 접근 권한을 생성 및 관리하여 파일 공유 및 출력 기능을 지원하며, 생성된 파일 접근 권한을 기반으로 사용자 데이터베이스(310)를 업데이트할 수 있다.
한편, 파일 관리부(330)는 사용자 단말(100)로부터 출력 방식과 3D 이미지 파일에 대한 출력 요청을 수신할 수 있으며, 출력 요청 수신 시 사용자 단말(100)로부터 사용자의 출력 요구 사항을 수신할 수 있다. 출력 요청을 수신한 파일 관리부(330)는 출력 요구 사항, 출력 방식 또는 3D 이미지 파일의 특성을 고려하여 출력 작업 정보를 생성할 수 있다.
한편, 파일 관리부(330)는 사용자 단말(100)로부터 3D 오브젝트의 출력 요청이 수신되는 경우 3D 오브젝트를 포함하는 3D 이미지 파일의 접근 권한을 사용자 데이터베이스(310)에서 검색하여 출력 가능 여부를 판단하며, 출력 가능할 경우 3D 오브젝트의 출력 작업 정보를 배치 및 병합부(340)에 전송한다. 일 실시예에서, 출력 요청은 오브젝트 3D 이미지 파일 또는 3D 이미지 파일의 아이디와 출력 재료를 포함하는 출력 방식을 포함할 수 있다. 또한, 파일 관리부(330)에 의해 생성된 출력 작업 정보는 3D 이미지 파일의 ID, 업로드 위치, 3D 오브젝트 크기, 출력 방식 등을 포함할 수 있다.
배치 및 병합부(340)는 네트워크를 통해 연결된 복수의 3D 프린터(400)의 스펙 정보와 출력 작업 정보 내 출력 방식을 기반으로 복수의 3D 프린터(400) 중 적어도 하나 이상의 3D 프린터를 선택하며, 선택된 3D 프린터(400)에 출력 작업 정보를 할당하여 처리할 수 있다. 구체적으로, 배치 및 병합부(340)는 출력 작업 정보가 할당된 3D 프린터(400)의 출력 크기를 고려하여 출력 작업 정보에 포함된 3D 이미지 파일 또는 3D 이미지 파일 내 3D 오브젝트를 배치 및 병합하여 단일 출력 파일을 생성할 수 있다. 이렇게 생성된 단일 출력 파일은 파일 전송부(350)를 통해 선택된 3D 프린터(400)에 전송되어 출력될 수 있다.
일 실시예에 따른 배치 및 병합부(340)는 네트워크를 통해 연결된 복수의 3D 프린터(400)를 스펙 정보에 따라 분류한 후 분류된 3D 프린터(400)를 각각의 그룹으로 관리할 수 있다. 구체적으로, 배치 및 병합부(340)는 복수의 3D 프린터(400)를 스펙 정보에 해당하는 출력 방식, 출력 재료 또는 출력 크기에 따라 복수개의 그룹으로 분류하여 관리할 수 있다. 또한, 배치 및 병합부(340)는 각 그룹 내 3D 프린터(400)에 의해 처리되는 출력 작업 정보를 저장할 수 있는 스케줄링 큐를 포함하며, 스케줄링 큐에는 소정의 스케줄링 주기, 예컨대 3D 프린터(400)의 1회 출력 시 소요 시간이 셋팅되어 있다.
한편, 배치 및 병합부(340)는 스케줄링 큐에 저장된 출력 작업 정보를 그룹 내 3D 프린터(400)별 출력 상태, 예컨대 대기 시간, 출력 속도, 출력 크기, 출력 특성 등을 고려하여 스케줄링하여 각 3D 프린터(400)에 할당할 수 있다.
또한, 배치 및 병합부(340)는 각 3D 프린터(400)에 할당된 출력 작업 정보들의 동시 출력을 위해 3D 이미지 파일 또는 3D 이미지 파일 내 3D 오브젝트 배치 및 병합 과정을 수행할 수 있다.
일 실시예에 따른 배치 및 병합부(340)가 3D 오브젝트를 배치 및 병합하는 과정(200)에 대해 도 2를 참조하여 설명한다.
도 2는 본 발명의 실시예에 따라 배치 및 병합부(340)가 3D 오브젝트를 배치 및 병합하는 과정을 도시한 흐름도이다.
도 2에 도시된 바와 같이, 배치 및 병합부(340)는 출력 작업 정보들이 수신됨에 따라 출력 작업 정보 내 출력 재료를 기반으로 출력 작업 정보들을 처리할 그룹을 선택한다(단계 202).
그런 다음, 배치 및 병합부(340)는 선택된 그룹 내 3D 프린터들의 출력 상태, 예컨대 대기 시간, 출력 속도, 출력 크기 등을 고려하여 그룹 내 3D 프린터(400)들에 대한 우선 순위를 할당한다(단계 204).
이후, 배치 및 병합부(340)는 우선 순위가 높은 3D 프린터(400)부터 순차적으로 출력 작업 정보들을 할당한다(단계 206).
그리고 나서, 배치 및 병합부(340)는 우선 순위가 높은 3D 프린터(400)부터 출력 작업 정보들에 해당하는 3D 오브젝트들을 배치한다(단계 208). 구체적으로, 배치 및 병합부(340)는 3D 프린터(400)의 출력 크기에 대응하는 가상 공간 상에 들어갈 수 있을 만큼의 3D 오브젝트를 배치할 수 있다.
그런 다음, 배치 및 병합부(340)는 배치된 3D 오브젝트를 병합하여 하나의 단일 출력 파일, 예컨대 단일 STL 파일을 생성한다(단계 210).
만약, 스케줄링 주기 동안 3D 프린터(400)에 배치되지 못한 출력 작업 정보가 존재할 경우 배치 및 병합부(340)는 출력 작업 정보 내 3D 오브젝트를 포함한 변환 파일, 즉 STL 파일을 다시 스케줄링 큐에 저장시키며, 다음 스케줄링 주기때 상기의 단계 206 내지 단계 210을 통해 처리할 수 있다.
한편, 상기와 같은 단계들을 통해 생성된 단일 STL 파일은 파일 전송부(350)를 통해 스트리밍되어 해당되는 3D 프린터(400)에 전송될 수 있다.
상기의 도 2에서는 3D 오브젝트에 대한 병합 및 배치에 대해 설명하였지만, 3D 이미지 파일도 동일한 단계를 통해 병합 및 배치할 수 있다.
상기와 같은 단계들을 수행하는 배치 및 병합부(340)가 스케줄링에 따라 3D 이미지 파일을 병합하는 과정에 대해 도 3을 참조하여 설명한다.
도 3은 본 발명의 스케줄링에 따른 3D 이미지 파일 병합 과정을 도시한 예시도이다.
도 3의 설명에 앞서, 스케줄링 주기 동안 ABS 재질로 출력을 원하는 5개의 출력 작업 정보가 입력되고 네트워크 상에 서비스 가능한 FDM 방식의 3D 프린터가 2개 존재한다고 가정한다. 이 경우 출력 작업 정보 #1, #2, #4, #5의 3D 오브젝트들은 도 3에 도시된 바와 같은 배치를 통해 각 3D 프린터의 출력 크기와 동일한 가상 공간 상에 알맞게 배치된다. 구체적으로, 3D 프린터 #1에 배치된 출력 작업 정보 #1, #2의 STL 파일 #1, #2는 단일 STL 파일 #1로, 3D 프린터 #2에 배치된 출력 작업 정보 #4, #5의 STL 파일 #4, #5는 단일 STL 파일 #2로 병합된다. 그리고, 배치되지 못한 출력 작업 정보 #3의 STL 파일 #3의 경우 다시 스케줄링 큐에 저장되어 다음 스케줄링 주기 때 재배치된다.
파일 전송부(350)는 단일 STL 파일의 적층 출력을 위해 기계어 코드로 변환한 후 단일 STL 파일을 전송받을 3D 프린터(400)의 출력 속도, 네트워크 속도 등을 고려하여 단일 출력 파일을 청크(chunk) 단위로 분할한 후 네트워크를 통해 3D 프린터(400)로 전송할 수 있다.
이러한 파일 전송부(350)는 파일 변환 모듈(352)과 전송 모듈(354)로 구성될 수 있다.
파일 변환 모듈(352)은 단일 STL 파일을 바탕으로 3D 프린터(400) 상에 3D 오브젝트를 출력하기 위해 원료를 쌓는 경로, 속도, 압출략 등을 계산하여 기계어 코드를 생성한다. 이러한 기계어 코드는 3D 프린터(400)의 헤더 및 베더 등을 제어하여 실제 3D 오브젝트를 출력할 수 있도록 한다.
또한, 파일 변환 모듈(352)은 기계어 코드로 구성된 파일을 기 설정된 크기로 분할하여 청크를 생성한 후 청크를 암호화하여, 예컨대 3D로 암호화하여 3D 프린터(400)로 전송할 수 있다. 청크는 단순한 구조체로 청크 ID, 청크 사이즈, 실제 데이터인 기계어 코드로 구성될 수 있다.
파일 변환 모듈(352)이 기계어 코드로 구성된 파일을 청크 단위로 분할할 때, 청크의 크기는 3D 프린트 스트리밍 장치(300)와 3D 프린터(400)간의 네트워크 속도 및 3D 프린터(400)의 출력 속도에 따라 설정될 수 있다. 구체적으로, 청크의 크기는 아래의 수학식 1에 의해 설정될 수 있다.
Figure pat00001
상기의 수학식 1에서, CS는 청크의 크기, CSdefault는 기본 청크 크기, AVGps는 프린트 스트리밍 서비스 내 모든 3D 프린터(400)들의 평균 출력 속도, Tps는 대상 3D 프린터의 출력속도, AVFns는 3D 프린트 스트리밍 장치(300)와 전체 3D 프린터(400) 간 네트워크 평균 전송 속도, Tns는 3D 프린트 스트리밍 장치(300)와 대상 3D 프린터(400) 간의 네트워크 전송 속도를 의미한다.
한편, 전송 모듈(354)은 청크를 3D 프린터(400)에 전송하는데, 3D 프린터(400) 내 프린터 에이전트(410)와의 통신을 통해 청크의 전송을 제어할 수 있다. 구체적으로, 전송 모듈(354)은 3D 프린터(400) 내 프린터 에이전트(410)와의 통신을 통해 3D 프린터(400)의 상태 정보를 수신하며, 수신된 상태 정보에 근거하여 청크를 순차적으로 3D 프린터(400)에 전송할 수 있다. 일 실시예에서, 상태 정보는 3D 프린터(400)의 동작 상태, 출력 작업 정보, 출력 진행 상황, 재료 잔여 현황 등을 포함할 수 있다.
3D 프린터(400)는 3D의 오브젝트를 선반, 밀링과 같이 기존의 절삭 가공 방식이 아닌 재료를 레이어 단위로 쌓아 올리는 적층 방식으로 실물 제품을 찍어내는 프린터를 의미한다.
일 실시예에서, 3D 프린터(400)는 프린터 에이전트(410)를 구비할 수 있다. 프린터 에이전트(410)는 파일 전송부(350)로부터 수신된 청크를 3D 프린터(400) 메모리에 저장한 뒤 이를 복호화하여 실제 기계어 코드를 기반으로 프린터가 실제 출력할 수 있도록 한다.
또한, 프린터 에이전트(410)는 다음 번 청크를 수신받기 전 메모리에 저장된 이전 청크 데이터를 삭제하여 출력물과 관련된 데이터를 3D 프린터(400) 또는 3D 프린터(400)와 연결된 호스트 컴퓨터(미도시됨)에 남기지 않는다.
한편, 프린터 에이전트(410)는 3D 프린터(400)의 상태 정보 및 출력 진행 상황을 감시하여 파일 전송부(350)로 전송한다.
상기와 같은 구성을 갖는 3D 프린트 스트리밍 장치(300)를 이용한 3D 프린트 스트리밍 방법에 대해 도 4를 참조하여 설명한다.
도 4는 본 발명의 실시예에 따른 3D 프린트 스트리밍 장치(300)를 이용한 3D 프린트 스트리밍 방법을 도시한 흐름도이다.
도 4에 도시된 바와 같이, 먼저 사용자 단말(100)들로부터 3D 이미지 파일에 대한 3D 오브젝트 출력 요청이 수신되면(단계 302), 즉 사용자 단말(100)들로부터 3D 이미지 파일 ID와 출력 방식에 해당하는 출력 재료 정보를 포함하는 3D 오브젝트에 대한 출력 요청이 수신되면, 3D 프린트 스트리밍 장치(300)의 파일 관리부(330)는 3D 이미지 파일 ID에 해당하는 3D 이미지 파일을 파일 저장소(200)에서 읽어드린 후 3D 프린팅을 위한 파일 형식, 예컨대 STL 파일로 변환하여 변환 파일을 생성한다(단계 304).
일 실시예에서 생략되었지만, 3D 프린트 스트리밍 장치(300)는 사용자 데이터베이스(310)를 기반으로 3D 오브젝트 출력을 요청한 사용자에 대한 인증 및 접근권한을 검색할 수 있다.
그런 다음, 3D 프린트 스트리밍 장치(300)의 파일 관리부(330)는 변환 파일과 출력 재료 정보를 포함하는 복수의 출력 작업 정보를 생성한 후 이를 배치 및 병합부(340)에 제공한다(단계 306).
한편, 상기의 단계에서는 생략되었지만, 사용자 단말(100)로부터 사용자의 출력 요구 사항을 수신할 수 있으며, 단계 306에서 파일 관리부(330)는 출력 요구 사항, 출력 재료 정보 또는 3D 이미지 파일의 특성을 고려하여 출력 작업 정보를 생성할 수도 있다.
이후, 3D 프린트 스트리밍 장치(300)의 배치 및 병합부(340)는 출력 작업 정보들의 출력 재료 정보를 기초하여 적어도 하나 이상의 그룹을 선택하며, 선택된 그룹의 스케줄링 큐에 출력 작업 정보들을 저장한다(단계 308).
그런 다음, 배치 및 병합부(340)는 선택된 그룹에 속하는 3D 프린터(400)의 출력 상태를 체크하여 유휴 상태, 즉 새로운 출력이 가능한 상태인지를 판단한다(단계 310).
단계 310의 판단 결과, 새로운 출력이 가능한 상태일 경우 배치 및 병합부(340)는 선택된 그룹의 각 3D 프린터(400)에 출력 작업 정보들을 분배하여 할당한다(단계 312).
그리고나서, 배치 및 병합부(340)는 각 3D 프린터(400)에 할당된 출력 작업 정보가 적어도 둘 이상인지, 즉 할당된 출력 작업 정보가 복수인지를 판단한다(단계 314).
단계 314의 판단 결과, 복수일 경우 배치 및 병합부(340)는 출력 작업 정보들에 해당하는 3D 오브젝트들 전부 또는 일부를 3D 프린터(400)의 출력 크기(베드 크기)에 맞도록 배치하고, 각 3D 오브젝트에 해당하는 파일들을 병합하여 단일 출력 파일을 생성한다(단계 316).
단일 출력 파일을 생성한 후, 배치 및 병합부(340)는 배치되지 못한 3D 오브젝트가 존재하는지를 판단한다(단계 318).
단계 318의 판단 결과, 존재할 경우 배치 및 병합부(340)는 단계 308로 진행하여 배치되지 못한 3D 오브젝트에 해당하는 출력 작업 정보를 스케줄링 큐에 저장한다.
그런 다음, 파일 전송부(350)는 파일 변환 모듈(352)을 이용하여 단일 출력 파일을 3D 프린터(400)의 제어를 위한 기계어 코드로 변환한다(단계 320).
한편, 단계 314의 판단 결과, 단수일 경우, 즉 출력 작업 정보가 하나인 경우 3D 프린트 스트리밍 장치(300)는 단계 322로 진행하여 3D 오브젝트를 포함하는 파일을 기계어 코드로 변환한다.
이후, 파일 전송부(350)는 파일 변환 모듈(352)을 이용하여 기계어 코드를 기 설정된 크기를 갖는 청크로 분할하며(단계 322), 전송 모듈(354)을 이용하여 청크를 암호화(단계 324)하여 네트워크 통해 3D 프린터 내 프린터 에이전트(410)로 전송한다(단계 326).
모든 청크의 전송이 완료될 때까지(단계 328), 암호화 및 전송의 단계를 반복 수행한다.
상기와 같은 모든 단계들은 스케줄링 주기마다 반복하여 진행될 수 있다.
상기의 도 4의 3D 프린트 스트리밍 방법에서는 3D 오브젝트를 기준으로 설명하였지만, 3D 이미지 파일 역시 상기와 같은 단계들을 통해 3D 프린터(400)에 스트리밍될 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들, 즉 배치 및 병합 방법과 3D 프린트 스트리밍 방법을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100 : 사용자 단말
200 : 파일 저장소
300: 3D 프린트 스트리밍 장치
310 : 사용자 데이터베이스
320 : 프린터 데이터베이스
330 : 파일 관리부
340 : 배치 및 병합부
350 : 파일 전송부
400 : 3D 프린터
410 : 에이전트

Claims (27)

  1. 복수의 사용자 단말 각각으로부터 3D 이미지 파일에 대한 출력 요청이 수신되면, 상기 출력 요청 각각에 대응하는 복수의 출력 작업 정보를 생성하는 파일 관리부;
    상기 복수의 출력 작업 정보를 고려하여 네트워크를 통해 연결된 복수의 3D 프린터 중 적어도 하나 이상을 선택하며, 상기 선택된 3D 프린터 각각에 상기 복수의 출력 작업 정보를 분배하여 할당한 후 상기 할당된 출력 작업 정보 내 3D 이미지 파일 또는 상기 3D 이미지 파일 내 3D 오브젝트들을 이용하여 상기 선택된 3D 프린터 각각에 전송될 단일 출력 파일을 생성하는 배치 및 병합부; 및
    상기 배치 및 병합부에 의해 생성된 단일 출력 파일을 상기 선택된 3D 프린터에 전송하여 출력을 요청하는 파일 전송부를 포함하는, 3D 프린트 스트리밍 장치.
  2. 제1항에 있어서,
    상기 파일 관리부는
    상기 3D 이미지 파일을 3D 프린팅을 위한 파일 형식으로 변환하여 3D 오브젝트를 포함하는 변환 파일을 생성하며, 상기 변환 파일을 포함하는 출력 작업 정보를 생성하는, 3D 프린트 스트리밍 장치.
  3. 제1항에 있어서,
    상기 파일 관리부는
    상기 복수의 사용자 단말 각각으로부터 3D 이미지 파일에 대한 3D 이미지 파일에 대한 출력 방식 또는 사용자의 출력 요구 사항을 수신하며, 상기 수신된 출력 요구 사항, 상기 출력 방식 또는 상기 3D 이미지 파일의 특성을 포함한 상기 출력 작업 정보를 생성하는, 3D 프린트 스트리밍 장치.
  4. 제1항에 있어서,
    상기 3D 프린트 스트리밍 장치는 복수의 3D 이미지 파일에 각기 다른 아이디를 부여하여 저장하고 있는 파일 저장소와 연동되며,
    상기 파일 관리부는 3D 이미지 파일에 대한 아이디를 포함한 출력 요청을 수신하며, 상기 아이디에 해당하는 3D 이미지 파일을 상기 파일 저장소에서 읽어드리는, 3D 프린트 스트리밍 장치.
  5. 제1항에 있어서,
    상기 배치 및 병합부는 상기 복수의 3D 프린터를 스펙 정보에 따라 분류하여 복수의 그룹으로 관리하며, 상기 스펙 정보와 상기 출력 작업 정보를 기반으로 상기 복수의 그룹 중 적어도 하나 이상의 그룹의 선택을 통해 상기 복수의 출력 작업 정보를 처리할 3D 프린터를 선택하는, 3D 프린트 스트리밍 장치.
  6. 제5항에 있어서,
    상기 배치 및 병합부는 소정의 스케줄링 주기를 갖는 스케줄링 큐에 상기 출력 작업 정보들을 저장한 후 상기 스케줄링 큐에 저장된 출력 작업 정보들을 상기 선택된 3D 프린터별 출력 상태를 고려하여 상기 선택된 3D 프린터 각각에 분배하여 할당하는, 3D 프린트 스트리밍 장치.
  7. 제6항에 있어서,
    상기 스케줄링 큐의 스케줄링 주기는 3D 프린터의 1회 출력 시 소요 시간이며,
    상기 배치 및 병합부는 상기 스케줄링 주기 동안 상기 파일 관리부에서 생성되는 출력 작업 정보를 상기 스케줄링 큐에 저장하는, 3D 프린트 스트리밍 장치.
  8. 제7항에 있어서,
    상기 배치 및 병합부는
    상기 선택된 그룹 내 3D 프린터 각각의 출력 상태에 따라 우선 순위를 부여하며, 상기 우선 순위가 높은 순서에 해당하는 3D 프린터부터 상기 스케줄링 큐에 저장된 출력 작업 정보들을 분배하여 할당하며, 상기 할당된 출력 작업 정보들의 3D 이미지 파일 또는 3D 오브젝트의 크기와 상기 출력 작업 정보들이 할당된 3D 프린터의 출력 크기를 고려하여 상기 할당된 출력 작업 정보들의 3D 이미지 파일 또는 3D 오브젝트들 중 전부 또는 일부를 선택 및 배치하여 단일 출력 파일을 생성하는, 3D 프린트 스트리밍 장치.
  9. 제8항에 있어서,
    상기 배치 및 병합부는 상기 배치되지 못한 출력 작업 정보가 존재할 경우 상기 배치되지 못한 출력 작업 정보를 상기 스케줄링 큐에 저장시키는, 3D 프린트 스트리밍 장치.
  10. 제9항에 있어서,
    상기 출력 상태는, 3D 프린터의 대기 시간, 출력 속도 및 출력 크기 중 적어도 하나 이상인, 3D 프린트 스트리밍 장치.
  11. 제1항에 있어서,
    상기 파일 전송부는
    상기 단일 출력 파일을 기계어 코드로 변환하며, 상기 기계어 코드를 복수의 청크로 분할하여 3D 프린터에 전송하여 출력을 요청하는, 3D 프린트 스트리밍 장치.
  12. 제11항에 있어서,
    상기 파일 전송부는
    상기 청크를 수신하는 3D 프린터의 출력 속도와 네트워크 환경을 고려하여 상기 청크의 크기를 결정하는, 3D 프린트 스트리밍 장치.
  13. 제12항에 있어서,
    상기 청크의 크기는 아래의 수학식에 의해 결정되는, 3D 프린트 스트리밍 장치.
    CS = CSdefault * (Tps / AVGps) * (Tns / AVGns)
    (CS는 청크의 크기, CSdefault는 기본 청크 크기, AVGps는 프린트 스트리밍 서비스 내 모든 3D 프린터들의 평균 출력 속도, Tps는 대상 3D 프린터의 출력속도, AVFns는 3D 프린트 스트리밍 장치와 전체 3D 프린터 간 네트워크 평균 전송 속도, Tns는 3D 프린트 스트리밍 장치와 대상 3D 프린터 간의 네트워크 전송 속도)
  14. 제11항에 있어서,
    상기 파일 전송부는
    상기 단일 출력 파일을 수신하는 3D 프린터의 상태 정보를 수신하며, 상기 수신된 상태 정보에 따라 상기 청크의 송신을 제어하는, 3D 프린트 스트리밍 장치.
  15. 네트워크를 통해 연결된 복수의 3D 프린터를 관리하는 3D 프린트 스트리밍 장치를 이용한 프린트 스트리밍 방법으로서,
    복수의 사용자 단말 각각으로부터 3D 이미지 파일에 대한 출력 요청이 수신되면, 상기 출력 요청 각각에 대한 출력 작업 정보를 생성하는 단계;
    상기 복수의 출력 작업 정보를 고려하여 상기 복수의 3D 프린터에서 적어도 하나 이상을 선택하는 단계;
    상기 선택된 3D 프린터에 상기 복수의 출력 작업 정보를 분배하여 할당하며, 상기 할당된 출력 작업 정보에 포함된 3D 이미지 파일 또는 3D 이미지 파일 내 3D 오브젝트를 병합하여 상기 선택된 3D 프린터에 전송될 단일 출력 파일을 생성하는 단계; 및
    상기 생성된 단일 출력 파일 각각을 상기 선택된 3D 프린터에 전송하여 출력을 요청하는 단계를 포함하는, 3D 프린트 스트리밍 방법.
  16. 제15항에 있어서,
    상기 출력 작업 정보를 생성하는 단계는
    상기 3D 이미지 파일을 3D 프린팅을 위한 파일 형식으로 변환하는 단계; 및
    상기 변환된 3D 이미지 파일을 포함한 출력 작업 정보를 생성하는 단계를 포함하는, 3D 프린트 스트리밍 방법.
  17. 제15항에 있어서,
    상기 출력 작업 정보를 생성하는 단계는
    상기 복수의 사용자 단말로부터 사용자의 출력 요구 사항 또는 상기 3D 이미지 파일의 출력 방식을 수신하는 단계; 및
    상기 수신된 출력 요구 사항, 상기 출력 방식 또는 3D 이미지 파일의 특성을 이용하여 상기 출력 작업 정보를 생성하는 단계를 포함하는, 3D 프린트 스트리밍 방법.
  18. 제15항에 있어서,
    상기 3D 프린트 스트리밍 장치는 복수의 3D 이미지 파일에 각기 다른 아이디를 부여하여 저장하고 있는 파일 저장소와 연동되며,
    상기 출력 작업 정보를 생성하는 단계는
    3D 이미지 파일에 대한 아이디를 포함한 출력 요청을 수신하며, 상기 아이디에 해당하는 3D 이미지 파일을 상기 파일 저장소에서 읽어드리는 단계를 더 포함하는, 3D 프린트 스트리밍 방법.
  19. 제15항에 있어서,
    상기 복수의 3D 프린터는 스펙 정보에 따라 분류하여 복수의 그룹으로 관리되며,
    상기 선택하는 단계는 상기 스펙 정보와 상기 출력 작업 정보를 기반으로 상기 복수의 그룹 중 적어도 하나 이상의 그룹의 선택을 통해 상기 복수의 출력 작업 정보를 처리할 3D 프린터를 선택하는, 3D 프린트 스트리밍 방법.
  20. 제19항에 있어서,
    상기 선택된 그룹에 할당된 출력 작업 정보들은 소정의 스케줄링 주기를 갖는 스케줄링 큐에 저장되며,
    상기 단일 출력 파일을 생성하는 단계는
    상기 스케줄링 큐에 저장된 출력 작업 정보들을 상기 선택된 그룹의 3D 프린터별 출력 상태를 고려하여 상기 선택된 그룹의 3D 프린터 각각에 분배하여 할당하는, 3D 프린트 스트리밍 방법.
  21. 제20항에 있어서,
    상기 스케줄링 큐의 스케줄링 주기는 3D 프린터의 1회 출력 시 소요 시간이며,
    상기 단일 출력 파일 생성하는 단계는 상기 스케줄링 주기 동안 상기 생성되는 출력 작업 정보를 상기 스케줄링 큐에 저장하는, 3D 프린트 스트리밍 방법.
  22. 제16항에 있어서,
    상기 단일 출력 파일을 생성하는 단계는
    상기 선택된 그룹 내 3D 프린터 각각의 출력 상태에 따라 우선 순위를 부여하며, 상기 우선 순위가 높은 순서에 해당하는 3D 프린터부터 상기 스케줄링 큐에 저장된 출력 작업 정보들을 할당하는 단계; 및
    상기 할당된 출력 작업 정보들의 3D 이미지 파일 또는 3D 오브젝트의 크기와 상기 출력 작업 정보들이 할당된 3D 프린터의 출력 크기를 고려하여 상기 할당된 출력 작업 정보들의 3D 이미지 파일 또는 3D 오브젝트들 중 전부 또는 일부를 선택 및 배치하여 단일 출력 파일을 생성하는 단계를 포함하는, 3D 프린트 스트리밍 방법.
  23. 제22항에 있어서,
    상기 스트리밍 방법은 상기 배치되지 못한 출력 작업 정보가 존재할 경우 상기 배치되지 못한 출력 작업 정보를 상기 스케줄링 큐에 저장시키는 단계를 더 포함하는, 3D 프린트 스트리밍 방법.
  24. 제20항에 있어서,
    상기 출력 상태는, 3D 프린터의 대기 시간, 출력 속도 및 출력 크기 중 적어도 하나 이상인, 3D 프린트 스트리밍 방법.
  25. 제15항에 있어서,
    상기 요청하는 단계는
    상기 단일 출력 파일을 기계어 코드로 변환하는 단계; 및
    상기 기계어 코드를 복수의 청크로 분할하여 3D 프린터에 전송하여 출력을 요청하는 단계를 포함하는, 3D 프린트 스트리밍 방법.
  26. 제25항에 있어서,
    상기 요청하는 단계는
    상기 청크를 수신하는 3D 프린터의 출력 속도와 네트워크 환경을 고려하여 상기 청크의 크기를 결정하는, 3D 프린트 스트리밍 방법.
  27. 제25항에 있어서,
    상기 스트리밍 방법은
    상기 단일 출력 파일을 수신하는 3D 프린터의 상태 정보를 수신하며, 상기 수신된 상태 정보에 따라 상기 청크의 송신을 제어하는, 3D 프린트 스트리밍 방법.
KR1020140066278A 2014-05-30 2014-05-30 3d 프린트 스트리밍 장치 및 방법 KR20150137787A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140066278A KR20150137787A (ko) 2014-05-30 2014-05-30 3d 프린트 스트리밍 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140066278A KR20150137787A (ko) 2014-05-30 2014-05-30 3d 프린트 스트리밍 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20150137787A true KR20150137787A (ko) 2015-12-09

Family

ID=54873678

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140066278A KR20150137787A (ko) 2014-05-30 2014-05-30 3d 프린트 스트리밍 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20150137787A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180060789A (ko) * 2016-11-29 2018-06-07 동서대학교산학협력단 라떼 아트 제조방법
KR20180115940A (ko) * 2017-04-14 2018-10-24 전자부품연구원 다양한 G-Code 플러그인을 장착하여 이용하는 3D 프린팅 슬라이싱 방법
CN109036605A (zh) * 2018-07-26 2018-12-18 中国核动力研究设计院 一种耐高温夹心结构复合屏蔽体
US10849353B2 (en) 2016-07-11 2020-12-01 Samsung Electronics Co., Ltd. Cooking apparatus
KR102382712B1 (ko) * 2020-12-18 2022-04-05 김남현 인공지능 기반의 3d 프린팅 제어 방법 및 시스템
IT202200010904A1 (it) * 2022-05-25 2023-11-25 Corso Barbara Dal Metodo e apparecchiatura per la stampa tridimensionale

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10849353B2 (en) 2016-07-11 2020-12-01 Samsung Electronics Co., Ltd. Cooking apparatus
KR20180060789A (ko) * 2016-11-29 2018-06-07 동서대학교산학협력단 라떼 아트 제조방법
KR20180115940A (ko) * 2017-04-14 2018-10-24 전자부품연구원 다양한 G-Code 플러그인을 장착하여 이용하는 3D 프린팅 슬라이싱 방법
CN109036605A (zh) * 2018-07-26 2018-12-18 中国核动力研究设计院 一种耐高温夹心结构复合屏蔽体
CN109036605B (zh) * 2018-07-26 2019-12-24 中国核动力研究设计院 一种耐高温夹心结构复合屏蔽体
KR102382712B1 (ko) * 2020-12-18 2022-04-05 김남현 인공지능 기반의 3d 프린팅 제어 방법 및 시스템
IT202200010904A1 (it) * 2022-05-25 2023-11-25 Corso Barbara Dal Metodo e apparecchiatura per la stampa tridimensionale

Similar Documents

Publication Publication Date Title
US10558764B2 (en) System and method for controlling manufacturing of an item
KR20150137787A (ko) 3d 프린트 스트리밍 장치 및 방법
JP6104184B2 (ja) クラウドストレージシステムのデータ暗号化処理装置及び方法
US9356936B2 (en) Method and apparatus for managing access to electronic content
US8621558B2 (en) Method and apparatus for digital rights management policies
CN103581196B (zh) 分布式文件透明加密方法及透明解密方法
JP7486938B2 (ja) 証明書管理システムのサービス品質の提供
US9615116B2 (en) System, method and apparatus for securely distributing content
KR101393159B1 (ko) 소셜 네트워크 서비스에서의 키 기반의 액세스 제어 방법 및 장치
JP2015180995A (ja) 情報処理システム、管理装置、情報出力方法およびプログラム
JP2009294817A (ja) アクセス権限管理装置及びアクセス権限管理方法並びにプログラム
JP4068125B2 (ja) データアクセス方法および計算機システム
JP6062639B2 (ja) クラウドにおけるファイルの拡張可能処理のためのシステム
US20080174827A1 (en) System and method for secure sharing of document processing device cloning data
JP6708239B2 (ja) ドキュメント管理システム
JP2008210117A (ja) 情報管理システム及びユーザ情報の管理方法
US20180107531A1 (en) Service server, user terminal and method of 3d collaborative printing
US20120262748A1 (en) System and method of processing documents protected under a digital rights management scheme
CN101478624B (zh) 管理设备及信息处理方法
US20200324481A1 (en) Printing capability protection via consumables
US20160259949A1 (en) System and interface supporting safe sharing of content on social media services
KR20130021863A (ko) 네트워크 서버를 이용한 콘텐츠를 관리하는 방법 및 장치
JP2012238113A (ja) ファイル管理装置、ファイル管理方法及びファイル管理プログラム
JP2023157807A (ja) 情報処理装置、アセット管理装置、情報処理方法、アセット管理方法、およびプログラム
JP6630478B2 (ja) ソフトウェア配信システム、ソフトウェア配信方法、プログラムおよびサーバ

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination