hi,

i did an abstraction for aligning objects. thanks to canvasobjectposition this was not too hard. if you put it in your search path you can create an [align] object which provides keyboard shortcuts for left-align and top-align. and i did another option for distribution in equal distances both x and y.
e.g. press "|" and x for left-align
there is also an undo (hit "ESC") function since such actions are not undoable with ctrl-z. @luke: i hope there are some inspirations for your autoconnection patch inside (it was very inspiring for me)

cheers
georg

IOhannes m zmoelnig schrieb:
Luke Iannini wrote:
Yo all,

IOhannes, do you know if it's possible to get and set the coordinates
of arbitrary objects simply by index, much like [canvasposition] can
do now but including externals etc. where you can't place a
[canvasposition] object?  This would enable the final piece of
maxtoolbox layout stuff, which was Pd's Tidy... function times 10000,
and would let me do stuff like "connect the 4 horizontally-aligned
selected objects above to the 4 selected objects below" or simply
"connect these all top to bottom" with a single keycommand.

do you mean like [canvasobjectposition]?

fgamsdr
IOhannes


------------------------------------------------------------------------

_______________________________________________
Pd-dev mailing list
[email protected]
http://lists.puredata.info/listinfo/pd-dev
#N canvas 746 112 594 442 10;
#X obj 93 237 canvasselect 1;
#X obj 81 18 key;
#N canvas 1065 466 450 300 sortobjectsbyxy 0;
#X obj 20 247 2list-sort;
#X obj 69 18 inlet;
#X obj 69 60 list-drip;
#X obj 69 196 list;
#X obj 108 196 list;
#X obj -72 176 list;
#X obj -33 176 list;
#X msg -72 135 \$1;
#X msg -41 135 \$2;
#X obj -93 223 list;
#X obj 120 138 t b b;
#X obj 20 272 outlet;
#X obj 77 272 outlet;
#X obj 69 38 t l b;
#X obj 69 80 t f b f;
#X obj -72 114 canvasobjectposition 2;
#X obj 48 223 list;
#X obj -41 196 list;
#X obj -2 196 list;
#X obj 160 224 list;
#X obj 160 247 2list-sort;
#X obj 160 272 outlet;
#X obj 217 272 outlet;
#X connect 0 0 11 0;
#X connect 0 1 12 0;
#X connect 1 0 13 0;
#X connect 2 0 14 0;
#X connect 2 1 10 0;
#X connect 3 0 4 0;
#X connect 3 0 16 1;
#X connect 4 0 3 1;
#X connect 5 0 6 0;
#X connect 5 0 9 1;
#X connect 6 0 5 1;
#X connect 7 0 5 0;
#X connect 8 0 17 0;
#X connect 9 0 0 0;
#X connect 10 0 9 0;
#X connect 10 0 19 0;
#X connect 10 1 16 0;
#X connect 13 0 2 0;
#X connect 13 1 4 1;
#X connect 13 1 3 1;
#X connect 13 1 5 1;
#X connect 13 1 6 1;
#X connect 13 1 17 1;
#X connect 13 1 18 1;
#X connect 14 0 3 0;
#X connect 14 1 15 0;
#X connect 14 2 15 1;
#X connect 15 0 7 0;
#X connect 15 0 8 0;
#X connect 16 0 0 1;
#X connect 16 0 20 1;
#X connect 17 0 18 0;
#X connect 17 0 19 1;
#X connect 18 0 17 1;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 20 1 22 0;
#X restore 93 278 pd sortobjectsbyxy;
#N canvas 0 0 450 466 undo 0;
#X obj 51 24 inlet;
#X obj 51 47 t l b;
#X obj 49 150 list;
#X obj 88 150 list;
#X obj 28 177 list;
#X obj 149 150 list;
#X obj 188 150 list;
#X obj 183 179 list;
#X obj 51 68 list-drip;
#X obj -51 110 canvasobjectposition 2;
#X obj 51 89 t b f;
#X obj 261 19 inlet;
#X obj 28 222 list split 2;
#X obj 183 222 list split 1;
#X obj 28 245 list;
#X obj 67 243 list;
#X obj 183 246 t b b b f;
#X obj 248 246 list;
#X obj 256 69 t b b;
#X obj 207 44 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 183 199 t l b;
#X obj 28 199 t l b;
#X obj 28 283 canvasobjectposition 2;
#X connect 0 0 1 0;
#X connect 1 0 8 0;
#X connect 1 1 2 1;
#X connect 1 1 3 1;
#X connect 1 1 5 1;
#X connect 1 1 6 1;
#X connect 2 0 3 0;
#X connect 2 0 4 1;
#X connect 3 0 2 1;
#X connect 4 0 21 0;
#X connect 5 0 6 0;
#X connect 5 0 7 1;
#X connect 6 0 5 1;
#X connect 7 0 20 0;
#X connect 8 0 10 0;
#X connect 9 0 2 0;
#X connect 10 0 9 0;
#X connect 10 1 9 1;
#X connect 10 1 5 0;
#X connect 11 0 18 0;
#X connect 12 0 14 1;
#X connect 12 1 15 1;
#X connect 13 0 16 0;
#X connect 13 1 17 1;
#X connect 14 0 22 0;
#X connect 15 0 4 0;
#X connect 16 0 17 0;
#X connect 16 1 15 0;
#X connect 16 2 14 0;
#X connect 16 3 22 1;
#X connect 17 0 7 0;
#X connect 18 0 7 0;
#X connect 18 1 4 0;
#X connect 19 0 18 0;
#X connect 20 0 13 0;
#X connect 20 1 7 1;
#X connect 21 0 12 0;
#X connect 21 1 4 1;
#X restore 42 279 pd undo;
#X obj 93 257 t l l;
#X obj 72 302 list;
#X obj 107 302 list;
#X obj 142 302 list;
#X obj 177 302 list;
#N canvas 0 0 450 300 align 0;
#X obj 17 8 inlet;
#X obj 17 39 list-drip;
#N canvas 0 0 450 300 once 0;
#X obj 169 77 inlet;
#X msg 214 171 0;
#X obj 169 251 outlet;
#X obj 169 121 t b a;
#X obj 264 78 inlet;
#X msg 264 169 1;
#X obj 169 202 spigot 1;
#X connect 0 0 3 0;
#X connect 1 0 6 1;
#X connect 3 0 1 0;
#X connect 3 1 6 0;
#X connect 4 0 5 0;
#X connect 5 0 6 1;
#X connect 6 0 2 0;
#X restore 166 83 pd once;
#X obj 17 60 t b f f;
#X msg 17 144 \$2;
#X obj 17 165 list prepend;
#X obj 166 103 t b f;
#X msg 166 144 \$1;
#X obj 166 123 canvasobjectposition 2;
#X obj 17 123 canvasobjectposition 2;
#X obj 17 185 canvasobjectposition 2;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 1 1 2 1;
#X connect 2 0 6 0;
#X connect 3 0 9 0;
#X connect 3 1 9 1;
#X connect 3 1 10 1;
#X connect 3 2 2 0;
#X connect 4 0 5 0;
#X connect 5 0 10 0;
#X connect 6 0 8 0;
#X connect 6 1 8 1;
#X connect 7 0 5 1;
#X connect 8 0 7 0;
#X connect 9 0 4 0;
#X restore 107 328 pd align x;
#N canvas 0 0 450 300 align 0;
#X obj 17 8 inlet;
#X obj 17 39 list-drip;
#N canvas 0 0 450 300 once 0;
#X obj 169 77 inlet;
#X msg 214 171 0;
#X obj 169 251 outlet;
#X obj 169 121 t b a;
#X obj 264 78 inlet;
#X msg 264 169 1;
#X obj 169 202 spigot 1;
#X connect 0 0 3 0;
#X connect 1 0 6 1;
#X connect 3 0 1 0;
#X connect 3 1 6 0;
#X connect 4 0 5 0;
#X connect 5 0 6 1;
#X connect 6 0 2 0;
#X restore 166 83 pd once;
#X obj 17 60 t b f f;
#X obj 166 103 t b f;
#X obj 166 123 canvasobjectposition 2;
#X obj 17 123 canvasobjectposition 2;
#X obj 17 215 canvasobjectposition 2;
#X obj 17 195 list;
#X msg 17 144 \$1;
#X msg 166 144 \$2;
#X obj 38 174 t f b;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 1 1 2 1;
#X connect 2 0 4 0;
#X connect 3 0 6 0;
#X connect 3 1 6 1;
#X connect 3 1 7 1;
#X connect 3 2 2 0;
#X connect 4 0 5 0;
#X connect 4 1 5 1;
#X connect 5 0 10 0;
#X connect 6 0 9 0;
#X connect 8 0 7 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
#X connect 11 0 8 1;
#X restore 177 329 pd align y;
#N canvas 0 0 450 300 2once 0;
#X obj 169 77 inlet;
#X msg 202 171 0;
#X obj 169 251 outlet;
#X obj 169 121 t b a;
#X obj 264 73 inlet;
#X obj 169 202 spigot;
#X obj 79 77 inlet;
#X msg 112 171 0;
#X obj 79 251 outlet;
#X obj 79 121 t b a;
#X obj 79 202 spigot;
#X msg 291 171 1;
#X obj 264 121 sel 0;
#X obj 264 99 route bang float;
#X connect 0 0 3 0;
#X connect 1 0 5 1;
#X connect 1 0 10 1;
#X connect 3 0 1 0;
#X connect 3 1 5 0;
#X connect 4 0 13 0;
#X connect 5 0 2 0;
#X connect 6 0 9 0;
#X connect 7 0 10 1;
#X connect 7 0 5 1;
#X connect 9 0 7 0;
#X connect 9 1 10 0;
#X connect 10 0 8 0;
#X connect 11 0 5 1;
#X connect 11 0 10 1;
#X connect 12 0 1 0;
#X connect 12 0 7 0;
#X connect 12 1 11 0;
#X connect 13 0 11 0;
#X connect 13 1 12 0;
#X connect 13 2 11 0;
#X restore 154 112 pd 2once;
#N canvas 0 0 450 300 avg-dist 0;
#X obj 19 96 list-minmax;
#X obj 57 71 t l l;
#X obj 96 97 list-len;
#X obj 43 153 -;
#X obj 43 181 / 1;
#X obj 43 201 int;
#X obj 57 25 inlet;
#X obj 43 249 outlet;
#X obj 96 151 - 1;
#X connect 0 0 3 1;
#X connect 0 1 3 0;
#X connect 1 0 0 0;
#X connect 1 1 2 0;
#X connect 2 0 8 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 7 0;
#X connect 6 0 1 0;
#X connect 8 0 4 1;
#X restore 72 384 pd avg-dist;
#X obj 107 359 list;
#X obj 177 359 list;
#N canvas 0 0 450 300 2once 0;
#X obj 169 77 inlet;
#X msg 202 171 0;
#X obj 169 251 outlet;
#X obj 169 121 t b a;
#X obj 264 78 inlet;
#X obj 169 202 spigot;
#X obj 79 77 inlet;
#X msg 112 171 0;
#X obj 79 251 outlet;
#X obj 79 121 t b a;
#X obj 79 202 spigot;
#X msg 303 171 1;
#X obj 264 121 route 0;
#X obj 264 99 route bang float;
#X connect 0 0 3 0;
#X connect 1 0 5 1;
#X connect 1 0 10 1;
#X connect 3 0 1 0;
#X connect 3 1 5 0;
#X connect 4 0 13 0;
#X connect 5 0 2 0;
#X connect 6 0 9 0;
#X connect 7 0 10 1;
#X connect 7 0 5 1;
#X connect 9 0 7 0;
#X connect 9 1 10 0;
#X connect 10 0 8 0;
#X connect 11 0 5 1;
#X connect 11 0 10 1;
#X connect 12 0 1 0;
#X connect 12 1 11 0;
#X connect 13 0 11 0;
#X connect 13 1 12 0;
#X connect 13 2 11 0;
#X restore 157 142 pd 2once;
#X obj 157 163 t b b;
#X obj 202 163 t b b;
#N canvas 0 0 450 300 avg-dist 0;
#X obj 19 96 list-minmax;
#X obj 57 71 t l l;
#X obj 96 97 list-len;
#X obj 43 153 -;
#X obj 43 181 / 1;
#X obj 43 201 int;
#X obj 57 25 inlet;
#X obj 43 249 outlet;
#X obj 96 151 - 1;
#X connect 0 0 3 1;
#X connect 0 1 3 0;
#X connect 1 0 0 0;
#X connect 1 1 2 0;
#X connect 2 0 8 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 7 0;
#X connect 6 0 1 0;
#X connect 8 0 4 1;
#X restore 142 384 pd avg-dist;
#N canvas 9 373 450 300 algneq 0;
#X obj 17 8 inlet;
#X obj 17 69 list-drip;
#N canvas 0 0 450 300 once 0;
#X obj 169 77 inlet;
#X msg 214 171 0;
#X obj 169 251 outlet;
#X obj 169 121 t b a;
#X obj 264 78 inlet;
#X msg 264 169 1;
#X obj 169 202 spigot 1;
#X connect 0 0 3 0;
#X connect 1 0 6 1;
#X connect 3 0 1 0;
#X connect 3 1 6 0;
#X connect 4 0 5 0;
#X connect 5 0 6 1;
#X connect 6 0 2 0;
#X restore 166 113 pd once;
#X obj 17 90 t b f f;
#X obj 166 133 t b f;
#X obj 166 153 canvasobjectposition 2;
#X obj 17 153 canvasobjectposition 2;
#X obj 17 275 canvasobjectposition 2;
#X obj 310 20 inlet;
#X obj 86 204 f;
#X obj 113 204 + 0;
#X msg 128 184 0;
#X obj 17 250 t l b;
#X msg 166 174 \$1;
#X msg 17 174 \$2;
#X obj 17 225 list prepend;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 1 1 2 1;
#X connect 1 1 11 0;
#X connect 2 0 4 0;
#X connect 3 0 6 0;
#X connect 3 1 6 1;
#X connect 3 1 7 1;
#X connect 3 2 2 0;
#X connect 4 0 5 0;
#X connect 4 1 5 1;
#X connect 5 0 13 0;
#X connect 6 0 14 0;
#X connect 8 0 10 1;
#X connect 9 0 10 0;
#X connect 9 0 15 1;
#X connect 10 0 9 1;
#X connect 11 0 10 1;
#X connect 12 0 7 0;
#X connect 12 1 9 0;
#X connect 13 0 9 0;
#X connect 14 0 15 0;
#X connect 15 0 12 0;
#X restore 9 413 pd algneq x;
#N canvas 0 0 450 300 algneq 0;
#X obj 17 8 inlet;
#X obj 17 69 list-drip;
#N canvas 0 0 450 300 once 0;
#X obj 169 77 inlet;
#X msg 214 171 0;
#X obj 169 251 outlet;
#X obj 169 121 t b a;
#X obj 264 78 inlet;
#X msg 264 169 1;
#X obj 169 202 spigot 1;
#X connect 0 0 3 0;
#X connect 1 0 6 1;
#X connect 3 0 1 0;
#X connect 3 1 6 0;
#X connect 4 0 5 0;
#X connect 5 0 6 1;
#X connect 6 0 2 0;
#X restore 166 113 pd once;
#X obj 17 90 t b f f;
#X obj 166 133 t b f;
#X obj 166 153 canvasobjectposition 2;
#X obj 17 153 canvasobjectposition 2;
#X obj 17 275 canvasobjectposition 2;
#X obj 310 20 inlet;
#X obj 86 204 f;
#X obj 113 204 + 0;
#X msg 128 184 0;
#X obj 17 250 t l b;
#X msg 166 174 \$2;
#X msg 17 174 \$1;
#X obj 17 225 list;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 1 1 2 1;
#X connect 1 1 11 0;
#X connect 2 0 4 0;
#X connect 3 0 6 0;
#X connect 3 1 6 1;
#X connect 3 1 7 1;
#X connect 3 2 2 0;
#X connect 4 0 5 0;
#X connect 4 1 5 1;
#X connect 5 0 13 0;
#X connect 6 0 14 0;
#X connect 8 0 10 1;
#X connect 9 0 10 0;
#X connect 9 0 15 1;
#X connect 10 0 9 1;
#X connect 11 0 10 1;
#X connect 12 0 7 0;
#X connect 12 1 9 0;
#X connect 13 0 9 0;
#X connect 14 0 15 0;
#X connect 15 0 12 0;
#X restore 79 413 pd algneq y;
#X obj 157 183 delay 4;
#X obj 202 183 delay 4;
#X text 286 18 align;
#X text 287 88 USAGE:;
#X text 287 39 automatically align objects by x- or y- axis;
#X text 287 49 or distribute them with equal distances (beta);
#X text 287 99 place align.pd in your search path;
#X text 287 109 create an [align] object inside the patch where;
#X text 287 119 you want to use it.;
#X text 287 139 Keyboard commands;
#X text 287 159 "x" for left-align or;
#X text 287 169 "y" for top-align;
#X obj 81 40 sel 27 124 35 120 121;
#X text 287 149 for aligning press "|" (pipe) and;
#X text 287 189 for equal distance distribution;
#X text 287 199 press "#" (grid metaphor) and;
#X text 287 209 "x" for horizontal or;
#X text 287 219 "y" for vertical;
#X text 287 269 undo function;
#X text 287 279 hit "ESC" after one of this actions;
#X msg 199 90 0;
#X msg 202 70 0;
#X text 287 239 object this means not space between.;
#X text 287 229 ! since ther is no way to get the size of an;
#X text 287 322 this is based on iem_guts;
#X text 287 332 thanks to IOhannes m zmoelnig;
#X text 288 380 (cc) 2009 Georg Werner;
#X connect 0 0 4 0;
#X connect 1 0 33 0;
#X connect 2 0 5 1;
#X connect 2 1 6 1;
#X connect 2 1 13 1;
#X connect 2 2 7 1;
#X connect 2 3 8 1;
#X connect 2 3 14 1;
#X connect 4 0 2 0;
#X connect 4 1 3 0;
#X connect 5 0 12 0;
#X connect 6 0 9 0;
#X connect 7 0 18 0;
#X connect 8 0 10 0;
#X connect 11 0 6 0;
#X connect 11 1 8 0;
#X connect 12 0 19 1;
#X connect 13 0 19 0;
#X connect 14 0 20 0;
#X connect 15 0 16 0;
#X connect 15 1 17 0;
#X connect 16 0 21 0;
#X connect 16 1 5 0;
#X connect 17 0 22 0;
#X connect 17 1 7 0;
#X connect 18 0 20 1;
#X connect 21 0 13 0;
#X connect 22 0 14 0;
#X connect 33 0 3 1;
#X connect 33 1 11 2;
#X connect 33 1 0 0;
#X connect 33 1 42 0;
#X connect 33 2 15 2;
#X connect 33 2 0 0;
#X connect 33 2 41 0;
#X connect 33 3 11 0;
#X connect 33 3 15 0;
#X connect 33 4 11 1;
#X connect 33 4 15 1;
#X connect 41 0 11 2;
#X connect 42 0 15 2;
_______________________________________________
Pd-dev mailing list
[email protected]
http://lists.puredata.info/listinfo/pd-dev

Reply via email to