When mapping, there are times when precision matters a lot, and times when it doesn’t matter at all and simply eyeballing sizes and positions gives the best result. But in this article, I am going to talk a bit about the former, when we want perfect precision in our work, when we need that road to be exactly 10 feet wide, or entities needs to line up perfectly with each other. In CC3+ we have multiple tools available for that purpose, such as snap grid, modifiers and coordinates. I’ve talked about these things in other places before, but I’ll put all these into the context of precision work here.
The Snap Grid
The easiest precision tool is the snap grid. When the snap grid is enabled, you’re only able to place nodes (and symbols) according to the snap (placement) grid. This is extremely helpful when mapping things like dungeons and floor plans to make those rooms and corridors that perfectly fit the 5′ (or whatever your gaming system uses) battlemap grid.
There are two buttons down in the bottom right corner of the interface that controls the snap grid, the Grid and the Snap button. The Grid button controls the visual guide grid, but does not actually turn on grid snapping, you need to press the Snap button for that. Do note that the Grid button controls the visual helper grid, which is NOT the same as an in-map grid, such as a battlemap grid or overland hex grid.
Configuring the Snap Grid
The snap grid that comes with the template may not be fit for your purpose, maybe you need a grid with finer or coarser snaps. To configure the snap grid, simply right click on either the Grid or Snap Buttons to bring up the configuration dialog. From here you can select from a list of predefined grids. Most of these are named something like X’ Grid, Y Snap. This simply means that the guide grid will show a dot every X units, but each visible division is divided into Y snap points. So, if the grid is a 10′ Grid, 2 snap, it means that the visual grid dots will appear at 10′ distance, but there are two snap positions for each grid division, so the actual snaps are every 5′ in this case. This can sound weird at first, but it allows you to have a more detailed snap grid without the visual guide grid being too cluttered. Note that the names here are manually typed text, and while they should be correct out of the box, it is possible for you to change the configuration of the grid without changing the text which may lead to some confusion.
Below the grid list is a few options. The Grid and Snap checkboxes are directly mapped to the Grid and Snap buttons we talked about earlier and is just another way of turning them on/off, but the Cursor snap option is more interesting. If this option is enabled (along with Snap), you’ll see that the cursor jumps between snap points when trying to place anything, while if it is off (but Snap on), the cursor movement is smooth, but the entity “jumps” as you place it, as it aligns to the nearest snap point. I prefer to work with cursor snap on while using snap, since this gives me feedback while I work, instead of potentially surprising me as I click to place.
(For the Ortho checkbox, see below)
Of course, it may very well be that none of the available grids fit your needs. So you can also edit or create a new grid from this dialog. If you click the Edit button to edit an existing grid, you’re taken straight to the edit dialog, while if you click New, you’ll have to select the type of grid first (2d rectangular is the standard square grid), then you see the edit dialog.
Whether creating a new grid or editing an existing one, do remember to give it a descriptive and correct name.
Ortho
You have probably also noticed the Ortho button in the lower right along with the Grid and Snap buttons, as well as the Ortho checkbox in the grid dialog. Ortho isn’t really connected to the grid, it’s just grouped along with them because it provides similar precision functionality.
Basically, Ortho is used to ensure you can only place nodes/symbols along a straight line, making it a great tool when you need to line up something. Note that it doesn’t work for regular symbol placement from the symbol catalog, but if you place one symbol, and then use the copy command on it, you can paste it in a nice line. Ortho will only allow you to place it either in a straight left/right from the previous placement, or straight up/down. Not that this can be varied with each click, allowing you to build up a “snake” of tables like in my example image.
Note that this is different from using a grid, since Ortho only ensures things line up, it doesn’t enforce distances, and the lining up is always in relation to the previous entity placed, so if I make a shape like my snake of trees, you can see that the last tree does not line up with the first one like it would have done on a grid.
Modifiers
Modifiers are used to place something exactly in relation to another entity. The common modifiers are found as buttons at the bottom of the right toolbars, but you’ll find more of them under Tools -> Snaps.
Almost all of these modifiers have one thing in common, and that is that they are supposed to be used in the middle of another command. I won’t turn this into a detailed description of every one of these, but let us point out some of the basics and how you can utilize them. Often, you can simply rely on the snap grid for accomplishing the same things, but the modifiers really shine if you have entities that don’t properly align to your snap grid, or you have things at an angle which is also not very cooperative with the snap grid.
For example, the endpoint modifier lets you pick the exact end point of something, like a line. In my simple example here, I’ve used the endpoint modifier to ensure my two rectangles line up along the left side. The steps I used to draw them are as follows
- Set fill color for the first rectangle. (Green in my example)
- Use the Box tool to draw it, to best showcase the modifer, draw it without snap enabled
- Set the fill color to use for the second rectangle. (Blue in my example)
- Start the Box command, but do not start to draw.
- Click the Endpoint button. CC3+ should now show a selection cursor, and the command line should read entity.
- Click the edge of our first rectangle near the corner, but not on the corner itself. You’ll notice that the first node of our new rectangle was placed at the end of that edge, which obviously also is the corner
- Place the second corner and be done.
As you can see, our modifier allowed us to place the corner of the second box exactly at the corner of the first one, even if it didn’t align with a snap grid.
We could also have used other modifiers like Midpoint to place the node midway along the edge or Center to make it centered within the entity. My second example image have placed some circles on the original rectangle using these two commands.
Another highly useful modifier is the Intersection one which allow you to find the exact point two line segments intersects. Even if they don’t intersect in the drawing, CC3+ will just calculate where that intersection would be if the lines were extended.
Coordinates
The final way for achieving precision is to type coordinates on the command line. Do you need a line to be exactly 1.564 feet long? Well, that is easy from the command line. Whenever CC3+ asks you to place something, you can always do that with your mouse, by simply clicking in the map where you want it. If you are drawing a line, you click once for the starting point and once for the ending point. Drawing a path, you just continue clicking once for each node.
But, instead of using the mouse, you can simply type the coordinates on the command line. You don’t need to do anything special to do this, basically just start typing whenever CC3+ expects you to place something. For example, say you have a map at the default size of 1000×800 and you wish to draw a rectangle covering most of the map except the outer 100 units. Well, that would be a box with the lower left coordinates at 100,100 and the upper right coordinates at 900,700. You can do that by setting up a decent snap grid, and perhaps count some steps, but instead, simply start the Box command as usual, but when CC3+ asks you to place the first corner, instead of clicking, just type in 100,100 and hit enter. If you move your mouse at this point, you should see the first corner being placed where you wanted. The command line would also be requesting the second corner at this point, so again, simply type in 900,700 and hit enter. All done.
There are 3 “types” of coordinates we can use in CC3+. What we used above was absolute coordinates, we basically told CC3+ exactly where to put things. In our example, we had already decided where those coordinates were, so that was the easy option. But what if you know that you are making a box that is 200 by 300, and should have it’s lower left corner at 200,200? Well, it is easy enough to calculate, just add the size to the coordinates, and you get 400,500, easy enough. But even easier is to let CC3+ handle that, and let us instead use the second type of coordinates, namely relative coordinates. When we use relative coordinates, we basically tell CC3+ that these coordinates are to be added to the previous ones. So, to do that, again we start the box command as before, and for the first corner, we use the agreed upon 200,200 coordinates. But for the second corner, we instead type @200,300. The @-sign tells CC3+ that these are relative coordinates, so it will simply add these to the previous location internally, and figure out the location based on that. This is especially useful if we know the size of something, but do not know the first coordinate. For example, the first corner might have been placed using the Midpoint modifier along some existing line, meaning we don’t know the coordinates, and making it impossible for us simply do the addition manually.
The 3rd type is polar coordinates. These are also a type of relative coordinates, but instead of giving a size in x and y direction, you give an angle and a distance. For example, if I want to draw a square, where the diagonal is exactly 200 long, I can do that using polar coordinates by giving an angle of 45 degrees (using 45 degrees for the diagonal will result in a square, any other value will be a rectangle). This would be expressed in CC3+ like <45,200. The <-character at the start says this is polar coordinates, then follows the angle, a comma, and the distance. So to draw this square in our drawing, again we use the box tool, and this time I type in the first corner as 500,500. Then, for the second corner I type <45,200 and hit enter, and voila, I now have a square with a diagonal of exactly 200 without needing to know anything about the side lengths of the rectangle.
Note that CC3+ has a coordinate display in the top left. You can click it to switch modes between regular (absolute) coordinates, relative coordinates and polar coordinates. For the two latter modes, the value is relative to the last node, entity or symbol you placed.
A note about Symbol Placement
All symbols have an origin. Whenever you use precision placement with symbols, it is this origin that is placed at that precise point. This origin is often at the center of the symbol, but sometimes also along an edge, this vary a bit depending on the intended use of the symbol. But you can always visually inspect this by picking up the symbol from the symbol catalog and just see where it appears on your cursor. The crosshairs are always centered on the symbol origin. You can also edit the symbol through symbol manager and just find the 0,0 coordinate in it (look at the coordinate display in top left, remember to have it in absolute coordinate mode)
Smart Symbols and Snaps
Smart symbols are symbols that can align themselves to an entity, like a wall, often cutting the wall (door symbols) and even resizing to fit the wall width. These are also a kind of precision built into the symbol, but be careful using this with the other precision techniques above. Only one will win out in each case, leading to these symbol not performing as you would expect. Especially keeping snap on while placing doors in the dungeon can lead to undesirable behavior, so turn off snap when you don’t need it.