Set a single engine in a CombinedCinematicEngine to dead = True

Asked by Felix Niewienda

Hi,

i am trying to combine multiple HarmonicRotationEngines using CombinedCinematicEngine. To get the cinematic i want i need to start the engines at different times.

So i tried to initiate the second engine in comb with dead = True. It will be set to False after a while.

  CombinedKinematicEngine(comb=(HarmonicRotationEngine(A = 0.05, f = freq, rotationAxis = [1.0, 0.0, 0.0], rotateAroundZero = True, zeroPoint = [0.0, 0.0, -1.5]),
  HarmonicRotationEngine(A = 0.05, f = freq, rotationAxis = [1.0,0.0,0.0], dead = True, rotateAroundZero = True, zeroPoint = [0.0,0.0,-1.5]),
  ), ids = zylinder, label = "Combined"),

In the example above both engines work from begin on. The problem seems to be that is isn't possible to use dead on a single engine in comb.

Is there a possiblity to make it work this way or are there any other solutions? (I already tried to set A = 0 and change that after a while, but that doesn't change the phaseing of the engine.)

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Felix Niewienda
Solved:
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hi Felix,

probably nobody needed this feature before, so it was not there :-) I have
changed the code such that the CombinedKinematicEngine will not call its
subengines iff their dead attribute is set to true. Could you please update
to the newest version and try it?
cheers
Jan

2013/10/16 Felix Niewienda <email address hidden>

> New question #237437 on Yade:
> https://answers.launchpad.net/yade/+question/237437
>
> Hi,
>
> i am trying to combine multiple HarmonicRotationEngines using
> CombinedCinematicEngine. To get the cinematic i want i need to start the
> engines at different times.
>
> So i tried to initiate the second engine in comb with dead = True. It will
> be set to False after a while.
>
> CombinedKinematicEngine(comb=(HarmonicRotationEngine(A = 0.05, f = freq,
> rotationAxis = [1.0, 0.0, 0.0], rotateAroundZero = True, zeroPoint = [0.0,
> 0.0, -1.5]),
> HarmonicRotationEngine(A = 0.05, f = freq, rotationAxis = [1.0,0.0,0.0],
> dead = True, rotateAroundZero = True, zeroPoint = [0.0,0.0,-1.5]),
> ), ids = zylinder, label = "Combined"),
>
> In the example above both engines work from begin on. The problem seems to
> be that is isn't possible to use dead on a single engine in comb.
>
> Is there a possiblity to make it work this way or are there any other
> solutions? (I already tried to set A = 0 and change that after a while, but
> that doesn't change the phaseing of the engine.)
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
Felix Niewienda (felix-niewienda) said :
#2

Hi Jan,
thank you for your help. Saidly the phaseing doesen't start at zero when i set dead to false. It seems to be the same behaveour as if i set A=0. I guess I have to wait until the engine is in the correct phaseing again to enable it.

Revision history for this message
Jan Stránský (honzik) said :
#3

Hi Felix,

now it becomes the issue of HarmonicRotationEngine itself, not
CombinedKinematicEngine :-) you can open a new question or report a bug
cheers
Jan

2013/10/18 Felix Niewienda <email address hidden>

> Question #237437 on Yade changed:
> https://answers.launchpad.net/yade/+question/237437
>
> Felix Niewienda posted a new comment:
> Hi Jan,
> thank you for your help. Saidly the phaseing doesen't start at zero when i
> set dead to false. It seems to be the same behaveour as if i set A=0. I
> guess I have to wait until the engine is in the correct phaseing again to
> enable it.
>
> --
> You received this question notification because you are a member of
> yade-users, which is an answer contact for Yade.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~yade-users
> More help : https://help.launchpad.net/ListHelp
>

Revision history for this message
Anton Gladky (gladky-anton) said :
#4

2013/10/18 Felix Niewienda <email address hidden>:
> thank you for your help. Saidly the phaseing doesen't start at zero when i set dead to false. It seems to be the same behaveour as if i set A=0. I guess I have to wait until the engine is in the correct phaseing again to enable it.

I do not quite understand, what behavior you are awaiting, but maybe
fi-parameter [1] is what you need?

[1] https://www.yade-dem.org/doc/yade.wrapper.html#yade.wrapper.HarmonicRotationEngine.fi

Revision history for this message
Felix Niewienda (felix-niewienda) said :
#5

Yes with fi it should be possible to do what I want. I just have to take the correct fi for the time when I enable the engine. I just thaught there might be a less complicate way to do it. Thank you.