![]() |
【转帖】select all bodies for extrudecu
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 |
所有的时间均为北京时间。 现在的时间是 04:22 PM. |