# Modifier Stack Contd

**URL:** https://forum.highend3d.com/t/modifier-stack-contd/47240
**Category:** Maya
**Tags:** wish-list
**Created:** [March 20, 2008, 1:02pm UTC](https://forum.highend3d.com/t/modifier-stack-contd/47240 "2008-03-20T13:02:54Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![mikedin](https://forum.highend3d.com/letter_avatar_proxy/v4/letter/m/8baadc/32.png) [@mikedin](https://forum.highend3d.com/u/mikedin)
#### Post date: [March 20, 2008, 1:02pm UTC](https://forum.highend3d.com/t/modifier-stack-contd/47240/1 "2008-03-20T13:02:54Z")

</div>

Was trying to add a post to this locked thread [http://www.highend3d.com/boards/index.php?showtopic=232956](http://www.highend3d.com/boards/index.php?showtopic=232956)

Anyways. I used to use MAX ages ago and now have to use it again at a new job everyday. Not much has changed in the MAX world; however there are some things that the modifier stack allows 1 to do much more efficiently than Maya and I am hoping Jooja or someone else can point out to me how they handle this in Maya and I've just never figured it out properly.

Scenario 1: Anyways due to the nature of the stack order in MAX you can create an editiable spline\>extrude\>edit poly (to edge details for instance)

```
In this scenario you can create a base shape be it a wall or column base etc., extrude it up, add an EP on it that will alllow you to bevel and chamfer the sides. Then if you need to add more editable spline vertices you can do this and it propegates up to the EP. But the EP gets obviously mangled so you need to delete just that 1 node from the stack and reapply it and your bevels and chamfers. About 3 seconds of work.
However in Maya to get to the intial result you need to extrude as distance and output to polygons, then select a top open edge and bottom open edge and add a fill hole node. then select the top edges and bottom edges and add a bevel node to taste. Issue is, then if you add a knot to the base or fillet with trims on the ncurve below, well you have to dig in the heirarchy and delete all those nodes upstream again and manually re-apply (lots of time). In other words a welcome addition would be smarter nodes like they use in MAX or an option for it to try to be smart. This would also be welcome in extruding along a path where in MAX you always get the extruded result you wish for where in Maya you have a lot of anguish and bad normalization of the shape at the ends of a periodic or open path of a square for instace. BTW the sweep modifier in MAX willl allow you to build tons of lofted/extruded profiles quickly. Imagine a parking lot with curbing all over the place. This could take a half a day to do in Maya, in MAX a couple of minutes.
```

Scenario 2. I came up with a workflow ages ago and introduced this to our MAX team at a Design Viz company I work for and it still works great after so many versions of MAX for building hipped roofs with intersections. It's based on the surface tools in MAX and the surface modifier. Basically you build a spline cage that represents the hips valleys etc. of a roof system, offset or copy these lines down to give it volume and then connect up any spline areas that would result in more than 4 sided polygons after. You then apply the surface modifier to this spline cage and you have a clean polygon roof with volume and intersecting hips etc (can just make the top and add a shell modifier too but has issues). This methodology is based on spline tools that was written as a plugin ages ago for MAX by Peter Watje I believe. Anyways you can do this same sort of thing in Maya but you would have to select nurbscurve spans manually and apply a boundry surface to everyone etc. and on a simple roof this again can take ages to do.

Lastly. I've never understood what triggers Maya to add a "tweak" node to a heirarchy and had always hoped it was the solution to a stack in that it would act like an intermediary node that would look at what was and wasn't changed upstream and allow nodes downsteam of it to be rebuilt deleted etc. What the heck is it really for?

I love Maya for everything else and yes polygon modeling too (edit still wish Maya had simple Bezier style curves, can get curve results much faster in MAX still) but when it comes to lofting/extruding and the trick I explained in Scenario 2, MAX still takes the cake the for me.

If scenario 2 doesn't make sense, I be happy to post a pic or 2 on what I'm talking about if need be.

Thanks,

BTW Jooja, in the original post I too had errors in your script editor history of the following (I'm on Maya 2008 ext. 1)

CBdeleteConnection "nurbsSphere1.tx";  
CBdeleteConnection "nurbsSphere1.ty";  
CBdeleteConnection "nurbsSphere1.tz";  
connectAttr -f plusMinusAverage1.output3D nurbsSphere1.translate;  
};  
// Error: Cannot find procedure "CBdeleteConnection". //

whatIs CBdeleteConnection;  
// Result: Presumed Mel procedure; no definition seen yet. //

---

<div class="post-metadata">

### Author: ![joojaa](https://forum.highend3d.com/letter_avatar_proxy/v4/letter/j/5daacb/32.png) [@joojaa](https://forum.highend3d.com/u/joojaa)
#### Post date: [March 20, 2008, 2:47pm UTC](https://forum.highend3d.com/t/modifier-stack-contd/47240/2 "2008-03-20T14:47:15Z")

</div>

Nothing to do with stack but rather what nodes the program has. Theres nothing maxs stack does that mayas network doesn't do better. Theres just some nodes (called deformers in max) that can be better in certain jobs than than some of the other individual maya nodes. But max has many nodes someof wich are usefull most are not. If your missing a node complain about that.

So to recap: Theres nothing in the stack that magically makes these things work out easier for you. Maya has ALL Stacks functionalities, jut not all the same NODES. But yes a quite different GUI for handling it.

The road network is not equal to cars.

QUOTE(STZ @ 03/20/08, 03:02 PM) [snapback]282955[/snapback]  
Scenario 1: Anyways due to the nature of the stack order in MAX you can create an editiable spline\>extrude\>edit poly (to edge details for instance)

firts part to do with stack this is more a node, of the exact type that is missing than anything else. Bevel plus is closer to the node your actualy asking for, altough it allways adds a span in the middle (complain to autodesk if enough reprot it will get fixed, i have). Dont know why but otherwise adds for exact same features.

Anyway you don't need to delete the stack you can just redefine the selection. I have a video of this hanging somewhere i have to dig it out. You can use mayas network just in the same capacity as in max. Its just not readily apparent at first.

Aslo see the demo down the post

QUOTE  
Scenario 2. I came up with a workflow ages ago and introduced this to our MAX team at a Design Viz company I work for

Again a node of type missing nothing to do with the stack.

Well you will have to unwind your thinking a bit, because its clear that you do not understand mayas networks neither do you really understand the stack because if you did youd see that a stack is just a simplification of mayas network.

in max when you have

curve  
then extrude it.

is equal to mayas same thing. Mayas nodes manifest a bit differently but the basic idea is the same in maya it looks like:

curve-\>bevelplus

This is the exact same stack maya just didn't bother to hide the curve. Because in mayas thinking the curve is still valid for other uses allowing it to exist in many stacks at once. If you want it hidden just mark it intermediary.

lets take a simple example that you will find easy to follow.

clear maya.

Make a poly 10 by 10 spans plane, and extrude some faces (not all)

what you now have is

polyPlane1-\>PolyExtrudeFace1-\>polyPlane1-\>connection to shader

Now if you want to get to the state BEFORE extrude:

just connect the pPlaneShape1 between polyPlane1 and PolyExtrudeFace1... see the stack lives in between the nodes. One note theres one more connection in maya but basically. let me make doing this easy for you by pasting sript. (yes a gui can be made quite easily to facilitate this)  
CODE  
connectAttr -f polyPlane1.output pPlaneShape1.inMesh;  
connectAttr -f pPlaneShape1.worldMesh polyExtrudeFace1.inputPolymesh;

Now you ight want to change the extruded parts lets retrieve the Selection form foly extrude

CODE  
select -clear;  
for ($item in `getAttr polyExtrudeFace1.ics`){  
&nbsp;&nbsp;select -add ("pPlane1."+$item);  
}

note theres a more elegant way to do this with sets for better interaction and yu dont need to set them back so tediously.

Now change selection:

and run

CODE  
{  
$string="";  
$i=0;  
for ($item in `ls -sl` ){  
&nbsp;&nbsp;$string=$string+" "+match("[^.]\*$",$item);  
&nbsp;&nbsp;$i++;  
}  
eval("setAttr -type componentList polyExtrudeFace1.ics "+$i+$string);  
}

To step back run:  
CODE  
connectAttr -f polyExtrudeFace1.output pPlaneShape1.inMesh;  
connectAttr -f polyPlane1.output polyExtrudeFace1.inputPolymesh;

Wohaa ive changed the selection, this can be done to ANY node that deals with selection (incidentally you can change the selection on the end mesh too with the sets trick)

Now if you wanted to change the shape of the plane BEFORE the poly extrude you can. Just maya doesn't store changes in mesh inside most nodes nodes (tweak does but it has a different purpose ill continue that in private if you care to send me pm).

So what you do is:  
CODE  
createNode -n intermediateMesh mesh;  
connectAttr -f polyPlane1.output intermediateMesh.inMesh;  
connectAttr -f intermediateMesh.worldMesh polyExtrudeFace1.inputPolymesh;

Now lets us hide the reshult mesh:  
CODE  
setAttr "pPlaneShape1.intermediateObject" 1;

Note how the mesh doenst have a shadingroup. lets fix that also:

CODE  
sets -add initialShadingGroup intermediateMesh;

modify this mesh and then resume:  
CODE  
setAttr "pPlaneShape1.intermediateObject" 0;  
setAttr "intermediateMesh.intermediateObject" 1;

viola! all the stacks functionality with ability toadd nodes in between aswell.

Again the default gui lacks a bit but this is all easy by modifying 2 things scripts for hyper graph wich allows you to inject the nodes fast. And one script for the channelbox and and all this is one rmb click away.

Mayas about the fabulous modifiability of the gui. And freedom to do whatever you want.

PS: thats all i have time for now.

---

<div class="post-metadata">

### Author: ![mikedin](https://forum.highend3d.com/letter_avatar_proxy/v4/letter/m/8baadc/32.png) [@mikedin](https://forum.highend3d.com/u/mikedin)
#### Post date: [March 21, 2008, 3:22am UTC](https://forum.highend3d.com/t/modifier-stack-contd/47240/3 "2008-03-21T03:22:00Z")

</div>

I didn't have access to try this out during my day to day but I just did and am pleasantly amazed!

Very helpful Jooja. Another broadening of the Maya horizon but asks the main question is why is this not setup in a stock GUI format of some sort? In other words it's equally amazing this functionality is hidden as much as it is.

I consider myself a reader of Mel and understand it at that but have a difficult time writing mel without lots of reference to the docks and bug iterations so it's a difficult road at times.

This is intriguing as heck though ![]()

Sure would love a pm from you on what the tweak node is as stated if you get a chance.

Laslty I still have huge issues with creating rigid Nurbs curves and and lofting along shapes as I know many people do. What is strange is that for instance the primitive ncurves created by fePrimitives as an API plugin for download here at HE3D has managed to make nurbs curves with fillets etc. that behave as I would hope the default Maya ncurves would. How?

If I manually try to fillet join 4 deg 1,2, or 3 ncurves and play with rebuild types in between or not at all, always end up with mangled shapes in 1 format or another.

Thanks again for your time,

---

<div class="post-metadata">

### Author: ![joojaa](https://forum.highend3d.com/letter_avatar_proxy/v4/letter/j/5daacb/32.png) [@joojaa](https://forum.highend3d.com/u/joojaa)
#### Post date: [March 23, 2008, 6:42pm UTC](https://forum.highend3d.com/t/modifier-stack-contd/47240/4 "2008-03-23T18:42:39Z")

</div>

QUOTE(STZ @ 03/21/08, 05:22 AM) [snapback]282984[/snapback]  
Very helpful Jooja. Another broadening of the Maya horizon but asks the main question is why is this not setup in a stock GUI format of some sort? In other words it's equally amazing this functionality is hidden as much as it is.

Probably because maya is built to sustain a different kind of gui experience for the artits, and td's are expressly assumed to understand things like this, but to be honest dont know.

The functionality isn't hidden tough, it is quite expressly described and the implication of all this is clearly written in the docs. Just no tutorial was written.

(in general tutorials are over rated because they they facilitate use without understanding of implications, and reading implications are everything in any technology devised by humans. Theres no future demand for those that can just do whats apparent these jobs will be shifted to teh 3d world pretty soon. Rather foci should be on reading the implications of complex structures).  
QUOTE  
Sure would love a pm from you on what the tweak node is as stated if you get a chance.

Actually because there was a long weekend ahead i wanted a heads up so i dont forget.

I wanted to add:

what the hell is the tweak node for.

Well assume you have

something-\>tweak-\> something -\>something-\>something-\>shape -\> (coonection to previous tweak)

Now whet this does is it redirects the shapes local tweak back in time to the tweak making you adjust the points NOT at the shape but at the tweak. Now the reason you use tweaking conjunction with deformers is that you get local transforms. Now tweaks work with any node tough the point order may change in some modeling tools in wich case tweaks may loose its sensibility.

Theres some more but again must go.

QUOTE  
I consider myself a reader of Mel and understand it at that but have a difficult time writing mel without lots of reference to the docks and bug iterations so it's a difficult road at times.

Well i was there, now it probably takes me less time to write sometging in mel than actually click the same thing 50% of the time
