![]() |
【转帖】how to make a tool which checks that all the views are linked to bom are no
how to make a tool which checks that all the views are linked to bom are not.
what do you mean by "help me make a tool"? are you asking for someone to do all the work for you, or help you? do you have a starting point? do you know anything about vba? solidworks api? i'll get you eh steve, if it's the last thing i dooooo! a bom starts its life by way of being linked to a view. once created, the bom is no longer linked to a particular view. the original view that created the bom can be deleted, and other views still reference the bom when adding balloons. i find nothing in thebom object api documentation that points a bom back to parent views. it appears that once a bom is created, it is linked to all views that contain the top-level model from which it was created. there is api for the view objects that check if a view is connected to a particular bom. edited: 03/12/2009 at 09:51 am by roland schwarz we have to know your competency level before we know how to "help". if all you do is ask for "help" then we have to guess at how much "help" you need. if you have never written any sort of program before then the "help" is a lot different than if you are an experienced vb programmer but you have never done sw api before, and different from if you have written a lot of sw macros before. have you done anything at all to try it for yourself before asking for this "help"? good grief, this is a waste of my time. here it is. dim swapp as sldworks.sldworks dim swdwg as sldworks.drawingdoc dim vviews as variant dim vview as variant dim myview as sldworks.view dim slinkedbom as string dim msg as string sub main() set swapp = application.sldworks if swapp.activedoc.gettype <> swdocdrawing then msgbox "active document is not a drawing." exit sub end if set swdwg = swapp.activedoc msg = "link status of drawing views on " & swdwg.getcurrentsheet.getname & vbcrlf vviews = swdwg.getcurrentsheet.getviews for each vview in vviews set myview = vview if not (left(myview.getname2, 1) = "*") then if not (false = myview.getkeeplinkedtobom) then slinkedbom = myview.getkeeplinkedtobomname else slinkedbom = "" end if msg = msg & vbcrlf & myview.name & " linked to " & slinkedbom end if next vview msgbox msg end sub i'll get you eh steve, if it's the last thing i dooooo! quick |
所有的时间均为北京时间。 现在的时间是 11:28 AM. |