Академический Документы
Профессиональный Документы
Культура Документы
RangeBoxofcomponentsManufacturingDevBlog
ManufacturingDevBlog
(http://adndevblog.typepad.com/manufacturing/)
TheresourceforsoftwaredevelopersworkingwithDesign,LifecycleandSimulationtechnologiesfromAutodesk.
02/04/2016
RangeBoxofcomponents
ByAdamNagy(http://adndevblog.typepad.com/manufacturing/adamnagy.html)
IfyouwanttogettheextentsofaComponentOccurrencethenyoucanuseitsRangeBoxforthat.
Thiswillprovidetheinformationinthecoordinatesystemofthetopassembly:
SubAddPoints1(_
oCDAsAssemblyComponentDefinition,oOccAsComponentOccurrence)
Dimpt1AsPoint
Setpt1=oOcc.RangeBox.MinPoint
Dimpt2AsPoint
Setpt2=oOcc.RangeBox.MaxPoint
CalloCD.WorkPoints.AddFixed(pt1)
CalloCD.WorkPoints.AddFixed(pt2)
EndSub
SubComponentExtents1()
DimoDocAsAssemblyDocument
SetoDoc=ThisApplication.ActiveDocument
DimoCDAsAssemblyComponentDefinition
SetoCD=oDoc.ComponentDefinition
DimoOccAsComponentOccurrence
ForEachoOccInoCD.Occurrences.AllLeafOccurrences
CallAddPoints1(oCD,oOcc)
Next
EndSub
(http://adndevblog.typepad.com/.a/6a0167607c2431970b01b8d19b39fb970cpopup)
Ifyouwanttogettheextentsinthepart'sorsubassembly'scoordinatesysteminsteadthenyoujusthavetodrilldowntotheComponentDefinitionusedbytheoccurrence,whichwill
alsohaveaRangeBoxproperty.Thentoshowthosepointsinthetopassembliescoordinatesystem,youjusthavetotransformthembasedontheoccurrence'sTransformation
property:
http://adndevblog.typepad.com/manufacturing/2016/02/rangeboxofcomponents.html
1/5
21/01/2017
RangeBoxofcomponentsManufacturingDevBlog
SubAddPoints2(_
oCDAsAssemblyComponentDefinition,oOccAsComponentOccurrence)
DimoRBAsBox
SetoRB=oOcc.Definition.RangeBox
Dimpt1AsPoint
Setpt1=oRB.MinPoint
Callpt1.TransformBy(oOcc.Transformation)
Dimpt2AsPoint
Setpt2=oRB.MaxPoint
Callpt2.TransformBy(oOcc.Transformation)
CalloCD.WorkPoints.AddFixed(pt1)
CalloCD.WorkPoints.AddFixed(pt2)
EndSub
SubComponentExtents2()
DimoDocAsAssemblyDocument
SetoDoc=ThisApplication.ActiveDocument
DimoCDAsAssemblyComponentDefinition
SetoCD=oDoc.ComponentDefinition
DimoOccAsComponentOccurrence
ForEachoOccInoCD.Occurrences.AllLeafOccurrences
CallAddPoints2(oCD,oOcc)
Next
EndSub
(http://adndevblog.typepad.com/.a/6a0167607c2431970b01b7c8111b0b970bpopup)
Youcouldalsogettheextentsinanarbitrarycoordinatesystem,e.g.onedefinedbyaUserCoordinateSystemobjectplacedinsidethepartdocument.Inthiscasewecanuse
TransientBReptotransformtheSurfaceBodiesofthepartsasalsoshowninthisforumthread(https://forums.autodesk.com/t5/inventorcustomization/rangeboxrotatedpart/td
p/2654581):
http://adndevblog.typepad.com/manufacturing/2016/02/rangeboxofcomponents.html
2/5
21/01/2017
RangeBoxofcomponentsManufacturingDevBlog
SubGetRangePoints3(_
oOccAsComponentOccurrence,pt1AsPoint,pt2AsPoint)
DimoUCSAsUserCoordinateSystem
OnErrorResumeNext
SetoUCS=oOcc.Definition.UserCoordinateSystems("UCS")
OnErrorGoTo0
'IfthepartdoesnothaveaUserCoordinateSystemobject
'named"UCS"thenwejustusethepart'scoordinatesystem
IfoUCSIsNothingThen
Setpt1=oOcc.Definition.RangeBox.MinPoint
Setpt2=oOcc.Definition.RangeBox.MaxPoint
ExitSub
EndIf
DimoTBAsTransientBRep
SetoTB=ThisApplication.TransientBRep
DimoUTAsMatrix
SetoUT=oUCS.Transformation
CalloUT.Invert
DimoSBAsSurfaceBody
DimoTSBAsSurfaceBody
DimoRBAsBox
ForEachoSBInoOcc.Definition.SurfaceBodies
SetoTSB=oTB.Copy(oSB)
CalloTB.Transform(oTSB,oUT)
IfoRBIsNothingThen
SetoRB=oTSB.RangeBox
Else
CalloRB.Extend(oTSB.RangeBox.MinPoint)
CalloRB.Extend(oTSB.RangeBox.MaxPoint)
EndIf
Next
'Transformpointsbacktothepartcoordinatesystem
CalloUT.Invert
Setpt1=oRB.MinPoint
Callpt1.TransformBy(oUT)
Setpt2=oRB.MaxPoint
Callpt2.TransformBy(oUT)
EndSub
SubAddPoints3(_
oCDAsAssemblyComponentDefinition,oOccAsComponentOccurrence)
Dimpt1AsPoint
Dimpt2AsPoint
CallGetRangePoints3(oOcc,pt1,pt2)
Callpt1.TransformBy(oOcc.Transformation)
Callpt2.TransformBy(oOcc.Transformation)
CalloCD.WorkPoints.AddFixed(pt1)
CalloCD.WorkPoints.AddFixed(pt2)
EndSub
SubComponentExtents3()
DimoDocAsAssemblyDocument
SetoDoc=ThisApplication.ActiveDocument
DimoCDAsAssemblyComponentDefinition
SetoCD=oDoc.ComponentDefinition
DimoOccAsComponentOccurrence
ForEachoOccInoCD.Occurrences.AllLeafOccurrences
CallAddPoints3(oCD,oOcc)
Next
EndSub
http://adndevblog.typepad.com/manufacturing/2016/02/rangeboxofcomponents.html
3/5
21/01/2017
RangeBoxofcomponentsManufacturingDevBlog
(http://adndevblog.typepad.com/.a/6a0167607c2431970b01b7c8112e6c970bpopup)
Thefollowingarticlemightalsocomehandyinunderstandingthecomponenttransformations:
http://adndevblog.typepad.com/manufacturing/2013/07/occurrencescontextsdefinitionsproxies.html(http://adndevblog.typepad.com/manufacturing/2013/07/occurrences
contextsdefinitionsproxies.html)
Postedat06:52AMinAdamNagy(http://adndevblog.typepad.com/manufacturing/adamnagy/),Inventor(http://adndevblog.typepad.com/manufacturing/inventor/)|Permalink
(http://adndevblog.typepad.com/manufacturing/2016/02/rangeboxofcomponents.html)
(http://twitter.com/share?url=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F02%2Frangeboxof
components.html&text=RangeBox%20of%20components)
components.html)
(https://plus.google.com/share?url=http://adndevblog.typepad.com/manufacturing/2016/02/rangeboxof
(http://www.facebook.com/sharer.php?u=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F02%2Frangeboxofcomponents.html)
Comments
Commentbeloworsigninwith Typepad(http://www.typepad.com/sitelogin?uri=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F02%2Frangeboxof
components.html&fp=6634d781e142dfa406b3eb0f5b2ece47&view_uri=http%3A%2F%2Fprofile.typepad.com%2F&via=blogside&post_uri=http://adndevblog.typepad.com/manufacturing/201
ofcomponents.html) Facebook(http://www.typepad.com/sitelogin?uri=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F02%2Frangeboxof
components.html&fp=6634d781e142dfa406b3eb0f5b2ece47&view_uri=http%3A%2F%2Fprofile.typepad.com%2F&via=blogside&service=facebook&post_uri=http://adndevblog.typepad.com/m
ofcomponents.html) Twitter(http://www.typepad.com/sitelogin?uri=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F02%2Frangeboxof
components.html&fp=6634d781e142dfa406b3eb0f5b2ece47&view_uri=http%3A%2F%2Fprofile.typepad.com%2F&via=blogside&service=twitter&post_uri=http://adndevblog.typepad.com/ma
ofcomponents.html) Google+(http://www.typepad.com/sitelogin?uri=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F02%2Frangeboxof
components.html&fp=6634d781e142dfa406b3eb0f5b2ece47&view_uri=http%3A%2F%2Fprofile.typepad.com%2F&via=blogside&service=gplus&post_uri=http://adndevblog.typepad.com/man
ofcomponents.html)andmore...(http://www.typepad.com/sitelogin?uri=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F02%2Frangeboxof
components.html&fp=6634d781e142dfa406b3eb0f5b2ece47&view_uri=http%3A%2F%2Fprofile.typepad.com%2F&via=blogside&service=openid&post_uri=http://adndevblog.typepad.com/m
ofcomponents.html)
(URLsautomaticallylinked.)
Emailaddressisnotdisplayedwithcomment.
Name
EmailAddress
WebSiteURL
Post Preview
http://adndevblog.typepad.com/manufacturing/2016/02/rangeboxofcomponents.html
4/5
21/01/2017
RangeBoxofcomponentsManufacturingDevBlog
(http://www.typepad.com/)
ManufacturingDevBlog(http://adndevblog.typepad.com/manufacturing/)
http://adndevblog.typepad.com/manufacturing/2016/02/rangeboxofcomponents.html
5/5