mirror of http://CODE.RHODECODE.COM/u/O/O/O
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.
103 lines
2.5 KiB
103 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) |
|
|
|
|