Anim8or Community

Please login or register.

Login with username, password and session length
Advanced search  

News:

An update to Anim8or, v1.00b, is available with a few bug fixes. Get your copy HERE. See the "ReadMe" file for details.

Author Topic: Frustration with Face Selection + possible BUG in UNDO stack.  (Read 520 times)

chuft-captain

  • Newbie
  • *
  • Posts: 41
    • View Profile
Frustration with Face Selection + possible BUG in UNDO stack.
« on: October 23, 2017, 03:28:01 pm »

Hi,

I'm working on a mesh which is essentially like a curved box with windows. (I'll attach a couple of screenshots to this post to give context to what follows.)

What I need to do is to split this into 2 separate meshes; One mesh containing only the inward facing faces, and the other mesh with all outer facing and other faces (such as those making up the "window sills").

So the approach I've taken is to work on 2 copies of the mesh. In one I'll strip off all the inner faces, and on the other I'll strip off all faces except the inner faces.

This however is proving to be impossible to do in an efficient way (if at all) for a number of reasons.
I'll describe the workflow I'm using step-by-step so hopefully you can see what the issue is.
(Let me know if you need to see screenshots of any of the intermediate steps in order to understand.)

Mesh 1: (get rid of internal faces, leaving outer faces and window sills)
1. Face select mode; Restrict to BACK faces only; In the LEFT viewport, select the lot using area select.
2. Re-enable FRONT selection. In the front viewport, use the MMB to de-select any faces I want to keep (eg. outer faces and windowsills on the opposite side of the mesh ... selected by the previous step).

At this point, the inner faces on just one side of the model are selected, and I should be able to delete them and then perform a similar procedure for the other 5 sides.
Unfortunately, it's not that simple because a number of "window sills" are still selected (by step 1) on the side of the model I'm working on, because very few of these faces are perfectly orthogonal to any given viewport.
So before I can hit the delete key to get rid of the inner faces, I have to laboriously find and de-select those extra faces on the window sills, else they will be deleted as well.

This is a laborious and error prone process, and during this process I have to be careful also not to de-select any of the faces I actually intend to eventually remove.

The problem is that I have to find and deselect ALL of these ectras without making a single mistake before I can hit the DELETE key. This is turning out to be virtually impossible due to a BUG (or a functional flaw) in the UNDO history...
It appears that only actual modeling changes are being pushed onto the UNDO stack, which means that if at any point in this laborious process I make a simple de-selection error, or click the wrong mouse button, or forget to change modes between operations, there's no way to undo that single action.

At that point I have to go right back to step 1 and start all over again ... only to fail again.

So far I haven't been able to do even a single side of this mesh to completion, despite multiple attempts.

IMO, all actions (not just model changes) should be pushed onto the UNDO stack, as it's just too easy to make a single mistaken select / de-select, or mis-click in this long process.

I'd appreciate it if anyone has any clever techniques / suggestions to get around these issues in order to achieve the original goal.

Be interested also to know your opinion on the UNDO issue Steve, as it's all to easy to make accidental de-selection errors (putting me back to step 1) when using a MMB which also doubles as a scroll-wheel. If only I could just UNDO the last "action", then I wouldn't be forced back to square 1 every time I make a mis-step in the process.

Regards
CC
« Last Edit: October 26, 2017, 07:58:54 am by chuft-captain »
Logged

Trevor

  • Full Member
  • ***
  • Posts: 167
  • Goldfinger64 Dev OS:10.0.17017 Gfx:RX480 Loc:UK
    • View Profile
    • LS Tech Services
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #1 on: October 23, 2017, 06:53:38 pm »

I would say try doing a small group of faces and pressing Ctrl-D (Detach faces) then go to object mode and press H (Hide).
this will detach and hide faces you want removed.
At the end of the process press Shift-H to unhide all the detached faces, select the main object then go edit>Select>invert selection
then go mesh>Join Solids
then go back to VEF mode and to Ctrl-A Shift-L, enter a very small number (0.001) and press ok, this will rejoin all verticies that were detached before, now you have 2 objects, inside and outside.

Trev
Logged

chuft-captain

  • Newbie
  • *
  • Posts: 41
    • View Profile
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #2 on: October 24, 2017, 02:55:09 am »

Trev,

Thanks for the suggestion.
That sounds like it will work but also probably just as tedious, if not more so, than my original approach. A lot of mode-switching, but it might lessen the risk of my finger sometimes missing MMB and clicking on the LMB instead. (We all know what happens then ...)

I suspect I'll still encounter issues with not being able to UNDO certain actions when I make a mistake using your approach ... which again might set me back to the beginning, but it's worth a try I guess

