Update 16 to CC3+ just released (get it from your registration page), and with it comes a long list of added commands and fixes. Let us have a look at those new commands, and discuss how to use them in your mapping efforts.
I’ve divided this post into two different sections. The first part describes the new features that are useful in your mapping, while the second describe the more technical commands. I recommend you give both sections a view, but many users will probably want to just glance over the technical section and see what is relevant for them.
Do note that all the new commands in this update is presently only available as command line commands, which you must type manually on the CC3+ command line, they are not available in the menus or toolbars yet. Don’t let this discourage you however, as using a command from the command line is just a case of typing in the command on your keyboard and hitting enter (as long as you are not currently in the middle of another command). The rest is just doing as the command line tells you, which you should be familiar with from many other commands already.
The Fun Stuff
Contours from raster images
So, let us start with one of the more exiting additions to CC3+. Previously, if you wanted to import a map you had drawn in another program into CC3+, you would have to import it as a background image, and then manually trace over it with the drawing tools to recreate the map in CC3+, as there was no way for CC3+ to generate proper drawing entities from your image, such as landmasses.
However, with the new CONTOURSM command, this has changed. To start out with expectations for this command, what this command does is to find edges in your image, where edges are defined as transparent vs non-transparent pixels. This makes it a nice command to automatically convert an image of a landmass into a CC3+ polygon, but it is not a general solution for converting any kind of image and get all the details converted to CC3+. So, what this command mainly does is that it saves you from manually tracing the outline of your landmass. For anyone who have done this with a complicated landmass, they should quickly realize how big of a time saver this is.
So, to explain the use of this command, here is a brief mini-tutorial on its use. I will take an image of an island and turn that into a proper CC3+ editable drawing entity.
Note that even if this tutorial uses a landmass as an example, the use of this command is not limited to landmasses.
-
- Before we begin in CC3+, we need an image of our landmass. I’ve used the below image for this. However, as I mentioned above, CC3+ detects the edges based on transparent vs non-transparent pixels, so I can’t just insert this image. I need to edit it in an image editor first, and make the seas transparent and the landmass a solid color. Since this is a CC3+ tutorial and not a tutorial on image editing, I won’t go into the details here, but generally you should be able to just load the image into your favorite image editor, and then use the magic wand or similar selection tools with a reasonable tolerance to select sea areas and make them transparent. The second image below shows my landmass after this process.
- Before we begin in CC3+, we need an image of our landmass. I’ve used the below image for this. However, as I mentioned above, CC3+ detects the edges based on transparent vs non-transparent pixels, so I can’t just insert this image. I need to edit it in an image editor first, and make the seas transparent and the landmass a solid color. Since this is a CC3+ tutorial and not a tutorial on image editing, I won’t go into the details here, but generally you should be able to just load the image into your favorite image editor, and then use the magic wand or similar selection tools with a reasonable tolerance to select sea areas and make them transparent. The second image below shows my landmass after this process.
- Next up is importing it into CC3+. To do this, we simply select Insert File from the Draw menu. Before doing this, I recommend having set up a dedicated sheet at the appropriate position in the drawing order.
- Now it is time to have CC3+ generate the entity. First, switch to the LAND sheet. Then type CONTOURSM on the command line and hit enter. CC3+ should respond by requesting the distance. This specify the distance in map units (miles or km on overland maps) from the edge of the image to the outline of our new polygon. You can use a value of 0 to match the coastline exactly, but if your outline seems pixelated I recommend using a slightly higher value as this will result in a smoother path. After inputting the distance value, CC3+ will ask you to select the entities. Simply select the image we inserted, and right click -> Do It.
The contour will be drawn using the current settings, so depending on color and fill style, you may not immediately see this outline. To see it more easily, hide the sheet you put the image on, allowing just the contour to remain.
At this point, you may wish to use commands such as Simplify or Fractalize on the outline. If the original image was a bit pixelated, I found that first applying Simplify then applying Fractalize resulted in an improvement, but for now, I am just going to leave it as it is.
- The final step is to bring the visual look of our new landmass into line with how a landmass from our drawing tools would look. This is done quickly using the Change like draw tool command, which can be found by right clicking the change properties button. When you start the command, it asks you for the drawing tool to use. You can type in the name of one on the command line, but it is generally easier to right click instead which will bring up the drawing tool dialog. Pick the default land tool, and finally select all our new contours (there will be one for each separate shape in the original image, so you may have quite a few) and finally right click -> Do It. The result should be a nice landmass in the drawing tool style you picked, based on your original image.
Note that you may need to do some cleanup work, especially if your landmass was highly detailed with small tiny details, but the main work is now done. Also remember that since we turned it into the style of a drawing tool, the edit feature of the drawing tools now also works with this landmass, making it especially easy to make changes, such as add or remove parts.
Exclusion Commands
Ever needed to fill a polygon with symbols, but exclude the area overlapping with another polygon? CC3+ now includes a couple of exclusion commands that lets you do just this; CONTOURSMX, FORESTX and SYMFILLX. These three commands all behave exactly as their normal counterpart, the only difference is that they will ask you to select entities two times. The first set of entities you select are the ones to be affected by the command, and the second set defines those entities that will be excluded from the command. Below is an example using the Fill with Symbols (FOREST) command. The first image shows three polygons (A forest area with two lakes) before filling anything. The second image shows what happens when using the regular Fill with Symbols on the forest polygon, while the third shows what happens if we use FORESTX instead and define the two lakes as excluded. Except for the fact that you are asked to select entities twice with FORESTX, it behaves the same as the regular Fill with Symbols command. (To change settings for FORESTX, go to Draw -> Fill With Symbols first to load whatever setting you wish to use, but click close instead of Run Now).
The Technical stuff
Admittedly, if you are like me, this may be the true fun stuff of this article. This part is without pretty pictures though
Version Checking
CC3+ now contains features to check if you have the latest version installed, as well as check map versions. Because changes to CC3+ sometimes requires slight changes in map files, CC3+ can now alert you if a map file was created in a newer version of CC3+ than the one you are using.
You can turn on automatic version check from the Options dialog. This will allow CC3+ to check with the ProFantasy web site if a new version is available, and alert you. These features come with a couple of new commands you can manually execute from the command line. CHECKNEWVERSION will do the version check and provide you with a dialog informing you about the latest version available, as well as which version you are running. CHECKFILEVERSION will tell you which version of CC3+ the current file was made in, as well as which version you are running. You can also run CLEARFILEVERSION to clear the version from a file (making it appear like a pre-3.81 file), or UPDATEFILEVERSION to set the file version to match the version of CC3+ you are running.
Export Settings
You can now configure most parts of the export process from the command line. This is very helpful if you do exports from scripts (Such as my tile script from the large exports annual [Issue 129]), since the script can set these values themselves instead of having the user manually access the export settings dialog. There is also a command to set the max pixels per pass from inside CC3+ now, instead of closing CC3+, editing the config file, and then restarting CC3+. Note that these command sets the same values as you can set manually from the export dialog, so refer to that for details.
- EXPORTSETAA – Set antialiasing value. Note that the graphical dialog was updated to provide more reasonable values (some users would try an antialiasing value of 99%, without realizing that this would export a drawing 10,000 times larger than their requested size to apply that amount of antialiasing. So the graphical dialog now has a slider, and the max value of 100% in this dialog now is the same as the term 4x antialiasing which you may have seen in other circumstances, which is equal to 75% under CC3+’s old system. The old system is still used behind the scenes however, so when setting the values with this command, you will be using those value. For example, if you use this command to set the anti-alias value to 25%, the dialog will show 33% which is the equivalent under the new system
- EXPORTSETBORDER – Sets the ‘Restrict to Map Border’ option
- EXPORTSETCROP – Sets the ‘Crop to Selection’ option
- EXPORTSETVIEWER – Sets the ‘Launch Image Viewer’ option
- EXPORTSETHEIGHT – Sets the export height in pixels
- EXPORTSETWIDTH – Sets the export width in pixels
- EXPORTSETBPCT – Sets overlapping percentage when export requires more than one pass
- EXPORTSETMINBPX – Sets minimum number of border pixels for overlap between passes
- EXPORTSETMPPP – Sets the max numbers of pixels per pass. The larger this value, the fewer passes CC3+ will need to export the drawing, but it will also increase the amount of memory CC3+ requires when exporting, and very high values may even cause crashes. The default value is 4000000, but most modern computers with 8GB of ram or more can usually set this to 40000000 without problems, although you may find that it doesn’t work on particularly complex maps.
Other Commands
- HEXSYMINON/HEXSYMINOFF controls whether CC3+ will allow you to place hex symbols in those partial hexes along the edge of a hex map.
- MULTIFILESCRIPT allows you to execute a script file on every map in a given directory. Be careful with this one. Ensure that your scripts are only valid macro commands, and not commands that would show dialogs or require user input. Note that the commands you want to execute must be in an external script file, and not a standard macro (although you can call macro commands from the script file)
- OPENNOTE is great in map hotspots, since it can open a named map note directly, instead of opening the list where the user must pick the note to show. I am using this in the navigation bar for all new maps in the Community Atlas.
- PINSHEETS adds a point to every sheet in the 0,0 position. You may remember that empty sheets (even if they have effects) disappear when you save the drawing, so the solution is to put a point entity on each sheet. This command automates that by placing a point on 0,0 on every empty sheet in the drawing. This point is placed regardless if the sheet is hidden or not, and is always placed on the TEMPLATE layer. (As a side note, you’ll normally want to keep the TEMPLATE layer hidden at all times, otherwise effects defined on the various sheets also applies to these points which then often looks like a tiny odd disturbance in the lower left corner)
- PURGESYMM is a macro version of PURGESYM which doesn’t show that confirmation dialog.
- SETTEXTSHEET sets the default text sheet in drawing presets. This is a handy command to use along with MULTIFILESCRIPT to automatically update a bunch of maps.
- STARTM allows you to call the regular windows start.exe command and send it a parameter. This is especially helpful for opening things such as URL’s from a map. It can also open documents, but for that we already have the OPENDOC and RUNAPP commands.
- SYMDELNEAR can be used to delete symbols too close to another entity. Can for example be used to delete some of the symbols placed with the Symbols in Area command or similar.
- TOGLSHT and TOGLSHTF are used to toggle the visibility of a sheet. The first version of the command takes a single sheet as a parameter, while the second version matches a substring against sheet names to toggle multiple sheets.
- DELAYDRAWSYM is used to turn on/off delayed drawing of symbols. This is the feature that draws a symbol after the effects, sometimes making the symbol appear weirdly on top of other things when effects are turned on.
I have some questions about the PINSHEETS command. Does it place the point;
1. on *every* sheet, only visible sheets or only *empty* ones?
2. on the TEMPLATE layer or the current one?
3. at 0,0 or does the user have to select where?
This will affect how I use it.
Okay, question 3 was answered but the other 2?
It places a point on every empty sheet, visible or not, and always on the TEMPLATE layer, even if it is hidden/frozen, and always at 0,0.
Since the TEMPLATE layer is normally hidden, the point should be hidden as well even if 0,0 is not hidden in the border of your map.
While I understand why the OPENNOTE command displays the note in a list box (so it can be copied to the clipboard?) I think it might have looked nicer displayed in a MSGBOX dialog. (I’ve used MSGBOX for map help before.)
OPENNOTE is coded to display it the same way it would open from the map notes dialog (as in open, not edit)
A MSGBOX is fine for shorter notes, but for longer notes, it is missing critical features like scrolling.