Extrude Normals

Next
 From:  3dvisuals dude (ODWYERVISUALS)
739.1 
Hi Michael,

As you already know I thoroughly love using MOI. There is, however, just one function which I constantly miss as I use MOI, a function which requires me often to export my models into Wings3D or trueSpace7.51 to achieve, and that is being able to extrude a flat face or flat area along it's "Normal."

I do understand that "Normals" are a polygonal model aspect rather than a conventionally NURBS-based model aspect, but I wonder if there isn't some way to mathematically approximate Normal Extrusion within MOI NURBS. In most cases when I need this particular function within MOI it is a case of a flat surface I wish to extrude anyway. Perhaps there is an inherent MOI function which I am not yet aware of to accomplish this particular task, so since I run into this issue every day with MOI I guess I should finally just ask! ;^)

Thanks,

- 3dvisuals dude
  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)
739.2 In reply to 739.1 
Extrude / Set dir :) (with also "helpers" if needing perpendicular lines for the "normal" dir
---
Pilou
Is beautiful that please without concept!
My Gallery
  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
739.3 In reply to 739.1 
Hi 3dvisuals dude - MoI is supposed to be doing that already if you select a planar surface to extrude.

If you're seeing something different, can you please post an example? Maybe MoI is not properly detecting it as a flat surface or something.

For example - draw a box, and the select one face of the box (by a second click on the box). Then run Construct / Extrude. The default extrude direction should be along the normal of the flat face that you picked, creating a second box adjacent to the first one.

Similarly if you have a set of curves all in one plane, the default extrude direction should be normal to the plane of those curves.


Is it possible that you're trying to extrude multiple objects with different normals all at the same time? This is the situation that currently doesn't work well, right now extrude doesn't know how to handle multiple normal directions simultaneously, it only does one direction at a time. If there are multiple normal directions involved, it will just default to straight up. In a future version I would like to fix this up so that it would be possible to do multiple simultaneous normals but that won't be ready for V1.

- 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:  3dvisuals dude (ODWYERVISUALS)
739.4 
Thanks Michael and Frenchy,

Actually I should have been more clear in what I was trying to decribe but Michael caught it in the end of his response above.

I often select multiple flat faces simultaneously along the exterior of a building model for instance which were created by projecting curves onto the main structure from various angles and then trimming these curves along with the main structure walls to creat faces. I was hoping to be able to simultaneously extrude multiple faces such as these outwardly away from the center of the main structure along the direction of the "normal" of each of these faces. This is not my only "normal-related" usage but it's a very common one of mine.

I do have various workarounds in MOI, of course, only the setup time they take tends to cut into my creativity workflow to a noticable degree and I was just hoping that a "lazyman's approach" with a keystroke or two might exist which I didn't yet know about!

MOI is so intuitive to work with (especially with my Wacom stylus) that I tend to sit down for hours with MOI and with nothing in mind beforehand I still always rapidly produce a large number and variety of models with it. Accordingly though, even slight workflow slowdowns in MOI are much more noticable than they would be within other modeling software. With MOI workflow slowdowns rarely occur for me at all!

Performing "normal-related" actions (sweep/bevel/extrude/inset) upon numerous simultaneously selected surfaces is something I have been doing for many years within Wings3D for the creation of structures intended for eventual realtime multiuser exploration online. I guess I've gotten lazy over the years doing this, because with MOI there is almost always another way (often a much better way) to achieve the same effect as polygon editing tools but still I turn to rapidly producing objects with whatever software I am already accustomed to for specific modeling proceedures. It's a "speed thing." ;^)

Well I'll still be a MOI user with MOI version 2 whenever it arrives Michael, so I'll just look forward to that sometime down the road then! No rush, I'm a very happy MOI camper already! ;^)

Thanks,

- 3dvisuals dude
  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
739.5 In reply to 739.4 
Hi 3dvisuals dude,

One of the differences in approach between MoI and Wings3D kind of gets in the way a bit with this.

