New stretch function for v2.0?

Next
 From:  Daddi
2639.1 
Hi, Michael!

I just bought a license for MoI v 1.1 because I simply love the user interface. Easily the best 3D CAD user interface on the market (and I've tried several...)!

I just wanted to point out that I'm missing a function that was available in 2D AutoCAD; a stretch function that enables you to select what part of an object that should be stretched leaving the ends untouched (if you understand what I mean). You select the object that should be strecthed and then you define a line (2D) or a plane (3D) intersecting the object where you want the stretch to be executed. After this, you select a scaling (stretching) factor, or a base point and a "strech to" point.

Is it possible to add such a strecth function to the 2.0 release? I think it would improve the workflow even more. Or, maybe the function already exists, but I've not discovered it?


My best regards, and thanks for the great work!

//David Kaplan, Sweden
  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)
2639.2 In reply to 2639.1 
Don't exist for the moment
You can yet deform by Transform /Size/ 1D but sure that is not your streach function ;)

That you can make also is for example
draw 2 curves
Loft
done
show points
select one curve
move some points
= you will see the form change ;)
  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
2639.3 In reply to 2639.1 
Hi David, thanks very much for your order, I'm glad that you like MoI!

re: Stretch function like 2D AutoCAD

You can get the same function as AutoCAD's stretch command in MoI by turning on control points for curves that you want to stretch. Points are turned on or off by using Edit/Show pts.

After you have turned on those points, just do a window select exactly like you would inside of AutoCAD's stretch command. That will capture just some of the points and then you can drag them or use the Move command which will then move just those points over and leave the other ones undisturbed.

Here's an example video:



The stretch function in AutoCAD works in the same way, it just basically enters into a special mode when that command is started so that only control points are picked to be modified when you do the window select for what area to modify, it just doesn't really show you the individual points.

In MoI just turn on control points first and then you can do the same kind of thing with a regular window select + drag or move.

Or if you need a scale factor you can also use the Transform/Scale command on those selected points as well. But if I remember right the AutoCAD Stretch command does not let you enter in scale factor actually - it lets you enter a "displacement" value which is a distance to move. To get that same kind of displacement in MoI you could use "Distance constraint" with the Move command. When you are in the Move command, just type your distance in and your Move will be constrained to use that distance amount and then you pick the target point to define which direction to go.


Please let me know if that doesn't do what you need, or if you need some additional information!

Thanks,
- 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:  Frenchy Pilou (PILOU)
2639.4 In reply to 2639.3 
Maybe I have confused stretch and bend deformation :!
  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
2639.5 In reply to 2639.4 
Hi Pilou, yeah a deformation of a solid can be a somewhat different thing.

But David mentioned 2D AutoCAD - AutoCAD has what is called a "Stretch" command that is meant to alter a 2D line drawing by moving only a portion of the vertices instead of all of them (as shown in the video). When in the AutoCAD Stretch command you make a window selection and only the endpoints within that window are moved around, with the other ones remaining in place.

In MoI if you want to do the same thing to a 2D line drawing, you just turn on control points and select the ones that you want to move and don't select the ones you want to remain in place. Then you can use any of the transform commands or dragging to make the alteration. That then ends up with the same result as "AutoCAD Stretch".

In MoI turning on control points allows you to select only some vertices so that transforms only alter just those points and not all points in 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:  Daddi
2639.6 
Hi, Michael and Pilou!

Thanks for your answers; I hadn't realized what could be done with the control points, sorry for that! Great solution for the 2D drawings. However, I'd like a similar function for solids as well - a "killer" IMHO!

Would it be possible, or am I out of line? Maybe there is a better way of achieving my goal...?

I drew a new furiture set (in 3D) for our bathroom in MoI the other day. When playing around with the design, changing the measurements, I would have liked a stretch function similar to my previous description.


BR,
David K.
  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:  Daddi
2639.7 
I'll add a picture trying to explain what I'm after.







//David
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:  Frenchy Pilou (PILOU)
2639.8 In reply to 2639.7 
maybe this can help you ;)

EDITED: 18 May 2009 by PILOU

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:  Daddi
2639.9 
Hi, Pilou, and thanks for the suggestion! I had already tried that operation, but I'd like to keep the Z-size of the parts not touching the intersecting plane. See my pic below.


Best regards,
David

PS Thanks for worrying about my humble wishes!


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:  DannyT (DANTAS)
2639.10 In reply to 2639.7 
Hi David,

There are a few methods in stretching your cupboard, not exactly as you're asking though.
Pilou has shown you the quickest way if you're not concerned to much about accuracy of all your pieces, this method tends to scale all the horizontal pieces, which changes the thickness.
Another method to avoid the horizontal pieces from changing is to select the vertical pieces only, do your 1d stretch and then drag and snap the horizontal pieces back in place.
BTW in MoI V2, there would be less mouse clicks to achieve the same thing.



