jensv:
I'm not familiar with scriptpro however,
Here is some .net code to do what you ask.
{code}
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Runtime
Public Class dxfout
Sub dxfOut()
Dim targetDirectory As String = "c:\myFiles\"
Dim OutputDirectory As String = "c:\myFiles\output\"
Dim fileEntries As String() = System.IO.Directory.GetFiles(targetDirectory)
If fileEntries.Count > 0 Then
If (Not System.IO.Directory.Exists(OutputDirectory)) Then
System.IO.Directory.CreateDirectory(OutputDirectory)
End If
For Each fileName In fileEntries
If Not isFileInUse(fileName) Then
If fileName.Substring(fileName.Length - 3).ToUpper = "DWG" Then
Using db As New Autodesk.AutoCAD.DatabaseServices.Database(False, True)
Using tr As Transaction = db.TransactionManager.StartTransaction()
If getDatabase(fileName, db) Then
Dim outNewDXF As String = OutputDirectory & System.IO.Path.GetFileNameWithoutExtension(fileName) & ".dxf"
Try
db.DxfOut(outNewDXF, 8, True)
Catch ex As System.Exception
MsgBox("error writing: " * outNewDXF)
End Try
End If
db.CloseInput(True)
End Using
End Using
End If
End If
Next
End If
End Sub
Function getDatabase(ByVal FileName As String, ByRef db As Autodesk.AutoCAD.DatabaseServices.Database) As Boolean
Try
' Read File
db.ReadDwgFile(FileName, System.IO.FileShare.Read, True, "")
Return True
Catch ex As System.Exception
Return False
End Try
End Function
Public Function isFileInUse(ByVal sFile As String) As Boolean
If System.IO.File.Exists(sFile) Then
Try
Dim F As Short = FreeFile()
FileOpen(F, sFile, Microsoft.VisualBasic.OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)
FileClose(F)
Catch
Return True
End Try
End If
End Function
End Class
{code}
---------------------------
(defun botsbuildbots() (botsbuildbots))