明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1849|回复: 3

如何复制一个打开的图形文件,我的出错了

[复制链接]
发表于 2012-2-29 10:35:11 | 显示全部楼层 |阅读模式
本帖最后由 lindunling 于 2012-2-29 10:47 编辑

  1. <CommandMethod("CreateTkMap")> Public Sub CreateTkMap()
  2.         Dim acObjIdColl As ObjectIdCollection = New ObjectIdCollection()

  3.         Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
  4.         Dim acCurDb As Database = acDoc.Database

  5.         Dim acDocEd As Editor = Application.DocumentManager.MdiActiveDocument.Editor
  6.         Dim acSSPrompt As PromptSelectionResult
  7.         acSSPrompt = acDocEd.SelectAll()

  8.         If acSSPrompt.Status = PromptStatus.OK Then
  9.             Dim acSSet As SelectionSet = acSSPrompt.Value
  10.             For Each acSSObj As SelectedObject In acSSet
  11.                 acObjIdColl.Add(acSSObj.ObjectId)
  12.             Next   
  13.         Else
  14.             Application.ShowAlertDialog("活动文档无内容或复杂过程出现错误!")
  15.             Exit Sub ' 退出
  16.         End If

  17.         Dim sLocalRoot As String = Application.GetSystemVariable("LOCALROOTPREFIX")
  18.         Dim sTemplatePath As String = sLocalRoot + "Template\acad.dwt"
  19.         Dim acDocMgr As DocumentCollection = Application.DocumentManager

  20.         Dim acNewDoc As Document = acDocMgr.Add(sTemplatePath)
  21.         Dim acDbNewDoc As Database = acNewDoc.Database

  22.         Using acLckDoc As DocumentLock = acNewDoc.LockDocument()
  23.             Using acTrans = acDbNewDoc.TransactionManager.StartTransaction()
  24.                 Dim acBlkTblNewDoc As BlockTable
  25.                 acBlkTblNewDoc = acTrans.GetObject(acDbNewDoc.BlockTableId, OpenMode.ForWrite)
  26.                 Dim acBlkTblRecNewDoc As BlockTableRecord
  27.                 acBlkTblRecNewDoc = acTrans.GetObject(acBlkTblNewDoc(BlockTableRecord.ModelSpace), OpenMode.ForWrite)

  28.                 Dim acIdMap As IdMapping = New IdMapping()
  29.                 '  acIdMap.DestinationDatabase = acCurDb

  30.                 acDocMgr.MdiActiveDocument = acNewDoc
  31.                 acCurDb.WblockCloneObjects(acObjIdColl, acBlkTblRecNewDoc.ObjectId, acIdMap, DuplicateRecordCloning.Replace, False)

  32.                 acTrans.Commit()
  33.             End Using
  34.         End Using
  35.         'acDocMgr.MdiActiveDocument = acNewDoc

  36.         '  对新图形文件继续操作出问题 如双击图形  

  37.     End Sub
 楼主| 发表于 2012-2-29 10:38:00 | 显示全部楼层
本帖最后由 lindunling 于 2012-2-29 10:47 编辑

我是想把一个打开的图形文件复制一份,然后在复制的文件上进行进一步的操作。
如果执行下面的命令是没有问题的,保存的图形也是没有问题的
acNewDoc.CloseAndSave("c:\fft.dwg")  ' 关闭 保存

但是我要执行别的操作,如缩放,程序崩溃了。
大家能不能帮我找找问题所在
发表于 2012-2-29 10:50:52 | 显示全部楼层
换一个版本呢
 楼主| 发表于 2012-2-29 10:56:48 | 显示全部楼层
秋天的飓风 发表于 2012-2-29 10:50
换一个版本呢

画一些简单的线条 再执行这个命令 程序没有什么问题
再用一下工程图执行这个命令 就出现问题了
我想是不是拷贝过程,没有收尾的操作
应该不是版本问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 18:23 , Processed in 0.173505 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表