MoIV2 Beta Nov-21-2008 Questions

 From:  Michael Gibson
2168.53 In reply to 2168.44 
Hi Ed,

> For odd shaped objects or multiple selections, then the bounding
> box dimension is the one to use.

What is the definition of an "odd shaped object" though - is it anything other than a rectangle?

Does taking one corner point of a rectangle and moving it to the inside a bit change the rectangle to then be an "odd shape"? If so then that means that moving a rectangle's point by a tiny amount in one direction would cause the whole shape to report a completely different size than the previous rectangle's size, even though it was just a tiny edit.

I think that's a pretty bad problem... I just don't think that method is viable, it's too brittle and not general purpose enough. It would not really be of much use unless you were only modeling with rectangles and no other shapes - that is a pretty big limitation.

The current system that I'm using is general purpose and doesn't have that kind of "morphing the width by height dimensions after small change" problem.

There is another alternative that would be more in line with what you are asking, but it involves a fair amount of work and various technical difficulties and side effects. That system would be to keep a "local axis" defined on every single curve that was created, so that for example if you edited the rectangle and moved one of its points over a bit, it would still remember the original rectangle's orientation and report its size in that orientation so there wouldn't be a sudden shift.

That involves a whole bucket load of problems though, it probably requires methods to see and edit those local axes, and typically having an local axis showing up right in the middle of a bunch of curves is a rather weird thing in many aspects, it kind of takes away some of the simple "2D drawing" type behavior, like it is just strange to be working on a drawing made up of a lot of lines and have all these special "axis markers" in the middle of each individual line segment, filling the screen with odd marks... But if you don't show those axis markers prominently then it becomes hard to know what directions are being used for the bounds reporting. Another related way is to make all curves live only on a "sketch plane". That can prevent proliferation of tons of "local axis" marks all over the place, but then tends to have the bad effect of restricting your freedom to just draw curves or lines in space at arbitrary 3D locations.

So there is kind of a whole load of baggage that comes along with such things that I'm not particularly hot to dump into MoI...


> Same idea would apply to changing the size of doors and
> windows in an architectural drawing to elements having
> standard dimensions.

This would probably be better handled with a kind of "component" system like SketchUp.

Instead of trying to stick a "local axis" on every single curve and individual line object, it would be better if it was only something like a "component instance" or "block instance" type object would have such an axis. That would be more natural for such an entity to prominently display the axis when it was selected, it would not be as weird as seeing a line drawing with a zillion axis markers in the middle of all the lines...

So I'm thinking it may not be until that type of mechanism is available in MoI before things would work totally in the way that you are asking about. I'm not really sure when that will happen, there are some other kinds of basic object organization mechanisms that I'm probably going to try to get working first before that.


The way the current system works, you can see and edit the proper dimensions that you are talking about though if you set the construction plane to be oriented along that plane.

So for example if you want to edit some curves for a window, set the construction plane to the wall that they are on, then when you select those curves the bounding information that you see and can edit will be the bounds oriented in that wall. That should give you a way to make those kinds of edits until the time that a component type system is available. This system also works with curves of any shape, not just rectangles.


Anyway, those are some of the issues involved as for why the system works the way it currently does.


- Michael