Topic: [Blender + Python] Een Cube Creëren met Location, Scale en Rotation...  (gelezen 2807 keer)


superjamie

« Gepost op: 13 maart 2017, 21:13:07 pm »
Hoi medeblenders...

Ik probeer voor het eerst een python script te schrijven in blender 2.78c...
Dit is mijn code:

import bpy

bpy.ops.mesh.primitive_cube_add(location=(0,0,0),scale=(1,1,0.2),rotation=(0,0,0))

Wat ik doe is zoiets, maar als ik dan op "Run Script" klik, krijg ik een error...
Terweil deze code wel werkt:

import bpy

bpy.ops.mesh.primitive_cube_add(location=(0,0,0),scale=(1,1,1))


Ik snap dus niet waarom mijn bovenste code het niet doet en mijn onderste code
dus wel...

Kunnen jullie mij helpen met mijn script ?... dit is om te oefenen...

Kunnen jullie mij helpen met dit ?... alvast bedankt,
groetjes Jamie.

Offline Nick Van den Broeck

  • Member
  • *
  • Berichten: 216
    • Bekijk profiel
    • Blender Education
« Reactie #1 Gepost op: 22 maart 2017, 10:05:06 am »
Bij mij werkt die tweede lijn evenmin.

De reden is dat 'scale' geen optie is van de 'primitive_cube_add' functie.
Zie de api: https://docs.blender.org/api/2.78b/bpy.ops.mesh.html?highlight=primitive%20cube#bpy.ops.mesh.primitive_cube_add

Als je een fout krijgt op zo'n lijn code, en de uitleg is niet super duidelijk, dan kan je ook altijd deze lijn plakken in de 'Python consol' en zien wat daar op komt. Die zegt bij mij bijvoorbeeld letterlijk:
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
  File "C:\Program Files\Blender Foundation\Blender\2.78\scripts\modules\bpy\ops.py", line 189, in __call__
    ret = op_call(self.idname_py(), None, kw)
TypeError: Converting py args to operator properties: : keyword "scale" unrecognized


En dan open je de api en zie je inderdaad geen 'scale' staan. Wat je dus moet doen is eerst de cube maken, dan selecteren en dan schalen.
Het enige dat je rechtstreeks in de add_cube functie kan aanpassen is de 'radius'.
Tip: als je zelf een kubus met de muist toevoegt en dan de opties bovenhaalt d.m.v. F6, zie je ook dat er enkel locatie en rotatie staat, geen schaal voor x,y en z.