' by Fenton Webb, DevTech 14/9/2012
<CommandMethod("CoSpypaceToExtDWG")> _
Public Shared Sub CopySpaceToExtDWG()
' get the working database (in AutoCAD)
Dim sourceDb As Database = Application.DocumentManager.MdiActiveDocument.Database
Try
' create a new destination database
Using destDb As New Database(True, True)
' get the model space object ids for both dbs
Dim sourceMsId As ObjectId = SymbolUtilityServices.GetBlockModelSpaceId(sourceDb)
Dim destDbMsId As ObjectId = SymbolUtilityServices.GetBlockModelSpaceId(destDb)
' now create an array of object ids to hold the source objects to copy
Dim sourceIds As New ObjectIdCollection()
' open the sourceDb ModelSpace (current autocad dwg)
Using ms As BlockTableRecord = TryCast(sourceMsId.Open(OpenMode.ForRead), BlockTableRecord)
' loop all the entities and record their ids
For Each id As ObjectId In ms
sourceIds.Add(id)
Next
End Using
' next prepare to deepclone the recorded ids to the destdb
Dim mapping As New IdMapping()
' now clone the objects into the destdb
sourceDb.WblockCloneObjects(sourceIds, destDbMsId, mapping, DuplicateRecordCloning.Replace, False)
destDb.SaveAs("c:\temp\dwgs\CopyTest.dwg", DwgVersion.Current)
End Using
Catch eXP As System.Exception
System.Windows.Forms.MessageBox.Show(eXP.ToString())
End Try
End Sub
|
暂时没有评论
发表评论 - 不要忘了输入验证码哦! |