Wings controls the amount of an extrusion by just moving the mouse left or right by a bit, mapping a certain number of pixels that your mouse moves to some kind of 3D distance, like say every 10 pixels you move the mouse to the right is one unit of extrusion distance.

MoI doesn't really do any modeling operations with that type of arbitrary mouse waving, instead things in MoI tend to track your mouse directly along 3D lines in the scene. This is to enable more accurate constructions using snapping. For example say you have a vertical cylinder, and a plane like this:



With MoI's extrude mechanism (which tracks along the 3d extrusion line), you can snap the extrusion height to the same height as the cylinder by just moving your mouse to a point on the cylinder, like this:



The wings extrusion method doesn't allow for this kind of tracking and snapping.

But on the other hand, the MoI "track along normal line" method is not really as suited for tracking along simultaneous different normal directions. I haven't really figured out how that should work, that's why it doesn't currently do it. One thing that I was thinking of trying was to show all the normal directions on the screen as dashed lines and then using the one that was closest to the mouse. But that might get messy if there are quite a bunch of lines showing on the screen.

Another possibility would be to just pick a single normal direction, maybe the one from the object that was first selected, and just track along that. That's kind of a more simple thing to set up...

- 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:  3dvisuals dude (ODWYERVISUALS)
739.6 In reply to 739.5 
Thanks Michael.

Actually I often prefer the way MOI does individual face extrusions over the Wings3D approach. I use a lot of symmetry in my virtual architectual designs though and that's where the Wings3D approach comes in handy extruding several faces along different normals simultaneously. (My "virtual architectural designs" are very far from being "standard" architecture!)

I've included a screenshot of a simple Wings3D primitive below for consideration in our related brainstorming here.

When you said:

>"One thing that I was thinking of trying was to show all the normal directions on the screen as dashed lines
> and then using the one that was closest to the mouse. But that might get messy if there are quite a bunch
> of lines showing on the screen.
>
> Another possibility would be to just pick a single normal direction, maybe the one from the object that was
> first selected, and just track along that. That's kind of a more simple thing to set up."
>

...I think you might be close to a possible solution to this with that last concept. In the image below, for instance, if this object were in MOI and rather than being similarly selected on symmetrically opposing faces was instead selected on only one face, perhaps a script could be introduced which offered an option of extruding any exactly symmetrical faces to a given face selection (assuming any exist) and then required the user to select which of those exactly symmetrical faces to extrude prior to basing the final symmetrical extrusions parameters on the users subsequent extrusion of the originally selected face.



Sorry... lots of words there... I guess what I'm trying to say is this:

1) A hypothetical object has 36 faces total, 12 of which are exactly symmetrical to each other.

2) The user wants to extrude 6 of those 12 faces in a similarly symmetrical manner (which would also be along their normals)

3) User selects 1 of the 6 faces and fires up a hotkeyed extrusion script

4) The script examines the selected face against all faces of the object looking for exact existing symmetry.

5) The script then notifies the user of the number of existing matches it located and prompts the user to select among them and hit "done"

6) The script then deselects all but the original face and prompts the user to extrude that originally selected face as desired and to hit "done" again, at which time the script translates that first extrusion to symmetrical versions for the additional faces previously selected and executes additional symmetrical extrusions upon those additional faces automatically.

Granted, that approach wouldn't be in realtime, but it would definitely have it's uses by many folks here in addition to me I'm sure. For me something similar to this would be a fairly big timesaver, but there are of course different ways to do this via mirroring, arrays, and perhaps even construction lines (which I'm a newbie with!).

If such an approach were practical it could also perhaps be similarly used for repetetive scaling operations on symmetrical parts as well.

I agree with you on the potential of additional dashed lines being a clutter nuisance and wouldn't want to approach it that way either, but perhaps an optional script approach similar to this might be handy as a workaround.

What do you think?

