Rifled surface


started with some guns and their modifications and im kind of stuck on a surface question. Until now I avoided the problem, but i couldnt find any kind of information about this topic, except “bake that”.

I will explain this problem with the RK-1 foregrip from Zenitko.

(Not sure if i can post links, if not please look for the grip on google. For better pics look in russian. Зенит РК-1)

The problem itself lies on the rifled surface. A high poly grip exists allready, but this outer rubber layer is to complex. The outer layer isnt complete circular and has two straight edges on the left and right. That means i cant subdivide in some basic lines and then extrude. I would guess i would have to create a basic shape and use a array modifier to mulitply it on the z-axis and form it finally into the non circular endshape.

When anyone could point me at a kind of tutorial with that topic i would be glad. Thanks in advance.

Your link doesn’t work, but i assume you mean the knurling on the grip (array of little diamond shaped dimples seen often on gun stocks/grips). I can think of a few ways to accomplish this. you can separate out the handle section, subdivide it, triangulate it, then pick out the individual vertices that will be the tips of the diamonds. and scale them up.

or you can separate the whole thing. then subdivide to how dense you want the diamonds, select all the faces you want to be “diamonds” then hit I+I or inset individual faces. now, make sure you have face mode selected, then hit ctrl+I to invert selection. deselect anything you don’t want changed. then scale around median point, or 3d cursor, how ever you have to do it to get everything to go in the right directions. if you want fine pointed diamonds you can then change pivot to individual origins and scale to 0. then vertex mode, select all, and remove doubles to get rid of all the overlapping verts.

theres another way i can think of with a push command or something like that, but i forgot how to do it because i never needed to use it. lol. perhaps someone else knows what im talking about and can enlighten us.

From simple cylinder, no top, bottom faces you can get this. It’s probably covered by Sanctuary and there was a nice tut on YT (blendernation?) recently using similar approach.
Ctrl-r make loops so that cylinder has square faces. In Object mode Apply Decimate modifier set to Un-Subdivide and Iterations to 1.
In edit mode II (I-key twice) inset individual faces, scale (Individual Origins) and assign to new Vertex group. In Face select mode invert selection and E extrude a bit, Alt-s scale (Origin- Median Point). Deselect all and select Vertex group you created, Ctrl and minus on numpad shrink selection then scale faces (Individual Origins).

Thanks for your replies guys, but Im not sure if this is the way to go. I will provide some pictures

You see the shape is non circular so loops/subdive will only work on the circular shapes with the CTRG+T command. Specially the loopcuts i did for the subdivision surface to keep the straight lines straight when modifier is applied.

Im still pretty sure i would have to create it with the array modifier that people use for wheels. Create a basic shape, allign shape to other mesh, multiply shape with said modifier to cover the whole non circular mesh.

Its close to christmas and I appreciate all the effort and time. Thanks

Well, you probably could get close to the shape and even could have had subsurf on (needs creasing a bit).
This would probably be some 300 to 400k verts then but it would react to the lattice much more precise.

Thousand thanks for your effort and time.


as I tried to play around with the array modifier to get some example shapes going, I pumbed into some trouble with the curve and curve/array modifier. Sounds like a massive mess but i hope i can explain it very well. Google wasnt really any major help. The tutorials i found were either without keytabs showing or were that fast and without any kind of explanation that i couldnt just follow.

Example of such a tutorial

First of all the main trouble stems from not really understanding the curve. How would i choose how much “verts/curvepoints” it has ? Right now i have a mesh ( the intergrated silencer from the weapon AS-VAL. It is pretty much a cylinder with some addons ) with a very high count of 128 vertices per loop, but Im now creating the high poly mesh. If i create a normal curve it would have 4 curvepoints when i go into edit mode and else it would show a 56 vertices loop when i use a curve/array modifier on it. this doesnt fit my 128 vertices loop to add what i intended.

So how did it get around that? I just took a loop from my high poly mesh used the “convert to [curve from mesh]” this gives me a 128 curvespoints when in edit mode and 128 in non edit mode. So i could use that with the curve modifier and array modfier, BUT i have some problems with the curvepoints of the curve and or scaling. This picture should illustrate the problem

The first two pictures should illustrate the problem with curvepoints/verts in a curve. The third and fourth should show my problem with the modifier not really alligning with the curve i selected it for. The array modifier i add after the curve just doesnt adds new objects on the correct place and somewhere outside. I tried simply converting it back and merging the 128 vertices loop as object to a freshly created face. Deleted the face and had a scale and rotation of a standart object, which worked with the first and second try, but gave up on every try afterwards.
Im just learning right now and i had a problem with the particular mesh not really looking like what i intended and tried it again. Then i failed…so im very confused and just asking for some guidance for a proper tutorial or just someone helping me out here.

