Table of Contents

Example

Shapes - Reverse, Offset, Restart

by: Matías Muccillo, February 2020
final changes by Sebastian Beutel
published: inquiry: https://www.facebook.com/groups/Avolites/permalink/1799612296837663/
final macro: here
description: reverses shape on part of fixtures, offsets them, restarts shape
remarks: most useful for circle shapes

When creating shapes, in order to make a symmetrical look (e.g. circle shape with left fixtures turning clockwise, right fixtures turning counter-clockwise) you need to (1) select half of the fixtures, (2) reverse the shape for them, (3) offset them by 180°, and (4) restart the shape to see the effect. This macro does everything (for a predefined number of fixtures at least - there are macros for other fixture quantities as well).

functions

affected properties

control structures

Matias made more macros for various fixture quantities: mm_symmetrical_shape.xml

Code

ReverseOffsetRestart16.xml
<?xml version="1.0" encoding="utf-8"?>
<avolites.macros>
 
<!-- Symmetrical Shape -->
 
  <macro id="Macros.Shapes.SymmShape16" name="Symmetrical Shape 16 Fix">
    <sequence>
      <step pause="0.001">Editor.Shapes.ProgrammerShapesList()</step>
      <step condition="!Editor.Shapes.ProgrammerShapes.Empty">
        Editor.Shapes.SelectAllShapes()
      </step>
      <!--  <step condition="!Editor.Shapes.EditShapesEmpty">  // not from v12 on! -->
      <step pause="0.001">ActionScript.SetProperty.Integer('Editor.Shapes.Spread', 8)</step>
      <step pause="0.001">Command.RunCommand("PATTERN 8 IN 16")</step>
      <step pause="0.001">ActionScript.SetProperty.Boolean("Selection.Context.Global.RepeatPattern", true)</step>
      <step pause="0.001">Editor.Shapes.Reverse()</step>
      <step pause="0.001">ActionScript.SetProperty.Double('Editor.Shapes.PhaseOffset', 180)</step>
      <step pause="0.001">Programmer.RefireProgrammer(Programmer.CurrentProgrammerIds)</step>
      <step pause="0.001">Selection.Context.Global.ClearPatternSelect()</step>
    </sequence>
  </macro>
 
</avolites.macros>

Explanation

This explains the functional steps within the sequence. For all the other XML details please refer to Formats and syntax

How to use it

  1. select 16 fixtures in a row, create a circle spread, set it to medium size and speed ⇒ all fixtures will move simultaneously
  2. fire this macro. Immediately the fixtures will be divided in half, with suitable spread, left and right half turning in opposite directions but in perfect sync