Given this mesh: (assume 18mm x 18mm x 12mm approx.)

The model to be formed

Is it possible to add a conical fillet (rounded bevel) to the vertical corners?

The cone of the fillet would be 1.85mm - 0.7mm from top to bottom.

Any pointers would be gratefully received.

This image below shows what I'm trying to model (I'm only modelling the outside faces, not the interior socket pieces):

SA Row3 keycaps

Ideally, I'd also like to add a 0.7mm rounded bevel, which you can see running all along the top edge (as you see here)

Update: Mesh generated by openscad

The mesh shown in Blender:


The original geometry was generated as CSG in OpenSCAD

// SA Row 3
difference() {
     intersection_for(n = [1 : 4]) {
          rotate([0, 0, n * 90]) {
               translate([24, 0, 0])
                    sphere(r = 33, $fn = 90);
     translate([0,0,46]) sphere(r = 33, $fn = 90);
     translate([-33,-33,-64]) cube(66);

Just to give a clear indication that all the surfaces are (save for the base,) sections of a sphere. (note $fn is the resolution/polycount)

  • 2
    $\begingroup$ Might be interesting: blender.stackexchange.com/questions/28042/… $\endgroup$ – p2or Nov 27 '15 at 11:25
  • 1
    $\begingroup$ These are spherical keys, so they need a different modelling style. The main faces are created with 4 intersecting spheres and then a difference operation with another sphere to create the spherical dip in the top. That's the easy part. Filleting the edges is all I need now. Really appreciate the additional feedback all the same. $\endgroup$ – ocodo Nov 27 '15 at 11:30
  • $\begingroup$ @zeffii - Files are at github.com/getclacking/SA-profile-keys-3D-models $\endgroup$ – ocodo Nov 28 '15 at 8:27
  • $\begingroup$ @zeffii - thats correct, conical fillet, radius changes size from 0.7 to 1.2mm from bottom to top. $\endgroup$ – ocodo Nov 28 '15 at 8:29
  • $\begingroup$ @zeffii - you can see it in the photograph, also see here keycapsdirect.com/pdfs/SAFamily.pdf $\endgroup$ – ocodo Nov 28 '15 at 8:30

Blender doesn't currently (Nov 2015) have a fillet that does variable radii, but you could approach the same effect with the Subdivision surface modifier to some degree. If you guide the geometry the result will look quite good.

My approach would be to Shrink-wrap a Polysphere over the exported Object.

enter image description here


  • On the left is the original import,
  • in the middle is a polysphere (a Cube subdivided a few times and then vertices are transformed with a 'To Sphere' operation),
  • to the right is the result of a Shrink wrap from the Polysphere onto the Original geometry

enter image description here

With a bit of experimentation with the ShrinkWrap modifier and tweaking of the Polysphere, you could get very close to what is desired. Because Blender isn't a solid modelling CAD program it is bound by the underlying topology with respect to what can be filleted nicely.

Even on this mesh adding a Subdivision Surface modifier produces visually OK results, this probably doesn't meet tolerance requirements.

Tweak the polysphere (translating up/down mostly) and the offset value, till it approaches acceptable results.

The ShrinkWrap object's shape is important

You'll find that being more specific about the geometry of the Shrinkwrap object will help the eventual wrapped geometry. Here i started by making a copy of the 8 extreme vertices of the imported object, and make a Cube using those vertices. Subdivide the sides and scale extruded the top inwards.

enter image description here

  • $\begingroup$ That would work well enough, this is a project only for mocking up key cap designs, so as long as they're rounded at those top corners it will look right. $\endgroup$ – ocodo Nov 28 '15 at 8:33
  • $\begingroup$ I checked the .blend, the rendering still looks sharp, anything I need to tweak? $\endgroup$ – ocodo Nov 28 '15 at 8:37
  • 1
    $\begingroup$ Yes! The results are good enough for my use case. Thank you $\endgroup$ – ocodo Nov 28 '15 at 8:53
  • 1
    $\begingroup$ And this is a great approach :) $\endgroup$ – p2or Nov 28 '15 at 12:53

I can't see the topology of your object but something like that can probably be done simply selecting top/bottom edge circles and 4 side edges, and using bevel command (CTRLB), eg: scrolling with the mouse wheel to increase subdivisions...

enter image description here

  • 1
    $\begingroup$ Topology on my object is a very dense mesh, the faces are spherical chords (I don't know if that's the correct name for them.) as opposed to cylindrical chords. Not sure if that will make a difference. The main thing is to change the radius of the side bevel as it goes from top to bottom. $\endgroup$ – ocodo Nov 27 '15 at 11:00
  • $\begingroup$ Oh also the top is concave, not flat. $\endgroup$ – ocodo Nov 27 '15 at 11:01
  • $\begingroup$ I'll post a wireframe render soon $\endgroup$ – ocodo Nov 27 '15 at 11:01
  • $\begingroup$ Wireframe / Mesh view added to question. I'll add the csg for reference $\endgroup$ – ocodo Nov 28 '15 at 1:44

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.