VB。Net-使用OU编辑dwg文件
很好的一天在vb中查找代码。net中,我可以检索图形文件中的EXREF,而无需打开它。还希望能够编辑图形数据库中的exrefs路径和文件。
该方法还可用于从图形文件中提取属性等,而无需打开它们。欢迎任何帮助。
当做
穴居人 通过界面查看Kean Walmsley的网站,并尝试在那里进行搜索。链接:http://through-the-interface.typepad.com/
可以在不打开图形或在机器上安装AutoCAD的情况下访问图形数据库,但我不确定您是否需要名为RealDWG的软件来进行操作,我自己从未尝试过。 我以前读过一些基恩·沃尔姆斯利的教程-有时很安静,很紧张-感谢链接-目前有一个示例-但必须一步一步地阅读-不确定它是否会起作用???
猜猜如果我们不尝试,我们就不能犯错误来学习?
当做
穴居人 如果未安装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
有趣的线索。
@杰夫-“ChangeXrefPath”中有很多新东西(对我来说),这有助于回答*如何*在VB中重新编写一些LISP代码。NET(万岁!)。
干杯
页:
[1]