# ChatGPT 01 코일을 만들기위한 블렌더 스크립트

ChatGPT를 이용해 형상을 만들어 내는 것도 가능합니다. 블렌더 스크립트를 작성해서 가능한데요. 다음과 같은 명령어로 블렌더 스크립트를 제작하고 이를 실행하면 모양을 생성해 낼 수 있습니다.

• Create a wire as an extension of a cylindrical shape extending along the path. The path is along a rectangle. This path will be elevated by height by defined turns. Please do it for Blender script.
• You can use the Blender script to create a wire that follows a rectangular path while elevating by the specified turns. I also like the wire has bevel.
• It doesn’t have to be a strict rectangle shape. This code makes unnecessary lines between each rectangle. I want to eliminate the overlapping wire making smooth elevation.
• Can you omit the last coil side of each rectangle to avoid overlapping?

이와 같은 방법으로 다음과 같은 코드를 생성합니다.

```import bpy import math```

def create_wire_curve(name, rect_dims, turns, segments, bevel_radius):
angle = 2 * math.pi / segments

control_points = []

width, length, _, height = rect_dims

for i in range(segments * turns):
t = (i / segments) % 1
side = i // segments % 4

if side == 0:
x = width / 2
y = (length / 2) * (1 – 2 * t)
z = (i / segments) * height
elif side == 1:
x = (width / 2) * (1 – 2 * t)
y = -length / 2
z = (i / segments) * height
elif side == 2:
x = -width / 2
y = (-length / 2) * (1 – 2 * t)
z = (i / segments) * height
else:
continue

control_points.append((x, y, z))

curve_data = bpy.data.curves.new(name, ‘CURVE’)
curve_data.dimensions = ‘3D’

spline = curve_data.splines.new(type=’NURBS’)

for i, point in enumerate(spline.points):
point.co = control_points[i] + (1.0,)

spline.use_endpoint_u = True
spline.use_cyclic_u = False

curve_obj = bpy.data.objects.new(name, curve_data)