Sunteți pe pagina 1din 5

21/01/2017

InsertcopiesofContentCenterpartsManufacturingDevBlog

ManufacturingDevBlog
(http://adndevblog.typepad.com/manufacturing/)

TheresourceforsoftwaredevelopersworkingwithDesign,LifecycleandSimulationtechnologiesfromAutodesk.

05/17/2016

InsertcopiesofContentCenterparts
ByAdamNagy(http://adndevblog.typepad.com/manufacturing/adamnagy.html)
YoumightneedtoinsertlotsofinstancesofthesameContentCenterpartinanassemblye.g.placingrivetsinsimilarholesonthesamepart.Youcouldwritesomecodethatwould
helpreplicateaninstance,sothatyouwouldonlyneedtoinsertasinglecomponentmanuallythenselecttheinsertedcomponentandalltheholeswhereyouwouldneedthesame
componentandthecodewouldinsertthemandaddtheconstraints.
Thissampleisjusttoshowtheideaandisfarfromarobustsolutionwhichwouldworkinallscenarios.Inthiscaseweassumethattherivethasbeenplacedwithasingleinsert
constraintandtheselectedholesarethesamesizeastheoriginalone.
Sowealreadyhavearivetplacedintheassemblyandnowweselectitandtheotherholeswherewewanttoplacethem:

(http://adndevblog.typepad.com/.a/6a0167607c2431970b01b7c85d8c4b970bpopup)
ThenwerunthisVBAcode:

http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html

1/5

21/01/2017

InsertcopiesofContentCenterpartsManufacturingDevBlog

SubInsertSameInstances()
DimdocAsAssemblyDocument
Setdoc=ThisApplication.ActiveDocument

DimacdAsAssemblyComponentDefinition
Setacd=doc.ComponentDefinition

'Instancetocopy
DimoccAsComponentOccurrence
Setocc=doc.SelectSet(1)

'Storeselectedfaces
DimfsAsObjectCollection
Setfs=ThisApplication.TransientObjects.CreateObjectCollection

DimiAsInteger
Fori=2Todoc.SelectSet.Count
Callfs.Add(doc.SelectSet(i))
Next

'Facesofholesthatthecopiesshouldbeplacedto
DimhAsFace
ForEachhInfs
'Insertsamecomponent
DimtgAsTransientGeometry
Settg=ThisApplication.TransientGeometry

DimoccNewAsComponentOccurrence
SetoccNew=acd.Occurrences.AddByComponentDefinition(_
occ.Definition,tg.CreateMatrix())

'Checkoriginalcomponent'sconstraints
DimcAsAssemblyConstraint
ForEachcInocc.Constraints
IfTypeOfcIsInsertConstraintThen
DimicAsInsertConstraint
Setic=c

'Getnativeedge
DimeAsEdge
Sete=c.EntityOne.NativeObject

'Getitsequivalentinthenewoccurrence
DimepAsEdgeProxy
CalloccNew.CreateGeometryProxy(e,ep)

'Gethole'sedge
DimehAsEdge
Seteh=h.Edges(1)

Callacd.Constraints.AddInsertConstraint(_
ep,eh,ic.AxesOpposed,ic.Distance.value)
EndIf
Next
Next
EndSub
Andgetthis:

http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html

2/5

21/01/2017

InsertcopiesofContentCenterpartsManufacturingDevBlog

(http://adndevblog.typepad.com/.a/6a0167607c2431970b01bb09011b35970dpopup)
IthinkbasedonthissomeonecouldcreateaniceInventorAppStore(https://apps.autodesk.com/INVNTOR/en/List/Search)pluginhint,hint)
Postedat01:45AMinAdamNagy(http://adndevblog.typepad.com/manufacturing/adamnagy/),Inventor(http://adndevblog.typepad.com/manufacturing/inventor/)|Permalink
(http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html)
(http://twitter.com/share?url=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F05%2Finsertcopiesofcontentcenter
parts.html&text=Insert%20copies%20of%20Content%20Center%20parts%20)

(https://plus.google.com/share?

url=http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html)

(http://www.facebook.com/sharer.php?
u=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F05%2Finsertcopiesofcontentcenterparts.html)

Comments
Martinsaid...

Thiscodeisgreat!Itdoesalotofworkautomatically.Forourautomationitwouldbegreatificould,insteadofselectholeafterhole,selecttheareawheretheholesarein.IwouldNeed
justtwoclicksforhundredsofrivets.Bytheway,weuserivetsDIN7337andDIN124.ThereisoneProblemleft,ifwehave3platestoputtogetherwithrivets,plate1with2andplate2
with3inthiscasethecodehavetocheckifthereisaholestillwithanrivetin.
Maybethereisanyonewhocanmodifiythecode...
Thanksinadvance
Martin
Reply
05/20/2016at02:48AM(http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html#comment6a0167607c2431970b01b7c85f9f9e970b)
DuanNausaid...

Hi
IhaveErrorinInventorProfessional2017
Errorinruleprogramformat:
AllotherSub'sorFunction'smustbeafterSubMain()
Reply
05/26/2016at08:40AM(http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html#comment6a0167607c2431970b01b7c863ced6970b)
AdamNagy(http://profile.typepad.com/1236098880s16462)saidinreplytoDuanNau...

Hi,
hereiswhy:http://adndevblog.typepad.com/manufacturing/2015/11/convertvbatonetilogic.html(http://adndevblog.typepad.com/manufacturing/2015/11/convertvbatonet
ilogic.html)
Cheers,
Adam
Reply
05/26/2016at08:44AM(http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html#comment6a0167607c2431970b01bb09075cd4970d)
DuanNausaid...

Thankyou,

http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html

3/5

21/01/2017

InsertcopiesofContentCenterpartsManufacturingDevBlog

you'requick.Itry,thecodedoesnotwork.Idonotknow.WhathaveItodowithSelectSetThereIhaveanerror.Ifollowedtheaddresswhatyou'vesentme.
SubMain()
'Dosomething
'Thencallanothermethod
CallInsertSameInstances
EndSub
SubInsertSameInstances()
DimdocAsAssemblyDocument
doc=ThisApplication.ActiveDocument
DimacdAsAssemblyComponentDefinition
acd=doc.ComponentDefinition
'Instancetocopy
DimoccAsComponentOccurrence
'occ=doc.SelectSet(1)
'
''Storeselectedfaces
'DimfsAsObjectCollection
'fs=ThisApplication.TransientObjects.CreateObjectCollection
'
'DimiAsInteger
'Fori=2Todoc.SelectSet.Count
'Callfs.Add(doc.SelectSet(i))
'Next
'
''Facesofholesthatthecopiesshouldbeplacedto
'DimhAsFace
'ForEachhInfs
''Insertsamecomponent
'DimtgAsTransientGeometry
'tg=ThisApplication.TransientGeometry
'
'DimoccNewAsComponentOccurrence
'occNew=acd.Occurrences.AddByComponentDefinition(occ.Definition,tg.CreateMatrix())
'
''Checkoriginalcomponent'sconstraints
'DimcAsAssemblyConstraint
'ForEachcInocc.Constraints
'IfTypeOfcIsInsertConstraintThen
'DimicAsInsertConstraint
'ic=c
'
''Getnativeedge
'DimeAsEdge
'e=c.EntityOne.NativeObject
'
''Getitsequivalentinthenewoccurrence
'DimepAsEdgeProxy
'CalloccNew.CreateGeometryProxy(e,ep)
'
''Gethole'sedge
'DimehAsEdge
'eh=h.Edges(1)
'
'Callacd.Constraints.AddInsertConstraint(ep,eh,ic.AxesOpposed,ic.Distance.Value)
'EndIf
'Next
'Next
EndSub

Reply
05/26/2016at10:14AM(http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html#comment6a0167607c2431970b01bb090767ee970d)

Commentbeloworsigninwith Typepad(http://www.typepad.com/sitelogin?uri=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F05%2Finsertcopiesof
contentcenter
parts.html&fp=8a18acde0ce2d9b67aa2cd88d65c8dae&view_uri=http%3A%2F%2Fprofile.typepad.com%2F&via=blogside&post_uri=http://adndevblog.typepad.com/manufacturing/2016/05/
copiesofcontentcenterparts.html) Facebook(http://www.typepad.com/sitelogin?uri=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F05%2Finsert
copiesofcontentcenter
parts.html&fp=8a18acde0ce2d9b67aa2cd88d65c8dae&view_uri=http%3A%2F%2Fprofile.typepad.com%2F&via=blogside&service=facebook&post_uri=http://adndevblog.typepad.com/manuf
copiesofcontentcenterparts.html) Twitter(http://www.typepad.com/sitelogin?uri=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F05%2Finsert
copiesofcontentcenter
parts.html&fp=8a18acde0ce2d9b67aa2cd88d65c8dae&view_uri=http%3A%2F%2Fprofile.typepad.com%2F&via=blogside&service=twitter&post_uri=http://adndevblog.typepad.com/manufac

http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html

4/5

21/01/2017

InsertcopiesofContentCenterpartsManufacturingDevBlog

copiesofcontentcenterparts.html) Google+(http://www.typepad.com/sitelogin?uri=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F05%2Finsert
copiesofcontentcenter
parts.html&fp=8a18acde0ce2d9b67aa2cd88d65c8dae&view_uri=http%3A%2F%2Fprofile.typepad.com%2F&via=blogside&service=gplus&post_uri=http://adndevblog.typepad.com/manufact
copiesofcontentcenterparts.html)andmore...(http://www.typepad.com/sitelogin?uri=http%3A%2F%2Fadndevblog.typepad.com%2Fmanufacturing%2F2016%2F05%2Finsert
copiesofcontentcenter
parts.html&fp=8a18acde0ce2d9b67aa2cd88d65c8dae&view_uri=http%3A%2F%2Fprofile.typepad.com%2F&via=blogside&service=openid&post_uri=http://adndevblog.typepad.com/manufac
copiesofcontentcenterparts.html)

(URLsautomaticallylinked.)

Emailaddressisnotdisplayedwithcomment.

Name
EmailAddress
WebSiteURL
Post Preview

(http://www.typepad.com/)
ManufacturingDevBlog(http://adndevblog.typepad.com/manufacturing/)

http://adndevblog.typepad.com/manufacturing/2016/05/insertcopiesofcontentcenterparts.html

5/5

S-ar putea să vă placă și