Skocz do zawartości

Rekomendowane odpowiedzi

Napisano

Witajcie,

 

Tak jak skrótowo napisałem w temacie, teraz to rozwinę.

Chodzi mi o skrypt w Python'ie (Blender 2.49), który utworzy w oknie Stożek, walec oraz koło (nie mylić ze sferą ;) ). Objekt ma się tworzyć w oknie 3D View, nie w Game Engine. Chodzi i standardowe figury które można utworzyć w Blenderze z menu Mesh.

Z góry Wam dziękuję.

 

Dla przykładu wkleję kod który odkopałem na stronach i lekko zmodyfikowałem:

 

Skryp tworzy Sześcian. (na pewno jest prostrzy sposób, niestety znajomość tego języka programowania jest u mnie praktycznie zerowa)

 

import Blender as X

# vertices

A = [0.5,1.5,0]

B = [0.5,-0.5,0]

C = [-1.5,-0.5,0]

D = [-1.5,1.5,0]

E = [0.5,1.5,2]

F = [0.5,-0.5,2]

G = [-1.5,-0.5,2]

H = [-1.5,1.5,2]

verts = [A,B,C,D,E,F,G,H]

faces = [[0,1,2,3], [0,1,5,4], [1,2,6,5], [2,3,7,6], [3,0,4,7], [4,5,6,7]]

 

# create Object

ob = X.Object.New('Mesh', 'MeshOb')

# create ObData

me = X.Mesh.New('myMesh')

# add vertices

me.verts.extend( verts )

# create faces

me.faces.extend( faces )

ob.link( me )

scene = X.Scene.GetCurrent()

scene.link( ob )

X.Redraw(-1)

# print out the verts, edges and faces of our mesh

for v in me.verts:

print v

for e in me.edges:

print e

for f in me.faces:

print f

  • Odpowiedzi 16
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Znalazłem jeszcze coś takiego (tworzy Sferę):

 

from Blender import Mesh, Material

import bpy

def sphere(scn, segments, rings, radius, x, y, z, r, g, b, a):

me = Mesh.Primitives.UVsphere(segments, rings, radius)

 

mat = Material.New('SphereMat')

mat.rgbCol = [r, g, b]

mat.setAlpha(a)

 

me.materials += [mat]

 

ob = scn.objects.new(me, 'SphereOb')

 

ob.setLocation(x, y, z)

 

sce = bpy.data.scenes.active

 

sphere(sce, 32, 32, 4, 1, 1, 1, .2, .5, .6, 1.0)

Napisano

Czy ktoś może wspomóc mnie w tej kwestii? Potrzebuję kod skryptu pythona który utowrzy Stożek (Cone) bądź Walec (Cylinder) i Koło (Circle). Proszę o Was o pomoc, jest to bardzo ważna kwestia. Byłbym bardzo wdzięczny za taki skrypt.

Pozdrawiam

Napisano (edytowane)

ważna kwestia ? pewnie jakieś zaliczenie, na które nie chciało się pouczyć, bo to jest banał który można otrzymać przerabiając podane skrypty

takie cos moze byc ? http://www.blender.org/documentation/242PythonDoc/MeshPrimitives-module.html

from Blender import Mesh, Window
import bpy
scn = bpy.data.scenes.active

verts=10
diameter=0.5
length=2
cylinder = Mesh.Primitives.Cylinder(verts, diameter, length)
obCylinder = scn.objects.new(cylinder, 'CylinderOb')

verts=10
diameter=1
length=1
cone = Mesh.Primitives.Cone(verts, diameter, length)
obCone = scn.objects.new(cone, 'ConeOb')

verts=10
diameter=2
circle = Mesh.Primitives.Circle(verts, diameter)
obCircle = scn.objects.new(circle, 'CircleOb')

Window.Redraw()

edit:// była sfera jest cylinder

Edytowane przez szczuro
Napisano

No stronę którą podałeś widziałem, ale nie wiedziałęm o co chodzi. Nie znam się na tym języku, a czasu mam bardzo mało żeby go opanować. A to nie zaliczenie, tylko inżynierka ;)

 

Wielkie dzięki!!!

Napisano (edytowane)

