1
$\begingroup$

Using Sverchok, I'm trying to duplicate an object along a path/axis. The object is a circle, and while its radius will vary slightly as it's stretched along the path, it should remain perfectly circular throughout.

With help, my solution almost works, but there are odd moments when the circle deforms, and I can't figure out why. I'm attaching an image of my Sverchok setup, because I'm new to some aspects of this and haven't yet figured out how to save and upload it as a file - apologies. enter image description here

EDIT: I think it's because the value for 'COUNT' is sometimes incorrect, but I can't quite see what to plug in there - the floor or ceiling of the modulus perhaps...

--

Note that this follows on from my previous question (How to construct a stretchable array?), and I'm greatly indebted to the contributors there for prodding me along.

I thought it would interesting to see if I could use a node-based solution to solve this problem; accordingly I've modified the parameters of the problem slightly.

Edit:

The file at the following link provides a very close approximation of what I'm eventually trying to achieve - but the stretched shape is deformed as it stretches (the arcs become ellipses). That said, its very subtle so it might not be worth improving... https://blend-exchange.giantcowfilms.com/b/7oOZkavB

| improve this question | | | | |
$\endgroup$
1
$\begingroup$

I propose a more immediate way to do this, using the polyline Node and converting the Path to its 3 subparts using "Separate Loose Parts" Node. and picking the Profile curve as the Bevel object. A lot less complicated and uses Blender for the heavy lifting.

Note the heavy zfighting in the part where the "extrusions" overlap.

enter image description here

| improve this answer | | | | |
$\endgroup$
  • $\begingroup$ Thanks - I was wondering how to do the 'bevelling' (what I call 'sweeping') inside Sverchok. However, things seem to go very weird when adding 'Duplicate objects along...' $\endgroup$ – Strawberry Jan 20 at 14:07
  • $\begingroup$ Duplicate... and SLP seem to be playing nicely together now. Next step is to try to create a valid stl file - not much luck so far... thanks again for the suggestion $\endgroup$ – Strawberry Jan 20 at 20:24
1
$\begingroup$

Inspired by zeffii's answer, with help from ᴊᴀᴄʜʏᴍ ᴍɪᴄʜᴀʟ in regards to tidying up the shapes, and Robin Betts in regards to duplicating the correct number of objects along a given length, I've come up with this which, if nothing else, is at least a proof-of-concept.

The largest printable module is 650mm long, so this takes a total grille length, divides it by 650, and then from that works out what number of similarly sized modules will fit into that length (and, obviously, the length of those modules).

For short module lengths (below 180mm) this works fine, and creates a valid .stl file.

Actually, the curves become slightly distorted as the object stretches, but in practice, I don't really think you notice, so I'm ignoring this aspect for now.

Unfortunately, for longer lengths, the file seems to get a bit glitchy, but I'm not sure whether this is a limitation of Blender, or an error in my design.

Also, one final aspect is missing; I need to add male-to-female nodes to the ends of each module so that they can be connected together on site. Nevertheless, again, as a proof-of-concept, and using free software, this is frankly amazing.

Thanks for the help.

| improve this answer | | | | |
$\endgroup$
0
$\begingroup$

Do I correctly understand, that you want circles to remain undeformed? You can try with Scaling mode = Off. This way circles will not be scaled, only their count will be checked to maximally fit the segment; but this way there may be gaps between the circles.

| improve this answer | | | | |
$\endgroup$
  • $\begingroup$ Ideally yes - but I can't have gaps, and actually, although there is some deformation with the current set up, in reality, you can hardly tell, so I'm less concerned about this aspect for now. $\endgroup$ – Strawberry Jan 20 at 14:09
  • $\begingroup$ Another option is to scale circles along all axes, not only along the edge. This way they will not be deformed. To do this, you just need to check "Scale all axes" checkbox in the N panel of the "Duplicate along edge" node. $\endgroup$ – Portnov Jan 20 at 14:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.