4
$\begingroup$

I'm trying to make numbers fit on a television dial like this:

enter image description here

But I'm having difficulty getting the numbers to align perfectly (i.e. not having the number 20 spread out but close together). I've been trying to follow this demonstration making of a dial in Blender but I just can't get the numbers to align properly with the vertices of the circle.

This is what I am working with:

enter image description here

Does anyone know of a simple way to do this?

Here is the .blend

This is the .blend for LukeD

$\endgroup$
5
  • 1
    $\begingroup$ Totally offtopic. Normals on your mesh are inverted, go to Edit Mode and recalculate them. Selected object (dial) seems to be created by joining two meshes. You will need to separately Flip Normals. $\endgroup$
    – cgslav
    Commented May 27, 2017 at 0:35
  • 2
    $\begingroup$ You could also create those numbers with texture, it would significantly lower the polycount while maybe the loss of the quality won't be that big. You will really want numbers to be as meshes if you intend them to bulge from the dial circle (like extruded once on the surface). $\endgroup$
    – Mr Zak
    Commented May 27, 2017 at 9:26
  • $\begingroup$ @LukeD you're totally right...my normals were so messed. Recalculated and their great. Thanks for pointing that out...much appreciated! $\endgroup$
    – lakerice
    Commented May 27, 2017 at 19:07
  • $\begingroup$ @MrZak Yeah I thought about UV unwrapping the mesh and adding the numbers as a texture, but I do want them to bulge a little bit for that added realism. But good suggestion though. $\endgroup$
    – lakerice
    Commented May 27, 2017 at 19:08
  • $\begingroup$ @lakerice even if you use a texture you can have them "bulge a little" if you use the texture for color and bump (or displacement). $\endgroup$
    – user1853
    Commented May 28, 2017 at 0:39

3 Answers 3

13
$\begingroup$

Fastest way (if a little inacurate) is probably using a single text object, with every single dial text as a word (separated by a space character)

Add a Curve modifier to said text object, and point it to a Bezier Curve Circle matching the desired dial radius.

Adjust the vertical positioning of text as desired, the control its radial positioning through the Word Spacing property.

enter image description here

For more precise positioning you are probably better off making each dial text a separate text object, then manually place it radially by using the 3D cursor positioned at the dial center as rotation pivot.

You may also use an arrayed plane, then have numbers placed inside a single group/collection used as particle system, this also allows non rotated text.

$\endgroup$
3
  • $\begingroup$ Sorry one more follow up question...how can I get them to stick to the dial after? I tried using the shrinkwrap modifier but it really warped the numbers. $\endgroup$
    – lakerice
    Commented May 28, 2017 at 20:44
  • $\begingroup$ Shrinkwrap would probably be the best way, make sure you tick the option Apply modifier on spline'points rather than filled surfaces on the modifier header, so you can bevel the spline $\endgroup$ Commented May 28, 2017 at 23:31
  • $\begingroup$ Hm strange it doesn't show that option in my version...just "adjust edit cage to modifier result" $\endgroup$
    – lakerice
    Commented May 29, 2017 at 15:21
8
$\begingroup$

You may do it using a Simple Deform (Bend) modifier although it'll deform the text a bit. enter image description here

Add a text and separate every letter by a space character. Convert it to the mesh with Alt+C. enter image description here

Being in Object Mode add a Simple Deform modifier and set its type to Bend. enter image description here

Change the Deform angle value like you need. enter image description here

NOTE: You may do the similar operation being in Edit Mode with Shift+W shortcut.

$\endgroup$
1
  • $\begingroup$ Thanks I tried it but yeah it's a little deformed for the double digit numbers. Interesting method though! $\endgroup$
    – lakerice
    Commented May 27, 2017 at 19:04
6
$\begingroup$

Overview:

Overview

  1. You need Circle with the same number of vertices as the number of... numbers.
  2. Numbers should be individual objects; with Origin to Center of Mass (Shift+Ctrl+Alt+C); grouped with Ctrl+G.
  3. Particle System added to the Circle should have same number as above. Also check Emit From Verts; uncheck Random; select your Group and change Size a little bit. Sometimes only this will position numbers correctly.

Blend file:

Edit:

It was hard to catch whats going on, but after all it was just a simple difference. I was making it in Top View and you've rotated Circle to view it from Front View.

To get rid of Circle rotation problem you can just enable Rotation and switch Initial Orientation to Normal-Tangent.

eit

Now you can rotate it as you want.

If in any case you'll want to apply Scale to the Circle keep in mind that you'll need to set Phase to 0.5. It will rotate numbers 90 degrees. But it's just 'in case'.

$\endgroup$
4
  • $\begingroup$ Dang I tried to use this method but it just won't work for some reason. I'll study your .blend more $\endgroup$
    – lakerice
    Commented May 27, 2017 at 20:20
  • $\begingroup$ Try to make it in a new file. Maybe there is something wrong in your main file as inverted normals for example. This is by far most precise method here, so give it a try. $\endgroup$
    – cgslav
    Commented May 27, 2017 at 20:23
  • $\begingroup$ Still can't get it to work...sorry for the trouble. I've attached the .blend from scratch for you in the original question if you want to tell me where I went wrong. Definitely want to nail this method. $\endgroup$
    – lakerice
    Commented May 28, 2017 at 0:38
  • $\begingroup$ @lakerice check my edit, now everything should be perfect :) Also change size to something higher value to see numbers better. $\endgroup$
    – cgslav
    Commented May 28, 2017 at 11:22

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