Jak to inżynierka to jeszcze gorzej miałeś 3 lata aby się do tego przygotować.

ale inżynierzy nam rosną :P nie potrafią programować, a przede wszystkim czytać dokumentacji technicznej i myśleć. Mają wszystko na tacy a nie są w stanie dostosować do swoich potrzeb :eek:

 

z tej strony z której nie wiedziałeś o co chodzi, tak żeby szybko Cię doedukować.

 

Example (czytaj przykład):

 from Blender import *

me = Mesh.Primitives.Cube(2.0)   # create a new cube of size 2
ob = Object.New('Mesh')          # create a new mesh-type object
ob.link(me)                      # link mesh datablock with object
sc = Scene.GetCurrent()          # get current scene
sc.link(ob)                      # add object to the scene
Window.RedrawAll()               # update windows

i w linijce z komentarzem "# create a new cube of size 2" zmianiasz "Cube(2.0)" na wybraną z Function Summary np Circle(verts, diameter) a zamiast verts i diameter wstawiasz wartości. Wielka filozofia :P

Edytowane przez szczuro
Napisano

deshu tak, a właściwie nie, "tajpy" są, tylko są dynamicznie przypisywane

 

Coody ... nie

 

szczuro nam się zbulwersował :)

 

w sumie ja też :D

Napisano

szczuro: (mgr inż. szczuro ;) ) Może i dla Ciebie to jest proste, dla mnie pewnie też byłoby po, jak to podałeś 3 latach. Tylko że ja nie miałem na studiach Blendera, pracuję na nim od 6 miesięcy? Nie jestem na studiach hmm graficznych, tylko na Sieciach (xD). A wrzutę dotyczącą skryptu dostałem 3 tygodnie przed oddaniem -_-", więc zwróciłem się do Was o Pomoc. Jestem teraz desperatem w sprawie skryptów ;) A jest to ciekawe, jakbym miał więcej czasu na pewno bym się w tym wyszkolił :P

Dzięki jeszcze raz za pomoc.

Napisano (edytowane)

mi nie chodzi czy znasz czy nie blendera, jesli miales choc troche programowania (a na sieciach jeśli to sieci komputerowe to raczej miałeś), to powinieneś umieć rozróżnić w większości języków zmienne, funkcje i komentarze. Gdy czytasz przykład na stronie z komentarzem "#create a new Cube" a pod spodem masz tabelkę różnymi wartościami i między innymi Cube, to tak trudno się domyśleć, że można to zmienić na wartość z tabelki ?

Edytowane przez szczuro
Napisano

Dobra spokój :D Coody nie jest jeszcze inżynierem :) teraz wskoczy na właściwy tor i będzie świecił przykładem dla innych studentów politechniki, którzy prawdopodobnie nawet nie wiedzą co to jest python :)

Napisano

Parę dni temu widziałem podobny post z podobnym problemem na blender.pl - być może to ta sama osoba.

(Tam także pomarudziliśmy nad podeściem do pracy, bądź co bądź, inżynierskiej, ale nie było nikogo tak wyrozumiałego jak szczuro)

Napisano

n-pigeon: ale ubiega się o ten tytuł, a co jeśli dawaliby prawo jazdy ludziom którzy nie czytają znaków drogowych ...hmm... choć w sumie dają :P

wjaworski: tyle że ja nie wiedziałem że to inżynierska, wtedy wkleiłbym sam link.

Napisano

szczuro: jako "sieciowiec", miałem programowanie: C, C++ i Java. Im dalej, tym dla mnie ciężej było. Gdybym nie miał na głowie pisanie pracy i oddania do końca miesiąca, nie pracowałbym od 7 do godziny 16 i wracał do domu o ok 17 i mieć nóż na gardle z Dyrektorem, to bym się zagłębił w komentarze i sam język z przyjemnością. No i pobawił się w samym Blenderze, co mnie kręci i mam już kilka projektów w głowie ^^

 

Dobra kończę te tłumaczenie się ;) Jadę do promotora i mam nadzieję że zaakceptuje pracę i będę miał jedną sprawę załatwioną.

Mimo iż szacunek do mnie jako użytkownika zmalał, to i tak życzcie mi powodzenia ^_^

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności