Seite 1 von 1

wegen störung geht es hier weiter: import blender

Verfasst: Sonntag 13. April 2008, 08:33
von sechsrad
kann keine antworten geben im thread: suche modul blender.
euer server läuft sich tot, darum mache ich hier weiter.

das programm welches das modul "import blender" aufruft wird natürlich nicht direkt gestartet sondern von soya3d mit dem unteren demoprogramm hier.

es soll dann eine grafikdatei mit der endung "blend" eingelesen werden die
mit dem 3d-blenderprogramm erstellt wurde und bei der demo mit dabei ist im ordner (/blender/knife.blender).

dieses 3d-erstellungprogramm "blender" welches man braucht wenn man die 3d-körper erstellt , hat zur zeit mit diesem ablauf hier nichts zu tun.

und dieser import blender wird nicht befunden.ich finde auf der ganzen festplatte kein py-program/modul welches blender.py ode pyc usw heisst.

Code: Alles auswählen

# -*- indent-tabs-mode: t -*-

# Soya 3D tutorial
# Copyright (C) 2004 Jean-Baptiste LAMY
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


# blender-auto-exporter-1: Blender auto-exporter : how to export models automatically

# This lesson is similar to basic-2.py, but it loads a Blender model !
# You NEED Blender to run this lesson.

# The Soya auto-exporter feature currently support the following file formats :
#  - Blender model (Both static models, and Cal3D ones)
#  - OBJ/MTL model (thanks David PHAM-VAN)
#  - .png images
#  - .jpeg images 


# Imports and inits Soya (see lesson basic-1.py).

import sys, os, os.path, soya

soya.init()
soya.path.append(os.path.join(os.path.dirname(sys.argv[0]), "data"))

# Creates the scene.

scene = soya.World()

# Loads the knife model.

# To use auto-exporter, simply put your Blender models in {soya.path}/blender/ , your
# OBJ/MTL models in {soya.path}/obj/ and your textures in {soya.path}/images/ .
# Soya will automatically exports models to Soya worlds ans models, and textures to
# materials, if the corresponding Soya doesn't exist OR is not up-to-date.

# Here, the knife model doesn't exist as a Soya model yet, but the original Blender model
# is in {soya.path}/blender/knife.blender ; so Soya will find it, export it to
# a world and then compile the world into a model.

# Soya will save the exported world and model, so if you run the lesson again, the model
# won't be exported again. If you want so, just modify the model and/or the texture.

knife_model = soya.Model.get("knife")

# The Blender model has a Text buffer called "soya_params".
# This buffer is analyzed and gives additionnal information ; here it contains
# "cellshading=1" and thus enable cell_shading for the model.

# The list of ATTR=VALUE code usable in the text buffer corresponds to the options
# available at the beginning of the blender2soya.py script (see this script), e.g. :
#     scale=1.0
#     shadow=1
#     cellshading=1
#     cellshading_shader=shader_name
#     cellshading_outline_width=5.0
#     =5.0
#     =5.0
#     
# The MATERIAL_MAP option has a different syntax. E.g. the following will replace the
# material called "old_material_name" by the one called "new_material_name".
#     material_old_material_name=new_material_name
# 
# You can also make curent a specific position of an animation (called Action by Blender)
# as following :
#     animation=animation_name
#     animation_time=1

# If you want to generate SEVERAL different models from a SINGLE Blender file,
# you can use alternative text buffers. For example the following :

knife_model2 = soya.Model.get("knife@with_sword_material")

# will read the Blender text buffer "with_sword_material" in the model in addition to
# "soya_params". Here is contains "material_knife=epee_turyle", which replace the knife
# material by the sword one (In French, epee=sword).


# The rest of the script is the same than lesson-2.

# Creates a rotating body class.

class RotatingBody(soya.Body):
	def advance_time(self, proportion):
		soya.Body.advance_time(self, proportion)
		self.rotate_y(proportion * 5.0)


knife    = RotatingBody(scene, knife_model )
knife.x  = -1

knife2   = RotatingBody(scene, knife_model2)
knife2.x = 1

# Creates a light.

light = soya.Light(scene)
light.set_xyz(0.5, 0.0, 2.0)

# Creates a camera.

camera = soya.Camera(scene)
camera.z = 3.0
soya.set_root_widget(camera)

soya.MainLoop(scene).main_loop()


Verfasst: Sonntag 13. April 2008, 09:47
von Jan-Peer
Das Totlaufen könnte unter anderem daran liegen, daß du zu große Stücke von Quellcode einfach postest. Auslagern wäre hilfreich.

Zum Thema: Daß es keine .py* Datei gibt, wundert mich nicht. Such mal nach .so .dll etc.

Verfasst: Sonntag 13. April 2008, 10:35
von sechsrad
ich habe alles durchsucht mit dem wort "blender*.*"

es gibt sie nicht..hm...eigenartig!

import kann doch eigentlich nur py, pyc oder pyd sein,oder?

