Edges & Visuals

Next
 From:  stefano (LIGHTWAVE)
9958.1 


Few questions about edges...

1. Is it possible to selectively highlight/select an edge element and remove/hide it so when you show 'edges'
in the types list it does not show up (for example vertical line on the internal radius - hide)?
>>Noticed i can select the vertical part but there is no 'transparent colour' in styles.
Potential solution: Put these objects on "HIDE" Layer(Style) or script ??

2. Is it possible to change the colour of the edges to be a bit more subtle on some objects?
>> Likely I would use a custom STYLE for this.

3. Is it possible to make one object have no edges displayed so even if the type has EDGES "ON"
a few objects ignor the global setting?
>> As per #1?

EDITED: 19 Sep 2020 by LIGHTWAVE

Attachments:

Image Attachments:
Size: 13 KB, Downloaded: 20 times, Dimensions: 929x606px
Size: 18.6 KB, Downloaded: 20 times, Dimensions: 709x253px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9958.2 In reply to 9958.1 
Hi Stefano,

re:
> 1. Is it possible to selectively highlight/select an edge element and remove/hide it so when you show 'edges'
> in the types list it does not show up (for example vertical line on the internal radius - hide)?

No, the Types > Edges control will target all edges for hiding/showing or all visible edges for selecting. There isn't any way to make one specific edge exempt from its handling.

But you can assign the edge to its own style or name to control it using the scene browser. Or maybe assigning all the other edges of the object to their own name or style would be good so then you could show them without affecting that one.


> 2. Is it possible to change the colour of the edges to be a bit more subtle on some objects?
>> Likely I would use a custom STYLE for this.

There are also some controls for how edges are displayed in Options > View. You can make them be a little lighter or darker than the regular style color there. That's a global setting though.


> 3. Is it possible to make one object have no edges displayed so even if the type has EDGES "ON"
> a few objects ignor the global setting?

Not exactly because the states in the scene browser are not global settings, they're just a reflection of the combined state of all the individual objects that are addressed by that scene browser item. The hide/show property is on individual objects, using the scene browser lets you do an action like hide/show/lock/select on a set of objects but the scene browser item does not itself own the property.

So when you go to Styles > Red and do a hide there (click on the eye), that hides all the objects that have a style assignment of Red. It doesn't change a property on the style itself.

This system is why it is possible to have different categories of controls (object names, types, styles) that can be used in combination with each other, because they're all manipulating individual object properties. If they were global states (like layers often are in other programs), then it becomes difficult to do something like hide the Red layer and then go show just one named object that also happens to be on the Red layer.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9958.3 In reply to 9958.1 
There are also some scripts here for manipulating wireframe states:
http://kyticka.webzdarma.cz/3d/moi/#RandomizeStyleColors

Stuff like hide all edges just of the selected object, etc...

There is also an experimental function for the Scene Browser that you can enable in moi.ini:

[Scene Browser]
EnableSelectionSubTypes=y

That adds 2 additional entries to the Types section of the Scene Browser: "Selected", and "Unselected" , if you expand those then the controls under them will be targeting a combination of selection and type. For example doing a hide on Unselected > Edges will hide all edges that are unselected and leave selected edges alone. These controls may still need a little tuning.


Another related area for selection by type is in the "Details..." object properties dialog. There's a report at the top of the dialog on the styles and types for the current selection. The labels for the report are clickable, and will filter selection to that item.

So when you see this for example:


You can click the "4 lines" label in the report there and that will narrow the selection to just those objects. You can also click on the style report labels. You can also hold down Shift to click on multiple labels, like hold down shift and click on both "4 lines" and "Orange" to get both of those, it will trigger when you release shift. Also Ctrl+click will remove those objects from selection instead of filtering selection down to them.

- Michael
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  stefano (LIGHTWAVE)
9958.4 In reply to 9958.2 
hi michael, all things basically now dealt with by using existing styles here..
i just put all the edges i dont want to see on a 'style' RED layer and then "hide" with eye tool
thats incredibly easy for me to manage and perfect for now.







Thanks again!

--will take a look at the other stuff you list bit later on looks interesting (understatement).

EDITED: 19 Sep 2020 by LIGHTWAVE

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  stefano (LIGHTWAVE)
9958.5 In reply to 9958.4 
Quick Edge Selections:
Styles Hide/Unhide + EnableSelectionSubTypes=y


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9958.6 In reply to 9958.5 
Hi Stefano, also if you select one edge on an object, then Ctrl+A (Select all) after that will select all edges of that one object and not other things.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  stefano (LIGHTWAVE)
9958.7 In reply to 9958.6 
Thanks Michael that seems like something I totally overlooked! Stefano
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  stefano (LIGHTWAVE)
9958.8 In reply to 9958.7 
Hi Michael, is it possible to "select all" where it only picks the edges that span a z axis.
E.g. are vertical edges not horizontal ones.Might be 16 of them on a frame solid as shown...
2x4 inside edges, and 2x4 outside edges.

one potential way is suggested e.g. via selecting 1st one then using object properties to find
others. script maybe is the other..

EDITED: 22 Sep 2020 by LIGHTWAVE

Image Attachments:
Size: 332.5 KB, Downloaded: 27 times, Dimensions: 1050x594px
Size: 159.5 KB, Downloaded: 27 times, Dimensions: 675x498px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
9958.9 In reply to 9958.8 
You have something who select by Length
Change dimensions min, max as you want...

script: /* Select by Length */ var min = 1.0, max = 5.0; var crvs = moi.geometryDatabase.getObjects().getCurves(); for ( var i = 0; i < crvs.length; ++i ) { var crv = crvs.item(i); var len = crv.getLength(); if ( len>= min && len <= max ) { crv.selected = true; } }

