Attach part reference to a block using AcmPartRef
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I a tying to attach a part referece to an existing block using the AcmPartRef object. The following code almost works but I can't get it attached to the block.
Public Sub createPartRef()
Dim oAcApp As AcadApplication
Dim oAcUtil As AcadUtility
Set oAcApp = GetObject(, "AutoCAD.Application")
Set oAcUtil = oAcApp.ActiveDocument.Utility
Dim pt As Variant
Dim oPartref As McadPartReference
Dim BlockName As String
BlockName = "180807I"
Dim oAcBlock As AcadBlock
Set oAcBlock = ThisDrawing.Blocks.Item(BlockName)
If IsObject(oAcBlock) Then
pt = oAcBlock.Origin
pt = oAcUtil.TranslateCoordinates(pt, acUCS, acWorld, False)
Set oPartref = oAcBlock.AddCustomObject("AcmPartRef")
oPartref.Origin = pt
' This code errors on AttachGeometry
'Dim refGeomentry As Object
'refgeometry = oacblock.
'oPartref.AttachGeometry oAcBlock, oAcBlock.Origin
End If
Dim oSymbb As McadSymbolBBMgr
Set oSymbb = ThisDrawing.Application.GetInterfaceObject("SymBBAuto.McadSymbolBBMgr")
Dim oBommgr As McadBOMMgr
Set oBommgr = oSymbb.BOMMgr
Dim pdata(0 To 5, 0 To 1) As String
pdata(0, 0) = "DESCR": pdata(0, 1) = "My Description"
pdata(1, 0) = "STANDARD": pdata(1, 1) = "My Standard"
pdata(2, 0) = "MATERIAL": pdata(2, 1) = "BEARING, D-LOK, 1.00, 2-HOLE, #128760"
pdata(3, 0) = "NOTE": pdata(3, 1) = "My Note"
pdata(4, 0) = "VENDOR": pdata(4, 1) = "My Vendor"
pdata(5, 0) = "NAME": pdata(5, 1) = "Comp1"
oBommgr.SetPartData oPartref, pdata
' Add to BOM
oBommgr.CurrentBOM.AddItem oPartref.ObjectID, CStr(oBommgr.CurrentBOM.Items.Count + 1)
ThisDrawing.Application.Update
' At this point I have a BOM record but no visable part reference.I get a 2nd BOM record if I run it again.
End Sub
Any help be it VBA , DotNet, C++ or Lisp would be very appricated.