几何尺寸与公差论坛

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

【转帖】select all bodies for extrudecu

[复制链接]
发表于 2009-4-12 19:32:42 | 显示全部楼层 |阅读模式
select all bodies for extrudecut............
hi guys!!
i want to create extrude cut in an assembly
but for this i want to use through all feature and want to select all bodies how can i set to all bodies because otherwise it cut some of them here is function but i m not sure about it
accessgained = extrudefeaturedata2.accessselections ( topdoc, component )
can u explain
topdoc ----? and component==?
check for featurecut in the api help files.
deepak gupta
sw2007 sp5.0
sw2009 sp2.1
if you are working in an assembly you want to look up feature scope in the api help. there are four methods related to feature scope in the context of an assembly:
assemblydoc::addtofeaturescope
assemblydoc::removefromfeaturescope
assemblydoc::getfeaturescope
assemblydoc::updatefeaturescope
below some sample code that does the opposite of what you want to do. if you select an assembly feature and then run this macro, it will remove all components from the feature scope. from what you are saying, it sounds like you want to create an assembly cut that affects all features. if that is the case, i would:
1. use assemblydoc::getcomponents to return an array containing all components in the assembly.
2. be sure nothing is selected.
3. use assemblydoc::addtofeaturescope to add each component to the feature scope for the next feature (per comments in api help for addtofeaturescope).
4. create your cut feature.
dim swapp as sldworks.sldworks
dim swdoc as sldworks.modeldoc2
dim swassy as sldworks.assemblydoc
dim swselmgr as sldworks.selectionmgr
dim swfeat as sldworks.feature
dim scopecomps as variant
sub main()
set swapp = application.sldworks
set swdoc = swapp.activedoc
if not swdoc.gettype = swdocassembly then
msgbox "this macro is for assemblies only."
exit sub
end if
set swassy = swdoc
set swselmgr = swdoc.selectionmanager
on error goto handler
set swfeat = swselmgr.getselectedobject6(1, -1)
msgbox swfeat.name & " type " & swfeat.gettypename
on error goto 0
scopecomps = swassy.getfeaturescope(swfeat)
for i = 0 to ubound(scopecomps)
swassy.removefromfeaturescope (scopecomps(i).name)
next i
msgbox "updating scope"
swassy.updatefeaturescope
msgbox "scope updated - commence rebuild"
swdoc.forcerebuild3 true
msgbox "rebuilt"
exit sub
handler:
msgbox "a feature was not selected"
exit sub
end sub
i'll get you eh steve, if it's the last thing i dooooo!
quick
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 05:30 , Processed in 0.035714 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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