如何在VBA中访问AxDbDocument的McadBOMItems?

时间:2013-11-16 03:02:50

标签: vba autocad cad

我正在开发一种可以精确标题和工具的工具。零件列出图纸中的信息并进行编辑

我所做的是逐个打开这些图纸,从Thisdrawing对象访问对象,它可以工作,但速度很慢,尤其是你想要像20多个图纸一样。

最近我找到了一件非常好的东西,即ObjectDBX,它可以从中获取信息并在不打开的情况下编辑绘图。我更新了我的代码,除了零件清单外,它的工作原理很完美。

在我的情况下,所有零件清单都存储在AutoCAD内置BOM中,可以访问IMcadPartList中的PaperSpace对象thisdrawing.paperspace(INDEX_OF_PARTLIST).itemLis

但这似乎在oDBX文档中没有,它是未定义的。

实施例

' I don't open CAD now, pseudo code below

dim sampleFilePath as string
dim dbx as axdbdocument
dim doc as acaddocument
dim partListRefIndex as integer

sampleFilePath = "somewhere/sample.dwg"
set dbx = new axdbdocument
set doc = thisDrawing

' Let's point both version to the same file
doc.open(sampleFilePath, READ_ONLY)
dbx.open(sampleFilePath)

partListRefIndex = GetPartListRefIndex(doc)

doc.paperspace(partListRefIndex) ' It's an Object/IMcadPartList
dbx.paperspace(partListRefIndex) ' It's an Object/IMcadPartList too

doc.paperspace(partListRefIndex).itemlist ' Variant/Object/IMcadBOMItems
dbx.paperspace(partListRefIndex).itemlist ' Error

请帮忙,有没有办法访问oDBX文档中的McadBOMItems

0 个答案:

没有答案