Fix blender/blender#124020: Pre-made operator presets not available #1

Closed
Nika Kutsniashvili wants to merge 2 commits from presets into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
33 changed files with 623 additions and 0 deletions

View File

@ -35,6 +35,7 @@ if "bpy" in locals():
importlib.reload(Blocks)
importlib.reload(Wallfactory)
importlib.reload(add_mesh_triangles)
importlib.reload(install_presets)
else:
from . import add_mesh_star
from . import add_mesh_twisted_torus
@ -57,6 +58,7 @@ else:
from . import Blocks
from . import Wallfactory
from . import add_mesh_triangles
from . import install_presets
from .add_mesh_rocks import __init__
from .add_mesh_rocks import rockgen
@ -407,6 +409,7 @@ def register():
register_class(cls)
add_mesh_rocks.register()
install_presets.register()
# Add "Extras" menu to the "Add Mesh" menu and context menu.
bpy.types.VIEW3D_MT_mesh_add.append(menu_func)

35
source/install_presets.py Normal file
View File

@ -0,0 +1,35 @@
import os
import shutil
addon_folder = os.path.dirname(os.path.realpath(__file__))
repository_folder = os.path.dirname(addon_folder)
extensions_folder = os.path.dirname(repository_folder)
version_folder = os.path.dirname(extensions_folder)
presets_folder = os.path.join(version_folder, 'scripts', 'presets')
### PRESETS INSTALL ####
source_directory = os.path.join(addon_folder, "presets")
destination_directory = os.path.join(presets_folder, "operator")
def copy_subfolders(source_dir, destination_dir):
if not os.path.exists(destination_dir):
os.makedirs(destination_dir)
for item in os.listdir(source_dir):
source_path = os.path.join(source_dir, item)
destination_path = os.path.join(destination_dir, item)
if os.path.isdir(source_path):
if os.path.exists(destination_path):
continue
shutil.copytree(source_path, destination_path)
def register():
copy_subfolders(source_directory, destination_directory)

View File

@ -0,0 +1,8 @@
import bpy
op = bpy.context.active_operator
op.radius = 0.5
op.arc_div = 8
op.lin_div = 0
op.size = (0.0, 0.0, 3.0)
op.div_type = 'CORNERS'

View File

@ -0,0 +1,8 @@
import bpy
op = bpy.context.active_operator
op.radius = 0.4
op.arc_div = 8
op.lin_div = 0
op.size = (1.5, 3.0, 1.0)
op.div_type = 'ALL'

View File

@ -0,0 +1,9 @@
import bpy
op = bpy.context.active_operator
op.radius = 0.0
op.arc_div = 1
op.lin_div = 0
op.size = (2.0, 2.0, 2.0)
op.div_type = 'CORNERS'
op.odd_axis_align = False

View File

@ -0,0 +1,7 @@
import bpy
op = bpy.context.active_operator
op.radius = 0
op.size = (2, 2, 2)
op.lin_div = 5
op.div_type = 'ALL'

View File

@ -0,0 +1,9 @@
import bpy
op = bpy.context.active_operator
op.radius = 1.0
op.arc_div = 1
op.lin_div = 0
op.size = (0.0, 0.0, 0.0)
op.div_type = 'CORNERS'
op.odd_axis_align = True

View File

@ -0,0 +1,8 @@
import bpy
op = bpy.context.active_operator
op.radius = 1.0
op.arc_div = 8
op.lin_div = 0
op.size = (0.0, 0.0, 0.0)
op.div_type = 'CORNERS'

View File

