53
$\begingroup$

When you first add a cylinder, you have the option to change the number of vertices, etc, but once you do anything else in blender, it seems you no longer can edit those parameters.

Is there a setting anywhere or an add-on that allows these parameters to be edited later on? If not, how easy would such an addon/feature be to create for anyone reading this?

$\endgroup$

6 Answers 6

42
$\begingroup$

Blender does not have a construction history. You can only edit the parameters of the last action, nothing earlier than that.

To edit the parameters of the last action you can either use F9, you can go to Edit > Adjust Last Operation or open up the panel on the bottom left of the 3d Viewport.

enter image description here enter image description here

If you want to modify the last tool you have to do it before using another tool.


In Blender 2.7x you can use F6 or the Operator Tab in the Tool Panel T to edit the parameters of the last action.

enter image description here enter image description here

$\endgroup$
1
  • 3
    $\begingroup$ It seems like that could be something that could be implemented maybe through the same mechanism the Undo history is recorded, but then again, I'm not a developer. $\endgroup$ Mar 18, 2014 at 13:04
16
$\begingroup$

As already mentioned in other answers you can't edit operator options after the fact, Blender doesn't have native "parametric primitives" or an editable "construction history" yet. You can press F9 to bring back the popup dialog right after an operation; that is before any other action that registers an undo step is taken, after that objects (or operations) become regular "static" geometries and lose any adjustable parameters they had.

In an attempt to not leave you empty handed I'll try to present an alternative workflow: Be smart, plan ahead, use modifiers to your advantage.

If you foresee the need to adjust geometry properties after the fact, or edit parameters frequently, rather than using default pre-made primitives, manually build objects yourself in a way that allows tweaking needed parameters easily.

This is where modifiers come in, they provide what is often called "non-destructive modeling".

If you need to, say, easily change the number segments of a cylinder, or frequently adjust its height, then rather than add a default mesh cylinder primitive from the regular Add menu, it would be smart to build a parametric one from scratch with modifiers instead.

Create a simple single edge mesh with no actual faces whatsoever. Start with a plane, for example, then delete all but one edge, make sure one vertex is at $[0,0,0]$ and the other at something helpful like $[0,1,0]$. Add a Screw Modifier to it, then a Solidify Modifier. You now have a "Parametric Cylinder" you can easily adjust the number of segments and height of.

enter image description here

Now you can control the properties from the modifier stack instead. Adjust height from the Solidify Thickness and segments from the Screw Steps.

This is what is often called a "non-destructive workflow", the poorman's parametric workflow, where modifiers are kept "live" so they can be easily adjusted at a later time .

Use not only modifiers to your advantage, but extend this to other tools as well, like constrains, drivers, shapekyes etc., and you can go a long way in creating easily editable "parametric objects". Bezier curve objects despite being limited in the type of modifiers they can accept, are also versatile for extrusion based geometries, like piping, tubes, frameworks, or structures, providing a degree of adjustment from its native parametric properties.

This will obviously not work flawlessly for every situation, you won't always be able to achieve every end goal without some destructive steps in between (like applying some modifiers, or manual modelling), but be inventive and you can save a lot of time in the long run.

Here is a "Parametric Sphere" made from a single vertex mesh and two Screw modifiers.

enter image description here

You could even control radius with an additional Displace Modifier.

See a parametric 2D circle with inner and outer radius.

You could hack a parametric box from a plane and a Solidify modifier.

With nodes we considerably expand the possibilities and allow for far more complex setups and custom parametric modifiers.

Look past existing builtin node based primitives, which are already parametric, and combine them into far more complex node setups. Expose primary properties to end users through the Group Input node, to be able to comfortably adjust them directly from the modifier panel.

See:

$\endgroup$
3
  • 2
    $\begingroup$ I am very new to blender. I love the globe example using the screw modifier, There isn't a hope in Hades I would have thought of that myself. Thankyou $\endgroup$ Feb 26, 2020 at 0:53
  • $\begingroup$ Nice! I think Blender could implement parametric sphere, cylinder and cube this way by default. $\endgroup$ Oct 3, 2020 at 15:38
  • 1
    $\begingroup$ You can easily create one yourself from any standard primitive by erasing all surplus vertex and leaving only the useful one or two. Otherwise default addon Add Mesh Extra Objects has a few builtin single vertex mesh options as well. $\endgroup$ Mar 30, 2021 at 15:54
6
$\begingroup$

With Blender 2.8+, you can always hit the F9 key and you´ll see the operator panel again.

$\endgroup$
3
  • 1
    $\begingroup$ Thanks! This is exactly what I was looking for. I would add that you cannot bring up the operator panel again once you go into edit mode with that object or move it with the mouse. It would be nice to maybe have a parametric object type available that can be converted into a mesh later, or maybe a given a mesh modifier for non-destructive editing. $\endgroup$ Jan 23, 2020 at 4:48
  • $\begingroup$ I am new to blender and this seems a bit insane to be because, it also seems that I cannot make a new primitive at anywhere other than the origin. So what happens if my origin is already occupied by other geometry and I cannot see the new shape? I can do the "Adjust Last Operation" right after creating the object, but then I can't easily see what effect changing the parameters has because the geometry is not visible. Is there a workaround for this? $\endgroup$
    – uglycoyote
    Feb 8, 2020 at 21:39
  • $\begingroup$ @uglycoyote You can create your new item at the cursor. On the lower left the operator properties will appear (might be collapsed). In them, you can usually change the spawn point. This will undo the creation and redo it at the updated position, keeping the other settings intact. As for setting parameters after the fact: It is only possible by bundling the properties into the mesh/object. Only a few addons do this for their custom objects. After creating the object, the parameters are stored in the object. Later on a button allows to rebuild the object from these parameters. $\endgroup$
    – Teck-freak
    Oct 13, 2020 at 3:14
5
$\begingroup$

There is a workflow solution to this. While you're making a model, if you think that you may want to change one or more parts of the model, make that set of parts separate bits of the mesh. This can be achieved with a vertex group, or just by leaving the part of the mesh unconnected to the rest of the object.

When you decide to select on part, select it by using the defined vertex group, or if you've left it unconnected to the rest of the mesh, by selecting a point on the part and pressing CTRL - L, or by pressing CTRL [numpad] + until the part is selected. Get the necessary parameters of the part (especially the median point location), or create the new one, if not at the desired location, in a way that you can move it there, and when it is in the desired place delete the original.

$\endgroup$
1
$\begingroup$

Wonder Mesh

Wonder Mesh lets you create and edit parametric primitives in Blender.

This addon ties the settings with the mesh itself and you can edit them at any point.

Video Explanation Can be Found Here: Video Explanation

$\endgroup$
0
$\begingroup$

To answer the original question about cylinders (and perhaps with less confusion)... Just apply a "Subsurface" modifier, and set "Mean Crease" value on the flat-side vertices.

Example can be seen here.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .