<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic mcad BOMItems and OCX's in VBA Forum</title>
    <link>https://forums.autodesk.com/t5/vba-forum/mcad-bomitems-and-ocx-s/m-p/354191#M73298</link>
    <description>Hi.&lt;BR /&gt;
&lt;BR /&gt;
When trying to create an ActiveX Control (OCX) to be used with accont, I get&lt;BR /&gt;
loads of error messages.&lt;BR /&gt;
especially when trying to access BOMItem.ItemNumber&lt;BR /&gt;
But at several other properties as well.&lt;BR /&gt;
&lt;BR /&gt;
I'm using VB 6 SP5.&lt;BR /&gt;
&lt;BR /&gt;
If I take the exact same code, and put into a "Standard EXE" project, it&lt;BR /&gt;
works like a charm.&lt;BR /&gt;
&lt;BR /&gt;
For those who want to look at the code:&lt;BR /&gt;
&lt;BR /&gt;
Option Explicit&lt;BR /&gt;
&lt;BR /&gt;
Public AcadApp As AcadApplication&lt;BR /&gt;
Public AcadDoc As AcadDocument&lt;BR /&gt;
&lt;BR /&gt;
Private Sub Form_Load()&lt;BR /&gt;
    Set AcadApp = GetObject(, "AutoCAD.Application")&lt;BR /&gt;
    Set AcadDoc = AcadApp.ActiveDocument&lt;BR /&gt;
    GetBOM&lt;BR /&gt;
End Sub&lt;BR /&gt;
&lt;BR /&gt;
Public Sub GetBOM()&lt;BR /&gt;
&lt;BR /&gt;
Dim bomSMgr As McadSymbolBBMgr&lt;BR /&gt;
Dim bomMgr As McadBOMMgr&lt;BR /&gt;
Dim bomBOM As McadBOM&lt;BR /&gt;
Dim bomItem As McadBOMItem&lt;BR /&gt;
Dim bomName As String&lt;BR /&gt;
Dim Target As Object&lt;BR /&gt;
&lt;BR /&gt;
ReDim strArray(0)&lt;BR /&gt;
&lt;BR /&gt;
Set bomSMgr = AcadApp.GetInterfaceObject("SymBBAuto.McadSymbolBBMgr")&lt;BR /&gt;
Set Target = AcadDoc.ModelSpace&lt;BR /&gt;
&lt;BR /&gt;
Set bomMgr = bomSMgr.bomMgr&lt;BR /&gt;
bomName = "BOM1"&lt;BR /&gt;
&lt;BR /&gt;
If bomMgr.BOMTableExists() Then&lt;BR /&gt;
    Set bomBOM = bomMgr.GetBOMTable(Target, bomName)&lt;BR /&gt;
Else&lt;BR /&gt;
    Set bomBOM = bomMgr.AddBOMTable(bomName, Target)&lt;BR /&gt;
End If&lt;BR /&gt;
&lt;BR /&gt;
For Each bomItem In bomBOM.Items&lt;BR /&gt;
    MsgBox bomItem.ItemNumber&lt;BR /&gt;
Next&lt;BR /&gt;
&lt;BR /&gt;
Set bomBOM = Nothing&lt;BR /&gt;
Set bomMgr = Nothing&lt;BR /&gt;
Set bomSMgr = Nothing&lt;BR /&gt;
&lt;BR /&gt;
End Sub&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
I have AutoCAD Mechanical 6 PP started with a drawing open.&lt;BR /&gt;
But it just Won't work in an OCX project. I just get:&lt;BR /&gt;
Run-time error '-2147417851 (80010105)':&lt;BR /&gt;
Method 'ItemNumber' of object 'IMcadBOMItem' failed&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
ne1?&lt;BR /&gt;
&lt;BR /&gt;
Regards&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Trond Hasse Lie</description>
    <pubDate>Sat, 15 Jun 2002 12:30:55 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2002-06-15T12:30:55Z</dc:date>
    <item>
      <title>mcad BOMItems and OCX's</title>
      <link>https://forums.autodesk.com/t5/vba-forum/mcad-bomitems-and-ocx-s/m-p/354191#M73298</link>
      <description>Hi.&lt;BR /&gt;
&lt;BR /&gt;
When trying to create an ActiveX Control (OCX) to be used with accont, I get&lt;BR /&gt;
loads of error messages.&lt;BR /&gt;
especially when trying to access BOMItem.ItemNumber&lt;BR /&gt;
But at several other properties as well.&lt;BR /&gt;
&lt;BR /&gt;
I'm using VB 6 SP5.&lt;BR /&gt;
&lt;BR /&gt;
If I take the exact same code, and put into a "Standard EXE" project, it&lt;BR /&gt;
works like a charm.&lt;BR /&gt;
&lt;BR /&gt;
For those who want to look at the code:&lt;BR /&gt;
&lt;BR /&gt;
Option Explicit&lt;BR /&gt;
&lt;BR /&gt;
Public AcadApp As AcadApplication&lt;BR /&gt;
Public AcadDoc As AcadDocument&lt;BR /&gt;
&lt;BR /&gt;
Private Sub Form_Load()&lt;BR /&gt;
    Set AcadApp = GetObject(, "AutoCAD.Application")&lt;BR /&gt;
    Set AcadDoc = AcadApp.ActiveDocument&lt;BR /&gt;
    GetBOM&lt;BR /&gt;
End Sub&lt;BR /&gt;
&lt;BR /&gt;
Public Sub GetBOM()&lt;BR /&gt;
&lt;BR /&gt;
Dim bomSMgr As McadSymbolBBMgr&lt;BR /&gt;
Dim bomMgr As McadBOMMgr&lt;BR /&gt;
Dim bomBOM As McadBOM&lt;BR /&gt;
Dim bomItem As McadBOMItem&lt;BR /&gt;
Dim bomName As String&lt;BR /&gt;
Dim Target As Object&lt;BR /&gt;
&lt;BR /&gt;
ReDim strArray(0)&lt;BR /&gt;
&lt;BR /&gt;
Set bomSMgr = AcadApp.GetInterfaceObject("SymBBAuto.McadSymbolBBMgr")&lt;BR /&gt;
Set Target = AcadDoc.ModelSpace&lt;BR /&gt;
&lt;BR /&gt;
Set bomMgr = bomSMgr.bomMgr&lt;BR /&gt;
bomName = "BOM1"&lt;BR /&gt;
&lt;BR /&gt;
If bomMgr.BOMTableExists() Then&lt;BR /&gt;
    Set bomBOM = bomMgr.GetBOMTable(Target, bomName)&lt;BR /&gt;
Else&lt;BR /&gt;
    Set bomBOM = bomMgr.AddBOMTable(bomName, Target)&lt;BR /&gt;
End If&lt;BR /&gt;
&lt;BR /&gt;
For Each bomItem In bomBOM.Items&lt;BR /&gt;
    MsgBox bomItem.ItemNumber&lt;BR /&gt;
Next&lt;BR /&gt;
&lt;BR /&gt;
Set bomBOM = Nothing&lt;BR /&gt;
Set bomMgr = Nothing&lt;BR /&gt;
Set bomSMgr = Nothing&lt;BR /&gt;
&lt;BR /&gt;
End Sub&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
I have AutoCAD Mechanical 6 PP started with a drawing open.&lt;BR /&gt;
But it just Won't work in an OCX project. I just get:&lt;BR /&gt;
Run-time error '-2147417851 (80010105)':&lt;BR /&gt;
Method 'ItemNumber' of object 'IMcadBOMItem' failed&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
ne1?&lt;BR /&gt;
&lt;BR /&gt;
Regards&lt;BR /&gt;
&lt;BR /&gt;
&lt;BR /&gt;
Trond Hasse Lie</description>
      <pubDate>Sat, 15 Jun 2002 12:30:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/vba-forum/mcad-bomitems-and-ocx-s/m-p/354191#M73298</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2002-06-15T12:30:55Z</dc:date>
    </item>
  </channel>
</rss>

