Generate a "perfect" cactus.
The concept here is to make just the one section of the cactus and repeat it.
Add a circle, keep an integer fraction of it, by deleting other verts.
Example one eights of a circle, arrayed into a full circle with object offset using empty. Empty is rotated (360 / 8 = ) 45
degrees. Array count is 8.
Hindsight TIP. Rotate such that the center of arc matches Y or X axis making it easy to edit in front or right view respectively. eg clockwise 22.5 degrees to align to X
Taking care to keep our end vertices on same vector from origin and at same length, edit the profile suit.
lol, total mouse misfunction hassles, going to look like a plastic wall plug, but its the concept that counts
While editing profile one option To ensure these verts keep there place is to hide the end verts (select them H unhide with AltH)
In gif above have scaled two end verts about the scene cursor pivot point, at circle center.
Make an unlinked object copy to keep that profile. Later will add an array modifier to grow in Z. Use the profile to make end caps.
Then A Select all, and extrude in Z EZ
Another array modifier is used to copy this section in Z.
So, here is my plastic wall plug thingy to hang pics like this on walls. Anyhoo, the concept is making the divot once. Edit mode all faces selected.
Can later apply modifiers and edit, or add modifiers to randomize
Here is above bent out of shape with a 4x4x4 lattice.