Jump to content
Follyx

assigning new constraints to solver

Recommended Posts

a little bit tricky to explain my point of needed help:

building a system for bending metal. I'm not using softconstraints rather hard constraints. In the constraintnetwork sopsolver I pick the original constraints, copy the 4matrix from the geo and want assign the new constraint network back to the bulletsolver.
First problem: How to solve the usage of the new constraints, seems like the rbddolver dont use them. I think there is a big mistake in my setup. At an other state I already posted in SFX Forums and get a plausible help from "Miccetro" (https://www.sidefx.com/forum/topic/79064/). But as I wrote I want to go with hardconstraints and change the constraints. So could anyone have a look at my hip and examine it for eventually furher help? ^^

Keep healthy.

metal_bending_01.hip

Share this post


Link to post
Share on other sites

I'm not quiet sure I am following what you are wanting to do so tell me if I am mistaken here:
You are trying to create a metal bending system using hard constraints but you'd like the ability to change the constraint type during the sim? Or is there another reason you are remaking the constraints inside the sopsolver connected to the constraint network?

My solution here is going to be based on the assumption that you are actually trying to change the constraint type mid-sim so feel free to ignore this part if I have completely misunderstood what you are trying to do.
To change a constraints type mid sim is actually pretty straightforward, at least as far as I remember. All you need to do is create both the constraint nodes, let's call them "soft" and "hard" for example's sake, and plug them both into the middle port of the constraint network. Then afterwards, in the sop solver connected to the constraint network, just plug a primitive wrangle up to the fourth object merge node called "relationship geometry" and just change the value of the "constraint_name" attribute from "hard" to "soft" and the constraint should just change over. One thing that you might need to do is to delete the expression in the field called "overwrite with sop" on your "constraint network" node since this node by default will try to reimport/overwrite your constraints with your constraints from sops if you manually change things or break them using the sopsolver connected to the constraint network.

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

the first problem in my setup is that the bendend object tend to go back to its initial state. I grabbed the initial constraint, copy the primintrinsic "packedfulltransform" - the transfomationmatrix from the packed pieces onto it. In my sugggestion the sopsolver should send it to the rbd solver for the next step. So it should bend more and more. Unfortunately it goes back into its original position. Like there wouldnt be a sosolver and/or the constraints are totally wired. Why the constraints are bending back to its original position instead to bend more and more. If the last state of the constraints is the maximium bend state and the new origin constraints are already bent (this one I changed with the copied transforms from the bended geo), from where the rbd solver get its information to use other constraint states instead of the new initial state?

metal_bending_02.1.hip

Edited by Follyx

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×