0
$\begingroup$

I am aware that I have already asked this question before I apologize ahead of time.

BUT I am STILL struggling really bad with it. as simple as it looks for some of you its really hard for me. The other similar answers suggested to me didn't help since I am super new at scripting.

here is some information----

I am using Blender 2.79b

I'm writing a code that I will eventually turn into addon at the end. the code is supposed to have 3 shortcut buttons.

button1- to add a cube

button2- to add a sphere

button3- to add a cylinder

enter image description here

Once each button is pressed, I want the object to have a custom scale or dimension. For example: Once the Add Cube button is pressed, Cube gets created with these dimension (15, 20, 15)

If you can help please be specifi since I have NOOOO idea what I am doing :p

Here is my code

import bpy


class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "WIRES  &  PIPES"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    bl_category = "NEW"

    def draw(self, context):
        object = context.object
        layout = self.layout 
        
        row = layout.row()
        row.operator("mesh.primitive_cube_add")
        bpy.ops.transform.resize(value=(7.5, 10, 7.5))
        
        
        
        row = layout.row()
        row.operator("mesh.primitive_uv_sphere_add")
        bpy.ops.transform.resize(value=(5, 5, 5))
        
        
        
        row = layout.row()
        row.operator("mesh.primitive_cylinder_add")
        bpy.ops.transform.resize(value=(12, 12, 5))
        
        

def register():
    bpy.utils.register_class(HelloWorldPanel)

def unregister():
    bpy.utils.unregister_class(HelloWorldPanel)


if __name__ == "__main__":
    register()
$\endgroup$
0
$\begingroup$

Upgrade to Blender 2.90 and above

bpy.ops.mesh.primitive_cube_add(size=2, calc_uvs=True, enter_editmode=False, align='WORLD', location=(0, 0, 0), rotation=(0, 0, 0), scale=(0, 0, 0))

import bpy


class HelloWorld(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "WIRES  &  PIPES"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "NEW"

    def draw(self, context):
        object = context.object
        layout = self.layout 
        
        row = layout.row()
        row.operator("mesh.primitive_cube_add").scale=(1, 1, 1)
        
        

def register():
    bpy.utils.register_class(HelloWorld)

def unregister():
    bpy.utils.unregister_class(HelloWorld)


if __name__ == "__main__":
    register()

bpy.ops.transform.resize(value=(7.5, 10, 7.5)) works inside an Operator.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.