Cheers
~Danny~
  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
2639.11 In reply to 2639.6 
Hi David,

re: Stretch on solids

I do hope to add something for that some day, but unfortunately it is a far, far more difficult thing to make work on solids than on 2D curves. That means that it will probably be a while before I'll be able to gather enough time to work on it.

Note that in AutoCAD, the Stretch command only works on 2D line type entities and not solids. From the AutoCAD 2008 help file:
quote:
STRETCH moves only the vertices and endpoints that lie inside the crossing selection, leaving those outside unchanged. STRETCH does not modify 3D solids, polyline width, tangent, or curve-fitting information.

One reason why solids are so much more difficult is that typically after you have done some booleans, your solid is made up of trimmed surfaces where the control points of the "underlying surface" are not necessarily arranged to be in the same spot as the trim edge. There is a bit more information and some illustrations on how the underlying surface mechanism works in this FAQ answer.

But Danny shows how to get it done currently (thanks Danny!) - that's by separating your model out into different pieces, and using "Move" (or dragging) on the pieces you want to maintain the same shape, and then use "Scale1D" (a variant under Transform/Scale) on the pieces you want to stretch.

If the pieces are currently fused together into a single solid, you can use Edit/Separate to break them apart into individual surfaces, then use Edit/Join to join the surfaces back into a solid at the end.

Or sometimes you may need to use a boolean operation to cut the model at the spots where you want it to switch between moving and stretching, check out this previous message for an example on that:
http://moi3d.com/forum/messages.php?webtag=MOI&msg=2019.3

- 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
2639.12 In reply to 2639.9 
Hi David also one other note - if your model happens to be constructed only of separate boxes that have not been booleaned with one another (like if they are all individual "boards" with one simple box being one piece of wood), then you should be able to actually select them all and turn on control points for the boxes using Edit/Show pts and select points to move in the same way as the 2D curve case.

That's because you can turn on control points for a simple box solid since it has a simple structure where the surfaces of the box all coincide with the joined edges.

- 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:  Daddi
2639.13 
Hi to you all and thanks for your input!

I suspected that it would be difficult to implement such a stretch function, but as I said before, it would be a "killer" function ;-)


I had actually managed by using Danny's method (thanks, Danny!); I just thought that the "killerstretch" would be in line with the overall ambition of MoI - to be able to sketch an idea as quickly as possible (and maybe to quickly assess a multitude of combinations).


Michael - I'm just nitpicking! It's still way faster to use MoI3D than trying to do the same thing with any 2D CAD app :-)


BR,
David


PS It's great to have such a vivid forum!
  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:  Daddi
2639.14 
Forgot to mention that the last tip from you, Michael, really does the trick for the bathroom cabinet (which consists of boxes only)! The "killerstretch" would be useful in all other cases.

NOTE! Show/hide points doesn't work for boxes being made from extruded rectangles.

BR,
David
  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:  BurrMan
2639.15 In reply to 2639.14 
Daddi,
If you seperate your boxes then the points will come on. Do the stretch then join the objects back together.
  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:  Daddi
2639.16 
Neat! :-D

Just tried it, works like a charm - thanks!!!
  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:  Michael Gibson
2639.17 In reply to 2639.14 
Hi David,

> NOTE! Show/hide points doesn't work for boxes being made
> from extruded rectangles.

Check out this FAQ item:
Why does show points work for some objects but not others?

That tries to explain why you can't turn on points for solids that have trimmed surfaces inside of them.

But like Burr mentions, if you use Edit/Separate to break a solid into individual surfaces, then you can always turn on points for individual surfaces, and then use Edit/Join to glue them back together at the end.

Basically when you do an extrude of a rectangle, when the "cap" surfaces on the top and bottom are created they are created as larger planes that have trim curves on them. If you zoom out a little bit when you turn on the points after using Edit/Separate you'll see the points for the plane which is somewhat extended.

That's because that capping procedure works on any kind of planar curve, which can have a much more complex outline than just a rectangle.


At any rate - unfortunately the basic mechanics behind how NURBS solids work (with trimmed and joined edges with "underlying surfaces", some illustration of that in that above FAQ answer) does not really lend itself very well to deforming things by pulling points around, when you have trimmed edges that are joined to one another.

If you do want to focus a lot on pulling points around on solids for getting things done, you may actually be better of with a polygon modeling program instead where things are set up to work like that.

But there is also a benefit of the way NURBS solids are set up, which is that they work a lot better with boolean operations than a polygon modeling setup.

With a NURBS modeler, when you do a boolean between 2 objects, the actual underling surfaces stay the same and only new trim curves are calculated. This tends to help keep surfaces as more simple larger sheets. With a polygon modeler, booleans tend to make a big mess, with more and more little fragmented facet pieces being generated on each cut.

- 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
 

Reply to All Reply to All