๋ฆฌ์คํธ๋ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ปดํจํฐ์ ์ด์ ์ฒด์ ์๋ ํ์ผ๊ณผ ํด๋๊ฐ ์์ต๋๋ค. Dynamo์์๋ ์ด๋ฌํ ํ์ผ๊ณผ ํด๋๋ฅผ ๊ฐ๊ฐ ํญ๋ชฉ๊ณผ ๋ฆฌ์คํธ๋ก ๊ฐ์ฃผํ ์ ์์ต๋๋ค. ์ด์ ์ฒด์ ์ฒ๋ผ, ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฑ, ์์ ๋ฐ ์กฐํํ ์ ์์ต๋๋ค. ์ด ์ฅ์์๋ Dynamo์์ ๋ฆฌ์คํธ๊ฐ ๊ด๋ฆฌ๋๋ ๋ฐฉ์์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.

๋ฆฌ์คํธ๋ ์์ ๋๋ ํญ๋ชฉ์ ๋ชจ์์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฐ๋๋ ๋ฌถ์์ ๊ณ ๋ คํด๋ณด์ญ์์ค. ๊ฐ ๋ฐ๋๋๋ ๋ฆฌ์คํธ(๋๋ ๋ฌถ์) ๋ด์ ํญ๋ชฉ์ ๋๋ค. ๊ฐ ๋ฐ๋๋๋ฅผ ๋ฐ๋ก ์ก๋ ๊ฒ๋ณด๋ค ๋ฐ๋๋ ๋ฌถ์์ ์ก๋ ๊ฒ์ด ๋ ์ฌ์ด๋ฐ, ์ด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ํ๋ผ๋ฉํธ๋ฆญ ๊ด๊ณ์ ๋ฐ๋ผ ์์๋ฅผ ๊ทธ๋ฃนํํ๋ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์ฌ์ง ์ถ์ฒ: Augustus Binu
์๋ฃํ์ ๊ตฌ์ ํ ๋๋ ๊ตฌ์ ํ ๋ชจ๋ ํญ๋ชฉ์ ๋ฐ๊ตฌ๋์ ๋ฃ์ต๋๋ค. ์ด ๋ฐ๊ตฌ๋ ๋ํ ๋ฆฌ์คํธ์ ๋๋ค. ๋ฐ๋๋ ๋นต์ ๋ง๋ค๋ ค๋ฉด 3๋ฌถ์์ ๋ฐ๋๋๊ฐ ํ์ํฉ๋๋ค(๋ฐ๋๋ ๋นต์ ๋ง์ด ๋ง๋๋ ๊ฒฝ์ฐ). ์ด ๋ฐ๊ตฌ๋๋ ๋ฐ๋๋ ๋ฌถ์ ๋ฆฌ์คํธ๋ฅผ ๋ํ๋ด๊ณ ๊ฐ ๋ฌถ์์ ๋ฐ๋๋ ๋ฆฌ์คํธ๋ฅผ ๋ํ๋ ๋๋ค. ๋ฐ๊ตฌ๋๋ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ(2์ฐจ์)์ด๊ณ ๋ฐ๋๋ ๋ฌถ์์ ๋ฆฌ์คํธ(1์ฐจ์)์ ๋๋ค.
Dynamo์์๋ ๋ฆฌ์คํธ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋๊ณ , ๊ฐ ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ์์ธ "0"์ ๊ฐ์ต๋๋ค. ์๋์์๋ Dynamo์์ ๋ฆฌ์คํธ๊ฐ ์ ์๋๋ ๋ฐฉ๋ฒ๊ณผ ์ฌ๋ฌ ๋ฆฌ์คํธ๊ฐ ์๋ก ์ด๋ป๊ฒ ์ฐ๊ด๋๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
์ฒ์์ ๋ค์ ์ด์ํด ๋ณด์ผ ์ ์๋ ์ ์ ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ์์ธ์ด ํญ์ 1์ด ์๋๋ผ 0์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ด๋ผ๊ณ ํ๋ฉด ์ค์ ๋ก ์์ธ 0์ ํด๋นํ๋ ํญ๋ชฉ์ ์๋ฏธํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ค๋ฅธ์์ ์๊ฐ๋ฝ ์๋ฅผ ์ ๊ฒฝ์ฐ 1์์ 5๊น์ง ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๊ฐ๋ฝ์ ํ๋์ ๋ฆฌ์คํธ์ ํฌํจํ๋ฉด Dynamo์์๋ 0๋ถํฐ 4๊น์ง์ ์์ธ์ ์ง์ ํ ๊ฒ์ ๋๋ค. ํ๋ก๊ทธ๋๋ฐ ์ด๋ณด์์๊ฒ๋ ๋ค์ ์ด์ํด ๋ณด์ผ ์ ์์ง๋ง ๋๋ถ๋ถ์ ๊ณ์ฐ ์์คํ ์์๋ 0๋ถํฐ ์์ํ๋ ์์ธ์ด ํ์ค ๋ฐฉ์์ ๋๋ค.
๋ฆฌ์คํธ์๋ ํญ๋ชฉ์ด 5๊ฐ ์์ผ๋ฉฐ, ํด๋น ๋ฆฌ์คํธ์์๋ 0๋ถํฐ ์์ํ๋ ๊ณ์ฐ ์์คํ ์ ์ฌ์ฉํฉ๋๋ค. ๋ฆฌ์คํธ์ ์ ์ฅ๋๋ ํญ๋ชฉ์ ์ซ์์ผ ํ์๊ฐ ์์ต๋๋ค. ์ , ๊ณก์ , ํ๋ฉด, ํจ๋ฐ๋ฆฌ ๋ฑ Dynamo์์ ์ง์ํ๋ ์ด๋ค ๋ฐ์ดํฐ ์ ํ๋ ๋ ์ ์์ต๋๋ค.
a. ์์ธ
b. ์
c. ํญ๋ชฉ
์ข ์ข ๋ฆฌ์คํธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ ํ์ ํ์ธํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ watch ๋ ธ๋๋ฅผ ๋ค๋ฅธ ๋ ธ๋์ ์ถ๋ ฅ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก watch ๋ ธ๋์์๋ ์๋์ผ๋ก ๋ฆฌ์คํธ ์ผ์ชฝ์ ๋ชจ๋ ์์ธ์ด ํ์๋๊ณ ์ค๋ฅธ์ชฝ์ ๋ฐ์ดํฐ ํญ๋ชฉ์ด ํ์๋ฉ๋๋ค.
์ด๋ฌํ ์์ธ์ ๋ฆฌ์คํธ๋ก ์์ ํ ๋ ์ค์ํ ์์์ ๋๋ค.
๋ฆฌ์คํธ์ ๊ด๋ จํด์, ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ์ ์ฌ์ฉ ์ค์ธ Dynamo ๋ ธ๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์๋ฅผ ๋ค์ด 5๊ฐ์ ์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ด ์ถ๋ ฅ์ ๋ ๊ฐ์ ๋ค๋ฅธ Dynamo ๋ ธ๋์ธ PolyCurve.ByPoints ๋ฐ Circle.ByCenterPointRadius์ ์ฐ๊ฒฐํด ๋ณด๊ฒ ์ต๋๋ค.
PolyCurve.ByPoints์ points ์ ๋ ฅ์ ๊ฒฝ์ฐ "Point[]" ๋ฅผ ์ฐพ์ต๋๋ค. ์ด๊ฒ์ ์ ๋ฆฌ์คํธ๋ฅผ ๋ํ๋ ๋๋ค.
PolyCurve.ByPoints์ ์ถ๋ ฅ์ ์ 5๊ฐ์ ๋ฆฌ์คํธ์์ ์์ฑ๋ ๋จ์ผ PolyCurve์ ๋๋ค.
Circle.ByCenterPointRadius์ centerPoint ์ ๋ ฅ์ ๊ฒฝ์ฐ "Point" ๋ฅผ ์์ฒญํฉ๋๋ค.
PolyCurve.ByPoints ๋ฐ Circle.ByCenterPointRadius์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ ๋์ผํ์ง๋ง, Polycurve.ByPoints ๋ ธ๋์์๋ ํ๋์ polycurve๋ฅผ ์ ๊ณตํ๋ฉฐ, Circle.ByCenterPointRadius ๋ ธ๋์์๋ ๊ฐ ์ ์ ์ค์ฌ์ด ์๋ 5๊ฐ์ ์์ ์ ๊ณตํฉ๋๋ค. ์ฆ, polycurve๋ 5๊ฐ์ ์ ์ ์ฐ๊ฒฐํ๋ ๊ณก์ ์ผ๋ก ๊ทธ๋ ค์ง๊ณ , ์์ ๊ฐ ์ ์ ์๋ก ๋ค๋ฅธ ์์ ์์ฑํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ฐ์ดํฐ๋ ์ด๋ป๊ฒ ๋ ๊น์?
Polycurve.ByPoints์ points ์ ๋ ฅ ์์ ์ปค์๋ฅผ ๋์ผ๋ฉด ํด๋น ์ ๋ ฅ์ด "Point[]" ๋ฅผ ์ฐพ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ๋์ ๊ฐ๊ดํธ๊ฐ ์๋ค๋ ์ ์ ์ ์ํ์ญ์์ค. ์ด๋ ์ ๋ฆฌ์คํธ๋ฅผ ๋ํ๋ด๋ฉฐ, polycurve๋ฅผ ์์ฑํ๋ ค๋ ๊ฒฝ์ฐ ์ ๋ ฅ์ ๊ฐ polycurve์ ๋ํ ๋ฆฌ์คํธ์ฌ์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ด ๋ ธ๋์์๋ ๊ฐ ๋ฆฌ์คํธ๋ฅผ ํ๋์ polycurve๋ก ์์ถํฉ๋๋ค.
๋ฐ๋ฉด, Circle.ByCenterPointRadius์ centerPoint ์ ๋ ฅ์์๋ "Point" ๋ฅผ ์์ฒญํฉ๋๋ค. ์ด ๋ ธ๋์์๋ ์์ ์ค์ฌ์ ์ ์ ์ํ๊ธฐ ์ํ ํญ๋ชฉ์ผ๋ก ํ๋์ ์ ์ ์ฐพ์ต๋๋ค. ๋ฐ๋ก ์ด ๋๋ฌธ์ ์ ๋ ฅ ๋ฐ์ดํฐ์์ 5๊ฐ์ ์์ ์ป๊ฒ ๋๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ Dynamo์์ ์ ๋ ฅ๊ณผ ๋ค๋ฅธ ์ ์ ์ธ์ํ๋ฉด ๋ฐ์ดํฐ ๊ด๋ฆฌ ์ ๋ ธ๋๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ณด๋ค ์ ์ดํดํ ์ ์์ต๋๋ค.
๋ช ํํ ์๋ฃจ์ ์ด ์์ผ๋ฉด ๋ฐ์ดํฐ ์ผ์น๋ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค. ์ด ๋ฌธ์ ๋ ๋ ธ๋๊ฐ ๋ค๋ฅธ ํฌ๊ธฐ์ ์ ๋ ฅ์ ์ก์ธ์คํ ์ ์๋ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค. ๋ฐ์ดํฐ ์ผ์น ์๊ณ ๋ฆฌ์ฆ์ ๋ณ๊ฒฝํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
์ ์ฌ์ด์ ์ ์ธ๊ทธ๋จผํธ๋ฅผ ์์ฑํ๋ ๋ ธ๋๊ฐ ์๋ค๊ณ ์์ํด ๋ณด์ญ์์ค(Line.ByStartPointEndPoint). ์ฌ๊ธฐ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์ขํ๋ฅผ ์ ๊ณตํ๋ ๋ ๊ฐ์ ์ ๋ ฅ ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋ ์ด์ ์ง์ ์ง์ ์ ์์ ๋๊น์ง ์ ๋ ฅ์ ์ผ๋์ผ๋ก ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ "์ต๋จ ๋ฆฌ์คํธ" ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํฉ๋๋ค. ๋ค์์ Dynamo ๋ ธ๋์ ๊ธฐ๋ณธ ๋์์ ๋๋ค.
"์ต์ฅ ๋ฆฌ์คํธ" ์๊ณ ๋ฆฌ์ฆ์ ๋ ์ด์ ์ง์ ์ง์ ์ ์์ ๋๊น์ง ์ ๋ ฅ์ ๊ณ์ ์ฐ๊ฒฐํ๊ณ ์์๋ฅผ ์ฌ์ฌ์ฉํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก โ์ธ์ โ ๋ฉ์๋๋ ๊ฐ๋ฅํ ๋ชจ๋ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค.
๋ณด์๋ค์ํผ ์ด๋ฌํ ์ ์ธํธ ์ฌ์ด์ ์ ์ ๊ทธ๋ฆด ์ ์๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋ ์ด์ฑ ์ต์ ์ ๋ ธ๋์ ์ค์ฌ์ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ๊ณ "๋ ์ด์ฑ" ๋ฉ๋ด๋ฅผ ์ ํํ์ฌ ์ฐพ์ ์ ์์ต๋๋ค.
ํฌ๋ ํ ์ก์ด๊ฐ ์๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. ํฌ๋ ์ฃผ์ค๋ฅผ ๋ง๋ค๋ ค๋ฉด ๊ฐ ํฌ๋๋ฅผ ํ ์์ฉ ์ง๋ ๋์ ํ ๋ฒ์ ์ฐฉ์ฆ๊ธฐ์ ๋ชจ๋ ๋ฃ์ ๊ฒ์ ๋๋ค. Dynamo์ ๋ณต์ ๋ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. ์ฆ, ํ ๋ฒ์ ํญ๋ชฉ ํ๋์๋ง ์์ ์ ์ ์ฉํ๋ ๋์ Dynamo๋ ์์ ์ ์ ์ฒด ๋ฆฌ์คํธ์ ํ ๋ฒ์ ์ ์ฉํ ์ ์์ต๋๋ค.
Dynamo ๋ ธ๋๋ ๋ฆฌ์คํธ๋ก ์์ ํ ๋ ์ด๋ฅผ ์๋์ผ๋ก ์ธ์ํ์ฌ ์ฌ๋ฌ ์์์ ์์ ์ ์ ์ฉํฉ๋๋ค. ์ฆ, ํญ๋ชฉ์ ํ๋์ฉ ์๋์ผ๋ก ๋ฐ๋ณตํ ํ์๊ฐ ์์ด ์๋์ผ๋ก ์ํ๋ฉ๋๋ค. ํ์ง๋ง ๋ฆฌ์คํธ๊ฐ ๋ ์ด์์ธ ๊ฒฝ์ฐ Dynamo์์๋ ๋ฆฌ์คํธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์ด๋ป๊ฒ ๊ฒฐ์ ํ ๊น์?
๋ ๊ฐ์ง ์ฃผ์ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ถ์์์ ๊ณผ์ผ ์ฃผ์ค๋ฅผ ๋ง๋ค๊ณ ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. {apple, orange, pear}๋ผ๋ ๊ณผ์ผ ๋ฆฌ์คํธ๊ฐ ์๊ณ ๊ฐ ์ฃผ์ค์ ์ฌ์ฉํ ๋ฌผ์ ์์ด 1 cup์ผ๋ก ๊ณ ์ ๋์ด ์์ต๋๋ค. ๊ฐ ๊ณผ์ผ์ ๊ฐ์ ์์ ๋ฌผ์ ์ฌ์ฉํ์ฌ ์ฃผ์ค๋ฅผ ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ง๊ต ๋ณต์ ๊ฐ ์ ์ฉ๋ฉ๋๋ค.
Dynamo์์ ์ด๋ ๋ฌผ ์ ๋ ฅ์ด 1์ปต์ผ๋ก ์ผ์ ํ๊ฒ ์ ์ง๋๋ ๋์ ๊ณผ์ผ ๋ฆฌ์คํธ๋ฅผ Juice.Maker ๋ ธ๋์ ๊ณผ์ผ ์ ๋ ฅ์ ์ ๊ณตํ๋ค๋ ์๋ฏธ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ๋ ธ๋๋ ๊ฐ ๊ณผ์ผ์ ๊ฐ๋ณ์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ๊ณ ์ ๋ ์์ ๋ฌผ๊ณผ ๊ฒฐํฉํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
apple juice with 1 cup of water orange juice with 1 cup of water pear juice with 1 cup of water
๊ฐ ๊ณผ์ผ์ ๊ฐ์ ์์ ๋ฌผ๊ณผ ์์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
Zip ๋ณต์ ๋ ์ฝ๊ฐ ๋ค๋ฅด๊ฒ ์๋ํฉ๋๋ค. ๊ณผ์ผ ๋ฆฌ์คํธ({apple, orange, pear})์ ์คํ ๋ฆฌ์คํธ({2 tbsp, 3 tbsp, 1 tbsp}) ๋ ๊ฐ๊ฐ ์๋ ๊ฒฝ์ฐ Zip ๋ณต์ ๋ ๊ฐ ๋ฆฌ์คํธ์ ํด๋น ํญ๋ชฉ์ ๊ฒฐํฉํฉ๋๋ค. ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
apple juice with 2 tablespoons of sugar orange juice with 3 tablespoons of sugar pear juice with 1 tablespoon of sugar
๊ฐ ๊ณผ์ผ์ ๊ทธ์ ์์ํ๋ ์์ ์คํ๊ณผ ์์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ด ์๋ ๋ฐฉ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
์๋์ ๋ ์ด์ฑ ์์ ์ ๋ณด์ฌ๋๋ฆฌ๊ธฐ ์ํด ์ด ๊ธฐ์ค ํ์ผ์ ์ฌ์ฉํ์ฌ ์ต๋จ ๋ฆฌ์คํธ, ์ต์ฅ ๋ฆฌ์คํธ ๋ฐ ์ธ์ ์ ์ ์ํด ๋ณด๊ฒ ์ต๋๋ค.
Point.ByCoordinates์ ๋ ์ด์ฑ๋ง ๋ณ๊ฒฝํ๊ณ ์์ ๊ทธ๋ํ์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.
์ต๋จ ๋ฆฌ์คํธ ๋ฅผ ๋ ์ด์ฑ ์ต์ (๊ธฐ๋ณธ ์ต์ )์ผ๋ก ์ ํํ๋ฉด 5๊ฐ์ ์ ์ผ๋ก ๊ตฌ์ฑ๋ ๊ธฐ๋ณธ ๋๊ฐ์ ์ด ํ์๋ฉ๋๋ค. 5๊ฐ์ ์ ์ ๋ ์งง์ ๋ฆฌ์คํธ์ ๊ธธ์ด์ด๋ฏ๋ก ์ต๋จ ๋ฆฌ์คํธ ๋ ์ด์ฑ์ ํ ๋ฆฌ์คํธ์ ๋์ ๋๋ฌํ๋ฉด ์ค์ง๋ฉ๋๋ค.
๋ ์ด์ฑ์ ์ต์ฅ ๋ฆฌ์คํธ ๋ก ๋ณ๊ฒฝํ๋ฉด ์์ง์ผ๋ก ํ์ฅ๋๋ ๋๊ฐ์ ์ด ํ์๋ฉ๋๋ค. ๊ฐ๋ ๋ค์ด์ด๊ทธ๋จ๊ณผ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก, 5๊ฐ ํญ๋ชฉ ๋ฆฌ์คํธ์ ๋ง์ง๋ง ํญ๋ชฉ์ด ๋ฐ๋ณต๋๋ฉด์ ๋ ๊ธด ๋ฆฌ์คํธ์ ๊ธธ์ด์ ๋๋ฌํฉ๋๋ค.
๋ ์ด์ฑ์ ์ธ์ ์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ๊ฐ ๋ฆฌ์คํธ ๊ฐ์ ๋ชจ๋ ์กฐํฉ์ด ๋ชจ์ฌ 5x10๊ฐ์ ์ ๊ทธ๋ฆฌ๋๊ฐ ์ ๊ณต๋ฉ๋๋ค. ์ด๋ ํ์ฌ ๋ฐ์ดํฐ๊ฐ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ผ๋ ์ ์ ์ ์ธํ๊ณ , ์ ๊ฐ๋ ๋ค์ด์ด๊ทธ๋จ์ ํ์๋ ๊ฒ์ฒ๋ผ ์ธ์ ์ ๋ํ ๋์ผํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค. polycurve๋ฅผ ์ฐ๊ฒฐํ๋ฉด ๊ฐ ๋ฆฌ์คํธ๊ฐ X ๊ฐ์ผ๋ก ์ ์๋์ด ์์ง์ ์ ํ์ด ํ์๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
Circle.ByCenterPointRadius์ ์ถ๋ ฅ์ ์ค์ฌ์ด ์ ์ ์๋ ๋ฆฌ์คํธ์ ํด๋นํ๋ ์ 5๊ฐ์ ๋ฆฌ์คํธ์ ๋๋ค.










