All pastes #23439 Raw Edit

Miscellany

public text v1 · immutable
#23439 ·published 2005-09-20 15:53 UTC
rendered paste body
#!BPY

"""
Name: 'ClothGen'
Blender: 237
Group: 'Mesh'
Tip: 'Creates cloth reminiscent of curtains'
"""

from Blender import *
import math
import sys

rnd = Mathutils.Rand

gridX = 45
gridY = 15

scaleX= 0.5
scaleY = -4

depth = 4

mesh = NMesh.New()

for x in range(gridX):
	new = NMesh.Vert(x * scaleX, rnd() * depth, 0)
	mesh.verts.append(new)

for y in range(1,gridY):
	for x in range(gridX):
		new = NMesh.Vert(x * scaleX,(rnd() * depth + mesh.verts[(y-1) * gridY + x][1] * 2) / 3,y * scaleY)
		mesh.verts.append(new)

for y in range(1,gridY):
	for x in range(1,gridX-1):
		a = mesh.verts[y * gridX + x][1]
		b = mesh.verts[y * gridX + x - 1][1]
		c = mesh.verts[y * gridX + x + 1][1]
		d = (a + b + c) / 3
		mesh.verts[x][1] = d

for y in range(gridY-1):
	for x in range(gridX-1):
		a = mesh.verts[y * gridX + x]
		b = mesh.verts[y * gridX + x + 1]
		c = mesh.verts[(y + 1) * gridX + x]
		d = mesh.verts[(y + 1) * gridX + x + 1]
		new = NMesh.Face([a,b,d,c])
		mesh.faces.append(new)
		

objName = Draw.PupStrInput("Obj Name:","cloth",20)	
obj = Object.New("Mesh", objName)
obj.link(mesh)

Scene.GetCurrent().link(obj)

Redraw()