Tp Born Position

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 03/03/2012 at 17:28, xxxxxxxx wrote:

Hi all,
I'm trying to storage the position of all particles of a group when were born.
Here's my code:
    
    tp = doc.GetParticleSystem()
    
    TpGroupA = op[c4d.ID_USERDATA,1]
    
    cntGroupA = TpGroupA.NumParticles()
    PPGroupA = TpGroupA.GetParticles()
    
    PPGroupStart = c4d.Vector
    PPGroupStartPos = []
    
    for i in xrange (cntGroupA) :
        if tp.IsBorn(i)==True:
            PPGroupStart = tp.Position(PPGroupA _)
            tp.SetPData(i,0,PPGroupStart) # I  have created a Channels (vector) where storage the position
        PPGroupStartPos.append(tp.GetPData(i,0))

But it works only when I play the scene from the first frame... If I jump from a frame to another the Channel value became "None"

What's wrong in this code?
There's another way retrive the born position of particle?

Cheers

Luther

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 06/03/2012 at 17:35, xxxxxxxx wrote:

not sure hat is going wrong, but the setup looks quite compilacted. why don't you use just a python node with a TpParticle input port and plug a PPass node into it ? the *code *would be :

import c4d
  
mycache = []
  
def main() :
    if tp.IsBorn(pid) :
        tp.SetPData(pid, 0, tp.Position(pid)) 
        mycache.append(tp.Position(pid))

can't see a reason to do the iteration stuff yourself 🙂 (ps : tp as the documents master particle system is predefined and pid is the name of my TpParticle input port)

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 09/03/2012 at 05:44, xxxxxxxx wrote:

Hi Little Devil,
thank you so much for you reply. I'm a little bit confused, I think that I don't understand very well what do you suggest.
I attach my c4d scene, so you can see what I really want to do:
https://docs.google.com/open?id=0B4E_u8h_R81SSGdrX1BnZkdTRm1Nb0VLblM5VVZuUQ

Another thing, in a older your post I read that if I want to generate all particles at frame 0 I have to cache first my particle. Can you write me a little example of this code?

Cheers

Luther

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 09/03/2012 at 13:37, xxxxxxxx wrote:

i think i am getting something wrong, it is very simple, i have attached an example.

http://www.2shared.com/file/mpgLW-_R/LineStartPGroup002.html

to your second question : can't see a reason for this, please explain what you want to achieve. basicly it would be the same. check if it is frame 0, check if particle id is related to a born particle and then do something with this id.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 13/03/2012 at 06:02, xxxxxxxx wrote:

Hi Little Devil,
sorry for the late responce... Thank you so much for you reply, now I have understand.
For the second question, never mind... I was confused 🙂