Vivi 0 Posted March 3, 2014 Hey guys! I have a bunch of hair strands here, they each have a PRIM attribute "dist" that is the distance from the center of the hair bunch between 0-1. i would like to carve each curve by the dist attribute. I have successfully accomplished this in the hip file, but i used a foreach node, which is way too slow for my taste, anyone have a faster way of doing this pleaaase? It's slowing my hair node by 100% H13 dropbox, and attached https://www.dropbox.com/s/phb074flfkdp4gy/carve_help.hip carve_help.hip Share this post Link to post Share on other sites
magneto 145 Posted March 3, 2014 I don't think you can do that because Carve SOP doesn't support $PR or any custom variable unfortunately. I think it's designed to carve geometry at once using the same settings. Consider submitting an RFE to SESI so they could implement it Share this post Link to post Share on other sites
Vivi 0 Posted March 3, 2014 (edited) daaamn okay. Yes i noticed it doesn't support custom local variables, would be nice! I posted it up on sidefx forums. I tried doing it by deleting points, but i didnt get such a nice interpolated result that you can get with Carve or extreme amount of points. edit: what's an RFE? Edited March 3, 2014 by Vivi Share this post Link to post Share on other sites
magneto 145 Posted March 3, 2014 It's basically Request For Enhancement, that you can submit from here: http://www.sidefx.com/index.php?option=com_content&task=view&id=768&Itemid=239 Someone might come up with a different approach. I think you could resample and then delete, and then convert them back to NURBS if they were NURBS, but that would also increase cooking time. Share this post Link to post Share on other sites
breadbox 7 Posted July 13, 2015 There is a method here using a attribWrangle: Workflow is basically to basically create new geo on top of the old geo. Sample the points from the old prims, and rebuild new prims but using an attribute to drive how far along the UV direction of the curve, then delete the old prims. Share this post Link to post Share on other sites
mawi 71 Posted July 13, 2015 Try this... Put down a measure SOP and set it to measure the perimeter of your curves. After that a primitive wrangle and write. #include <groom.h> adjustPrimLength(0, @primnum, @perimeter, @perimeter*@dist); groom.h is a included file containing some functions used in the grooming tools and one of the functions is... void adjustPrimLength(const int geo, prim; const float currentlength, targetlength) 18 1 Share this post Link to post Share on other sites
Vivi 0 Posted July 14, 2015 awesome thanks guys let me try these methods Share this post Link to post Share on other sites
breadbox 7 Posted July 18, 2015 Mawi Is groom.h a new library in Houdini 14, or was that a separate library that I need to download? I can't find any documentation on groom.h, was that something custom you wrote? Share this post Link to post Share on other sites
mawi 71 Posted July 18, 2015 groom.h is a sesi file that can be found in $HFS/houdini/vex/include Share this post Link to post Share on other sites
pangzi2015 1 Posted October 26, 2016 On 7/14/2015 at 6:14 AM, mawi said: Try this... Put down a measure SOP and set it to measure the perimeter of your curves. After that a primitive wrangle and write. #include <groom.h> adjustPrimLength(0, @primnum, @perimeter, @perimeter*@dist); groom.h is a included file containing some functions used in the grooming tools and one of the functions is... void adjustPrimLength(const int geo, prim; const float currentlength, targetlength) Really Cool technic ! Thanks so much! 1 Share this post Link to post Share on other sites
kgmcnamara 36 Posted July 21, 2017 Wow that's a great function! They should make that built-in Share this post Link to post Share on other sites