MoI discussion forum
MoI discussion forum

Full Version: "style select" within a solid subset.

Show messages: All  1-20

From: neilwilson3412
24 Aug 2019   [#1]
say i created a custom shape assigned a new color "style" then i used that shape to make five Boolean operations on another mesh with another "style" the beauty is it transfers the new style with those faces which makes for quick selecting

i know we can do this from clicking on the styles menu but i would love a script or command that i can hotkey please.



Image Attachments:
moi styles.JPG 


From: Michael Gibson
24 Aug 2019   [#2] In reply to [#1]
Hi Neil, I'll need a little more information on how you want the script to function. Like in your screenshot you've got 20-something styles there, how should the script determine which particular style you want to target for selection?

- Michael
From: neilwilson3412
24 Aug 2019   [#3] In reply to [#2]
sorry Michael.


i just want the function to select faces with in a solid the same as you can do from pushing the yellow selection circle.

just that script so i can pick a style press a hot key and that script will run without having to move my mouse over to that tiny little yellow circle.
From: Michael Gibson
24 Aug 2019   [#4] In reply to [#3]
Hi Neil, re:

> just that script so i can pick a style press a hot key and that script will run without having
> to move my mouse over to that tiny little yellow circle.

The part I don't understand is the "pick a style" part, how do you want to pick the style?

Thanks,
- Michael
From: coi (MARCO)
24 Aug 2019   [#5]
hi,
maybe could try the SelectStyle script..

http://kyticka.webzdarma.cz/3d/moi/#SelectStyle
From: neilwilson3412
24 Aug 2019   [#6] In reply to [#5]
thanks for the suggestion... i have this script and use for object selection......however im looking to achieve the same result on a sub surface level within a solid ..the script you recommend does not perform that operation.
From: neilwilson3412
24 Aug 2019   [#7] In reply to [#4]
hi Michael,

i really hope this explains it better .... i was hoping it would be quite simple....

Image Attachments:
select-style.jpg 


From: Michael Gibson
24 Aug 2019   [#8] In reply to [#7]
Thanks Neil, yes I think I understand now. Please try this script, does it do what you need:

script: /* Expand selection over same styles on sub objects */ var styles = new Array(); var parents = new Array(); var sel = moi.geometryDatabase.getSelectedObjects(); for ( var i = 0; i < sel.length; ++i ) { var obj = sel.item(i); if ( obj.selected ) { styles[obj.styleIndex] = true; } if ( !obj.isTopLevelObject ) { var par = obj.getTopLevelParent(); parents[par.id] = par; } } for ( var i in parents ) { var subobjs = parents[i].getSubObjects(); for ( var j = 0; j < subobjs.length; ++j ) { var subobj = subobjs.item(j); if ( subobj.isFace && styles[subobj.styleIndex] ) subobj.selected = true; } }

- Michael
From: neilwilson3412
24 Aug 2019   [#9] In reply to [#8]
Michael your a legend !!!!!!

it work perfect!!!!!!

thank you so much!!!
From: Michael Gibson
24 Aug 2019   [#10] In reply to [#9]
That's great Neil, you're welome!

- Michael
From: Frenchy Pilou (PILOU)
25 Aug 2019   [#11]
does this old one for V2 "On objects" works also on V3? (seems yes but want to be sure! :)

script: /* Extend the selection of objects with the same style */ var objects = moi.geometryDatabase.getObjects();var styles = new Array();for ( var i = 0; i < objects.length; ++i ) { var obj = objects.item(i); if ( obj.selected ) styles[obj.styleIndex] = true; } for ( var i = 0; i < objects.length; ++i ) { var obj = objects.item(i); if ( styles[obj.styleIndex] ) obj.selected = true; }
From: Michael Gibson
25 Aug 2019   [#12] In reply to [#11]
Hi Pilou, yes that one works ok on v2, v3, and v4.

- Michael
From: Frenchy Pilou (PILOU)
25 Aug 2019   [#13]
else i have a bug with the "sub-object" ?


From: Frenchy Pilou (PILOU)
25 Aug 2019   [#14]
else does this normal ?

after boolean Diff of a blue sphere from a Red Cube i have the "generative arc circle" on the result ?

So 2 "facetts" on the result!


From: Michael Gibson
25 Aug 2019   [#15] In reply to [#13]
Hi Pilou,

re:
> else i have a bug with the "sub-object" ?

It looks like that's from your changes with editing the comment part of the code, script code can only have ascii characters in it.

- Michael
From: Michael Gibson
25 Aug 2019   [#16] In reply to [#14]
Hi Pilou,

re:
> else does this normal ?
>
> after boolean Diff of a blue sphere from a Red Cube i have the "generative arc circle" on the result ?
>
> So 2 "facetts" on the result!

That's a normal result if that was where the closing "seam" edge of the sphere was at.

- Michael
From: Frenchy Pilou (PILOU)
25 Aug 2019   [#17] In reply to [#16]
"Seam's sphere" yes it's :)
So i suppose to rotate it before boolean Diff can solve this little disturb...

else
I correct the "sub object bug" in pasting your "English script" inside the "ShortCut" Moi editor and change comments directly !
(even with accents)
That works! :) I had previously copy / past the text from another prog... maybe this explain that! :)
From: neilwilson3412
28 Aug 2019   [#18] In reply to [#16]
hi Michael,


can you make another script to do the same for edges that get assigned a style.
From: Michael Gibson
28 Aug 2019   [#19] In reply to [#18]
Hi Neil, re:

> can you make another script to do the same for edges that get assigned a style.

Sure, please give this one a try:

script: /* Expand selection over same styles on edge sub objects */ var styles = new Array(); var parents = new Array(); var sel = moi.geometryDatabase.getSelectedObjects(); for ( var i = 0; i < sel.length; ++i ) { var obj = sel.item(i); if ( obj.selected ) { styles[obj.styleIndex] = true; } if ( !obj.isTopLevelObject ) { var par = obj.getTopLevelParent(); parents[par.id] = par; } } for ( var i in parents ) { var subobjs = parents[i].getSubObjects(); for ( var j = 0; j < subobjs.length; ++j ) { var subobj = subobjs.item(j); if ( subobj.isEdgeCurve && styles[subobj.styleIndex] ) subobj.selected = true; } }

- Michael
From: neilwilson3412
28 Aug 2019   [#20] In reply to [#19]
nailed it thank you!

Show messages: All  1-20