August 05, 2007

Command Tool: Open a Specific File

If you have bought into the tool palette workflow in AutoCAD® Architecture/Autodesk® Architectural Desktop, you may find yourself wanting to move other customizations that you formerly might have put on a toolbar on a tool palette. Fortunately, there is a tool type just for this occasion, the Command Tool. You can find a "blank" version of the Command Tool in the Stock Tool Catalog that ships with ACD-A/ADT, in the Helper Tools category.
A post in the AutoCAD Architecture 2008 Discussion Group asked if there was a way to have a tool on a tool palette open a specific file. After a little confusion over exactly was wanted got cleared up, I noted that while I was unable to get either the OPEN or NEW commands to work directly in a Command Tool to either open a specific file or start a new file with a specific template without the user interacting with the "Select File" or "Select template" dialogs, I was able to use a script file to run the NEW command at the Command Line and to get the desired template file entered onto the Command Line, only requiring the end user to press the Enter key. I thought I tried addiing a space to the end of the script to force the value to be accepted and end the command, and it did not work, but I was in a bit of a hurry and may have not properly edited and saved the script file. I have taken a second look at this, in ACD-A 2008 and in ADT 2005, and was able to get both the OPEN and NEW commands to fully execute by running a script file from a tool palette tool. While opening most files is probably best done by the user directly with the OPEN command (or through Project Navigator, if you are using that), there may be a few "source files" to which you would like to have direct access, without a lot of navigation in the "Select File" dialog. If you are putting together a palette of tools related to a specific task that requires starting a new drawing with a specific template file - especially if it is not your typical default file - then the New File tool may be of use to you.

The first thing you will need is the script file. Script files, for those who do not know, are plain text files that represent the keystrokes you would type at the Command Line. Notepad is a good choice for creating and editing script files, as you do not have to worry that the saved files will have any of the extraneous formatting information that a word processor can put into a file. The SCRIPT command is then used to open a run a script file, feeding the text in the script file to the Command Line. Many commands, that would normally open a dialog box for user input will run a Command Line version when invoked from a script, even when FILEDIA is set to 1 and including those, such as OPEN and NEW, that no longer have a Command Line version (command name preceded by a "-"). For an OPEN tool, you will need to know the file name and the path where the file will be stored. For a NEW tool, you will need to know the file name and path of the template file you wish to use. The text of the script files I created when testing this tonight follow:
OPEN Tool
_.OPEN
"C:/Documents and Settings/David Koch/My Documents/The Architect's Desktop Blog/Tool Palette Tool To Open File/TargetFile_01.dwg"

NEW Tool
_.NEW
"C:/Documents and Settings/All Users/Application Data/Autodesk/ACD-A 2008/enu/Template/Aec Model (Imperial Stb).dwt"

Two things to note in the samples above. First, there is a single space at the end of the second line; that space acts as the "Enter" after the file name is passed to the OPEN or NEW command, ending the command input and executing the command. Second, the path for the drawing file or template file has forward slashes, rather than the ususal backslashes, to separate folder names. Script files will interpret a backward slash as a pause for user input. The forward slashes will be interpreted correctly; just be aware that you can not simply cut and paste the path from Windows Explorer to the script. The script file then needs to be saved to a location to which everyone running the tool has access.

At this point, I also quickly created two rather crude BMP files to serve as the tool images, by "stealing" the graphics for the OPEN and NEW toolbar buttons on the Standard toolbar. If I had to look at these tools on a regular basis, I probably would have spent a little more time and made much nicer images. You could also just live with the default image for a Command Tool, a white square.

After creating a new tool palette in my current workspace on which to create the new tools (setting an existing, editable tool palette current also works), I opened the Content Browser, found and opened the Stock Tool Catalog, navigated to the Helper Tools category......and i-dropped the Command Tool onto the tool palette.
I right clicked on that tool and made a copy, so I would have two command tools, one for OPEN and one for NEW. I then right clicked on the tool that was to run the OPEN script and chose Properties... from the context menu. I gave the tool a name and a decription. The description is displayed in the tool tip when you hover over a tool, so providing a meaningful description can be helpful to those using the tool. I chose to indicate the command (Open) and the full path and file name of the file to be opened. I then right clicked in the Image area, and chose Specify Image... from the context menu (the only choice). I navigated to the location where I had saved the image file for the Open command and selected that file. The command string entered can be seen in the image below; the SCRIPT command is run, and the script file, with full path, completes the command string. Once again, forward slashes are used to separate folders in the path. Select OK to close the Command dialog and OK again to save and close the changes made to the tool's properties.
Creating the tool for the NEW script followed the same procedure as noted above for the OPEN tool; an image showing the properties dialog with the command string for the NEW tool is shown below.

All that remains is to test the tools (you may want to test the script files manually first, to be certain they work, before testing the tools). Once you are satisfied they work, you can share them with others through the Content Browser, like any other tool.

1 comment:

Pedro Treviño said...

After a time to understand the changes to insert images with opacity map files (landscape) in AutoCAD 2007 now I have read in a forum about the same thing but in AutoCAD Architectural 2008 It turns out to be very complicated, something lacks off presicion. Problems with graphics card or any other thing?


Any comments please, and sorry my english.

Arq. Pedro Treviño (Mexico)