digitalfabricationworkshop:remark
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| digitalfabricationworkshop:remark [2015/02/03 06:30] – donghee | digitalfabricationworkshop:remark [2018/07/18 14:10] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | [[http:// | + | < |
| + | # Digital Fabrication Workshop | ||
| + | ## 첫째날: 디지털 패브리케이션과 만들기 | ||
| + | 2015년 1월 6일, 세종과학고 | ||
| - | {{digitalfabricationworkshop> | + | 이재경 |
| + | --- | ||
| + | # 강사소개 및 워크숍 정보 | ||
| + | |||
| + | - **이재경**: | ||
| + | - **장소/ | ||
| + | - **참가**: 세종과학교 1학년 20여명. | ||
| + | - **목표**: 디지털 패브리케이션 과정 경험. | ||
| + | - **진행 방법**: | ||
| + | |||
| + | |||
| + |  | ||
| + | |||
| + | , 선물용 샤프, 던지면 바뀌는 요술공 | ||
| + | , 인형, 머리에 꽂을 수 있는, 비녀, 가스가 세면, 이산화 탄소를 측정. | ||
| + | 개복치 가스 경보기, 슈팅 바쿠간, 쓰레기통(던지면 받는), 목걸이, 트리하우스, | ||
| + | ``` | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 캐드에 대한 기초적인 생각 | ||
| + | |||
| + | 컴퓨터는 공간을 모른다. 제약적인 컴퓨터에게 3d공간을 알 수 있도록 기준이 필요하다. | ||
| + | |||
| + | 그럼 무슨 기준이 필요하나? | ||
| + | 사람이 컴퓨터에게 공간을 알려주기 위해서는 원점(0, | ||
| + | |||
| + | **원점, 방향, 모니터, 카메라, 마우스, 스냅, 정보 저장.** | ||
| + | |||
| + | --- | ||
| + | # 캐드: 원점과 방향 | ||
| + | |||
| + | 1. **원점**: origin point 0,0,0 | ||
| + | 2. **방향**: 축 axis (예: x,y,z축) | ||
| + | |||
| + |  투영. | ||
| + | |||
| + | 는 컴퓨터를 이용한 디자인(Computer Aided Design)으로 만들고, 분석하고, | ||
| + | 수정하는 등의 물건 디자인과정에서 컴퓨터를 이용하는 것을 말한다. | ||
| + | |||
| + | 캐드에는 평면을 디자인할 수 있는 2D캐드와 입체를 디자인할 수 있는 3D캐드로 구분된다. | ||
| + | |||
| + | 이번 워크숍에서 배우는 라이노는 3D 캐드이다. | ||
| + | |||
| + |  | ||
| + | |||
| + | --- | ||
| + | # 라이노 3D 개념 소개 | ||
| + | |||
| + | - 라이노의 기본 객체: | ||
| + | - 부울연산: | ||
| + | - 필터: 공간에 | ||
| + | - NURBS (NON-Unifom Rational B-Spline) 커브를 표현하는 수학적 방법. 커브의 기준 점을 통해서 커브를 연결하는 방식 | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 라이노 3D 개념 2 (연산) | ||
| + | |||
| + | - 필렛: 같은 평면에 있는 두 개의 커브를 접하는 반지름 R의 원으로 연결하는 것 | ||
| + | - Boolean: 솔리드 연산을 위해 사용되는 부울 연산. 솔리드의 교집합, 합집합, 차집합 연산을 할 수 있다. | ||
| + | - Join: 라이노의 객체를 결합하는 연산 | ||
| + | - Loft: 두개의 선을 이용하여 면을 만드는 연산 | ||
| + | - Cap: 커브가 닫혀있지않고 열려 있을때, 열려있는 커브를 덩어리 모양이 되도록 닫혀 주는명령 | ||
| + | |||
| + | |||
| + | --- | ||
| + | |||
| + | # 라이노 3D 개념 3 (연산) | ||
| + | - Section: 덩어리의 단면 추출 | ||
| + | - explode: 합쳐진 면과 선의 집합(객체)를 부숴주는 명령 | ||
| + | - extrude: 특정 방향으로 돌출 시켜주는 명령. 높이를 만들대 유용. | ||
| + | - Sweep 1 Rail: 곡선 레일을 기준으로 곡면을 만들 수 있는 명령. | ||
| + | |||
| + | --- | ||
| + | # 라이노 3D 개념 4 | ||
| + | |||
| + | - 면을 만드는 방법 | ||
| + | - 라이노 전용 서페이스. 메쉬와 다른 라이노 서페이스. | ||
| + | - 메쉬: 면들의 집합. 면안에 점이 있고 면. 그물망처럼 보이기 때문에 메쉬라고 이름을 지음. 용량을 줄이거나, | ||
| + | |||
| + | - 커브 투영: 커브를 특정 축으로 그림자를 낸것 | ||
| + | - 뷰 포트: 보는 틀 (위, 정면, 측면, 카메라 뷰) | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 라이노로 모델링 시연 | ||
| + | |||
| + | 실제 종이컵의 치수를 제어가며 라이노에서 모델을 만드는 방법을 소개 | ||
| + | |||
| + | |||
| + | : 3D모델을 삼각형의 면으로 쪼개어 저장하는 파일형식. | ||
| + | - 라이노에서 STL출력: 모델을 선택하고, | ||
| + | |||
| + | 주의점: **3D모델의 면이 터진곳 없이 면으로 모두 막혀** 있어야 3D프린팅을 할 수 있다. | ||
| + | |||
| + | --- | ||
| + | |||
| + | # CNC를 이용하여 제작한 Burning plate 제작과정 (이재경) | ||
| + | |||
| + | 의 결부방식을 표현하는 현치도를 라이노를 이용하여 그려보자. | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 현치도 그리기 | ||
| + | |||
| + | 1 솔리드로 box와 5면체를 그리고 두개를 접합하여 집을 그린다. | ||
| + | |||
| + | 2 골조 세우기 | ||
| + | |||
| + | 2-1 폴리 서피스의 와이어 커브 추출을 하여, 커브로 구성된 기본 골조를 만든다. | ||
| + | |||
| + | 2-2 커브를 explode하고, | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 현치도 그리기 2 | ||
| + | |||
| + | 2-3 땅으로 부터 올라오는 집의 기둥을 지붕사선면의 골조처럼, | ||
| + | |||
| + | 2-4 돼지발 만들기 | ||
| + | 지붕사선의 골조와 땅으로 부터 올라오는 골조를 만나는 면을 정리한다. | ||
| + | 정리하는 방법은 두개 골조가 만나는 면에서 튀어나오는 부분을 평면으로 자른다.(자를 평면 만들때는 구성평면을 이용하여 축이동을 하면 편리하다.) 그러면 돼지발 모양이 된다. | ||
| + | |||
| + | 2-5 돼지발 처럼된 골조를 전개도를 만들고, 이 전개도는 골조를 만들때 이용한다. | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 현치도 그리기 3 | ||
| + | |||
| + | 3 전개도 만들기 | ||
| + | |||
| + | 3-1 전개도 펴기: Orient3pt 명령을 이용하여 골조의 면을 평면에 붙여 넣기 한다. | ||
| + | |||
| + | 3-2 전개도 출력: 전개도의 자르는선과 접는선 출력하기: | ||
| + | 이 닫힌 커브를 선택하여 종이에 출력하고, | ||
| + | |||
| + | --- | ||
| + | |||
| + | # Pepakura 소개 | ||
| + | |||
| + | 페파쿠라: | ||
| + | |||
| + | http:// | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 집 전개도 만들기 | ||
| + | |||
| + | 참가자가 만들려고 하는 집모델을 수정하여 전개도를 만드는 방법을 시연 및 질답. | ||
| + | |||
| + | ? | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 랜더링 | ||
| + | |||
| + | - 랜더링: 모델을 빛과 주변 환경에 맞춰서 자연스럽게 다시 그려주는것. | ||
| + | - 랜더링도 어마어마한 분야. | ||
| + | - 환경맵 사용. 하늘로 설정 | ||
| + | - 조명 넣기 | ||
| + | - 사각형 조명 만들기 | ||
| + | - 렌더링 걸기 | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 나사 만들기 | ||
| + | |||
| + | 오늘은 3D 프린터를 한번 해봅시다. | ||
| + | 예제로 나사를 만들어 봅시다. | ||
| + | |||
| + | 나사 높이 30m. 나사 산 피치: 2m | ||
| + | |||
| + | <!-- 1. rectangle 만들기 --> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | |||
| + | |||
| + | 1 나사 몸통: 원통 만들어서 extrude | ||
| + | 2 나사산: 원통 밖으로 헬릭스(나선)을 그려서 나사산 자취 만들기 | ||
| + | 3 헬릭스를 기반으로 반타원 레일을 그려서, 나사산 튀어 나오도록 만들기 | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 나사 만들기 cont | ||
| + | |||
| + | 4 나사 머리를 그려서 나사 몸통과 붙이기 | ||
| + | 5 나사 볼트 만들기. 나사 몸통을 덥는 메스를 적당히 배치한다음에 나사와 메스의 | ||
| + | 부울연산 | ||
| + | 6 메스를 적당히 다듬어서 볼트 모양으로 만들기 | ||
| + | |||
| + | --- | ||
| + | # 나사산 만들기 튜토리얼 영상 | ||
| + | |||
| + | - Modeling screw threads 1 https:// | ||
| + | - Modeling screw threads 2 https:// | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 부울 연산 질문 | ||
| + | |||
| + | - 나사산 만들기에서 부울연산에 걸리는 시간이 길다. 왜? | ||
| + | -> 헬릭스, 레일 모델은 수학식으로 만들어져 있다(라이노 캐드엔진). | ||
| + | |||
| + | 솔리드 연산을 지원하는 캐드는 부울 연산을 쉽게 한다. | ||
| + | |||
| + | - 빼는 연산이 안될때 라이노는 어떻게 해야 하나? | ||
| + | -> 부울 연산보다는 처음 부터 최종 결과물을 모델링 한다. | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 나사 모델 | ||
| + | |||
| + |  | ||
| + | - 3D물체의 자른 한면과 단면의 Dup(겹치는)을 실행하여, | ||
| + | |||
| + | 또다른 단면 만들기 방법: 단면과 면이 만나는 라인을 바닦에 orient한다. (section으로 단면커브를 만들고, 단면커브를 선택하고 2D도면그리기(_Make2D)로 Top뷰에 단면을 만든다. | ||
| + | |||
| + | --- | ||
| + | |||
| + | # 2D 도면 | ||
| + | |||
| + |  | ||
| + | response = urlopen(req) | ||
| + | class NACA4DIGIT_PRE_STRIP(HTMLParser): | ||
| + | def __init__(self): | ||
| + | self.reset() | ||
| + | self.fed = [] | ||
| + | self.handle_on = False | ||
| + | def handle_data(self, | ||
| + | if self.handle_on: | ||
| + | self.fed.append(d) | ||
| + | def handle_starttag(self, | ||
| + | if tag == ' | ||
| + | self.handle_on = True | ||
| + | def handle_endtag(self, | ||
| + | if tag == ' | ||
| + | self.handle_on = False | ||
| + | def get_data(self): | ||
| + | return '' | ||
| + | ``` | ||
| + | |||
| + | --- | ||
| + | |||
| + | # Airfoil Generator Python Code Cont | ||
| + | |||
| + | ```python | ||
| + | a = response.read() | ||
| + | parser = NACA4DIGIT_PRE_STRIP() | ||
| + | parser.feed(a) | ||
| + | raw_naca4digit=parser.get_data().split(' | ||
| + | |||
| + | naca4digit = [d for d in raw_naca4digit if d is not '' | ||
| + | half_naca4digit = naca4digit[: | ||
| + | naca4digit = [] | ||
| + | for p in half_naca4digit: | ||
| + | xyz = [float(d) | ||
| + | xyz.append(0.0) | ||
| + | naca4digit.append(xyz) | ||
| + | naca4digit.append([0, | ||
| + | |||
| + | halfcrv = rs.AddCurve(naca4digit) | ||
| + | otherhalfcrv = rs.MirrorObject(halfcrv, | ||
| + | |||
| + | crv =rs.JoinCurves([otherhalfcrv, | ||
| + | upper_crv = rs.ScaleObject(crv, | ||
| + | bottom_crv = rs.ScaleObject(crv, | ||
| + | rs.MoveObject(upper_crv, | ||
| + | |||
| + | a = rs.JoinCurves([bottom_crv, | ||
| + | ``` | ||
| + | |||
| + | --- | ||
| + | |||
| + | |||
| + | # MP3 플레이어 케이스 3D 프린팅 | ||
| + | |||
| + | 