์ง๊ธ๊น์ง ๋ฆฌ์คํธ๊ฐ ๋ฌด์์ธ์ง ํ์ธํ์ผ๋ฏ๋ก ๋ฆฌ์คํธ์์ ์ํํ ์ ์๋ ์์ ์ ๋ํด ์ค๋ช ํ๊ฒ ์ต๋๋ค. ๋ฆฌ์คํธ๊ฐ ํ๋์ ๊ฒ์ ์นด๋ ์ธํธ๋ผ๊ณ ์๊ฐํด ๋ณด์ญ์์ค. ์ธํธ๋ ๋ฆฌ์คํธ์ด๋ฉฐ, ๊ฐ ์นด๋๋ ํ๋์ ํญ๋ชฉ์ ๋ํ๋ ๋๋ค.
์ฌ์ง ์ถ์ฒ: Christian Gidlรถf
๋ฆฌ์คํธ์์๋ ์ด๋ค ์กฐํ๋ฅผ ๋ง๋ค ์ ์์๊น์? ์ด๋ฌํ ์กฐํ์์๋ ๊ธฐ์กด ํน์ฑ์ ํ์ธํฉ๋๋ค.
ํ ์ธํธ์ ๋ค์ด ์๋ ์นด๋์ ์๋? 52.
์ง์ ์ด๋ฃจ๋ ํจ์ ์๋? 4.
์ฌ๋ฃ? ์ข ์ด.
๊ธธ์ด๋? 3.5" ๋๋ 89mm.
๋ฆฌ์คํธ์์ ์ํํ ์ ์๋ ์์ ์ ๋ฌด์์ผ๊น์? ์์ ์ ์ํํ๋ฉด ํด๋น ์์ ์ ๊ธฐ์ค์ผ๋ก ๋ฆฌ์คํธ๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค.
์ธํธ๋ฅผ ์์ ์ ์์ต๋๋ค.
๊ฐ๋ณ๋ก ์ธํธ๋ฅผ ์ ๋ ฌํ ์ ์์ต๋๋ค.
์ง์ ์ด๋ฃจ๋ ํจ๋ณ๋ก ์ธํธ๋ฅผ ์ ๋ ฌํ ์ ์์ต๋๋ค.
์ธํธ๋ฅผ ๋๋ ์ ์์ต๋๋ค.
์์ ๋์ด๋ ๋ชจ๋ ์์ ์๋ ์ผ๋ฐ ๋ฐ์ดํฐ ๋ฆฌ์คํธ๋ก ์์ ํ ์ ์๋๋ก ๋น์ทํ Dynamo ๋ ธ๋๊ฐ ์์ต๋๋ค. ์๋ ๋จ์์๋ ๋ฆฌ์คํธ์์ ์ํํ ์ ์๋ ๊ธฐ๋ณธ์ ์ธ ์์ ์ค ์ผ๋ถ๊ฐ ๋์ ์์ต๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
์๋ ์ด๋ฏธ์ง๋ ๋ ์ ์ฌ์ด์ ์ ์ ๊ทธ๋ ค ๊ธฐ๋ณธ ๋ฆฌ์คํธ ์์ ์ ํํํ๋ ๊ธฐ์ค ๊ทธ๋ํ์ ๋๋ค. ๋ฆฌ์คํธ ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ณ ์๋์ ๋ฆฌ์คํธ ์์ ์ ํตํด ์๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ํด ๋ณด๊ฒ ์ต๋๋ค.
๊ฐ์ด
500;์ธ Code Block์ผ๋ก ์์ํฉ๋๋ค.Point.ByCoordinates ๋ ธ๋์ x ์ ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค.
์ด์ ๋จ๊ณ์ ๋ ธ๋๋ฅผ Plane.ByOriginNormal ๋ ธ๋์ ์์ ์ ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
List.Count ๋ ธ๋๋ ๊ฐ๋จํฉ๋๋ค. ๋ฆฌ์คํธ์ ๊ฐ ๊ฐ์๋ฅผ ๊ณ์ฐํ๊ณ ํด๋น ์๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ๋ ธ๋๋ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ก ์์ ํ ๊ฒฝ์ฐ ๋ฏธ๋ฌํ ์ฐจ์ด๊ฐ ์์ผ๋ฉฐ, ์ด ๋ด์ฉ์ ๋ค์ ์น์ ์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
List.Count ๋ ธ๋๋ Line.ByStartPointEndPoint ๋ ธ๋์ ์ ๊ฐ์๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ํด๋น ๊ฐ์ ์๋ Code Block ๋ ธ๋์์ ์์ฑ๋ ์ ์์ ์ผ์นํ๋ 10์ ๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
List.GetItemAtIndex๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฆฌ์คํธ์ ํญ๋ชฉ์ ์กฐํํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
๋จผ์ Line.ByStartPointEndPoint ๋ ธ๋๋ฅผ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ์ฌ ํด๋น ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋๋๋ค.
List.GetItemAtIndex ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ธ "0" ๋๋ ์ค ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ์ ํํฉ๋๋ค.
์ฌ๋ผ์ด๋ ๊ฐ์ 0์์ 9 ์ฌ์ด๋ก ๋ณ๊ฒฝํ์ฌ List.GetItemAtIndex๋ฅผ ํตํด ๋ค๋ฅธ ํญ๋ชฉ์ ์ ํํฉ๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
List.Reverse ๋ ๋ฆฌ์คํธ์ ๋ชจ๋ ํญ๋ชฉ ์์๋ฅผ ๋ฐ๋๋ก ํฉ๋๋ค.
๋ฐ์ ๋ ์ค ๋ฆฌ์คํธ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์๊ฐํํ๋ ค๋ฉด Code Block์
0..1..#50;์ผ๋ก ๋ณ๊ฒฝํ์ฌ ๋ ๋ง์ ์ค์ ์์ฑํฉ๋๋ค.Line.ByStartPointEndPoint ๋ ธ๋๋ฅผ ๋ณต์ ํ๊ณ Curve.PointAtParameter ๋ฐ ๋ ๋ฒ์งธ Line.ByStartPointEndPoint ์ฌ์ด์ List.Reverse ๋ ธ๋๋ฅผ ์ฝ์ ํฉ๋๋ค.
Watch3D ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ง ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฏธ๋ฆฌ ๋ด ๋๋ค. ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์์๋ ๋ฐ์ ๋ ๋ฆฌ์คํธ๊ฐ ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ ์ค๋๋ค. ์ค์ ์ธ์ ํ ์ ์ ์์ง์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐ์ ๋ ๋ฆฌ์คํธ์์๋ ๋ชจ๋ ์ ์ ๋ค๋ฅธ ๋ฆฌ์คํธ์ ๋ฐ๋ ์์๋ก ์ฐ๊ฒฐํฉ๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
List.ShiftIndices๋ ํ๊ธฐ ๋๋ ๋์ ํ ํจํด์ด๋ ๊ธฐํ ์ ์ฌํ ๋ฐ์ดํฐ ์กฐ์์ ์์ฑํ๋ ๋ฐ ์ ์ฉํ ๋๊ตฌ์ ๋๋ค. ์ด ๋ ธ๋์์๋ ๋ฆฌ์คํธ์ ํญ๋ชฉ์ ์ง์ ๋ ์์ธ๋งํผ ์ด๋ํฉ๋๋ค.
๋ฐ์ ๋ฆฌ์คํธ์ ๋์ผํ ํ๋ก์ธ์ค์์ Curve.PointAtParameter ๋ฐ Line.ByStartPointEndPoint์ List.ShiftIndices๋ฅผ ์ฝ์ ํฉ๋๋ค.
Code Block์ ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ 1๊ฐ ์์ธ๋งํผ ์ด๋ํ๊ธฐ ์ํด ๊ฐ "1"์ ์ง์ ํ์ต๋๋ค.
๋ณ๊ฒฝ๋ ์ ๋๋ ๋ฏธ์ธํ์ง๋ง ๋ค๋ฅธ ์ ์ธํธ์ ์ฐ๊ฒฐํ ๋ ํ๋จ Watch3D ๋ ธ๋์ ๋ชจ๋ ์ค์ด 1๊ฐ ์์ธ๋งํผ ์ด๋๋์์ต๋๋ค.
์๋ฅผ ๋ค์ด Code Block์ ๋ ํฐ ๊ฐ์ธ "30" ์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ๋๊ฐ์ ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋์ ์นด๋ฉ๋ผ์ ํ์ฑ์ฒ๋ผ ์๋ํ์ฌ ์๋์ ์ํตํ ํ์์์ ํ๊ธฐ๊ฐ ์์ฑ๋ฉ๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
List.FilterByBooleanMask๋ ๋ถ์ธ ๋ฆฌ์คํธ๋ "true" ๋๋ "false" ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํน์ ํญ๋ชฉ์ ์ ๊ฑฐํฉ๋๋ค.
"true" ๋๋ "false" ๊ฐ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ ค๋ฉด ์ข ๋ ๋ง์ ์์ ์ด ํ์ํฉ๋๋ค.
Code Block์ ์ฌ์ฉํ์ฌ
0..List.Count(list);๊ตฌ๋ฌธ์ผ๋ก ํํ์์ ์ ์ํฉ๋๋ค. Curve.PointAtParameter ๋ ธ๋๋ฅผ list ์ ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค. code block๋ก ์ฅ์์ ์ด ์ค์ ์ ๋ํด ์ข ๋ ์์ธํ ์ค๋ช ํ๊ฒ ์ง๋ง, ์ด ๊ฒฝ์ฐ์๋ ์ฝ๋ ์ค์์ Curve.PointAtParameter ๋ ธ๋์ ๊ฐ ์์ธ์ ๋ํ๋ด๋ ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.%** (modulus)** ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ code block ์ ์ถ๋ ฅ์ x ์ ๋ ฅ์ ์ฐ๊ฒฐํ๊ณ 4 ๊ฐ์ y ์ ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ธ ๋ฆฌ์คํธ๋ฅผ 4๋ก ๋๋ ๋๋จธ์ง๊ฐ ํ์๋ฉ๋๋ค. Modulus๋ ํจํด ์์ฑ์ ๋งค์ฐ ์ ์ฉํ ๋ ธ๋์ ๋๋ค. ๋ชจ๋ ๊ฐ์ ๊ฐ๋ฅํ ๋๋จธ์ง 4๊ฐ(0, 1, 2, 3)๋ก ํ์๋ฉ๋๋ค.
ํญ์? 2.5" ๋๋ 64mm.
๊ฐ ์ฌ๋์๊ฒ ์นด๋๋ฅผ ๋๋ ์ฃผ๊ธฐ ์ํด ์ธํธ๋ฅผ ๋๋ ์ ์์ต๋๋ค.
์ธํธ์์ ํน์ ์นด๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
Circle.ByPlaneRadius ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ๋จ๊ณ์ ๋ ธ๋๋ฅผ ํ๋ฉด ์ ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค.
Code Block์ ์ฌ์ฉํ์ฌ radius์ ๋ํด ๊ฐ 50;์ ์ง์ ํฉ๋๋ค. ๋ค์์ ์์ฑํ ์ฒซ ๋ฒ์งธ ์์
๋๋ค.
Geometry.Translate ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ Z ๋ฐฉํฅ์ผ๋ก ์ต๋ 100๊ฐ ๋จ์๋งํผ ์์ ์ด๋ํฉ๋๋ค.
Code Block ๋
ธ๋์์ ์ฝ๋ ์ค 0..1..#10;์ ์ฌ์ฉํ์ฌ 0๊ณผ 1 ์ฌ์ด์ 10๊ฐ ์ซ์ ๋ฒ์๋ฅผ ์ ์ํฉ๋๋ค.
์ด์ ๋จ๊ณ์ code block์ ๋ Curve.PointAtParameter ๋ ธ๋์ param ์ ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค. Circle.ByPlaneRadius๋ฅผ ์ต์์ ๋ ธ๋์ ๊ณก์ ์ ๋ ฅ์ ์ฐ๊ฒฐํ๊ณ Geometry.Translate๋ฅผ ๊ทธ ์๋ ๋ ธ๋์ ๊ณก์ ์ ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค.
Line.ByStartPointEndPoint๋ฅผ ์ฌ์ฉํ์ฌ ๋ Curve.PointAtParameter ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค.
%** (modulus)** ๋ ธ๋์์ 0 ๊ฐ์ ์์ธ์ด 4๋ก ๋๋์ด๋จ์ด์ง์ ์๋ฏธํฉ๋๋ค(0, 4, 8 ๋ฑ). == ๋ ธ๋๋ฅผ ์ฌ์ฉํ๋ฉด "0" ๊ฐ์ ๊ธฐ์ค์ผ๋ก ํ ์คํธํ์ฌ ๋๋์ด๋จ์ด์ง๋์ง ํ ์คํธํ ์ ์์ต๋๋ค.
Watch ๋ ธ๋์์๋ _true,false,false,false..._๋ก ํ์๋๋ true/false ํจํด์ด ์์์ ๋ํ๋ ๋๋ค.
์ด true/false ํจํด์ ์ฌ์ฉํ์ฌ ๋ List.FilterByBooleanMask ๋ ธ๋์ ๋ง์คํฌ ์ ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค.
Curve.PointAtParameter ๋ ธ๋๋ฅผ List.FilterByBooleanMask์ ๊ฐ ๋ฆฌ์คํธ ์ ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค.
Filter.ByBooleanMask์ ์ถ๋ ฅ์ "in" ๋ฐ _"out"_์ผ๋ก ํ์๋ฉ๋๋ค. "In" ์ ๋ง์คํฌ ๊ฐ์ด "true" ์ธ ๊ฐ์ ๋ํ๋ด๊ณ "out" ์ ๋ง์คํฌ ๊ฐ์ด "false" ์ธ ๊ฐ์ ๋ํ๋ ๋๋ค. Line.ByStartPointEndPoint ๋ ธ๋์ "in" ์ถ๋ ฅ์ startPoint ๋ฐ endPoint ์ ๋ ฅ์ ์ฐ๊ฒฐํ์ฌ ํํฐ๋ง๋ ์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ์ต๋๋ค.
Watch3D ๋ ธ๋์์๋ ์ ๋ณด๋ค ์ ์๊ฐ ๋ ์ ์ ๊ฒ์ ๋ํ๋ ๋๋ค. true ๊ฐ๋ง ํํฐ๋งํ์ฌ ๋ ธ๋์ 25%๋ง ์ ํํ์ต๋๋ค.