- 3dvisuals dude
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:  Michael Gibson
739.7 In reply to 739.6 
Hi 3dvisuals dude, that is a great idea with the symmetry steps you described.

Unfortunately there isn't currently any way for a script to detect and select symmetrical faces like that yet and it isn't really an easy thing to add. So that will have to be more of a longer range project. I would definitely like to add in a bunch of symmetry stuff in the future.

However, I was able to tune up just the regular extrude so that it handles a multiple selection with different normals better now.

Here's an example - here is an extruded 12 sided polygon, with every other face selected:



With the new tuned up extrude (which will be in the next beta), doing a single extrude will do this now:



Your mouse will track along the normal of the last object that you selected, but the distance that you track along it will be applied to each other selected object along their own normals. If you want them all to go in a common direction you can still do that by using "Set Dir" to define a new direction - once you define a direction by pushing "Set Dir", then each object will no longer extrude along its own normal and instead use the direction you specified.

So hopefully this should streamline your extrusion procedure. You still have to manually select all the faces you want, but you can punch them all out along their own normals with just one extrude step with the next beta.

- 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:  3dvisuals dude (ODWYERVISUALS)
739.8 In reply to 739.7 
WOW!

This is awesome Michael! Great work! Thanks!!!

This will be a huge timesaver for me and I'll definitely be using it every day!

Maybe sometime down the road a similar method might also be used for multi-face sweeps or multi-face scaling too!

Man, when you set your mind to a thing you certainly tend to accomplish it very fast, you truly amaze me.

Thanks again,

MOI just gets better every day!!!!

- 3dvisuals dude
  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:  WillBellJr
739.9 In reply to 739.8 
Yes, that IS AWESOME, Michael - thanks a lot for adding this in!

Building my spaceships and buildings are just getting easier and easier with each addition you make - can't wait for the next release!

-Will

PS - You said you made some fixes with the chamfer command in this next beta, right?
  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
739.10 In reply to 739.9 
> PS - You said you made some fixes with the chamfer command in this next beta, right?

Hi Will, I haven't quite got to that yet, but it's about next on my list. It's mostly going to be a UI tuneup for chamfer.

I'm trying to squeeze in a few more tuneups like this (and a few last bug fixes) before releasing the next beta because I want it to be pretty much the last beta.

- 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:  WillBellJr
739.11 In reply to 739.10 
I understand, and I look forward to it - I'm glad you added those last few modeling tune-ups - I certainly appreciate them!

Besides, I'm looking forward to your documentation as well.

-Will
  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
739.12 In reply to 739.11 
Hi Will, I'm tuning up chamfer now and now I figured out what is strange about it in the current beta.

Currently it takes 2 distances, and for every edge it has to figure out which side of the edge should get distance 1 and which side should get distance 2. The way it currently works is that if you have a face selected, or all the edges of a face selected, then that will get distance 1 to the side of that face. Everything else gets distance 2.

But this means that if you have an entire object selected (no faces or edges selected), then everything will use distance2, that's why it feels weird currently with things only having an effect when you change the second distance only, and nothing happening when you change the first distance.

I'm tuning this up for the next beta so that by default chamfer will just have one distance input which will make things easier to control for simple chamfers. There will be a "use 2 distances" checkbox that will let you show the 2nd distance and make things behave the same as the current beta, except I'll switch it so that if no faces or edges are selected everything will get distance 1 instead of distance 2 since that just seems a bit more expected..

EDIT: there is actually another bug mixed in there for the current beta that makes the whole distance1/distance2 thing get fouled up after the first run through as well..


- Michael

EDITED: 11 Jul 2007 by MICHAEL GIBSON

  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:  WillBellJr
739.13 In reply to 739.12 
Okay great Michael!

For me, a lot of times, nothing would happen when I run the command - perhaps it's because it was expecting a distance2 entry instead of 1 - most of the time I'd just put the same value in both but still nothing would happen.

Hopefully it'll work for me as well as fillet does when you're finished with it!

-Will
  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