Jinak taková malá věcná: Jak najdu prusečík dvou edges? Je v blenderu nějaká fce? Nic jsem nenašel a tak jsem si udělal vlastní script.
Kód:
# Autor: Zdenek Koukol, (c) ZDENDOS COMPANY 2008
# ----------------------------------------------
# Fce najde prusecik dvou edges
# Testovano v Blender v 2.44 a 2.45
# Ver: 0.2
import Blender
if (Blender.Get("version") != 244) and (Blender.Get("version") != 245):
print "Warning: Pro tuto verzi Blenderu nebyl script testovan."
objekty = Blender.Object.GetSelected()
if (len(objekty) != 1):
print "Error: Vyberte pouze jeden objekt!"
else:
objekt = objekty[0]
if objekt.type != "Mesh":
print "Error: Vyberte objekt typu MESH!"
else:
muj_mesh = objekt.getData()
if Blender.Window.EditMode():
print "Error: Nesmis byt v editacnim modu!"
else:
vybrane_usecky = []
for usecka in muj_mesh.edges[:]:
if (usecka.flag & 0x01): vybrane_usecky.append(usecka)
if (len(vybrane_usecky) != 2):
print "Error: Musis mit vybrany dve edges!"
else:
bodA = vybrane_usecky[0].v1
bodB = vybrane_usecky[0].v2
bodC = vybrane_usecky[1].v1
bodD = vybrane_usecky[1].v2
t = 0.0
s = 0.0
xE = 0.0
yE = 0.0
yE = 0.0
xF = 0.0
yF = 0.0
yF = 0.0
xA = (bodA.co[0])
yA = (bodA.co[1])
zA = (bodA.co[2])
xB = (bodB.co[0])
yB = (bodB.co[1])
zB = (bodB.co[2])
xC = (bodC.co[0])
yC = (bodC.co[1])
zC = (bodC.co[2])
xD = (bodD.co[0])
yD = (bodD.co[1])
zD = (bodD.co[2])
t = (yC*(xD - xC) - yA*(xD - xC) + xA*(yD - yC) - xC*(yD - yC)) / (((yB - yA) * (xD - xC)) - ((xB - xA) * (yD - yC)))
s = (xA - xC + t*(xB - xA)) / (xD - xC)
xE = xA + t*(xB - xA)
yE = yA + t*(yB - yA)
zE = zA + t*(zB - zA)
xF = xC + s*(xD - xC)
yF = yC + s*(yD - yC)
zF = zC + s*(zD - zC)
bod = Blender.NMesh.Vert(((xE + xF)/2), ((yE + yF)/2), ((zE + zF)/2))
muj_mesh.verts.extend([bod])
muj_mesh.update()