ํ ๋ผ๊ตด ๋ ์๋๋ก ๋ด๋ ค๊ฐ๋ฉด์ ๊ณ์ธต์ ๋ ๋ง์ ๊ณ์ธต์ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ 3์ฐจ์ ์ด์์ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ก ๋ ํ์ฅ๋ ์ ์์ต๋๋ค. ๋ฆฌ์คํธ๋ Dynamo์ ์์ฒด ํญ๋ชฉ์ด๋ฏ๋ก ๊ฐ๋ฅํ ๋ง์ ์ฐจ์์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์์ ์์ ํ๋ ๊ฒ์ ๋ฌ์์ ๋งํธ๋ฃ์์นด์ ๋น์ ํ ์ ์์ต๋๋ค. ๊ฐ ๋ฆฌ์คํธ๋ ์ฌ๋ฌ ํญ๋ชฉ์ ํฌํจํ๋ ํ๋์ ์ปจํ ์ด๋๋ก ๊ฐ์ฃผํ ์ ์์ต๋๋ค. ๊ฐ ๋ฆฌ์คํธ๋ ๊ณ ์ ํ ํน์ฑ์ ๊ฐ์ง๋ฉฐ, ๊ณ ์ ํ ๊ฐ์ฒด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
๋ฌ์์ ๋งํธ๋ฃ์์นด(์ฌ์ง ์ถ์ฒ: Zeta) ์ธํธ๋ n์ฐจ์ ๋ฆฌ์คํธ์ ๋น์ทํฉ๋๋ค. ๊ฐ ๋๋ฉด์ธต์ ๋ฆฌ์คํธ๋ฅผ ๋ํ๋ด๊ณ ๊ฐ ๋ฆฌ์คํธ ์์๋ ํญ๋ชฉ์ด ํฌํจ๋์ด ์์ต๋๋ค. Dynamo์ ๊ฒฝ์ฐ ๊ฐ ์ปจํ ์ด๋ ์์๋ ์ฌ๋ฌ ๊ฐ์ ์ปจํ ์ด๋๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค(๊ฐ ๋ฆฌ์คํธ์ ํญ๋ชฉ์ ๋ํ๋).
n์ฐจ์ ๋ฆฌ์คํธ๋ ์๊ฐ์ ์ผ๋ก ์ค๋ช ํ๊ธฐ ์ด๋ ต์ง๋ง, ์ด ์ฅ์์๋ 3์ฐจ์ ์ด์์ ๋ฆฌ์คํธ๋ฅผ ์ค์ ์ ์ผ๋ก ๋ค๋ฃจ๋ ๋ช ๊ฐ์ง ์ฐ์ต์ ์งํํด๋ณด๊ฒ ์ต๋๋ค.
๋งคํ์ Dynamo์ ๋ฐ์ดํฐ ๊ด๋ฆฌ์์ ๊ฐ์ฅ ๋ณต์กํ ๋ถ๋ถ์ด๋ฉฐ, ํนํ ๋ฆฌ์คํธ์ ๋ณต์กํ ๊ณ์ธต ์์ ์ ์ํํ ๋์ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋์ ์ ๊ณต๋๋ ์ผ๋ จ์ ์ฐ์ต์ ์งํํ๋ฉด์ ๋ฐ์ดํฐ๊ฐ ๋ค์ฐจ์์ด ๋ ๋ ๋งคํ ๋ฐ ์กฐํฉ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
List.Map ๋ฐ List.Combine์ ์ด์ ์น์ ์์ ์ด๋ฏธ ์ค๋ช ํ์ต๋๋ค. ์๋์ ๋ง์ง๋ง ์ฐ์ต์์๋ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ์ด๋ฌํ ๋ ธ๋๋ฅผ ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ์ฐ์ต์ ๊ฐ์ ธ์จ ํ์์ ์ฐ๊ฒฐํ๋ 3๊ฐ์ ์ฐ์ต ์๋ฆฌ์ฆ ์ค ์ฒซ ๋ฒ์งธ์ ๋๋ค. ์ด ์ฐ์ต ์๋ฆฌ์ฆ์ ๊ฐ ๋ถ๋ถ์์๋ ์ ์ ๋ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ค๋ฃน๋๋ค.
์ฐ์ต ํ์ผ ํด๋์ ์๋ .sat ํ์ผ๋ก ์์ํ๊ฒ ์ต๋๋ค. File Path ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด ํ์ผ์ ์ ํํ ์ ์์ต๋๋ค.
Geometry.ImportFromSAT๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ Dynamo ๋ฏธ๋ฆฌ๋ณด๊ธฐ์ ๋ ๊ฐ์ ํ๋ฉด์ผ๋ก ๊ฐ์ ธ์ต๋๋ค.
์ด ์ฐ์ต์์๋ ๊ฐ๋จํ ์์ ์ ์ํด ํ๋ฉด ์ค ํ๋๋ก ์งํํฉ๋๋ค.
์์ธ 1์ ์ ํํ์ฌ ์์ชฝ ํ๋ฉด์ ์ ํํฉ๋๋ค. ์ด ์์ ์ List.GetItemAtIndex ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ํํฉ๋๋ค.
Geometry.ImportFromSAT ๋ฏธ๋ฆฌ๋ณด๊ธฐ์์ ํ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋๋๋ค.
๋ค์ ๋จ๊ณ์์๋ ํ๋ฉด์ ์ ๊ทธ๋ฆฌ๋๋ก ๋ถํ ํฉ๋๋ค.
1. Code Block์ ์ฌ์ฉํ์ฌ ๋ค์ ๋ ์ฝ๋ ์ค์ ์ฝ์ ํฉ๋๋ค.
0..1..#10;0..1..#5;2. Surface.PointAtParameter์์ ๋ Code Block ๊ฐ์ u ๋ฐ v ์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด ๋ ธ๋์ ๋ ์ด์ฑ ์ "์ธ์ " ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
3. ์ถ๋ ฅ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ํ์๋๋ฉฐ Dynamo ๋ฏธ๋ฆฌ๋ณด๊ธฐ์์๋ ์ด ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
๋ค์์ผ๋ก, ๋ง์ง๋ง ๋จ๊ณ์ ์ ์ ์ฌ์ฉํ์ฌ ํ๋ฉด์ ๋ฐ๋ผ 10๊ฐ์ ๊ณก์ ์ ์์ฑํ์ต๋๋ค.
๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๊ตฌ์ฑ๋๋ ๋ฐฉ์์ ํ์ธํ๊ธฐ ์ํด NurbsCurve.ByPoints๋ฅผ Surface.PointAtParameter์ ์ถ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค.
๋ ๋ช ํํ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ์ง๊ธ์ List.GetItemAtIndex ๋ ธ๋์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ List.Transpose๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ฅผ ๊ตฌ์ฑํ๋ ์ด๊ณผ ํ์ด ๋ฐ์ ๋ฉ๋๋ค.
List.Transpose์ ์ถ๋ ฅ์ NurbsCurve.ByPoints์ ์ฐ๊ฒฐํ๋ฉด ์ด์ 5๊ฐ์ ๊ณก์ ์ด ํ๋ฉด์ ๊ฐ๋ก์ง๋ฌ ๊ฐ๋ก๋ก ํ์๋ฉ๋๋ค.
์ด์ ๋จ๊ณ์์ NurbsCurve.ByPoints ๋ ธ๋์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๊บผ์ ์ด๋ฏธ์ง์์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ข ๋ ๋ณต์กํ ์์ ์ ์ํํด ๋ณด๊ฒ ์ต๋๋ค. ์ด์ ์ฐ์ต์์ ์์ฑํ ๊ณก์ ์ ๋ํด ์์ ์ ์ํํ๋ ค๊ณ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฌํ ๊ณก์ ์ ๋ค๋ฅธ ํ๋ฉด๊ณผ ์ฐ๊ด ์ง๊ณ ๊ทธ ์ฌ์ด์์ ๋กํํธ๋ฅผ ์ํํ๊ณ ์ ํ ์๋ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ ๋ง์ ์ ๊ฒฝ์ ์จ์ผ ํ์ง๋ง ๊ธฐ๋ณธ ๋ ผ๋ฆฌ๋ ๋์ผํฉ๋๋ค.
์ด์ ์ฐ์ต์ ๋จ๊ณ๋ก ์์ํ๊ณ List.GetItemAtIndex ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ธ์จ ํ์์ ์๋จ ํ๋ฉด์ ๊ตฌ๋ถํฉ๋๋ค.
Surface.Offset์ ์ฌ์ฉํ์ฌ ํ๋ฉด์ 10 ์ฉ ๊ฐ๊ฒฉ์ ๋์๋๋ค.
์ด์ ์ฐ์ต๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ฝ๋ ๋ ์ค์ ์ฌ์ฉํ์ฌ code block ์ ์ ์ํฉ๋๋ค.
0..1..#10;0..1..#5;์ด๋ฌํ ์ถ๋ ฅ์ ๋ ๊ฐ์ Surface.PointAtParameter ๋ ธ๋์ ์ฐ๊ฒฐํ๊ณ ๊ฐ ๋ ์ด์ฑ ์ "์ธ์ " ์ผ๋ก ์ค์ ํฉ๋๋ค. ์ด๋ฌํ ๋ ธ๋ ์ค ํ๋๋ ์๋ ํ๋ฉด์ ์ฐ๊ฒฐ๋์ด ์๊ณ ๋ค๋ฅธ ๋ ธ๋๋ ์คํ์ ํ๋ฉด์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
์ด๋ฌํ ํ๋ฉด์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋๋๋ค.
์ด์ ์ฐ์ต์์์ ๊ฐ์ด ์ถ๋ ฅ์ ๋ ๊ฐ์ NurbsCurve.ByPoints ๋ ธ๋์ ์ฐ๊ฒฐํฉ๋๋ค. ๊ฒฐ๊ณผ์๋ ๋ ํ๋ฉด์ ํด๋นํ๋ ๊ณก์ ์ด ํ์๋ฉ๋๋ค.
List.Create๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๊ณก์ ์ธํธ๋ฅผ ํ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ก ๊ฒฐํฉํ ์ ์์ต๋๋ค.
์ถ๋ ฅ์์ ๊ฐ NURBS ๊ณก์ ์ฐ๊ฒฐ ์ธํธ๋ฅผ ๋ํ๋ด๋ 10๊ฐ ํญ๋ชฉ์ ๊ฐ๊ฐ ํฌํจํ๋ ๋ฆฌ์คํธ๊ฐ 2๊ฐ ์์ฑ๋ฉ๋๋ค.
Surface.ByLoft๋ฅผ ์ํํ๋ฉด ์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์๊ฐ์ ์ผ๋ก ์ดํดํ ์ ์์ต๋๋ค. ์ด ๋ ธ๋์์๋ ๊ฐ ํ์ ๋ฆฌ์คํธ์ ๋ชจ๋ ๊ณก์ ์ ๋กํํธํฉ๋๋ค.
์ด์ ๋จ๊ณ์์ ์ฌ์ฉํ Surface.ByLoft ๋ ธ๋์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋๋๋ค.
List.Transpose๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ด๊ณผ ํ์ ๋ฐ์ ํฉ๋๋ค. ์ด ๋ ธ๋๋ 10๊ฐ์ ๊ณก์ ์ผ๋ก ์ด๋ฃจ์ด์ง 2๊ฐ์ ๋ฆฌ์คํธ๋ฅผ 2๊ฐ์ ๊ณก์ ์ผ๋ก ์ด๋ฃจ์ด์ง 10๊ฐ์ ๋ฆฌ์คํธ๋ก ์ ์กํฉ๋๋ค. ์ด์ ๊ฐ NURBS ๊ณก์ ์ด ๋ค๋ฅธ ํ๋ฉด์ ์ด์ ๊ณก์ ๊ณผ ์ฐ๊ด๋ฉ๋๋ค.
Surface.ByLoft๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ๋ธ ๊ตฌ์กฐ์ ๋๋ฌํฉ๋๋ค.
๋ค์์ผ๋ก, ์ด ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํ ๋์ฒด ํ๋ก์ธ์ค๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํผ๋์ ํผํ๊ธฐ ์ํด, ์์ํ๊ธฐ ์ ์ ์ด์ ๋จ๊ณ์ Surface.ByLoft ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋๋๋ค.
List.Transpose ๋์ List.Combine ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ฐ ํ์ ๋ฆฌ์คํธ์์ "์ฐ๊ฒฐ์" ๋ก ์๋ํฉ๋๋ค.
์ด ๊ฒฝ์ฐ์๋ List.Create ๋ฅผ "์ฐ๊ฒฐ์" ๋ก ์ฌ์ฉํ์ฌ ํ์ ๋ฆฌ์คํธ์์ ๊ฐ ํญ๋ชฉ์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํฉ๋๋ค.
๋ช ๋จ๊ณ ์ด์ ์ผ๋ก ๋๋์๊ฐ์ ๋ฆฌ๋ธ ๊ตฌ์กฐ์ ๊ณก์ ๋ฐฉํฅ์ ์ ํํ๋ ค๋ฉด NurbsCurve.ByPoints์ ์ฐ๊ฒฐํ๊ธฐ ์ ์ List.Transpose๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด๊ณผ ํ์ด ๋ฐ์ ๋์ด 5๊ฐ์ ์ํ ๋ฆฌ๋ธ๊ฐ ์์ฑ๋ฉ๋๋ค.
์ด์ ํ ๋จ๊ณ ๋ ์งํํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ์ฐ์ต์์๋ ๊ฐ์ ธ์จ ๋ ํ๋ฉด์ ๋ชจ๋ ์ฌ์ฉํ๊ณ ๋ณตํฉ ๋ฐ์ดํฐ ๊ณ์ธต์ ์์ฑํฉ๋๋ค. ์ด๋ฒ์๋ ๋์ผํ ๊ธฐ๋ณธ ๋ ผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ์์ ์ ์๋ฃํ๋ ๊ฒ์ด ์์ ๋ชฉํ์ ๋๋ค.
์ด์ ์ฐ์ต์์ ๊ฐ์ ธ์จ ํ์ผ๋ก ์์ํฉ๋๋ค.
์ด์ ์ฐ์ต์์์ ๊ฐ์ด Surface.Offset ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ 10 ๋งํผ ๊ฐ๊ฒฉ์ ๋์๋๋ค.
์ถ๋ ฅ์์ ์คํ์ ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ํ๋ฉด์ ์์ฑํ์ต๋๋ค.
์ด์ ์ฐ์ต๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์ฝ๋ ๋ ์ค์ ์ฌ์ฉํ์ฌ Code Block์ ์ ์ํฉ๋๋ค.
0..1..#20;0..1..#20;์ด๋ฌํ ์ถ๋ ฅ์ ๋ ๊ฐ์ Surface.PointAtParameter ๋ ธ๋์ ์ฐ๊ฒฐํ๊ณ ๊ฐ ๋ ์ด์ฑ์ "์ธ์ " ์ผ๋ก ์ค์ ํฉ๋๋ค. ์ด๋ฌํ ๋ ธ๋ ์ค ํ๋๋ ์๋ ํ๋ฉด์ ์ฐ๊ฒฐ๋์ด ์๊ณ ๋ค๋ฅธ ๋ ธ๋๋ ์คํ์ ํ๋ฉด์ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
์ด์ ์ฐ์ต์์์ ๊ฐ์ด ์ถ๋ ฅ์ ๋ ๊ฐ์ NurbsCurve.ByPoints ๋ ธ๋์ ์ฐ๊ฒฐํฉ๋๋ค.
NurbsCurve.ByPoints์ ์ถ๋ ฅ์ ๋ณด๋ฉด ์ด์ ์ฐ์ต๋ณด๋ค ๋ ๋ณต์กํ ๋ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๊ฐ ์์ฑ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ ํ๋ฉด์ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฅ๋๋ฏ๋ก ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ค๋ฅธ ๊ณ์ธต์ ์ถ๊ฐํ์ต๋๋ค.
๋ํ Surface.PointAtParameter ๋ ธ๋๊ฐ ์ข ๋ ๋ณต์กํด์ก์ต๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค.
๊ณ์ ์งํํ๊ธฐ ์ ์ ๊ธฐ์กด ํ๋ฉด์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋๋๋ค.
List.Create ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ NURBS ๊ณก์ ์ ํ๋์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ๋ณํฉํจ์ผ๋ก์จ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํฉ๋๋ค.
Surface.ByLoft ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ฉด ๊ฐ๊ฐ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ์์ฑ๋ ๋๋ก ์์ฒด ๋ฆฌ์คํธ์ ๋จ๊ธฐ ๋๋ฌธ์ ์๋ ํ๋ฉด์ ๋ฒ์ ์ ์ป๊ฒ ๋ฉ๋๋ค.
์ด์ ์ฐ์ต์์๋ List.Transpose๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ๋ธ ๊ตฌ์กฐ๋ฅผ ์์ฑํ ์ ์์์ง๋ง, ์ฌ๊ธฐ์๋ ์ด ๊ธฐ๋ฅ์ด ์๋ํ์ง ์์ต๋๋ค. ๋ฐ๊พธ๊ธฐ๋ 2์ฐจ์ ๋ฆฌ์คํธ์์ ์ฌ์ฉํด์ผ ํ๋๋ฐ, ํ์ฌ ๋ฆฌ์คํธ๋ 3์ฐจ์ ๋ฆฌ์คํธ์ด๋ฏ๋ก "์ด ๋ฐ ํ ๋ฐ์ " ์์ ์ด ์ฝ๊ฒ ์๋ํ์ง ์์ต๋๋ค. ๋ฆฌ์คํธ๋ ๊ฐ์ฒด์ด๋ฏ๋ก List.Transpose๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ ๋ฆฌ์คํธ๊ฐ ์๋ ๋ฆฌ์คํธ๊ฐ ๋ฐ์ ๋์ง๋ง, ๊ณ์ธต์์ ํ ๋ฆฌ์คํธ ์๋์ ์๋ NURBS ๊ณก์ ์ ํ๊ณผ ์ด์ด ๋ฐ์ ๋์ง๋ ์์ต๋๋ค.
์ฌ๊ธฐ์๋ List.Combine์ด ๋ ์ ํฉํฉ๋๋ค. ๋ณด๋ค ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ์๋ List.Map ๋ฐ List.Combine ๋ ธ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
List.Create ๋ฅผ "์ฐ๊ฒฐ์" ๋ก ์ฌ์ฉํ๋ฉด ๋ ์ ์๋ํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์์ฑ๋ฉ๋๋ค.
๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์ฌ์ ํ ๊ณ์ธต ๊ตฌ์กฐ ์ค ํ ๋จ๊ณ ์๋์์ ํ๊ณผ ์ด์ด ๋ฐ๋์ด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด List.Map์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ ๋ ฅ ๋ฆฌ์คํธ๊ฐ ๋ ๊ฐ ์ด์์ด ์๋ 1๊ฐ๊ฐ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ , List.Combine๊ณผ ์ ์ฌํ๊ฒ ์๋ํฉ๋๋ค.
List.Map์ ์ ์ฉํ ํจ์๋ List.Transpose๋ก, ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ๋ฆฌ์คํธ ๋ด์ ํ์ ๋ฆฌ์คํธ์ ํฌํจ๋ ์ด๊ณผ ํ์ด ๋ฐ์ ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ ์ ํ ๋ฐ์ดํฐ ๊ณ์ธต์ ์ฌ์ฉํด NURBS ๊ณก์ ์ ๋กํํธํ์ฌ ๋ฆฌ๋ธ ๊ตฌ์กฐ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅ ์ค์ ์ด ์ง์ ๋ Surface.Thicken ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ ๊น์ด๋ฅผ ์ถ๊ฐํด ๋ณด๊ฒ ์ต๋๋ค.
์ด ๋ ๊ตฌ์กฐ๋ฅผ ์ง์งํ๋ ํ๋ฉด์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ผ๋ฏ๋ก, ๋ค๋ฅธ Surface.ByLoft ๋ ธ๋๋ฅผ ์ถ๊ฐํ๊ณ ์ด์ ๋จ๊ณ์ NurbsCurve.ByPoints์ ๋ํ ์ฒซ ๋ฒ์งธ ์ถ๋ ฅ์ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ ๋ณต์กํด์ง๋ฏ๋ก ๊ฐ ๋ ธ๋๋ฅผ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ๊ณ '๋ฏธ๋ฆฌ๋ณด๊ธฐ'๋ฅผ ์ ํ์ทจ์ํ์ฌ ์ด๋ฌํ ๋ ธ๋์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋๋ฉด ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ ํํ ์ด๋ฌํ ํ๋ฉด์ ๋๊ป๊ฒ ํ๋ฉด ์ฐ๊ฒฐ์ด ์๋ฃ๋ฉ๋๋ค.
๊ฐ์ฅ ํธ์ํ ํ๋ค์์๋ ์๋์ง๋ง ๋ง์ ๋ฐ์ดํฐ๊ฐ ์ฌ์ฉ๋์์ต๋๋ค.
๋ง์ง๋ง ๋จ๊ณ๋ก ์ค๋ฌด๋ฌ ๋ฉค๋ฒ์ ๋ฐฉํฅ์ ๋ฐ๋๋ก ๋ฐ๊ฟ๋๋ค. ์ด์ ์ฐ์ต์์ ํ๊ณผ ์ด์ ๋ฐ๊พธ๋ ์์ ์ ์ฌ์ฉํ์ผ๋ฏ๋ก ์ฌ๊ธฐ์๋ ๋น์ทํ ์์ ์ ์ํํฉ๋๋ค.
๊ณ์ธต ๊ตฌ์กฐ์ ๊ณ์ธต์ด 1๊ฐ ๋ ์์ผ๋ฏ๋ก List.Transpose ํจ์์ ํจ๊ป List.Map์ ์ฌ์ฉํ์ฌ NURBS ๊ณก์ ์ ๋ฐฉํฅ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
๋๋คํ ์๋ฅผ ๋๋ฆฌ๋ ค๋ ๊ฒฝ์ฐ Code Block์
0..1..#20;0..1..#30;์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
ํ๋ค์์์ ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ ๋ ๋ ตํ ๋ชจ์ต์ด์์ผ๋ฏ๋ก, ๋ ๋ฒ์งธ ๋ชจ๋ธ์ ์คํ๋ก๋์์ ํด์์ ์ทจํ๊ธฐ ์ ์ ํ ์คํฌ์ธ ์ ํธ๋ฆฌํฐ ๋ฒ์ ์ผ๋ก ๋ง๋ค์์ต๋๋ค.
Surface.ByLoft ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ด์ ๋จ๊ณ์ ๋์ผํ ํ๋ฉด์ ํ์ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ํ๊ณผ ์ด์ ๋ ์ฝ๊ฒ ๋ฐ๊ฟ ์ ์์ง๋ง ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ํจ์ฌ ๋ณต์กํด์ง๋ฉด List.Combine์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์์ ์ ์ ๋๋ค.






