I do think however that the issue of the restricted UNDO functionality should be addressed. If that was resolved then accidental clicks or inaccurate selections would be easy to roll back which would make both of these approaches much more robust, not to mention making all anim8tor workflows much more robust.
Any thoughts wrt UNDO functionality STEVE?

Thanks
CC
Logged

ENSONIQ5

  • Sr. Member
  • ****
  • Posts: 928
    • View Profile
    • Mission Backup Earth
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #3 on: October 24, 2017, 07:04:47 am »

I can't comment on the undo function, but your workflow is not how I would do this.  I'm a bit old-school, rather than working with faces I'd be deleting lines and points in a click, delete, click, delete fashion.  I'd also be making it as easy on myself as possible, since your object is symmetrical in two dimensions I'd be splitting it through the middle in the X and Z dimensions, leaving a quarter of the model to work with.  After creating a copy I'd delete all inside lines, leaving the outer shell with sills.  On the copy I'd be deleting all sill vertex points leaving only the inner faces.  Then both models can be mirrored in X and Z, points merged and you're done.

It would be tedious but I don't think you're going to be able to avoid tedium at this stage.  To be honest it would probably just be simpler to re-build the model from scratch in two separate pieces but I don't know the project so maybe that's not feasible.
Logged

Trevor

  • Full Member
  • ***
  • Posts: 167
  • Goldfinger64 Dev OS:10.0.17017 Gfx:RX480 Loc:UK
    • View Profile
    • LS Tech Services
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #4 on: October 24, 2017, 05:25:39 pm »

Agreed, I forget about mirror, mainly because last I used it - it was buggy.

As for undo, wanting every click to be stored in the undo buffer would lead to filling the buffer with a LOT of commands, potentially loosing a meaningful edit later, especually in your example where you have lots of clicks.
Lets say you accidently delete an object before starting the selection Operation. You get to the end then realise the object is missing, instead of undo-ing the 1 operation (allbeit tedious) you have to undo all only to find that the buffer runs out and your other object is gone forever.
As it currently stands you could undo twice, copy the lost object, redo twice and paste.
Admitably, my group method does increase the undo buffer too, but not as much as every click.

Trev
Logged

chuft-captain

  • Newbie
  • *
  • Posts: 41
    • View Profile
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #5 on: October 24, 2017, 09:21:31 pm »

ENSONIQ5,

I agree that working on 1/4 of the mesh is a good idea, regardless of the workflow. What do you recommend as the best way to accurately split the mesh (exactly on the axes). Important to do this as exactly as possible so that are no tiny gaps when mirrored later.
Is there a way to delete every part of a mesh in a selected quadrant? ... or is the cutting tool the only way?

Cheers
CC
Logged

chuft-captain

  • Newbie
  • *
  • Posts: 41
    • View Profile
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #6 on: October 24, 2017, 10:06:18 pm »

Trev,

I understand your point, but seems to me it's just a tradeoff between ease of undo versus complete un-recoverability. I'm not suggesting ALL actions (eg. POV rotates, etc) should be preserved, just "significant" changes.
My personal opinion is that in many Anim8tor workflows changes in selection status of FEP is a significant enough action to warrant inclusion in the UNDO list, not least because the fiddly nature of these "edits" means that mistakes are likely to be frequent, consequences costly in terms of rework ( as my example demonstrates), and would not be expensive in terms of memory use in the UNDO stack.

Text editors like Notepad++ preserve all significant state changes in this way, and it's not usually a problem as long as you notice your mistake before too much new work has been created. Granted, the issues are a lot more complex in a 3D editor, than in a text editor, but the basic principle is the same.

I take your point about noticing a mistaken delete, but that
is just the nature of the beast, and applies equally in the text-editor example.

However, the point of UNDO functionality is to recover from recent mistakes. If a mistake goes un-noticed for a long time, then a decision needs to be made to either roll back and sacrifice subsequent work, or roll forward and apply a patch for the earlier error.
Just a decision you have to make depending on the circumstances, and the relative size/complexity of subsequent work vs original error.
When the UNDO stack preserves all significant state change, then you have the opportunity of making this decision (roll back or patch). When it doesn't, then significant amounts of effort can be lost with a single unfortunate click. (Which is where we are at present IMO).
Hope this makes sense.

Regards
CC
« Last Edit: October 24, 2017, 10:13:00 pm by chuft-captain »
Logged

ENSONIQ5

  • Sr. Member
  • ****
  • Posts: 928
    • View Profile
    • Mission Backup Earth
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #7 on: October 25, 2017, 07:36:50 am »

ENSONIQ5,

I agree that working on 1/4 of the mesh is a good idea, regardless of the workflow. What do you recommend as the best way to accurately split the mesh (exactly on the axes). Important to do this as exactly as possible so that are no tiny gaps when mirrored later.
Is there a way to delete every part of a mesh in a selected quadrant? ... or is the cutting tool the only way?

