# Search the Community

Showing results for tags 'foreach'.

• ### Search By Tags

Type tags separated by commas.

### Forums

• General
• Lounge/General chat
• Education
• Jobs
• Marketplace
• Houdini
• General Houdini Questions
• Effects
• Modeling
• Animation & Rigging
• Lighting & Rendering
• Compositing
• Games
• Tools (HDA's etc.)
• Coders Corner
• HDK : Houdini Development Kit
• Scripting
• Art and Challenges
• Finished Work
• Work in Progress
• VFX Challenge
• Effects Challenge Archive
• Systems and Other Applications
• Other 3d Packages
• Operating Systems
• Hardware
• Pipeline
• od|force
• Feedback, Suggestions, Bugs

• 0 Replies

• 0 Views

Found 47 results

1. ## iterate over certain points

I have this code below: i[]@TP = neighbours(0,0); foreach(int i ; @TP) { @P.y = 1; } how can I tell Houdini to just move the points insideTP array? foreach move all the points.
2. ## vex : addvertex with foreach

What do these two lines mean? I do not understand. Please explain. addvertex(0, prim, @ptnum); addvertex(0,prim,pt); I don't konw why "ptnum" is needed here.
3. ## fracture Piece min max values of the local cut

Hi All, sorry for the heading, Its a hard one to describe lol. I have a booleanfracture piece and want to process only the middle points , then with that create geo that knows the distance to top and bottom of its local position (as the slice fracture is not a flat plane, hopefully a picture helps). Im not sure the best approach, I would start with nearpoints in some way ,finding the top points and test down for a middle storing the lowest for distance checks?? lol, well its a tricky one
4. ## points distance

Hi guys, I'm a little lost on how to calculate distance between successive points (picture) of my floor mesh. I guess i have to use a "for each point" in Vex. This distance will help me to creat wall with the exact scale between angles. Thank you for your help.
5. ## Randomly switching between objects in an Object Merge

Hey! I'm fairly new to Houdini and have been trying for hours to work this out! I'm making a greeble tool want to be able to scatter assets on top of the greeble. The (placeholder) assets are in their own subnet and are all in the one object merge within the greeble node network. Is there any way I can randomly switch between these objects while they're in the one merge? So that then user could add more objects into the merge as well using the UI without having to edit things inside of the greeble node network?
6. ## iter each copy transform

Hey all, Trying to wrap my head around this... thought it was going to be easy until I got into it. I'm tying to randomize each level in a copy transform in my setup. I get close but I end up randomizing all prims instead of each level. I attached the hipfile. jl_iterLevel_01.hip Please Help, Thanks!
7. ## process on unpacking point primitives after a RBD sim ?

Hello I'm doing a RBD (bullet) sim with custom concave geo (proxies) that I pack my self using assemble. I use a scatter and copy to points to set up my inital state, run the sim. I use a dopimport, and I would like to fetch the hi rez geo. Tutorials show that if I had the high rez geo scattered the same way I could plug it and it would work straight away. However I would like, with only my points, to retrieve the high rez geo. I thought I would use a foreach and apply primintrinsics or transformpieces or even a copytopoints as seen in some tutorials like here but nothign works, my scales and pivots don't seem to work. To give you an idea of what my network looks like before the dopnet: I cross posted on Sidefx forums but it wasn't published sorry for the crosspost. If you have any info on this I'm very interested.
8. ## Copy multiple objects to multiple point in loop

Hi, I have attached a scene file for reference, in the scene, I have fractured a box and used a for each loop to adjust its pivot points and position and again I have used a grid and scattered point to copy it. I have used for each loop to and a copy to points node. My problem is that, all of my fractured geometry gets copied to each point, while I know copy stamp method but is there any other way that I can use to copy each fractured piece coming out of a loop randomly over the scattered points via a copy to points node. Please let me know, I have attached a file below. * Also can you please let me know how to add strings in attribute vop node, suppose I want to create a string called "piece" inside the vop node and add the id or any random number to it and combine both the values as strings and also export it as a string attribute. Thanks copyToPoints.hipnc
9. ## for each named primitive_problem

i am trying to run over named primitives, but the for each loop seems to pick randomly for each iteration which batch to process. i want the loop to respect the sorted primitives and run over each named primitive as it is in the geometry spreadsheet. How does it pick the first batch for iteration number 0? can i change that? image 1 is before the loop,sorted primitives image 2 is inside the loop with a single pass to see iteration 0 As you can see the first batch the loop chooses to process is not the first batch as sorted before. First batch should be the one named color_229_229_0
10. ## bbox size based on previous iteration

Hi, I would like to create a stack with some pieces of geometry and scale down each of them based on the previous bbox. The final look should be a pyramid based on the geometry you are using .. My problem is that I haven't been able to figure out the correct VEX syntax to use a point wrangle and read the bbox from the previous iteration. Any help out there? Thanks I attached a graph example testing.hipnc
11. ## VEX - foreach - I don't get it

Hey guys, I never got how does a foreach works in vex (at all!), can someone please explain me this? It does the same thing as the For-Each Loop node?
12. ## Running solver on multiple objects

Hello, I want to create a fire from multiple moving objects. I tried to merge them and create a Pryo source then plug this into Pryo Solver but this was a bad solution as the bounding box is getting very large. I tried to run foreach loop on each moving object and then create a pyro source and then plug the result into Pyro Solver but the Bounding box is now tracking the first object but not all the other. If anyone have good solution for this problem please share it with me, also .hip files are very welcome if you don't need to write a long solution i can just dig inside Thanks.
13. ## want to store an attribute for some objects in 'foreach' loop

Hi, I'm trying to store a size of some objects into an array using 'foreach loop'. And it works in a single pass mode, but not in normal mode. And I have no idea why Try to switch single pass mode on and off and check attributes on detail stacked_boxes_q.hipnc
14. ## For each POINT in each GROUP

Hello guys I am still quite new in VEX coding and I am all day fighting with set of gravitational rules based on a membership of the points in groups. I am emitting particles, the particles are sorted to groups by 3-6 nearest points. So after couple of frames of emitting particles I have 100 groups and each groups has 3-6 points. Now I need to set some gravitational rules for every group so the points in every group will be attracted to each other just inside the group. I got stuck here. If anyone has any idea how to solve this issue, it would be perfect. Many thanks in advance. ap_ParticleGravitationalAttraction_01.hipnc
15. ## For Each problèm in Houdini 17

Hello everyone, I come to you because I have a little trouble understanding a tutorial. Indeed I look at the tutorial "Abstract Effect a Houdini" the problem is that it is a version prior to 17 and since the node "For Each" has changed. So in the Tutorial it does as in the picture 1 to get the picture 2 I block here (picture 3) and there are plenty of node for each and I do not know which to choose. . . I tried several times but I can not get the same result. Do you have any ideas ? Thank you in advance everyone. os: sorry for my english, i use a translator
16. ## DOP in for-each loop

Hi community! I have a huge destruction scene, where I'm stuck with the ground impact dust. Basically i need to make a smoke sim on every collision with the ground. I have my impact points in place, with birth frame data as well. My guess was to make a for-each loop with a DOP inside of it for every point. It works, but every frame it recalculates the whole sim until the current frame, which is of course is not good. The scene is so huge and scattered, doing this in 1 sim would take an eternity. How can I do this in a correct way? I`m sorry, but i can not post any of the hip file. Thanks for reading this, also a huge thanks if you answer. Cheers. **edit: im on H16.0
17. ## Copy to Points - Foreach

Hey! I was wondering how to copy Geo to points using the Foreach Loop block, but without using a switch. Instead I am trying to use groups to switch between the input Geo. Unfortunately I was not successful yet. Maybe anybody has an idea what I am doing wrong here? Best, M CopyLoop_01.hip
18. ## foreach For Each Loop Merge

Hello Everyone! How can I loop so that the output geometry is used at the beginning of the cycle? Where am I wrong? I only get two dice, but no more .. Procedural_house_base.hipnc My result (only 2 blocks) My goal (several blocks with copying on the new ones points ) Have a good day All
19. ## array amnesia -- losing values or my mind

Hi all, I have an arrays-in-loops puzzle. I thought of a shortcut to do a thing, it doesn't seem to work, and I should move on -- except I would like to understand why it doesn't work. Minimal background: I've got some point data, I've polywired it together using Connect Adjacent Pieces, and gotten a restlength on the primitives from that. I need to set a pscale on the points before moving on to my next step. Half the distance to the nearest neighbor is good enough for now. I could use nearpoints() to figure that out (and it seems to work!), but I thought, "hey, I already have restlengths; why not just look up the shortest restlength and use that?" That turns out not to work, or at least not as I think it should. Where have I gone wrong? After my connect step, each point ends up connected to 4-20 other points by primitives with restlengths between .9 and 3.9. My first stab at this was: use pointprims() to get an array of primitives associate with each point; create an empty float array to hold the restlengths; foreach loop over the primitives, read the restlength with primattrib(), and push the result onto the lengths array; sort() the lengths array into a new array; read out the shortest length and use that to calculate a pscale. Here's the actual code: int myprims[] = pointprims(0, @ptnum); float mylens[] = {}; foreach (int myndx; myprims) { float mytmp = primattrib(0, "restlength", myprims[myndx], 0); // f@checktmp = mytemp; push(mylens, mytmp); // f@checkrslt = mylens[myndx]; } float lensort[] = sort(mylens); float shortest = lensort[0]; f@pscale = shortest/2; I think it's failing at the push statement. If I write out mytmp as a point attribute just before I push it, I get a reasonable number (commented code). If I check the stored value right after the push, I get either zero or the restlength of prim zero. If I check after the foreach loop completes, I get restlength of prim zero. So the push doesn't work. Looks like example code in the docs, but I'm missing something. Any thoughts?
20. ## ForEach VEX doubt!

hey guys, I have various primitives and those have different amount of points on them, for example each one primitive might have 10 points and other might have 20 so it varies like this, Now i want to have an attributes which ranges from 0 to 1 for each primitive just like what we get from curveu attribute in resample node. I know how to do this in for each sop but i want to do this in vex, am somehow not able to get that loop working correctly. I store the array using primpoints to get the points on that primitive and iterate that through a for loop but i am not able to get normalised value ranging from 0 - 1. Can please someone help?
21. ## normal issues after fracture

I'm trying to understand a issue with surface normals after a fracture. In the example file i have attached I use a boolean shatter on some geo. This doesn't cause any visible issues with normals. However one oddity is that the result of the shatter contains non manifold edges and wont pass through a second boolean set to union. I'm not sure if this is what causes issues later on. Then I run the shattered pieces through a foreach loop an fracture each piece with voronoi. The result reveals bad normals along the edges of the fracture. In this case the problems can be mostly alleviated by reducing the cusp angle of the of the normal. But in some cases ive seen this solution doesn't always work. And too low a cusp angle can introduce other problems. Is the normal issue related to the non manifold edges from the boolean? Is there a way to set this up to avoid getting these normal problems. See attached file. Thanks shatter_test.hiplc
22. ## adjacent triangles not deleting

Can anyone tell me why this happens? I divided some quads from a grid. In a foreach loop i grouped prims with 3 points: if(npoints(0)==3){ f@group_delete = @ptnum; } but it only adds half of the triangles to the group. If i do npoints()==4 no prims are added to the group. If i do unique points before the loop only some of the quads are added. I suspected that this has to do with vertex numbers v.s. point numbers. so i tried primvertexcount() but got the same result. how can i remove all triangles from this geo? thanks b
23. ## Creating subfracture group

Good Evening, Im trying to improve the look of my fracture setup using booleans. The pieces look great but due to the boolean cutters the pieces dont read so well in DOPS. I decided to measure the chunks and shatter only the larger pieces in a bid to improve the collision geometry. I want to use a forEach loop for each large chunk, shatter it and then assign it to a group or assign an attribute so that I can use them later in the constraints network. Those chunks will have glue constraints set to -1 so they dont break basically meaning they are the same as the original piece but will read in DOPs better for collision geometry. I dont want the subfractured individual piece info just the original whole piece. Is there a way to create a group for each loop of the forEach. Then I would have groups like unbreakable_01, unbreakable_02? Would appreciate some pointers before I go insane haha hip attached. Thanks, Duncan forEachLoop.hiplc