Not signed in (Sign In)

Vanilla 1.1.4 is a product of Lussumo. More Information: Documentation, Community Support.

Welcome Guest!
Want to take part in these discussions? If you have an account, sign in now.
If you don't have an account, apply for one now.
    • CommentAuthorLoopysue
    • CommentTimeApr 7th 2019
     
    How do you incorporate/install/add/introduce a macro that someone else has written to your CC3+?

    Little tiny baby steps please - I really don't seem to be able to get this through my head even though I've read the written tutorials on this several times over.


    Even better - is there a video on how to do it? I have autism, and I generally learn things about 10x faster if I can watch someone else do it first.
    •  
      CommentAuthorMonsen
    • CommentTimeApr 7th 2019
     
    I don't have a video, but there are two approaches:

    1)
    Put the entire macro in a plain text file, and name it whatever you want, but with the file extension .mac (for te sace of example, let us refer to it as mymacros.mac) and put it in the CC3+ data directory.
    Now, inside CC3+ you can load that macro file by typing this command on the command line
    LOADMAC mymacros.mac

    Now, all the macros in that file will be available to you. When you are done, you need to reload the default macro file with the command
    LOADMAC fcw32.mac


    2)
    Simply edit the default macro file, fcw32.mac instead, and put your macro in there. This saves you from having to keep loading the macro file and reloading the default one afterwards, but since this is the default macro file, it is also important that you don't mess it up, so create a backup before editing it.
    The file is found in the CC3+ data directory, and can either be edited with a standard text editor (like notepad), or you can edit it from inside CC3+ by going to Tools --> Macros --> Edit Macros.
    • CommentAuthorLoopysue
    • CommentTimeApr 7th 2019
     
    Thank you, Remy :)

    So once I've set up a way to open Notepad by somehow adding it to either my Start menu or my toolbar (the way I do it now is right click in a folder and tell it to create a new txt file, and then double click the txt file)... and I find and open the default macro, fcw32.mac, what are the rules? I mean - what does a macro start and end with, and is there a right and wrong order?

    I am so sorry - all these questions are probably answered in your latest tutorial blog, but I have a reading comprehension problem I've decided to finally admit to. It makes me feel really stupid at times, but I only understand a written article if I already know what its talking about. It sounds perfectly mad, I know, but that's how my brain works - for me, written instructions are easy to give because I'm writing about what I already know, but I can't understand stuff I don't already know and understand very well.
    •  
      CommentAuthorMonsen
    • CommentTimeApr 7th 2019
     
    A macro allways starts with the line
    MACRO macroname

    where macroname is the name of the macro, what you would type on the CC3+ command line to call it.

    The macro must also end with
    ENDM

    Leave one blank line between the end of one macro and the next, and the last line in the file should be a blank one, but otherwise, don't put blank lines in a macro files.

    All the lines between the MACRO and ENDM lines are just regular CC3+ commands, such as this simple macro


    MACRO drawline
    LINE 0,0 1000,1000
    ENDM
    • CommentAuthorLoopysue
    • CommentTimeApr 7th 2019
     
    Thank you again! :)

    I really need this tiny nibble size help. I didn't understand before, but it seem to me that a macro is a very simple piece of code with high level commands that are more or less in English words rather than long strings of hex numbers and syntax?

    Sort of a bit like the old BASIC language, but closer to straight English?
    •  
      CommentAuthorMonsen
    • CommentTimeApr 7th 2019
     
    Technically, a macro is nothing more than a list of regular CC3+ commands, the very same commands you manually run in the program. To write a macro, you need to know the text equivalent of the CC3+ command you wish to include, usually you can see this on the command line, when it is waiting for a new command, the previous command it ran will be seen in square brackets.

    If you look in the Tome (I recommend the new update released a few days ago), in Appendix A of most chapters, there is a list of all CC3+ commands, and their text equivalents, which describes how each command is used in a macro.
    • CommentAuthorLoopysue
    • CommentTimeApr 7th 2019
     
    I am sure you have already said all this in your article, so I feel very humble that you are willing to say it all over again in total simpleton for me like this - thank you Remy :)

    I think you have given me the key to the door I needed to open before any of it made sense to me.

    I will download the new Tome and start to have a read of all these new things you have unlocked for me.
    •  
      CommentAuthorMonsen
    • CommentTimeApr 7th 2019
     
    Posted By: LoopysueI am sure you have already said all this in your article
    Not really. I haven't made any real articles on macros. That recent article of mine on development is something completely different, and very much more complex than macros.

    I did a short intro to macros in this Command of the Week article, you may wish to have a look at it.
    • CommentAuthorLoopysue
    • CommentTimeApr 7th 2019
     
    And there we have the perfect example of just how confused I really was! LOL!

    I will also have a look at that article again. I say again because I am more than likely to have read it before, but the last time I read it the words might have made sense individually while the meaning of each phrase must have gone right over my head. I lacked the key to understand it before now ;)
    • CommentAuthorLoopysue
    • CommentTimeApr 7th 2019
     
    Already I have another question!

    On reading the first part of your Command of the Week article I saw that any macro I wrote or pasted into the default file might be overwritten every time there was an update to CC3+. I don't need to know how to do this yet (because I'd only get confused all over again), but would it be possible to switch between the default macro file and mymacros.mac by making a toggle button? A button that tells the system to look at what is loaded and switch to B if A is loaded, or to A if B is loaded. Can we make buttons that toggle things like that? It just occurred to me that if you could do that then you wouldn't have to keep messing around constantly updating the default macro file if you could switch from one to the other at any time by just clicking a button.

    Please don't tell me how to make a button yet. I'd probably have a stroke or something trying to understand it all. I'd just like to know if that is a possibility - a future goal.
    • CommentAuthorbasilgass
    • CommentTimeApr 7th 2019
     
    Posted By: LoopysueAlready I have another question!

    On reading the first part of your Command of the Week article I saw that any macro I wrote or pasted into the default file might be overwritten every time there was an update to CC3+. I don't need to know how to do this yet (because I'd only get confused all over again), but would it be possible to switch between the default macro file and mymacros.mac by making a toggle button? A button that tells the system to look at what is loaded and switch to B if A is loaded, or to A if B is loaded. Can we make buttons that toggle things like that? It just occurred to me that if you could do that then you wouldn't have to keep messing around constantly updating the default macro file if you could switch from one to the other at any time by just clicking a button.

    Please don't tell me how to make a button yet. I'd probably have a stroke or something trying to understand it all. I'd just like to know if that is a possibility - a future goal.


    I know you can bend a macro to a button. If it's possible to bend TWO (or even three) macros to a single button, then you could make a button that would:

    1. Load the macro file

    2. Run the macro command you want

    3. Restore the original macro file

    • CommentAuthorLoopysue
    • CommentTimeApr 7th 2019
     
    That's good news, Basilgass - gives me a far distant goal to achieve once I get the hang of these macro things.

    Thank you :)
    •  
      CommentAuthorMonsen
    • CommentTimeApr 7th 2019
     
    If you want a button to execute a macro directly, I recommend putting the macro in a script file and calling that via SCRIPTM instead of loading and reloading macro files.

    A script file is like a macro file, except that it only contains a single macro that are run immediately upon calling it, the file extension is .scr, and it is just a list of commands, it doesn't contain the starting and ending MACRO and ENDM commands a macro does, but otherwise there is no difference between putting the commands in a script file vs a macro.
    • CommentAuthorLoopysue
    • CommentTimeApr 7th 2019
     
    That's interesting.

    Are script files faster than macros - more lightweight on the system?

    I'm aiming more to make it possible to switch between the default macro file and my own personal one without having to down tools completely to type commands. I thought that clicking a button would be easier and faster. I'm leaning towards doing a separate .mac file of my own so that I don't have to worry about modifying the default file or having to set everything up all over again every time there's an update.
    •  
      CommentAuthorMonsen
    • CommentTimeApr 7th 2019
     
    Script files might be marginally lighter, since they don't have to stay loaded in memory as macros does, but they will have the overhead of loading the file on each use. Then again, switching back and forth between macro files will be very similar. But in any case, I don't think the difference is large enough to be noticeable.
    •  
      CommentAuthorQuenten
    • CommentTimeApr 7th 2019
     
    Question - what is the macro that you want added, do?
    • CommentAuthorLoopysue
    • CommentTimeApr 7th 2019
     
    Shessar pointed out Joachim's river macro on another thread. I followed the link, but I was having difficulty wrapping my head around the basic concept of exactly what a macro is in CC3 and what to do with it.

    Now that Remy has so kindly explained macros in terms I can understand I think I will be ok. I just need to finish the artwork for an annual first, and then I can have a play with it all.
    • CommentAuthorLoopysue
    • CommentTimeApr 7th 2019
     
    Thanks, Remy :)

    I have a clear plan of what I want to do now.

    I will set up my own macro file and collect or write the macros I want in it, then at some point in the future I will ask how to make buttons.
    • CommentAuthorbasilgass
    • CommentTimeApr 8th 2019
     
    Posted By: MonsenIf you want a button to execute a macro directly, I recommend putting the macro in a script file and calling that via SCRIPTM instead of loading and reloading macro files.

    A script file is like a macro file, except that it only contains a single macro that are run immediately upon calling it, the file extension is .scr, and it is just a list of commands, it doesn't contain the starting and ending MACRO and ENDM commands a macro does, but otherwise there is no difference between putting the commands in a script file vs a macro.


    Didn't knew the SCRIPTM trick. It works perfectly! Thanks Monsen.
  1.  
    If I understand it correctly the main functional difference between scripts and macros is that you can't use conditional statements (IFs and GOTOs) in a script because you can't use labels. This means no loops or error checking, just straight linear logic. If you want to do something more complicated than directly converting user input into actions or objects you need a macro. (The same goes for hotspots which work as scripts embedded in a map.) Just remember that adding a toolbar button means messing with menu files; it might be simpler to either call the script manually from the command line or (if you plan to call certain scripts or macros often on a particular map) create a temporary hotspot control panel for frequently used functions.
    •  
      CommentAuthorMonsen
    • CommentTimeApr 9th 2019 edited
     
    That's not right. You can use labels and conditionals in scrips, just as in macros (and in hotspots too).

    There is no real difference between scripts and macros, except that a macro has a name and can be called with a command from the command line, while a script needs to be loaded (using SCRIPT/SCRIPTM) and it is being run immediately upon loading it.

    Adding hotspots to a map (and/or a template) instead of using toolbar buttons is always a good idea if the functions are only meant to be used with that map though.
  2.  
    Oh! In the immortal words of Emily L. "Never mind." (Was it always this way? I clearly remember reading somewhere that there were no labels in scripts. Maybe it was from another macro language and I carried it over.) This will make things very convenient, particularly when using the MULTIFILESCRIPT command.
    •  
      CommentAuthorMonsen
    • CommentTimeApr 9th 2019
     
    Not sure, but as far as I know, this functionality hasn't been touched. I am at work, so I don't have CC2 here to test right now though.