Jump to content

Reselecting Geometry in a OTL


Recommended Posts

Hi.

A minor problem ( maybe has been already answered ...)

I've collapsed a PolyExtrudeSOP+TransformSOP into an OTL ( quite simple, to do faster modelling, inspired by the Stretch Function in Lightwave). But once that done, how do i interactively reselect geometry in the OTL ( prmitives, points) to extrude-and-transform .

Thx for any help

Link to comment
Share on other sites

ok, i didn't make myself clear. :)

What I want to do is to create an OTL made of a PolyExtrudeSOP followed with a TransformSOP that operates on ExtrudeGroups created by the PolyExtrudeSOP.

If i use normally the two SOPs, i can reselect geometry in the PolyExtrudeSOP, that is interactively change the faces to extrude. But i cannot do that once the SOPs are into an OTL.

I have no 'reselect geometry for curent operation' feature in the OTL.

Thx for help.

Link to comment
Share on other sites

You have to add a bindselector to the dialog script for your asset. It involves going in to the Operator Type Manager for the operator, editing the contents by injecting the bindselector command inside the DialogScript section. The idea is to put a bindselector on the string parameters for your object to accept object groups. You can drive the string directly in to a group field for a SOP, then do that for every subsequent SOP or use a group SOP and drive the string in to there.

Obviously not that intuitive but very powerful and the only way to currently add user interactivity in the viewport.

Here is a document that I wrote that will hopefully end up in the documentation somewhere for H6.5. It describes the bindselector command and all of it's options.

-jeff

sop_bindselector.txt

Link to comment
Share on other sites

Well... Not so easy to do, it seems. :ph34r:

What is the dialogScript? Is it the .otl file? i tried to add the "bindselector..." lines in my .otl file. ( edited it with a notepad)

It didn't work... maybe because i used the arguments of your example.

But is it the right thing to do?

Is there a corresponding way to do this in the Operator Type Properties page?

I cannot edit the Selector page in the OPerator Type Propertied page but i can with OTLs made with objects.

Maybe the best way would be to send me a simple scene where you did

that ( if you don't mind of course! )

I hope H6.5 will include a fully detailed documentation about OTL creation. and customization , if there isn't already !

Sorry i get a little confused with all that!

Link to comment
Share on other sites

It's not hard and doesn't even require a text editor.

The file you need to edit is contained inside the asset.

If you RMB (RightMouseButton) hold on the asset and choose the option "Operator Type Manager". You should have the manager up now with your asset's definition highlighted in blue.

Now rmb on the highlighted asset name and choose the option "Edit Contents...". You should have the Edit Contents Dialog open now. These are the section files of your asset. This is the dialog where you can edit directly the section called "DialogScript".

Find the parameter name that you want to add the bindselector to. For example, I want to bind it to a general group string field in my parameters, so I find it in the DialogScript section:

parm {
Link to comment
Share on other sites

  • 1 year later...

Howdy,

I just started playing with this, and it doesn't seem like there's any easier way to do this in houdini 7 yet? I guess I should search the help some more, but so far it doesn't seem like this has evolved much. Here's hoping we can do it in 8?

Anyhoo, I was hoping to find more info on the selection types, and if there's any good way to modify the incomming information.

I'm curious if there's any way to sort the point order that an edge selection returns, or how that determination is made in the first place.

What I'm trying to do is create a tool that creates a curve from selected edges. Using the example you gave here I was able to create a tool that creates a curve from selected points, but I wasn't able to get an edge selection to return points in the order that would work to build the curve. Any help would be appreciated.

-z

Link to comment
Share on other sites

I don't know if there is a direct answer to your question but there may be a way around it. It's not a great one but if nothing else shows up you could try the following.

Rather than picking the edge pick all the polys above or below the edge, then blast them so you are left with a part of your original model right up to the edge you want. Then add a divide sop with remove shared edges turned on but nothing else. This should then extract the edge you need. The down side is if the model isn't completely closed you will get lots of other edges too. And of course picking all those polys won't be as easy as just picking the edge you want. In order to reduce the number of edges to just the one you need you would have to either preclose all the holes, again using divide sop -> remove shared edges and mergeing the result with the original or you would have to have another delete to pick just the edge you want out of the ones created. If you go the first route you need a reverse after the divide and a fuse after the merge.

Hopefully someone will have a better answer for you.

Link to comment
Share on other sites

Hey Simon,

Yeah, I could probably play around to see if I can find a way to do this, but I'm kind of bummed about the selector functionality as it is right now (assuming I'm not missing something, and I don't think I am). I mean, in this very post there's talk about hoping this will be better in 6.5, and as far as I can tell there has been no progress since. Bummer. Perhaps I'm experiencing a bit of package envy, when I talk to some people who have written modeling tools for maya in mel. Granted, I don't really know what goes into that, but it doesn't sound too difficult to do.

Anyhoo, I'd like to hear what people have used the selectors for, if they have, to get an idea of how far it can be taken.

Thanks,

Jens

Link to comment
Share on other sites

As far as I know, bindselectors return a string of points or primitives in the order selected (I think) directly to the string field that the selector is bound to.

Edge selection "smarts" are not supported with bindselectors. It will convert your edges to points as you already found out. The points aren't in any useful order either in the conversion from edge selections to points. It would make sence that when converting edges to points that the selection order is based on edge connectivity if it makes sense. What about forking and discontinuous edge selections? I will submit the request and see if it makes sense.

Edges are not supported as an entity in SOPs. It would be nice to use a Group SOP to feed the proper edge syntax on down the chain but this is currently not possible. I tend to dump my bindselectors in to group SOPs and reference the group after that.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...