几何尺寸与公差论坛

 找回密码
 注册
查看: 796|回复: 0

【转帖】how to make a tool which checks that all the views are linked to bom

[复制链接]
发表于 2009-4-12 21:21:54 | 显示全部楼层 |阅读模式
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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-12-23 14:49 , Processed in 0.035023 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表