mfg

Verfasst: Sonntag 13. April 2008, 11:05
von Sr4l
``import Blender`` bei soya bezieht sich auf Blender3d.

Hast du Blender installiert, und auch in Version >= 2.42, wie es auf der Soya3d Seite empfohlen ist?

PS: nutz http://paste.pocoo.org

PPS:
Blender hat schon etwas damit zu tun, bei jedem Ausführen von Soya wird versucht die Datein im data Ordner von .blend (und anderen Format) in das Soya Format zu bringen.
Da Blender stark mit Python zusammenarbeitet ist es nicht unwahrscheinlich das Blender da einiges an Bibliotheken mitbringt.

Verfasst: Sonntag 13. April 2008, 11:06
von BlackJack
@sechsrad: Okay, langsam glaube ich Du bist ein Troll. In Zeile 25 steht sehr deutlich:

Code: Alles auswählen

# You NEED Blender to run this lesson.
Wieso behauptest Du dann immer noch so felsenfest, dass das nichts mit Blender zu tun hat!?

Verfasst: Sonntag 13. April 2008, 11:23
von sechsrad
ich habe blender grösser 2.4.2 installiert. ich habe einmal blender gestartet und den körper knife.blend eingeladen. habe dann soya3d gestartet mit diesem nichtfunktionierenden programm . habe blender geschlossen und dann dieses soya3d gestartet. immer die gleiche fehlermeldung: das die importdatei Blender fehlt.

es gibt nirgendwo die importdatei blender die eingeladen werden soll.

das ist ja erstmal die fehlermeldung die vom programm kommt, die ich beseitigen möchte, dann geht es weiter wenn weitere fehlermeldungen kommen.

das hat nichts mit troll zu tun.

Verfasst: Sonntag 13. April 2008, 12:08
von Sr4l
@ sechsrad

Bei mir geht dein Code (mit meinen beiden Blender Versionen 2.43 und 2.44)
*************************** Blender exporter ***********************

The Blender exporter has been tested with Blender 2.35 ; you need a
Blender with a separate Python (i.e. Blender must be able to import
Soya).
Habe in Blender die ScriptConsole aufgemacht und ``import soya`` getippelt und kein Fehler.
Deine Soya -- Blender verbindung stimmt nicht.

Denkbar wäre weil Blender nach Soya installiert wurde.
Versuch mal in Blender "import soya" zu machen, wenn es ne Fehlermeldung gibt liegt es daran.
Ansonsten Build Soya doch nochmal neu.

Verfasst: Sonntag 13. April 2008, 12:21
von HWK
sechsrad hat geschrieben:ich habe blender grösser 2.4.2 installiert. ich habe einmal blender gestartet und den körper knife.blend eingeladen. habe dann soya3d gestartet mit diesem nichtfunktionierenden programm . habe blender geschlossen und dann dieses soya3d gestartet. immer die gleiche fehlermeldung: das die importdatei Blender fehlt.

es gibt nirgendwo die importdatei blender die eingeladen werden soll.

das ist ja erstmal die fehlermeldung die vom programm kommt, die ich beseitigen möchte, dann geht es weiter wenn weitere fehlermeldungen kommen.

das hat nichts mit troll zu tun.
Führst Du den Code denn in Blender aus? Von der Konsole o.ä. dürfte er wohl nicht funktionieren. Das solltest Du Dir zum Scripting in Blender evtl. mal durchlesen: http://de.wikibooks.org/wiki/Blender_Do ... in_Blender
MfG
HWK

Verfasst: Sonntag 13. April 2008, 12:34
von Sr4l
Doch das oben genannte Script wird in Python ausgeführt.

Der Importer für Blenderdateien ruft dann Blender auf und führt dort ein Python Script aus.
Nur falls Soya nicht schafft Blender zuöffnen, oder das Blender-Python einen Fehler meldet, z.B weil es Soya nicht finden kann, dann gibt es Fehler.

Verfasst: Sonntag 13. April 2008, 12:39
von HWK
Sr4l hat geschrieben:Doch das oben genannte Script wird in Python ausgeführt.

Der Importer für Blenderdateien ruft dann Blender auf und führt dort ein Python Script aus.
Nur falls Soya nicht schafft Blender zuöffnen, oder das Blender-Python einen Fehler meldet, z.B weil es Soya nicht finden kann, dann gibt es Fehler.
Gut zu wissen!

Verfasst: Sonntag 13. April 2008, 12:54
von sechsrad
hallo, schönen dank für die hilfe, habe den fehler gefunden:
musste in :
systemsteuerung/system/erweitert/umgebungsvariablen/path "d:\blender" eingeben, weil blender dieses nicht gemacht hat.
erst durch eingeben im pathverzeichnis findet soya den blender.
ich dachte das geht über die registry.

aber jetzt läuft es.
jetzt kann ich meine eigenen erstellten 3d-körper mit blender in soya3d nutzen.

mfg