|
bom table api
i'm having trouble figuring out how to work with bom tables. running 2008 and using vb6.
code i'm trying to determine the row in which the user selected. it comes up with an error on the attach3 function, but the help file says i need to call that and i dont see it having any parameters.
-----
option explicit
dim swapp as sldworks.sldworks
dim swdoc as sldworks.modeldoc2
dim swbom as sldworks.bomtable
dim vextents() as variant ' x,y,z of lower left corner and upper right corner of bom
dim rowcount as long ' number of rows in the bom
dim rowheight() as long ' array variable to hold height of each row in the bom
dim runningheight as variant ' keeps track of total height in count
dim bret as boolean ' determines if function executed properly
dim i as long ' count variable for "for" function
dim vpickpt as variant ' stores the location the user selected before running the macro
sub main()
set swapp = application.sldworks
set swdoc = swapp.activedoc
' ready the bom for other functions
bret = swbom.attach3
' get the size and number of rows in the bom
vextents = swbom.getextent
rowcount = swbom.getrowcount
' start runningheight as lowest point in bom
set runningheight = vextents(1)
' get user selected point
vpickpt = swdoc.getinsertionpoint
' find the row the user selected
for i = 1 to rowcount
rowheight(i) = swbom.getrowheight(i)
if (vpickpt(1) >= runningheight) and (vpickpt(1) <= runningheight + rowheight(i)) then
debug.print "row selected:" & i
else
runningheight = runningheight + rowheight(i)
end if
next i
end sub
quick |
|