Cheers
CC

I would use the knife tool constrained to the grid which should cut dead on the axis centres, assuming your grid isn't too fine.  Once you've knifed the mesh just delete all points from 3 of the quadrants, leaving a single quadrant to work on.  In fact you could just cut as close as you can to the line and not bother with the grid, when you come to the merge stage and start merging points together each new merged point will be mid-way between the two points that merged to form it, and therefore dead on the axis with no gaps.  You may need to fiddle with the merge range a bit, so long as you cut pretty close to the line you should be able to use a very small merge range which will prevent merging of points that should be separate.  Note that meshes need to be joined before their points can be merged.
Logged

lppena

  • Sr. Member
  • ****
  • Posts: 299
  • Anim8or, does a body good.
    • View Profile
    • Truespace Anim8or Casual Modeling Forum.
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #8 on: October 25, 2017, 11:10:31 am »

Is it possible just to uniformly rescale the 2nd copy to fit inside the 1st?
Logged

chuft-captain

  • Newbie
  • *
  • Posts: 41
    • View Profile
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #9 on: October 26, 2017, 12:02:04 am »

Thanks guys for the suggestions.

I've managed to get this done with a combination of your suggestions.
1. By dealing with a quarter of the model this reduces the size of (de)selection tasks, and also makes the job easier thru easier access to the inner faces.
2. I'm then using the detach-faces method to separate into 2 meshes once the correct set of faces is selected. The hardest part of the entire process is getting the right set of faces selected - this is still somewhat time-consuming and prone to error, but less than before.
3. Once separated, I copy inner and outer into separate objects or layers, and then mirror, and join solids to recreate the original quadrants.

I didn't find it necessary to incrementally select small sets of faces then hide them and join them all at the end. This would probably reduce likelihood of mistakes, but at least for now I've found that reducing the size of the problem and easier access to inner faces means I can pretty much get it done in a single step (although I did notice one tiny error).

Now I just need to gradually improve this process so that it is less time-consuming and error-prone in future, as I will need to go through multiple iterations developing this model.

Thanks for all the suggestions. This is a really great forum. I haven't been here for quite a while, but got some very helpful suggestions almost instantly.
Really much appreciated!

Thanks again
CC
« Last Edit: October 26, 2017, 09:20:03 am by chuft-captain »
Logged

chuft-captain

  • Newbie
  • *
  • Posts: 41
    • View Profile
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #10 on: October 26, 2017, 08:07:12 am »

Is it possible just to uniformly rescale the 2nd copy to fit inside the 1st?
I'm not sure exactly what you mean, but I think that approach may result in scaling errors, and contiguous parts of the 2 meshes may no longer meet with that approach ... but perhaps I mis-understand what you mean.
I think I have a reasonably workable method now, but thanks also for the suggestion. If I can get my head around what you mean, then that may be an alternate solution. There's many ways to skin a cat, esp. in 3D modelling (pun intended).

Cheers
CC
« Last Edit: October 26, 2017, 08:19:17 am by chuft-captain »
Logged

ENSONIQ5

  • Sr. Member
  • ****
  • Posts: 928
    • View Profile
    • Mission Backup Earth
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #11 on: October 26, 2017, 09:41:33 am »

I'm not sure of your workflow but if you are creating these objects in Anim8or there is a quicker way to get the end result.

1) Create the object with no thickness (Fig 1) and place a copy in a second Object
2) Select all faces (Fig 2)
3) In point-edit mode, select the connected extrude tool (Fig 3)
4) Pull out the faces, creating sills in the process (Fig 4)

The original object should fit perfectly inside the extruded outer object.
Logged

chuft-captain

  • Newbie
  • *
  • Posts: 41
    • View Profile
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #12 on: October 27, 2017, 06:26:37 am »

Actually, I do most of the design work in openSCAD before importing into Anim8tor for finishing (splitting of the meshes, texturing, etc).
(Fig 1)

This makes it very fast and easy to re-design because it's a parametric design.

eg.
Want fewer floors? Change a single value: (Fig2)
Want more floors? (Fig3)
Hell of a lot more floors?  (Fig4)

CC
« Last Edit: October 27, 2017, 06:27:17 am by chuft-captain »
Logged

chuft-captain

  • Newbie
  • *
  • Posts: 41
    • View Profile
Re: Frustration with Face Selection + possible BUG in UNDO stack.
« Reply #13 on: October 30, 2017, 01:20:51 pm »

Thank you to everyone who took the time and effort to make suggestions on this thread.
I tend to just learn whatever limited functionality I need to get specific tasks done in Anim8tor so I probably haven't developed the depth of knowledge most people here have, so I really appreciate your advice.
It's always tricky when you "don't know what you don't know" (if you get my drift).

Cheers
CC
Logged