and this one
change size = as you wish...

script: /* Select Smaller Than given Length */ var size = 1.0; var objs = moi.geometryDatabase.getObjects(); for ( var i = 0; i < objs.length; ++i ) { var obj = objs.item(i); var bbox = obj.getBoundingBox(); if ( bbox.diagonalLength < size ) obj.selected = true; }

EDITED: 22 Sep 2020 by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Cemortan_Tudor
9958.10 
http://moi3d.com/wiki/V4Beta
crv.isLine
only this condition + direction - start learning scripting xD
- Tudor -
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  stefano (LIGHTWAVE)
9958.11 In reply to 9958.9 
Thanks Pilou, if the lengths changing I have to likely get the min and max to cover everything.
will give it a try. If the designs get a bit more standard this could be good. -Stefano

@Tudor pretty powerful this scripting stuff.
I might know the logic or requirement....

1. If line is on xy fixed position and z points is variable, select, otherwise no selecto.
Or
2. If line is xy variable and z point fixed select, otherwise no selecto.

The best way of implementing this is I think to select the 1st line or edge 1st.
So the script has a cheksum right there "if line selected = 1 or 2" select others like it

1 selects vertical lines (edges)
2 selects horizontal lines (edges)

Excuse my basic knowledge of programming. I have miles to go!

I like sound of this one ...

crv.isOnPlane could that be used maybe to select lines as indicated?

----------
> I dont think this is easy <
Reference the image attached I am trying to find a 'one click' way...
the script would need to select the EDGES on the external
and after that the inner edges would need to be done seperately.

these selection methods dont seem to work as you are crossing other
areas with other edges that dont need to be selected.
http://moi3d.com/forum/lmessages.php?webtag=MOI&msg=8905.19

'wireframe mode' is easiest for manual selection i find.
-----

EDITED: 22 Sep 2020 by LIGHTWAVE

Image Attachments:
Size: 164.2 KB, Downloaded: 18 times, Dimensions: 774x371px
Size: 146 KB, Downloaded: 16 times, Dimensions: 1338x715px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9958.12 In reply to 9958.8 
Hi Stefano,

re:
> Hi Michael, is it possible to "select all" where it only picks the edges that span a z axis.
> E.g. are vertical edges not horizontal ones.Might be 16 of them on a frame solid as shown...
> 2x4 inside edges, and 2x4 outside edges.

You can do a crossing window selection to do that, select one edge then drag the window from right towards the left through the middle of the object:



- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  stefano (LIGHTWAVE)
9958.13 In reply to 9958.12 
Hi Michael,

I could have likely explained this better! Anyhows, the manual selection is admittedly very fast and the learning goes on...
the issue i am finding is I will be selecting other objects usually on drag selecting. Then its another de-selection.

I'd be interested to know if all the colours I am showing as 'EDGE selection groups' in this video
could actually be 'identified' by a script. Ideally, few click solution.

-Stefano

EDITED: 22 Sep 2020 by LIGHTWAVE


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9958.14 In reply to 9958.13 
Hi Stefano,

re:
> the issue i am finding is I will be selecting other objects usually on drag selecting. Then its another de-selection.

You can solve this by hiding the other objects so only the one you need to work with currently is visible.

A quick way to do that is to select your object of interest and then right-click on the Edit > Hide button. That will trigger the "Isolate" function which will hide other objects and only leave the selected one showing. When you're done right-click on Edit > Hide again and things will return to the same visibility state as before the isolate.


> I'd be interested to know if all the colours I am showing as 'EDGE selection groups' in this video
> could actually be 'identified' by a script. Ideally, few click solution.

So you mean the vertical lines but only the ones on the outermost surfaces? Right now I can't really see an easy way to identify those using script.

I would recommend using 2 window selections like you show.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  stefano (LIGHTWAVE)
9958.15 In reply to 9958.14 
Hi Michael,

You can solve this by hiding the other objects so only the one you need to work with currently is visible.
>> Will start using that for sure.

So you mean the vertical lines but only the ones on the outermost surfaces? Right now I can't really see an easy way to identify those using script.
>> Yes in this instance it would be like this picture shows.





I would recommend using 2 window selections like you show [ + 'wireframe' + spellcheck ]

- Stefano

EDITED: 22 Sep 2020 by LIGHTWAVE


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
9958.16 In reply to 9958.15 
Hi Stefano, I guess if you had a center point to reference then in that case a script could evaluate the surface normal at say the midpoint of the edge and see whether that is pointing towards the center point or away from it.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  stefano (LIGHTWAVE)
9958.17 In reply to 9958.16 
Hi Michael, as these are always regular shaped 'frames' I can presume there is always a "box" centre. It's good to know theres always a way.

Learnt a lot about manual selections on this one so likely i can already work 50% faster.... Originally selecting those inner verticals with solids in the way was 'fun' as I orbited around the contours. Thanks again - Stefano

--------------------------------------------------------------------------------------------
> Wireframe Shortcut Script:
script:var breps = moi.geometryDatabase.getObjects().getBReps(); var hide = true; for ( var i = 0; i < breps.length; ++i ) { var faces = breps.item(i).getFaces(); if ( i == 0 ) hide = !faces.item(0).hidden; faces.setProperty( 'hidden', hide ); }

Others of interest here:
http://kyticka.webzdarma.cz/3d/moi/#ShadedDisplayMode
--------------------------------------------------------------------------------------------

Will be trying this 'adjacent edge' loop script also...ref Michael post
# 3112.22
script: /* Loop selection */ moi.geometryDatabase.selectLoop();

EDITED: 28 Sep 2020 by LIGHTWAVE

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All