Also how do i choose to add the particular mesh outside or inside of my curve? Im really confused sometimes with blender, when i think about Illustrator/Corel its just straight problematic for me to follow the

Hope anyone can bear with all my troubles.

By default Bezier curve has 2 points, Circle - 4. In edit mode with these you can W Subdivide as much as you need.

Second. You have default Bezier circle and want it to be 128 vertices when converted to the mesh. Set Preview resolution to be 32 and Alt-C convert. Not obvious but Curve Preview is what sets mesh vertices amount.

If something does not follow or scale properly - usually that means Scale or Rotation is not Applied for involved objects or Origins are off.

how do i choose to add the particular mesh outside or inside of my curve?

not clear what mode and what is the result you want - example?

Do not think Corel, think Word, HTML and RTM or set up simple experiments.

Pictures you posted about “problem with the modifier not really alligning with the curve i selected it for” does not tell what is the goal nor do they tell anything about Plane properties- N panel is closed.

Hint: if you wanted to Array some Curve you would need to use Constant Offset instead of Relative.

Post example files and pictures describing what you want to achieve.

Happy Holidays and tails up ;)!


thanks and i hope you have a nice new year too.

I will post some screenshots of all my guns and attachments so you get a hang of what i try to achieve.

It all starts with picture 5 until 9. The gun is called AS-VAL, chambered in 9x39mm and very special gun from the ZNIITotschMasch design bureau. I want to add that im in love with all guns of ZNIITotschMasch and will most likely create all of them. It is the cqb-variant of the Vintorez, whcih u will most likely know. This gun is existant in my collection allready, but just not shown in those pics.

When you want to take a closer look into the particular gun, then do that here http://my.mail.ru/mail/photoshooter/photo/766
The interesting part is the build-in silencer. content-11.foto.my.mail.ru/mail/photoshooter/766/s-773.jpg
You see it has some kind of “knurling/rifled” look and i thought it would be a step into the right direction to learn about such surface types.

In the first picture u see one of my first tries, which worked, but the whole curve on itself wasnt scaled properly and all modifiers applied. So i had to redo everything.

Picture 2 and 3 show the current problem. I did everything the same as before, but now the array modifiers doesnt allign the mesh how it should, onto the curve/circle. You see the basic mesh/first step is perfectly alligned, but the first array (when you count from the left its the second and first object that doesnt allign)

I really think i made the problem more complicated, then i thought. On second thought, after i made the last post, i knew everything worked allright before with the 128 vertices loop converted into a curve. So i think i had my basic idea right of the curve and thanks to you now i know about preview :smiley:
Im not so sure about subdividing lower meshes in form of edit mode, cause it often doesnt allign into a nice formed circle and while scaling works to some kind of degree im never pleased with the results.

I hope you get a idea of my problem now with the array modifier not alligning the mesh i choose onto the particluar curve i selected :slight_smile:

With regards

Curves derived from mesh loops tend to have all sorts of point normals issues and i can’t think of “normalize vertex normals” command.
Even if you add default curve and try to array something on it turns out normals are at 45 deg angle and you need to select all curve points and Ctrl-T twist them 45. Not to speak about adjust start and end of Array on Curve which tends just to “jump” over merge point even using Shift-Alt during grab. I can just admire your patience getting through this. Nice models, btw, all of them.

To get knurling on cylinders i’d rather use Decimate - Unsubdivide on Plane and Warp, like in image. Position 3d cursor below plane in front view and Space - warp. If the mesh is ‘tileable’ it joins nicely. Parameters can be adjusted on T panel (or F6).

He man,

since you were so helpfull you atleast deserve a update.

I didnt use array/curve modifier and only used a mirror at the end.

Sounds completly retarded to not use what i discussed here with you, but at the end it worked. The high poly mesh has 128 vertices for a 360° rotation so i divived 360 by 128 and got 2,8125 degrees. But the 0°,90°,180°,270° were a vertice and so i divided the 2,8125 degrees again by 2. This allowed me to get a precise flat face at the 0°,90°,180°,270° marks which i used to allign my small basic shape(which does the rifling at the end) of what i used for the array modifiers. Duplicated the basic mesh 127 times and rotated each by 2,8125 degrees. Joined all together, removed doubles and i had a perfect looking version. The mirror modifiers was used to get most of the silencer covered along the y axis.

the first two pictures show the stuff i explained with the 0°,90°,180°,270° marks to get a face and not a vertice at those marks. The third and forth are the final product.

At the end still thanks for all your effort and examples. You still made me understand Blender a little bit more then i did before.

Have a nice day