Code:
#Region "Namespaces"
Imports Autodesk.AutoCAD
Imports Autodesk.AutoCAD.DatabaseServices
#End RegionPublic Class UCS_Import
Public Shared Sub main()
Dim myDB As DatabaseServices.Database
Dim myTransMan As DatabaseServices.TransactionManager
Dim myTrans As DatabaseServices.Transaction
Dim myTransDest As DatabaseServices.Transaction
Dim myTransManDest As DatabaseServices.TransactionManager
myDB = ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database
Dim CurDir As String = String.Empty
CurDir = myDB.Filename.Substring(0, myDB.Filename.LastIndexOf("\"))
Dim myFileDialog As New OpenFileDialog()
myFileDialog.InitialDirectory = CurDir
If myFileDialog.ShowDialog = DialogResult.OK Then
Dim sourceDb As New DatabaseServices.Database(False, True)
sourceDb.ReadDwgFile(myFileDialog.FileName, System.IO.FileShare.ReadWrite, True, "")
myTransMan = sourceDb.TransactionManager
myTrans = myTransMan.StartTransaction
Dim SrcUCSTbl As DatabaseServices.UcsTable
SrcUCSTbl = myTrans.GetObject(sourceDb.UcsTableId, DatabaseServices.OpenMode.ForRead)
Dim chooser As New UcsChooser
Dim SrcUCSTblRec As UcsTableRecord
For Each ucsId As ObjectId In SrcUCSTbl
SrcUCSTblRec = myTrans.GetObject(ucsId, DatabaseServices.OpenMode.ForRead)
chooser.ListBox1.Items.Add(SrcUCSTblRec.Name)
Next
If chooser.ShowDialog = DialogResult.OK Then
Dim selobjId As DatabaseServices.ObjectId = SrcUCSTbl.Item(chooser.ListBox1.SelectedItem)
SrcUCSTblRec = myTrans.GetObject(selobjId, DatabaseServices.OpenMode.ForRead)
myTransManDest = myDB.TransactionManager
myTransDest = myTransManDest.StartTransaction
Dim myDestUCSTbl As DatabaseServices.UcsTable
myDestUCSTbl = myTransDest.GetObject(myDB.UcsTableId, DatabaseServices.OpenMode.ForWrite)
Dim DstUCSTblRec As DatabaseServices.UcsTableRecord
If myDestUCSTbl.Has(SrcUCSTblRec.Name) = False Then
DstUCSTblRec = New DatabaseServices.UcsTableRecord
DstUCSTblRec.Name = SrcUCSTblRec.Name
myDestUCSTbl.Add(DstUCSTblRec)
myTransDest.AddNewlyCreatedDBObject(DstUCSTblRec, True)
Else
DstUCSTblRec = myTransDest.GetObject(myDestUCSTbl(SrcUCSTblRec.Name), DatabaseServices.OpenMode.ForWrite)
End If
DstUCSTblRec.Origin = SrcUCSTblRec.Origin
DstUCSTblRec.XAxis = SrcUCSTblRec.XAxis
DstUCSTblRec.YAxis = SrcUCSTblRec.YAxis
myTransDest.Commit()
myTransDest.Dispose()
myTransManDest.Dispose()
End If
myTrans.Commit()
myTrans.Dispose()
myTransMan.Dispose()
End If
End Sub
End Class