@ -0,0 +1,8 @@
import bpy
op = bpy.context.active_operator
op.radius = 0.25
op.arc_div = 8
op.lin_div = 0
op.size = (2.0, 2.0, 2.0)
op.div_type = 'CORNERS'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'u'
op.y_eq = 'cos(u)*sin(v)'
op.z_eq = 'cos(u)*cos(v)'
op.range_u_min = 0.0
op.range_u_max = 6.2831854820251465
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = '2/3* (cos(u)* cos(2*v) + sqrt(2)* sin(u)* cos(v))* cos(u) / (sqrt(2) - sin(2*u)* sin(3*v))'
op.y_eq = 'sqrt(2)* cos(u)* cos(u) / (sqrt(2) - sin(2*u)* sin(3*v))'
op.z_eq = '2/3* (cos(u)* sin(2*v) - sqrt(2)* sin(u)* sin(v))* cos(u) / (sqrt(2) - sin(2*u)* sin(3*v))'
op.range_u_min = 0.0
op.range_u_max = 3.1415927410125732
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 3.1415927410125732
op.range_v_step = 64
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'u-sin(u)*cosh(v)'
op.y_eq = '4*sin(1/2*u)*sinh(v/2)'
op.z_eq = '1-cos(u)*cosh(v)'
op.range_u_min = -3.1415927410125732
op.range_u_max = 9.42477798461914
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = -2.0
op.range_v_max = 2.0
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = '2*cosh(v/2)*cos(u)'
op.y_eq = 'v'
op.z_eq = '2*cosh(v/2)*sin(u)'
op.range_u_min = -3.1415927410125732
op.range_u_max = 3.1415927410125732
op.range_u_step = 32
op.wrap_u = True
op.range_v_min = -3.1415927410125732
op.range_v_max = 3.1415927410125732
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'cos(u+v)/(sqrt(2.)+cos(v-u))'
op.y_eq = 'sin(v-u)/(sqrt(2.)+cos(v-u))'
op.z_eq = 'sin(u+v)/(sqrt(2.)+cos(v-u))'
op.range_u_min = 0.0
op.range_u_max = 3.140000104904175
op.range_u_step = 8
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'v*cos(u)'
op.y_eq = 'v*sin(u)'
op.z_eq = '0.4*u'
op.range_u_min = 0.0
op.range_u_max = 12.566370964050293
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 2.0
op.range_v_step = 32
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'u'
op.y_eq = 'sin(pi*((u)**2+(v)**2))/2'
op.z_eq = 'v'
op.range_u_min = -1.0
op.range_u_max = 1.0
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = -1.0
op.range_v_max = 1.0
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'a*cos(u)*sin(v)'
op.y_eq = 'a*sin(u)*sin(v)'
op.z_eq = '(cos(v)+log(tan(v/2)+1e-2)) + b*u'
op.range_u_min = 0.0
op.range_u_max = 12.566370964050293
op.range_u_step = 128
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 2.0
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '1'
op.b_eq = '0.2'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'u -u**3/3 + u*v**2'
op.y_eq = 'u**2 - v**2'
op.z_eq = 'v -v**3/3 + v*u**2'
op.range_u_min = -2.0
op.range_u_max = 2.0
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = -2.0
op.range_v_max = 2.0
op.range_v_step = 32
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'sinh(v)*sin(u)'
op.y_eq = '3*u'
op.z_eq = '-sinh(v)*cos(u)'
op.range_u_min = -3.1415927410125732
op.range_u_max = 3.1415927410125732
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = -3.1415927410125732
op.range_v_max = 3.1415927410125732
op.range_v_step = 32
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = '(1-0.1*cos(v))*cos(u)'
op.y_eq = '0.1*(sin(v) + u/1.7 -10)'
op.z_eq = '(1-0.1*cos(v))*sin(u)'
op.range_u_min = 0.0
op.range_u_max = 12.566370964050293
op.range_u_step = 128
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'cos(v)**3*cos(u)**3'
op.y_eq = 'sin(u)**3'
op.z_eq = 'sin(v)**3*cos(u)**3'
op.range_u_min = -1.2999999523162842
op.range_u_max = 1.2999999523162842
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 32
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = '(sinh(v)*cos(3*u))/(1+cosh(u)*cosh(v))'
op.y_eq = '(cosh(v)*sinh(u))/(1+cosh(u)*cosh(v))'
op.z_eq = '(sinh(v)*sin(3*u))/(1+cosh(u)*cosh(v))'
op.range_u_min = -3.1415927410125732
op.range_u_max = 3.1415927410125732
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = -3.1415927410125732
op.range_v_max = 3.1415927410125732
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = '(3*(1+sin(v)) + 2*(1-cos(v)/2)*cos(u))*cos(v)'
op.y_eq = '(4+2*(1-cos(v)/2)*cos(u))*sin(v)'
op.z_eq = '-2*(1-cos(v)/2)*sin(u)'
op.range_u_min = 0.0
op.range_u_max = 6.2831854820251465
op.range_u_step = 32
op.wrap_u = True
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'cos(v)+u*cos(v/2)*cos(v)'
op.y_eq = 'u*sin(v/2)'
op.z_eq = 'sin(v)+u*cos(v/2)*sin(v)'
op.range_u_min = -0.4000000059604645
op.range_u_max = 0.4000000059604645
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 32
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = '2.2*(2*cosh(v/2)*cos(u)) '
op.y_eq = '1.51166 * (2*cosh(v/2)*sin(u) * sin((2.2*(2*cosh(v/2)*cos(u)) - -11.0404)*2*pi*1/22.0513) + 1.8*(v) * cos((2.2*(2*cosh(v/2)*cos(u)) - -11.0404)*2*pi*1/22.0513)) '
op.z_eq = '1.51166 * (2*cosh(v/2)*sin(u) * cos((2.2*(2*cosh(v/2)*cos(u)) - -11.0404)*2*pi*1/22.0513) - 1.8*(v) * sin((2.2*(2*cosh(v/2)*cos(u)) - -11.0404)*2*pi*1/22.0513)) '
op.range_u_min = -3.1415927410125732
op.range_u_max = 3.1415927410125732
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = -3.1415927410125732
op.range_v_max = 3.1415927410125732
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'cos(u)*cos(v)+sin((sin(u)+1)*2*pi) '
op.y_eq = '4*sin(u) '
op.z_eq = 'cos(u)*sin(v)+cos((sin(u)+1)*2*pi) '
op.range_u_min = -1.5707963705062866
op.range_u_max = 1.5707963705062866
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'a*cos(u)+(b*sin(f*u)+c)*cos(u)*cos(v)'
op.y_eq = 'a*sin(u)+(b*sin(f*u)+c)*sin(u)*cos(v)'
op.z_eq = '(b*sin(f*u)+c)*sin(v)'
op.range_u_min = 0.0
op.range_u_max = 6.2831854820251465
op.range_u_step = 128
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 32
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '5'
op.b_eq = '0.6'
op.c_eq = '2'
op.f_eq = '10'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'cos(v)*(1+cos(u))*sin(v/8)'
op.y_eq = 'sin(u)*sin(v/8)+cos(v/8)*1.5'
op.z_eq = 'sin(v)*(1+cos(u))*sin(v/8)'
op.range_u_min = 0.0
op.range_u_max = 6.2831854820251465
op.range_u_step = 32
op.wrap_u = True
op.range_v_min = 0.0
op.range_v_max = 12.566370964050293
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'sin(u)'
op.y_eq = 'sin(v)'
op.z_eq = 'sin(u+v)'
op.range_u_min = 0.0
op.range_u_max = 6.2831854820251465
op.range_u_step = 128
op.wrap_u = True
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 128
op.wrap_v = True
op.close_v = True
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = '1.2*(1 -v/(2*pi))*cos(3*v)*(1 + cos(u)) + 3*cos(3*v)'
op.y_eq = '9*v/(2*pi) + 1.2*(1 - v/(2*pi))*sin(u)'
op.z_eq = '1.2*(1 -v/(2*pi))*sin(3*v)*(1 + cos(u)) + 3*sin(3*v)'
op.range_u_min = 0.0
op.range_u_max = 6.2831854820251465
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 64
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = '2.*u/(u*u+v*v+1.)'
op.y_eq = '(u*u+v*v-1.)/(u*u+v*v+1.)'
op.z_eq = '2.*v/(u*u+v*v+1.)'
op.range_u_min = -2.0
op.range_u_max = 2.0
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = -2.0
op.range_v_max = 2.0
op.range_v_step = 32
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = '(1+0.5*cos(u))*cos(v)'
op.y_eq = '0.5*sin(u)'
op.z_eq = '(1+0.5*cos(u))*sin(v)'
op.range_u_min = 0.0
op.range_u_max = 6.2831854820251465
op.range_u_step = 32
op.wrap_u = False
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 128
op.wrap_v = False
op.close_v = False
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'

View File

@ -0,0 +1,22 @@
import bpy
op = bpy.context.active_operator
op.x_eq = 'cos(u)*(6-(5./4. + sin(3*v))*sin(v-3*u))'
op.y_eq = '(6-(5./4. + sin(3*v))*sin(v-3*u))*sin(u)'
op.z_eq = '-cos(v-3*u)*(5./4.+sin(3*v))'
op.range_u_min = 0.0
op.range_u_max = 6.2831854820251465
op.range_u_step = 128
op.wrap_u = True
op.range_v_min = 0.0
op.range_v_max = 6.2831854820251465
op.range_v_step = 32
op.wrap_v = True
op.close_v = True
op.n_eq = 1
op.a_eq = '0'
op.b_eq = '0'
op.c_eq = '0'
op.f_eq = '0'
op.g_eq = '0'
op.h_eq = '0'