◦⸰◦○◦⸰◦◯◦⸰◦○◦⸰◦                                          ◦⸰◦○◦⸰◦◯◦⸰◦○◦⸰◦                                       
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

104 lines
2.5 KiB

# -*- coding: utf-8 -*-
import bpy
# count values, contains only 2 values : old count and current
at_count_values = []
# row value, contains old row and current
at_row_values = []
# alter values, contains old and current
at_alter = []
# maximun row according to column and alter
maxrow = 1
# list of the copies / list of lists
atools_objs = []
ref_mtx = [] # reference matrix
# collection name
col_name = "Array_collection"
def init_array_tool(context):
"""Initialisation of the array tools"""
global at_count_values
global at_row_values
global at_alter
global atools_objs
global ref_mtx
global col_name
prop = context.scene.arraytools_prop
name = col_name
i = 1
collect = bpy.data.collections.get(col_name)
# create and link the new collection
if collect is None:
array_col = bpy.data.collections.new(col_name)
bpy.context.scene.collection.children.link(array_col)
else:
# if a collection already exist, create a new one
while bpy.data.collections.get(name) is not None:
name = col_name + str(i)
i += 1
array_col = bpy.data.collections.new(name)
bpy.context.scene.collection.children.link(array_col)
col_name = name
if not prop.already_start:
at_count_values = [1, 2]
at_row_values = [0, 1]
at_alter = [0, 0]
active = context.active_object
prop.already_start = True
prop.is_tr_off_last = True
if active is not None:
atools_objs.append([active.name])
ref_mtx = active.matrix_world.copy()
del active
prop.add_in_column(prop.row)
# no need anymore
else:
print("No object selected")
else:
print("Already started!")
def add_count(value):
"""Save the current count"""
global at_count_values
at_count_values.append(value)
def del_count():
"""Del the previous count"""
global at_count_values
del at_count_values[0]
def add_row(value):
"""Save the current row"""
global at_row_values
at_row_values.append(value)
def del_row():
""" Del the previous row value"""
global at_row_values
del at_row_values[0]
def add_alter(value):
"""save the current variation"""
global at_alter
at_alter.append(value)
def del_alter():
"""Remove previous variation"""
global at_alter
del at_alter[0]
def display_error(msg):
"""Call the operator to display an error message"""
bpy.ops.info.at_error('INVOKE_DEFAULT', info = msg)