Hi All,
My work needs to convert thousands of DGN files to DWG. We are using AutoCAD 2012. Is it possible to batch convert dgn files with a LISP and a mapping file? Anyone have a LISP for this?
Any help is appreciated.
Arul
Is it safe to say you don't have any Microstation installs? If you do, or if you can find one, use Utilities -> Batch Convert.
Otherwise, hopefully someone else can respond....
If I attach a dgn and then type -xref, ?, *, to list all xrefs, the dgn is not listed, so I don't know what it is inside the dwg.
First of all thank you for your replies.
Hi rick.hberg,
We do not have Microstation.
Hi alanjt_ ,
Yes. We have DGNIMPORT command in AutoCAD 2012.
Very easy to write a batch Autolisp routine. All you would need is to create an ASCII text file (flat file) of all of the *.dgn files you wish to import, including full path. Autolisp program would then open file, read the first line, import the *.dgn file into AutoCAD, save as a *.dwg file , close, read the next line and repeat until all *.dgn files have been imported.
I can write the program for you, however I need for you to send me a *.dgn file to complete the program. Not familiar with *.dgn files and need a sample file to see how the DGNIMPORT function works.
Hi Gabriel,
Hope your method will help for me. I have attached a .DGN file here.
Thanks,
Arul
Any luck with this LISP? I'm also looking to batch convert alot of DGN files to DWG. I've just begun learning programming (LISP & C) so I'm not anywhere close to the level of knowledge I need to create such a LISP. However we are working on a project which is dragging because of the number of dgn files we must import & view. Very exhausting.
I've written the attached Lisp routine for converting multiple DGN files into DWG files. It expects a text file with the drawing names to convert as input. I've used it to convert large quantities of drawings.
The user has to make the necessary adjustments to the following variables:
tx1 = path and name of a file that holds a list with names for all the *.dgn's to be imported, names of *.dgn drawings may be written without extension, as well as with extension, in plain text format, no return after the last line.
tx2 = the path for the input folder, containing the actual *.dgn files to import.
tx3 = the path for the output folder, where the drawings converted into *.dwg will be saved, (routine assumes that the *.dwg files do not exist yet)
tx4 = name of the drawing model to import
Start the command by typing DGNI
The routine reads drawing names from the file given in tx1 line-for-line.
In each loop it performs a DGNIMPORT from the folder given as tx2 into the existing AutoCAD drawing,
does a Zoom Extends, saves the converted drawing result as *.dwg in the folder given as tx3,
and finally restores the drawing to its original state, ready to receive the next DGNIMPORT loop.
The DGNIMPORT command trips when the name of the *.dgn to be imported contains a comma, I advise to rename the drawings having this issue.
With friendly greetings, M. Moolhuysen.
I didn't implemented any mapping setup in my lisp file. If you need this, you should insert it as the 4th parameter of the DGNIMPORT command, in other words, replace the last pair of double quotes with the name of the mapping setup prepared in the defauld startup drawing.
DGN files have external links for title blocks. I have put all these external linked files in the same folder where input DGN files are. But the LISP loop is breaking when it looks for the external link. Is it possible to locate it from within LISP? I would appreciate your help.
The setting to include references can't be changed with command line version of DGNIMPORT. However, it can be set by in the dialogue box of the the regular DGNIMPORT command. I suspect that the stetting is saved in the registry, because it persist from drawing session to drawing session, and that last property is good news for us.
So, as a workaround to change things towards a behavior as desired by you, try this:
Import one random DGN-file using the regular DGNIMPORT command. In the dialogue box, look for a framed section named External DGN references, in there, select the radio button in front of option Translate references to blocks or xrefs. Allow the import to proceed by clicking on the OK button.
After this, I've opened a new drawing and run the LISP routine I've posted before, and now it did include the references.
With friendly greetings, Manfred.
Thank you for the lisp file. However, I have not been able to perform a DGNIMPORT with 2012. I have been able to run the command in 2011. Could you advise me as to how to modify the lisp routine to be compatible with 2011?
We haven't installed version 2011, so you will have to do some testing yourself:
I did remove the line (setvar "DGNIMPORTMODE" 1) as 2011 does not have that variable. And 2011 does open a new drawing.
In an attempt to run down the problem I changed the variables from LOCAL to GLOBAL. I then loaded the LISP and executed the DGNI command. I received error: bad argument type: FILE nil. I then queried variables tx1-tx4 and they were correct. However tx5 returns "nil" as does the variable fil.
Variable fil staying nil suggests that line (setq fil (open tx1 "r") was not successfully executed.
I have solved the "fil variable problem" of the LISP. (I had included the file path in my DGNConvertList)
I begin in Drawing1. I load the LISP and type the DGNI command. AutoCAD opens the 1st dgn "TopoA" in Drawing2. The program stops with the dgn displayed. If I toggle back to Drawing1 then the LISP continues and the Drawing1 is saved as a TopoA.dwg. It then proceeds to open the 2nd dgn "TopoB" in Drawing3 and once again the program stops. If I once again toggle back to the original drawing whose name is now TopoA, the process resumes. This continues until the last dgn has been opened. It has saved the dgns as dwgs in the target folder, but I have to manually switch each time a dgn is imported.
I have solved the "fil variable problem" of the LISP. (I had included the file path in my DGNConvertList)
The problem now is that in AutoCAD 2011 the DGNIMPORT command opens a new drawing each time.
I begin in Drawing1. I load the LISP and type the DGNI command. AutoCAD opens the 1st dgn "TopoA" in Drawing2. The program stops with the dgn displayed. If I toggle back to Drawing1 (or close Drawing2) then the LISP continues and the Drawing1 is saved as a TopoA.dwg. It then proceeds to open the 2nd dgn "TopoB" in Drawing3 and once again the program stops. If I once again toggle back to the original drawing whose name is now TopoA (or close Drawing3), the process resumes. This continues until the last dgn has been opened. It has saved the dgns as dwgs in the target folder, but I have to manually switch each time a dgn is imported.
Is there a routine or command that I can insert into the LISP to return AutoCAD to the original drawing to allow the process to continue?