CaveMan 发表于 2022-7-6 22:43:17

VB。Net-使用OU编辑dwg文件

很好的一天
 
在vb中查找代码。net中,我可以检索图形文件中的EXREF,而无需打开它。还希望能够编辑图形数据库中的exrefs路径和文件。
 
该方法还可用于从图形文件中提取属性等,而无需打开它们。欢迎任何帮助。
 
当做
穴居人

Tyke 发表于 2022-7-6 23:02:31

通过界面查看Kean Walmsley的网站,并尝试在那里进行搜索。链接:http://through-the-interface.typepad.com/
 
可以在不打开图形或在机器上安装AutoCAD的情况下访问图形数据库,但我不确定您是否需要名为RealDWG的软件来进行操作,我自己从未尝试过。

CaveMan 发表于 2022-7-6 23:26:03

我以前读过一些基恩·沃尔姆斯利的教程-有时很安静,很紧张-感谢链接-目前有一个示例-但必须一步一步地阅读-不确定它是否会起作用???
 
猜猜如果我们不尝试,我们就不能犯错误来学习?
 
当做
穴居人

Jeff H 发表于 2022-7-6 23:32:16

如果未安装AutoCAD或不希望运行AutoCAD,则需要RealDWG。
 
要获得更好的解决方案,请查看数据库。GetHostDwgXrefGraph,从中可以获取嵌套的外部参照
 
这是一个简单示例的硬编码,只是为了让您开始
 
两个图形都在“C\Test”中
外部参照图形。dwg和XrefHost。图纸
XrefHost已将XrefDrawing xref放入并将其移动到另一个文件夹
 
--数据库。ReadDwgFile,用于打开未在编辑器中与之交互的图形
--迭代块表,检查块表记录。IsFromExternalReference属性
--更改路径名属性并移动文件
 
 
 

       <CommandMethod("ChangeXrefPath")> _
       Public Sub ChangeXrefPath()
         Using db As New Database(False, True)
               Try
                   db.ReadDwgFile("C:\Test\XrefHost.dwg", FileOpenMode.OpenForReadAndWriteNoShare, True, Nothing)
                   Using trx As Transaction = db.TransactionManager.StartTransaction()
                     Dim bt As BlockTable = trx.GetObject(db.BlockTableId, OpenMode.ForRead)

                     For Each objId As ObjectId In bt
                           Dim btr As BlockTableRecord = trx.GetObject(objId, OpenMode.ForRead)
                           If btr.IsFromExternalReference Then
                               btr.UpgradeOpen()
                               btr.PathName = "C:\Test\NewLocation\XrefDrawing.dwg"
                               Exit For
                           End If
                     Next

                     trx.Commit()
                   End Using

                   db.SaveAs(db.Filename, True, DwgVersion.Current, db.SecurityParameters)

               Catch
               End Try
         End Using
         System.IO.File.Move("C:\Test\XrefDrawing.dwg", "C:\Test\NewLocation\XrefDrawing.dwg")

       End Sub
   End Class

BlackBox 发表于 2022-7-6 23:46:57

有趣的线索。
 
@杰夫-“ChangeXrefPath”中有很多新东西(对我来说),这有助于回答*如何*在VB中重新编写一些LISP代码。NET(万岁!)。
 
干杯
页: [1]
查看完整版本: VB。Net-使用OU编辑dwg文件