AutoCAD Visual LISP / AutoLISP :: Macro In MNL File
Aug 27, 2013
I used to have a short, one-line macro in my MNL file that would read the location of the currently active drawing, find the parent directory of that drawing (truncated to 3 levels) and open a Word document in that directory that is named after the project.
If the file did not exist, it would be created named the same as the 3rd level directory.
After i wrote this, it sure sounds like a lot, but as i remember, it was a short, one-liner. Of course if a lisp routine would be better, that's okay too. I understand beggars can't be choosy.
I use Spell Check regularly and I always check the entire drawing. I would like to add to the Spell macro so that when I pick Spell from the toolbar it goes past the Check Spelling window and begins checking the entire drawing.
I believe I need to insert Alt S into my macro to select Start from the window to begin the check. Is there a character or series of characters that will represent Alt in a macro?
I urgently need a program that can auto number panels for a large drawing I have. I have a lisp program for auto numbering but we need each insertion of text to start with a P i.e. P1, P2, P3 etc etc.
I have tried to find information about this, but I am having a hard time. So i need to explain what I am doing.
I would like to be able to use commands stored in the cui menu file, initially this is done using our tablets, but our tablet drivers cannot work with windows 7 and autocad, nor can i get any that do, (i have tried over 20 different drivers).
So, instead of making a lisp function for every macro. I need to be able to use some of them.
Can I execute one of these macros using "MENUCMD" ? , I have all the information i need to do it but cannot figure it out menucmd does not seem to have an option to actually run the macro, and if it does It only seems to be able to do that with popup menus.
Currently i use the ribbon and add them in there, but want to know If i can do so just with lisp. and create my own on-screen tablet menu.
Here is an example of one of the macro's in the cui i need to use.
I would like to use the following macro from the LDD 2004 Civil menu (yes, we are still using 2004!): ^C^C^C^P(cd_mnl)(zz_sdsk '(ad_xsutl 2));LDD. The macro is Zoom to Station from the Cross Section pulldown menu. How to use this in a LISP routine, or an equivalent LISP command? (The user won't be supplying the station number. The station number will be extracted from a selection set of objects with attribute blocks with equivalent station numbers.)
Each cross section has an attribute block associated with it, which lists all the details for that section, including station. The macro must be using that block (listed in a database, perhaps?) to find the station in the dwg.
However now the block retains its layer properties ......ie E-Lighting-Ceil (or what ever I name it) but it drops the block
in RED, instead of its original colour.
Question is Im looking for a macro that will bring in my block as per ^c^c-insert;HVLV-UB610x125;;;;
but also bring it in to a drawing on its original layer that its saved to.
please note that even thou the first code brings it in at layer 0, the blocks layer is also inserted into the DWG however its just not associated to it ..... hence the user has to select the block once he or she has brought it in and then change the layer from the layers manager manually. This is not ideal.
just to recap i just need a macro that will A) bring in a block from a location. And B) keep all the properties it has when it is brought in.
It's been too long since I created one of these for Toolbars. I need a macro that will insert and explode a block. I just need the block's content, not the block itself. I can create a maco to explode a block with no path, but can't remember how to include the "*" in a file with a folder path to explode the block while its being inserted. Because of spaces in the file name, quotes (") must be around the path.
I'm trying to create a macro for a toolbar button to open a third party program. Basically we want to open a custom .exe application from a button on the ACAD toolbar.
I'd like to change a layer's color from command line because of a user icon. I figured out from previous topics that I should use macro similar to this: ^C^C_filedia;0;-la;s;Verdeckt (ISO);c;1;l;dashed;;_filedia;1;re;
(I want to use this macro to change layer's linetype, too, but that's not the point)
The only problem with this macro: layer's name contains a space therefore Autocad tries to recognize Verdeckt as a command (and macro interrupts there) instead of setting Verdeckt (ISO) as the current layer. I've tried using different quote marks, none of them worked (' and " and <>). I hope there's a method for entering a parameter that contains space.
Software: Inventor Series 2011 SP1 x64 OS: Vista Business x64 CPU: E6400 RAM: 2*2Gb GeIL VGA: Quadro FX 550
I am trying to export each sheet in an Excel file to an separateTXT files.
I currently have code to read each cell in a sheet, but unfortunately some of the Excel sheets have in excess of 5000 cells and it is taking too long to read. So I am switching to another method.
The program will check dates of TXT files and XLS file to make sure TXT files are current (if not, open and recreate TXT files).Then read the TXT files (much faster).
Where I am getting stuck is 2 places -
Get the names of each sheet in the excel file (not always a known name)
Save each sheet as separate TXT file.
Here is condensed code so far without error checking, etc -
the file exists however the open function still returns nil... the file is not read only, and permission on the file appear to be just fine.What other reasons would there be that cause open function to return nil?This is happening only on one machine. All the others are writing to the file just fine.
I am trying to make a script file to open a drawing and run a lisp routine. They both work independently just fine, the script file will open the all of the files fine... and the lisp is in the startup suite and works in all the files. But when I tell the script file to open the first drawing then run the lisp it hangs trying to open the next file after running the lisp. I have Filedia set to 0, but the message I get when it goes to open the next is "No canvas exists. click New Canvas." (And on top of that... Filedia even set back to 1 still does not display the Dialog box anymore, I have to shut down AutoCAD 2012 and start again then it works.) I Have tried several ways, Opening one at a time then run lisp, and open all files first and then try to run lisp (that closes the file after running) and try and run it again in the next... It will only run the lisp one time and then locks up from there.
my LSP file. My computer is stolen and i have a backup in flash memory. I just wanna run it but i think it is corrupted. When i open it, it has codes like.
Now i attached more logos in the drawing file. The logos all in JPG files.This all jpg files in different locations. Every time i sent file to email attach with all jpg files. Some time i forget the attach files. So i need 'how bind all jpg files in the drawing file'. Now i am working with AutoCAD 2013.
Looking for example of a lisp file that take the value of a variable and create a txt file on a specific place defining by the user, with 10 lines in each one of them begins with what is in the variable, followed by a text already done.
I have a Lisp program that is reading information from a .txt file. The problem is, the file we get is an .edi file extension, and right now, the user has to manually change it to a .txt file for the program to run. Can I get autolisp to save the file as a .txt?
Right now I'm working on a program that will go into a directory and it's subdirectories, collect a list of all the .dwg files in those directories, then apply certain changes to all of those .dwg files.
My problem is that none of these things works.
(command "open" (srtcat basedir (nth i file))) (command "open" (nth i fullfile)) (vl-cmdf "open" (strcat basedir (nth i file))) (vl-cmdf "open" (nth i fullfile))
Where "basedir" is the main directory (e.g. C:/...), file is the list of the dwg file names (e.g. mydrawing.dwg), fullfile is the list of the ull paths (e.g. C:/.../mydrawing.dwg)
I have tried using the filename with and without the .dwg extension with no luck.
I have this code set in (while ...) so that it will go through all the files in the list "file" or "fullfile" in sequence. The lisp will run without errors but will not open any of the files. When I look at the command line, I see that the lisp has put open on the command line like it has executed the command, but right below that, it says "Unkown command: C:/.../mydrawing.dwg" or "Unkown command: dwg" depending on which of the above code pieces I'm using.