๊ณ์ธต์ ํฐ์ด๋ฅผ ํ๋ ๋ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ์๋ ์์์์ ์นด๋ ๋ฐํฌ๋ฅผ ๊ฐ์ ธ์ ์ฌ๋ฌ ๊ฐ์ ๋ฐํฌ๊ฐ ํฌํจ๋ ์์๋ฅผ ์์ฑํ๋ฉด ์ด์ ์์์๋ ๋ฐํฌ ๋ฆฌ์คํธ๊ฐ ๋ํ๋๊ณ ๊ฐ ๋ฐํฌ์๋ ์นด๋ ๋ฆฌ์คํธ๊ฐ ๋ํ๋ฉ๋๋ค. ์ด๊ฒ์ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ์ ๋๋ค. ์ด ์น์ ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ ์ถํด ๋ณด์๋ฉด ์๋์ ์ด๋ฏธ์ง์๋ ๋์ ๋ฌถ์ ๋ฆฌ์คํธ๊ฐ ํฌํจ๋์ด ์๊ณ , ๊ฐ ๋ฌถ์์๋ ํ๋ ๋ฆฌ์คํธ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์ฌ์ง ์ถ์ฒ: Dori
๋ฆฌ์คํธ์ ๋ฆฌ์คํธ์์ ๋ง๋ค ์ ์๋ ์กฐํ๋ ๋ฌด์์ผ๊น์? ์ด๋ฌํ ์กฐํ์์๋ ๊ธฐ์กด ํน์ฑ์ ํ์ธํฉ๋๋ค.
๋์ ์ ์ ํ์ ๋ช ๊ฐ์ง์ ๋๊น? 2.
๊ฐ ๋์ ์ ํ์ ๊ฐ์ ์ผ๋ง์ ๋๊น? $0.01 ๋ฐ $0.25์ ๋๋ค.
์ฟผํฐ๋ ๋ฌด์์ผ๋ก ๋ง๋ค์ด์ก์ต๋๊น? 75%์ ๊ตฌ๋ฆฌ์ 25%์ ๋์ผ๋ก ๋ง๋ค์ด์ก์ต๋๋ค.
ํ๋๋ ๋ฌด์์ผ๋ก ๋ง๋ค์ด์ก์ต๋๊น? 97.5%์ ์์ฐ๊ณผ 2.5%์ ๊ตฌ๋ฆฌ๋ก ๋ง๋ค์ด์ก์ต๋๋ค.
๋ฆฌ์คํธ์ ๋ฆฌ์คํธ์์ ์ํํ ์ ์๋ ์์ ์ ๋ฌด์์ผ๊น์? ์์ ์ ์ํํ๋ฉด ํด๋น ์์ ์ ๊ธฐ์ค์ผ๋ก ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค.
ํน์ ์ฟผํฐ ๋๋ ํ๋์ ์คํ์ ์ ํํฉ๋๋ค.
ํน์ ์ฟผํฐ ๋๋ ํ๋๋ฅผ ์ ํํฉ๋๋ค.
์ฟผํฐ์ ํ๋์ ์คํ์ ์ฌ์ ๋ ฌํฉ๋๋ค.
์คํ์ ํ๊บผ๋ฒ์ ์์ต๋๋ค.
๋ค์ ๋ง์๋๋ฆฌ์ง๋ง, Dynamo์๋ ์์ ๋์ ์๋ ๊ฐ ์์ ๊ณผ ์ ์ฌํ ๋ ธ๋๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌผ๋ฆฌ์ ๊ฐ์ฒด๊ฐ ์๋๋ผ ์ถ์ ๋ฐ์ดํฐ๋ก ์์ ํ๋ฏ๋ก ๋ฐ์ดํฐ ๊ณ์ธต์ ์์๋๋ก ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ์ ์ดํ๋ ๊ท์น ์ธํธ๊ฐ ํ์ํฉ๋๋ค.
๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ฅผ ๋ค๋ฃจ๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ดํฐ๊ฐ ๊ฒน์ณ ์์ด ๋ณต์กํ์ง๋ง, ๋ช ๊ฐ์ง ๋๋ผ์ด ํ๋ผ๋ฉํธ๋ฆญ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์๋์ ๋จ์์์ ๊ธฐ๋ณธ ์ฌํญ์ ์์ธํ ์ดํด๋ณด๊ณ ๋ช ๊ฐ์ง ์ถ๊ฐ ์์ ์ ๋ํด ๋ ผ์ํด ๋ณด๊ฒ ์ต๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ์น์ ์์ ๋ฐฐ์ธ ๊ธฐ๋ณธ ๊ฐ๋ ์ Dynamo์์๋ ๋ฆฌ์คํธ๋ฅผ ์์ฒด์ ๋ด๋ถ ๊ฐ์ฒด๋ก ์ทจ๊ธํ๋ค๋ ์ ์ ๋๋ค. ์ด ํํฅ์ ๊ณ์ธต์ ๊ฐ์ฒด ์งํฅ์ ํ๋ก๊ทธ๋๋ฐ์ ์ผ๋์ ๋๊ณ ๊ฐ๋ฐ๋์์ต๋๋ค. Dynamo์์๋ List.GetItemAtIndex์ ๊ฐ์ ๋ช ๋ น์ผ๋ก ํ์ ์์๋ฅผ ์ ํํ๋ ๋์ , ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ์ฃผ ๋ฆฌ์คํธ์ ์์ธ์ ์ ํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋น ํญ๋ชฉ์ ๋ค๋ฅธ ๋ฆฌ์คํธ๊ฐ ๋ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์์ ์ด๋ฏธ์ง๋ก ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Code Block์ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ๋ฒ์(
0..2; 0..3;)๋ฅผ ์ ์ํ์ต๋๋ค.์ด๋ฌํ ๋ฒ์๋ ๋ ์ด์ฑ์ด "์ธ์ " ์ผ๋ก ์ค์ ๋ Point.ByCoordinates ๋ ธ๋์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ ๊ทธ๋ฆฌ๋๊ฐ ์์ฑ๋๊ณ , ๋ํ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๊ฐ ์ถ๋ ฅ์ผ๋ก ๋ฐํ๋ฉ๋๋ค.
Watch ๋ ธ๋์์๋ ๊ฐ ๋ฆฌ์คํธ์ 4๊ฐ์ ํญ๋ชฉ์ด ์๋ 3๊ฐ์ ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
Flatten์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ๋ฐ์ดํฐ์ ๋ชจ๋ ํฐ์ด๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ๊ณ์ธต์ด ์์ ์ ํ์ํ์ง ์์ ๊ฒฝ์ฐ์ ์ ์ฉํ์ง๋ง, ์ ๋ณด๊ฐ ์ ๊ฑฐ๋๋ฏ๋ก ์ํํ ์ ์์ต๋๋ค. ์๋ ์์์๋ ๋ฐ์ดํฐ ๋ฆฌ์คํธ๋ฅผ ๋จ์ํํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ฝ๋ ์ค์ ํ๋ ์ฝ์ ํ์ฌ Code Block์ ๋ฒ์(
-250..-150..#4;)๋ฅผ ์ ์ํฉ๋๋ค.code block ์ Point.ByCoordinates ๋ ธ๋์ x ๋ฐ y ์ ๋ ฅ์ ํ๋ฌ๊น ํ๋ฉด ๋ ์ด์ฑ์ด "์ธ์ " ์ผ๋ก ์ค์ ๋์ด ์ ์ ๊ทธ๋ฆฌ๋๊ฐ ๊ฐ์ ธ์์ง๋๋ค.
Watch ๋ ธ๋๋ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๊ฐ ์์์ ๋ณด์ฌ์ค๋๋ค.
polycurve ๋ ธ๋ ์์ flatten ์ ์ฝ์ ํ์ฌ ๋ชจ๋ ์ ์ ๋ํด ํ๋์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ์ต๋๋ค. PolyCurve.ByPoints ๋ ธ๋๋ ๋ฆฌ์คํธ๋ฅผ ์ฐธ์กฐํ์ฌ ํ๋์ ๊ณก์ ์ ์์ฑํฉ๋๋ค. ๋ชจ๋ ์ ์ ํ๋์ ๋ฆฌ์คํธ์ ์์ผ๋ฏ๋ก, ์ ์ฒด ์ ๋ฆฌ์คํธ๋ฅผ ํต๊ณผํ๋ ํ๋์ ์ง๊ทธ์ฌ๊ทธ polycurve๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค.
๋ํ ๊ฒฉ๋ฆฌ๋ ๋ฐ์ดํฐ ํฐ์ด๋ฅผ ๋จ์ํํ ์๋ ์์ต๋๋ค. List.Flatten ๋ ธ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณ์ธต ์๋จ์์ ๋จ์ํํ ์ง์ ๋ ์์ ๋ฐ์ดํฐ ํฐ์ด๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ ์ํฌํ๋ก์ฐ์ ๊ด๋ จ์ด ์์ ์๋ ์๋ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฌธ์ ๋ก ๊ณ ์ฌํ๊ณ ์๋ ๊ฒฝ์ฐ์ ์ ๋ง ์ ์ฉํ ๋๊ตฌ์ ๋๋ค. ๋ ๋ค๋ฅธ ์ต์ ์ List.Map์์ flatten ๋ ธ๋๋ฅผ ํจ์๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์๋์์ List.Map์ ๋ํด ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
ํ๋ผ๋ฉํธ๋ฆญ ๋ชจ๋ธ๋ง์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ธฐ์กด ๋ฆฌ์คํธ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ฌ๋ฌ ๋ ธ๋๋ฅผ ์ฌ์ฉํ ์๋ ์์ผ๋ฉฐ, chop์ด ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฒ์ ์ ๋๋ค. chop์ ์ฌ์ฉํ๋ฉด ๋ฆฌ์คํธ๋ฅผ ์ค์ ๋ ํญ๋ชฉ ์์ ํ์ ๋ฆฌ์คํธ๋ก ๋ถํ ํ ์ ์์ต๋๋ค.
chop ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด ์ง์ ๋ ๋ฆฌ์คํธ ๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฆฌ์คํธ๊ฐ ๋ถํ ๋ฉ๋๋ค. ์ด๋ค ๋ฉด์์ chop์ flatten๊ณผ ๋ฐ๋์ ๋๋ค. ์ฆ, ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ด ์๋๋ผ ์๋ก์ด ํฐ์ด๋ฅผ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ถ๊ฐํฉ๋๋ค. ์ด ๋๊ตฌ๋ ์๋ ์์ฒ๋ผ ํ์ ์์ ์ ์ ์ฉํ ๋๊ตฌ์ ๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
List.Map/Combine์์๋ ์ง์ ๋ ํจ์๋ฅผ ์ ๋ ฅ ๋ฆฌ์คํธ์ ์ ์ฉํ์ง๋ง ๊ณ์ธต์ ํ ๋จ๊ณ ์๋์ ์ ์ฉํฉ๋๋ค. ์กฐํฉ์ ์ง์ ๋ ํจ์์ ์ ๋ ฅ์ ํด๋นํ๋ ์ฌ๋ฌ ์ ๋ ฅ์ด ์์ ์ ์๋ค๋ ์ ์ ์ ์ธํ๊ณ ๋งต๊ณผ ๋์ผํฉ๋๋ค.
์ฐธ๊ณ : ์ด ์ฐ์ต์ ์ด์ ๋ฒ์ ์ Dynamo๋ก ์์ฑ๋์์ต๋๋ค. List.Map ๊ธฐ๋ฅ์ ๋๋ถ๋ถ์ List@Level ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ ํด๊ฒฐ๋์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋์ ์ ์ฐธ์กฐํ์ญ์์ค.
๊ฐ๋จํ ์๊ฐ๋ฅผ ์ํด ์ด์ ์น์ ์ List.Count ๋ ธ๋๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
List.Count ๋ ธ๋๋ ๋ฆฌ์คํธ์ ๋ชจ๋ ํญ๋ชฉ์ ๊ณ์ฐํฉ๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ List.Map ์ ์๋ ๋ฐฉ์์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
Code Block์ ๋ค์ ๋ ์ค์ ์ฝ๋๋ฅผ ์ฝ์ ํฉ๋๋ค.
-50..50..#Nx; -50..50..#Ny;์ด ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ฉด code block์์ Nx์ Ny์ ๋ํ ๋ ๊ฐ์ ์ ๋ ฅ์ ์์ฑํฉ๋๋ค.
๋ ๊ฐ์ integer sliders ๋ฅผ ์ฌ์ฉํ์ฌ Nx ๋ฐ Ny ๊ฐ์ Code Block์ ์ฐ๊ฒฐํ์ฌ ์ ์ํฉ๋๋ค.
์ด์ ๋จ๊ณ์์ Watch ๋ ธ๋์ ์ถ๋ ฅ์ List.Count ๋ ธ๋๋ฅผ ๋ถ์ฐฉํฉ๋๋ค.
Watch ๋ ธ๋๋ฅผ List.Count ์ถ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค.
List.Count ๋ ธ๋๋ 5 ๊ฐ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ code block์ ์ ์๋ "Nx" ๋ณ์์ ๋์ผํฉ๋๋ค. ๊ทธ ์ด์ ๋ ๋ฌด์์ผ๊น์?
๋จผ์ , Point.ByCoordinates ๋ ธ๋๋ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ ๋ ฅ์ผ๋ก "x" ์ ๋ ฅ์ ์ฌ์ฉํฉ๋๋ค. Nx๊ฐ 5์ด๊ณ Ny๊ฐ 3์ธ ๊ฒฝ์ฐ ๊ฐ๊ฐ 3๊ฐ์ ํญ๋ชฉ์ด ํฌํจ๋ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ฅผ 5๊ฐ ์ป๊ฒ ๋ฉ๋๋ค.
Dynamo์์๋ ๋ฆฌ์คํธ๋ฅผ ์์ฒด์ ๋ด๋ถ ๊ฐ์ฒด๋ก ์ทจ๊ธํ๋ฏ๋ก List.Count ๋ ธ๋๊ฐ ๊ณ์ธต์ ์ฃผ ๋ฆฌ์คํธ์ ์ ์ฉ๋ฉ๋๋ค. ๊ฒฐ๊ณผ๋ ๊ฐ 5 ๋๋ ์ฃผ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ ์์ ๋๋ค.
List.Map ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ธต์์ ํ ๋จ๊ณ ๋ด๋ ค๊ฐ ์ด ๋ ๋ฒจ์์ "ํจ์" ๋ฅผ ์ํํฉ๋๋ค.
List.Count ๋ ธ๋์ ์ ๋ ฅ์ด ์์ต๋๋ค. ์ด ๋ ธ๋๋ ํจ์๋ก ์ฌ์ฉ๋๊ณ ์์ผ๋ฏ๋ก ๊ณ์ธต์์ ํ ๋จ๊ณ ์๋์ ๋ชจ๋ ๊ฐ๋ณ ๋ฆฌ์คํธ์ List.Count ๋ ธ๋๊ฐ ์ ์ฉ๋ฉ๋๋ค. List.Count์ ๋น ์ ๋ ฅ์ List.Map์ ๋ฆฌ์คํธ ์ ๋ ฅ์ ํด๋นํฉ๋๋ค.
์ด์ List.Count์ ๊ฒฐ๊ณผ๋ก ๊ฐ๊ฐ ๊ฐ์ด 3์ธ ํญ๋ชฉ 5๊ฐ์ ๋ฆฌ์คํธ๊ฐ ์ ๊ณต๋ฉ๋๋ค. ์ด๋ ๊ฐ ํ์ ๋ฆฌ์คํธ์ ๊ธธ์ด๋ฅผ ๋ํ๋ ๋๋ค.
์ฐธ๊ณ : ์ด ์ฐ์ต์ ์ด์ ๋ฒ์ ์ Dynamo๋ก ์์ฑ๋์์ต๋๋ค. List.Combine ๊ธฐ๋ฅ์ ๋๋ถ๋ถ์ List@Level ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ ํด๊ฒฐ๋์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์๋์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ด ์ฐ์ต์์๋ List.Combine์ ์ฌ์ฉํ์ฌ ๋ณ๋์ ๊ฐ์ฒด ๋ฆฌ์คํธ์ ํจ์๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ ์ค๋๋ค.
๋จผ์ ๋ ์ ๋ฆฌ์คํธ๋ฅผ ์ค์ ํฉ๋๋ค.
Sequence ๋ ธ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ 10๋จ๊ณ๋ก ์ฆ๋ถํ๋ 10๊ฐ์ ๊ฐ์ ์์ฑํฉ๋๋ค.
๊ฒฐ๊ณผ๋ฅผ Point.ByCoordinates ๋ ธ๋์ x ์ ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด Dynamo์ ์ ๋ฆฌ์คํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
๋ ๋ฒ์งธ Point.ByCoordinates ๋ ธ๋๋ฅผ ์์ ๊ณต๊ฐ์ ์ถ๊ฐํ๊ณ , ๋์ผํ Sequence ์ถ๋ ฅ์ x ์ ๋ ฅ์ผ๋ก ์ฌ์ฉํ๋ Interger Slider๋ฅผ ํด๋น y ์ ๋ ฅ์ผ๋ก ์ฌ์ฉํ๊ณ , ํด๋น ๊ฐ์ 31(์ฒซ ๋ฒ์งธ ์ ์ธํธ์ ๊ฒน์น์ง ์๋ ํ, ์ด๋ค ๊ฐ๋ ์ฌ์ฉํ ์ ์์)๋ก ์ค์ ํ์ฌ ๋ ์ ์ธํธ๊ฐ ์๋ก ๊ฒน์น์ง ์๊ฒ ํฉ๋๋ค.
๋ค์์ผ๋ก List.Combine์ ์ฌ์ฉํ์ฌ ๋ ๊ฐ์ ๊ฐ๋ณ ๋ฆฌ์คํธ์ ์๋ ๊ฐ์ฒด์ ํจ์๋ฅผ ์ ์ฉํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๊ฐ๋จํ ์ ๊ทธ๋ฆฌ๊ธฐ ํจ์๊ฐ ๋ฉ๋๋ค.
List.Combine์ ์์ ๊ณต๊ฐ์ ์ถ๊ฐํ๊ณ ๋ ์ ์ธํธ๋ฅผ list0 ๋ฐ list1 ์ ๋ ฅ์ผ๋ก ์ฐ๊ฒฐํฉ๋๋ค.
Line.ByStartPointEndPoint๋ฅผ List.Combine์ ๋ํ ์ ๋ ฅ ํจ์๋ก ์ฌ์ฉํฉ๋๋ค.
์๋ฃ๋๋ฉด ๋ ์ ์ธํธ๊ฐ Line.ByStartPointEndPoint ํจ์๋ฅผ ํตํด ์์ถ/์์ผ๋ก ์ฐ๊ฒฐ๋๋ฉฐ, Dynamo์์ 10๊ฐ์ ์ ์ด ๋ฐํ๋ฉ๋๋ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
List.Map์ ์ ํธํ๋ ๊ฒฝ์ฐ List@Level ๊ธฐ๋ฅ์ ํตํด ๋ ธ๋์ ์ ๋ ฅ ํฌํธ์์ ๋ฐ๋ก ์์ ํ ๋ฆฌ์คํธ ๋ ๋ฒจ์ ์ ํํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ด์ฉํ๋ฉด ๋ ธ๋์ ๋ชจ๋ ์์ ์ ๋ ฅ์ ์ ์ฉํ ์ ์์ผ๋ฉฐ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ณด๋ค ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ฆฌ์คํธ์ ๋ ๋ฒจ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ ๋ ฅ์ผ๋ก ์ฌ์ฉํ ๋ฆฌ์คํธ์ ๋ ๋ฒจ๋ง ๋ ธ๋์ ์ง์ ํ๊ณ ๋ ธ๋์์ ๋๋จธ์ง ์์ ์ ์ํํ๋๋ก ํฉ๋๋ค.
์ด ์ฐ์ต์์๋ List@Level ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ํน์ ๋ ๋ฒจ์ ๋ฐ์ดํฐ๋ฅผ ๊ฒฉ๋ฆฌํฉ๋๋ค.
๊ฐ๋จํ 3D ์ ๊ทธ๋ฆฌ๋๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๋๋ X, Y, Z์ ๋ฒ์๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๋ฐ์ดํฐ๋ X ๋ฆฌ์คํธ, Y ๋ฆฌ์คํธ, Z ๋ฆฌ์คํธ์ 3๊ฐ์ง ํฐ์ด๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ด๋ฌํ ํฐ์ด๋ ์๋ก ๋ค๋ฅธ ๋ ๋ฒจ์ ์กด์ฌํฉ๋๋ค. ๋ ๋ฒจ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฒ๋ธ ์๋์ ํ์๋ฉ๋๋ค. ๋ฆฌ์คํธ ๋ ๋ฒจ ์ด์ ์ ๋ฆฌ์คํธ ๋ฐ์ดํฐ์ ํด๋นํ๋ฏ๋ก ๊ทธ ์์์ ์์ ํ ๋ ๋ฒจ์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ฆฌ์คํธ ๋ ๋ฒจ์ ๊ฐ์ฅ ๋ฎ์ ๋ ๋ฒจ ๋ฐ์ดํฐ๊ฐ ํญ์ "L1"์ ์ค๋๋ก ์ญ์์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ทธ๋ํ๊ฐ ์ ์คํธ๋ฆผ์ผ๋ก ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ์๋ ๊ณํ๋๋ก ์๋ํ ์ง ํ์ธํ ์ ์์ต๋๋ค.
List@Level ํจ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด '>'์ ํด๋ฆญํฉ๋๋ค. ์ด ๋ฉ๋ด ๋ด์ ๋ ๊ฐ์ ํ์ธ๋์ด ์์ต๋๋ค.
๋ ๋ฒจ ์ฌ์ฉ - List@Level ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ์ต์ ์ ํด๋ฆญํ๋ฉด ๋ ธ๋๋ฅผ ์ฌ์ฉํ ์ ๋ ฅ ๋ฆฌ์คํธ ๋ ๋ฒจ์ ํด๋ฆญํ์ฌ ์ ํํ ์ ์์ต๋๋ค. ์ด ๋ฉ๋ด๋ฅผ ์ฌ์ฉํ๋ฉด ์ ๋๋ ์๋๋ฅผ ํด๋ฆญํ์ฌ ์ฌ๋ฌ ๋ ๋ฒจ ์ต์ ์ ๋น ๋ฅด๊ฒ ์๋ํ ์ ์์ต๋๋ค.
๋ฆฌ์คํธ ๊ตฌ์กฐ ์ ์ง - ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด ํด๋น ์ ๋ ฅ์ ๋ ๋ฒจ ๊ตฌ์กฐ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์์ ์ผ๋ก ํ์ ๋ฆฌ์คํธ๋ก ๊ตฌ์ฑํ์ ์ ์์ต๋๋ค. ์ด ์ต์ ์ ์ ํํ๋ฉด ๋ฆฌ์คํธ ๊ตฌ์ฑ์ด ๊ทธ๋๋ก ์ ์ง๋๊ณ ์ ๋ณด๊ฐ ์์ค๋์ง ์์ต๋๋ค.
๊ฐ๋จํ 3D ๊ทธ๋ฆฌ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์คํธ ๋ ๋ฒจ์ ํตํด ์ ํํ์ฌ ๋ฆฌ์คํธ ๊ตฌ์กฐ๋ฅผ ์ก์ธ์คํ๊ณ ์๊ฐํํ ์ ์์ต๋๋ค. ๊ฐ ๋ฆฌ์คํธ ๋ ๋ฒจ๊ณผ ์์ธ ์กฐํฉ์ ์๋ 3D ์ธํธ์ ๋ค๋ฅธ ์ ์ธํธ๋ฅผ ๋ฐํํฉ๋๋ค.
DesignScript์ "@L2"์์๋ ๋ ๋ฒจ 2์ ๋ฆฌ์คํธ๋ง ์ ํํ ์ ์์ต๋๋ค. ์์ธ 0์ด ์๋ ๋ ๋ฒจ 2์ ๋ฆฌ์คํธ๋ ์ฒซ ๋ฒ์งธ Y ์ ์ธํธ๋ง ํฌํจํ์ฌ XZ ๊ทธ๋ฆฌ๋๋ง ๋ฐํํฉ๋๋ค.
๋ ๋ฒจ ํํฐ๋ฅผ "L1"๋ก ๋ณ๊ฒฝํ๋ฉด ์ฒซ ๋ฒ์งธ ๋ฆฌ์คํธ ๋ ๋ฒจ์ ๋ชจ๋ ํญ๋ชฉ์ ๋ณผ ์ ์์ต๋๋ค. ์์ธ 0์ด ์๋ ๋ ๋ฒจ 1์ ๋ฆฌ์คํธ๋ ๋ชจ๋ 3D ์ ์ ๋จ์ ๋ฆฌ์คํธ๋ก ํฌํจํฉ๋๋ค.
"L3"์ ๋ํด ๋์ผํ ์์ ์ ์๋ํ๋ ๊ฒฝ์ฐ ์ธ ๋ฒ์งธ ๋ฆฌ์คํธ ๋ ๋ฒจ ์ ๋ง ํ์๋ฉ๋๋ค. ์์ธ 0์ด ์๋ ๋ ๋ฒจ 3์ ๋ฆฌ์คํธ์๋ ์ฒซ ๋ฒ์งธ Z ์ ์ธํธ๋ง ํฌํจ๋๋ฉฐ XY ๊ทธ๋ฆฌ๋๋ง ๋ฐํ๋ฉ๋๋ค.
์ด ํน์ ์๋ List.Map์์๋ ์์ฑํ ์ ์์ง๋ง, List@Level์์๋ ์ํธ์์ฉ์ ํฌ๊ฒ ๋จ์ํํ์ฌ ๋ ธ๋ ๋ฐ์ดํฐ์ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์๊ฒ ํฉ๋๋ค. ์๋์์ List.Map ๋ฐ List@Level ๋ฉ์๋๋ฅผ ์๋ก ๋น๊ตํ๋ฉฐ ์ดํด๋ณด์ญ์์ค.
๋ ๋ฉ์๋ ๋ชจ๋ ๋์ผํ ์ ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ์ง๋ง, List@Level ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ์ผ ๋ ธ๋ ๋ด์ ๋ฐ์ดํฐ ๋๋ฉด์ธต ๊ฐ์ ์ฝ๊ฒ ์ ํํ ์ ์์ต๋๋ค.
List.Map์ ์ฌ์ฉํ์ฌ ์ ๊ทธ๋ฆฌ๋์ ์ก์ธ์คํ๋ ค๋ฉด List.Map๊ณผ ํจ๊ป List.GetItemAtIndex ๋ ธ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋จ๊ณ๋ฅผ ๋ด๋ ค๊ฐ๋ ๋ชจ๋ ๋ฆฌ์คํธ ๋ ๋ฒจ๋ง๋ค ์ถ๊ฐ List.Map ๋ ธ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ฆฌ์คํธ์ ๋ณต์ก๋์ ๋ฐ๋ผ ์ ์ ํ ๋ ๋ฒจ์ ์ ๋ณด์ ์ก์ธ์คํ๋ ค๋ฉด ๊ทธ๋ํ์ ์๋นํ ์์ List.Map ๋ ธ๋๋ฅผ ์ถ๊ฐํด์ผ ํ ์ ์์ต๋๋ค.
์ด ์์์๋ List.Map ๋ ธ๋๊ฐ ์๋ List.GetItemAtIndex
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
Transpose๋ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ฅผ ๋ค๋ฃฐ ๋ ๊ธฐ๋ณธ์ ์ธ ํจ์์ ๋๋ค. ์คํ๋ ๋์ํธ ํ๋ก๊ทธ๋จ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก transpose๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ด๊ณผ ํ์ ๋ฐ์ ํฉ๋๋ค. ์๋ ๊ธฐ๋ณธ ํ๋ ฌ์ ์ฌ์ฉํ์ฌ ์ด ๋ด์ฉ์ ๋ณด์ฌ๋๋ฆฌ๊ณ , ๋ค์ ์น์ ์์๋ Transpose๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐํํ์ ๊ด๊ณ๋ฅผ ์์ฑํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์ด์ ์ฐ์ต์์ List.Count ๋ ธ๋๋ฅผ ์ญ์ ํ๊ณ ์ผ๋ถ ํ์์ผ๋ก ์ด๋ํ์ฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฐฉ์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
PolyCurve.ByPoints๋ฅผ Point.ByCoordinates์ Watch ๋ ธ๋์ ์ถ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค.
์ถ๋ ฅ์๋ 5๊ฐ์ polycurve๊ฐ ํ์๋๋ฉฐ Dynamo ๋ฏธ๋ฆฌ๋ณด๊ธฐ์์๋ ๊ณก์ ์ ๋ณผ ์ ์์ต๋๋ค. Dynamo ๋ ธ๋์์๋ ์ ๋ฆฌ์คํธ(๋๋ ์ด ๊ฒฝ์ฐ ์ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ)๋ฅผ ์ฐพ๊ณ ์ฌ๊ธฐ์์ ๋จ์ผ polycurve๋ฅผ ์์ฑํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ๋ฆฌ์คํธ๊ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ๊ณก์ ์ผ๋ก ๋ณํ๋์์ต๋๋ค.
List.Transpose ๋ ธ๋๋ ๋ชจ๋ ํญ๋ชฉ์ ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ์ ์๋ ๋ชจ๋ ๋ฆฌ์คํธ๋ก ๋ฐ๊ฟ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ๋ณต์กํ๊ฒ ๋ค๋ฆฌ์ง๋ง Microsoft Excel์ transpose์ ๋์ผํ ๋ ผ๋ฆฌ์ ๋๋ค. ์ฆ, ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ์ด์ ํ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
์ถ์ ๊ฒฐ๊ณผ ํ์ธ: transpose๋ก ์ธํด ๋ฆฌ์คํธ ๊ตฌ์กฐ๊ฐ ๊ฐ๊ฐ 3๊ฐ์ ํญ๋ชฉ์ด ์๋ 5๊ฐ์ ๋ฆฌ์คํธ์์ ๊ฐ๊ฐ 5๊ฐ์ ํญ๋ชฉ์ด ์๋ 3๊ฐ์ ๋ฆฌ์คํธ๋ก ๋ฐ๋์์ต๋๋ค.
๊ธฐํํ์ ๊ฒฐ๊ณผ ํ์ธ: PolyCurve.ByPoints๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ๊ณก์ ์ ์์ง ๋ฐฉํฅ์ผ๋ก 3๊ฐ์ polycurve๊ฐ ํ์๋ฉ๋๋ค.
Code block ์ค์์์๋ "[]"์ ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ ์ ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด List.Create ๋ ธ๋๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. Code block์ ๋ํด์๋ ์์ ์์ธํ ์ค๋ช ํฉ๋๋ค. ์๋ ์ด๋ฏธ์ง๋ฅผ ์ฐธ์กฐํ์ฌ ์ฌ๋ฌ ํํ์์ด ํฌํจ๋ ๋ฆฌ์คํธ๋ฅผ code block์ผ๋ก ์ ์ํ ์ ์๋ ๋ฐฉ๋ฒ์ ํ์ธํ์ญ์์ค.
Code block ์ถ์ฝํ์ "[]"๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ์ํ๋ ํน์ ํญ๋ชฉ์ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์ ํํ ์ ์์ต๋๋ค. Code blocks์ ๋ํด์๋ ์์ ์์ธํ ์ค๋ช ํฉ๋๋ค. ์๋ ์ด๋ฏธ์ง๋ฅผ ์ฐธ์กฐํ์ฌ ์ฌ๋ฌ ๋ฐ์ดํฐ ์ ํ์ด ํฌํจ๋ ๋ฆฌ์คํธ๋ฅผ code block์ผ๋ก ์กฐํํ ์ ์๋ ๋ฐฉ๋ฒ์ ํ์ธํ์ญ์์ค.
์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์์ ํ์ผ์ ๋ค์ด๋ก๋ํ์ญ์์ค.
์ ์ฒด ์์ ํ์ผ ๋ฆฌ์คํธ๋ ๋ถ๋ก์์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ์ฐ์ต์์๋ ์ด์ ์ฐ์ต์์ ์ค์ ํ ๋ช ๊ฐ์ง ๋ ผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฉด์ ํธ์งํฉ๋๋ค. ์ฌ๊ธฐ์ ์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ง๊ด์ ์ด์ง๋ง ๋ฐ์ดํฐ ๊ตฌ์กฐ ํ์ ์ ๋์ฑ ๊ด๋ จ์ฑ์ ๋์ด๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ ์ด์ ์ ์ด๋ํ์ฌ ํ๋ฉด์ ๋ถ๋ช ํ๊ฒ ํํํ๋ ค๊ณ ํฉ๋๋ค.
์ ๋ ธ๋์ ๋ฌธ์์ด๋ก ์์ํฉ๋๋ค. ๊ธฐ๋ณธ Dynamo ๊ทธ๋ฆฌ๋์ ๊ฑธ์ณ ์๋ ๊ธฐ๋ณธ ํ๋ฉด์ ์์ฑํ๊ณ ์์ต๋๋ค.
Code Block์ ์ฌ์ฉํ์ฌ ๋ค์ ๋ ์ฝ๋ ์ค์ ์ฝ์ ํ๊ณ Surface.PointAtParameter์ u ๋ฐ v ์ ๋ ฅ์ ๊ฐ๊ฐ ์ฐ๊ฒฐํฉ๋๋ค.
-50..50..#3;-50..50..#5;Surface.PointAtParameter์ ๋ ์ด์ฑ์ "์ธ์ " ์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
์ด ๋จ๊ณ์์๋ ์ฐ๋ฆฌ๊ฐ ์์ฑํ ๊ทธ๋ฆฌ๋์ ์ค์ฌ์ ์ ์กฐํํ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์ค๊ฐ ๋ฆฌ์คํธ์์ ์ค๊ฐ ์ ์ ์ ํํฉ๋๋ค. ์ดํด๋์์ฃ ?
์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ ์ธ์ง ํ์ธํ๋ ค๋ฉด Watch ๋ ธ๋ ํญ๋ชฉ์ ํด๋ฆญํ์ฌ ์ฌ๋ฐ๋ฅธ ํญ๋ชฉ์ ๋์์ผ๋ก ํ๋์ง ํ์ธํ ์๋ ์์ต๋๋ค.
Code Block์ ์ฌ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ฅผ ์กฐํํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์ฝ๋ ์ค์ ์์ฑํ๊ฒ ์ต๋๋ค.
points[1][2];Geometry.Translate๋ฅผ ์ฌ์ฉํ์ฌ ์ ํํ ์ ์ Z ๋ฐฉํฅ์ผ๋ก 20 ๋จ์์ฉ ์๋ก ์ด๋ํ ๊ฒ์ ๋๋ค.
List.GetItemAtIndex ๋ ธ๋๊ฐ ์๋ ์ ์ ์ค๊ฐ ํ๋ ์ ํํ๊ฒ ์ต๋๋ค. ์ฐธ๊ณ : ์ด์ ๋จ๊ณ์ ๋ง์ฐฌ๊ฐ์ง๋ก,
points[1];์ค์ ์ฌ์ฉํ์ฌ Code Block์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ์กฐํํ ์๋ ์์ต๋๋ค.
์ง๊ธ๊น์ง ์ค์ฌ์ ์ ์ฑ๊ณต์ ์ผ๋ก ์กฐํํ์ฌ ์๋ก ์ด๋ํ์ต๋๋ค. ์ด์ ์ด๋ํ ์ด ์ ์ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ค์ ์ฝ์ ํด์ผ ํฉ๋๋ค.
๋จผ์ , ์ด์ ๋จ๊ณ์์ ๊ฒฉ๋ฆฌํ ๋ฆฌ์คํธ์ ํญ๋ชฉ์ ๋์นํ๋ ค๊ณ ํฉ๋๋ค.
List.ReplaceItemAtIndex๋ฅผ ์ฌ์ฉํ์ฌ "2" ์ ์์ธ์ผ๋ก ์ค๊ฐ ํญ๋ชฉ์ ์ด๋๋ ์ ์ ์ฐ๊ฒฐ๋ ๋์น ํญ๋ชฉ(Geometry.Translate)์ผ๋ก ๋์นํ ๊ฒ์ ๋๋ค.
์ด ์ถ๋ ฅ์ ์ด๋๋ ์ ์ ๋ฆฌ์คํธ์ ์ค๊ฐ ํญ๋ชฉ์ผ๋ก ์ ๋ ฅํ์์ ๋ณด์ฌ์ค๋๋ค.
์ด์ ๋ฆฌ์คํธ๋ฅผ ์์ ํ์ผ๋ฏ๋ก ์ด ๋ฆฌ์คํธ๋ฅผ ์๋ณธ ๋ฐ์ดํฐ ๊ตฌ์กฐ(๋ฆฌ์คํธ์ ๋ฆฌ์คํธ)์ ๋ค์ ์ฝ์ ํด์ผ ํฉ๋๋ค.
๋์ผํ ๋ ผ๋ฆฌ ๋ค์์ List.ReplaceItemAtIndex๋ฅผ ์ฌ์ฉํ์ฌ ์ค๊ฐ ๋ฆฌ์คํธ๋ฅผ ์์ ๋ ๋ฆฌ์คํธ๋ก ๋์นํฉ๋๋ค.
์ด๋ฌํ ๋ ๋ ธ๋์ ์์ธ์ ์ ์ํ๋ Code Block ์ 1๊ณผ 2์ด๋ฉฐ, Code Block(points[1][2])์ ์๋ ์กฐํ์ ์ผ์นํฉ๋๋ค.
index 1 ์์ ๋ฆฌ์คํธ๋ฅผ ์ ํํ๋ฉด Dynamo ๋ฏธ๋ฆฌ๋ณด๊ธฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๊ฐ์กฐ ํ์๋ฉ๋๋ค. ์ด๋๋ ์ ์ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ณํฉํ์ต๋๋ค.
์ด ์ ์ธํธ์์ ํ๋ฉด์ ๋ง๋๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๊ณก์ ์ ํจ๊ป ๋กํํธํ์ฌ ํ๋ฉด์ ์์ฑํ๊ฒ ์ต๋๋ค.
NurbsCurve.ByPoints ๋ ธ๋๋ฅผ ์์ฑํ๊ณ ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฐ๊ฒฐํ์ฌ ์ธ ๊ฐ์ NURBS ๊ณก์ ์ ์์ฑํฉ๋๋ค.
Surface.ByLoft๋ฅผ NurbsCurve.ByPoints์ ์ถ๋ ฅ์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด์ ์์ ๋ ํ๋ฉด์ด ์์ต๋๋ค. ํ์์ ์๋ Z ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๋ณํ ํ ํ์ ์ ๋ฐ์ดํธ๋ฅผ ํ์ธํ์ญ์์ค!
์์ธ์ด 0์ธ List.GetItemAtIndex๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Dynamo์์๋ ์ฒซ ๋ฒ์งธ ๋ฆฌ์คํธ์ ํด๋น ์ปจํ ์ธ ๋ฅผ ๋ชจ๋ ์ ํํฉ๋๋ค. ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์๋ ๋ชจ๋ ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ์ ํํ๊ฒ ์ง๋ง, Dynamo์์๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ํํฅ์ ๊ณ์ธต์ ์ฑํํฉ๋๋ค.
PolyCurve.ByPoints ๋ ธ๋๋ ๊ฐ ๋ฆฌ์คํธ๋ฅผ ์ฐธ์กฐํ๊ณ ๊ฐ polycurve๋ฅผ ์์ฑํฉ๋๋ค. Dynamo ๋ฏธ๋ฆฌ๋ณด๊ธฐ์๋ ๊ทธ๋ฆฌ๋์ ๊ฐ ํ์ ๋ํ๋ด๋ 4๊ฐ์ polycurve๊ฐ ์์ต๋๋ค.
Watch ๋ ธ๋์ ์์ฑ๋ ์ ์ด ํ์๋ฉ๋๋ค. ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ์ ์์ต๋๋ค. ๋ฆฌ์คํธ์ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ์ต๋๋ค. ๊ฐ ๋ฆฌ์คํธ์๋ ๊ทธ๋ฆฌ๋ ์ ์ ํ์ด ๋ํ๋ฉ๋๋ค.

























