Upload
tania-smit
View
216
Download
1
Embed Size (px)
Citation preview
PTC/AWARD
Productconfigurator CF200 Trailer
Rollend materieel….
PTC AWARD 1998www.cemasters.nl
Rollend materieel….
PTC AWARD 1999www.cemasters.nl
Rollend materieel….
PTC AWARD 2006
PTC AWARD 2004 nominee
PTC AWARD 2007?
Kraker Trailers uitgangssituatie
Productie: 215 trailers per jaar, 4-5 trailers per week Groeiverwachting 25% (nu al streven om 13 stuks per week te maken) Uitvoeringen: BEST, Standard en Specials Klant is koning vele bekende en onbekende opties Drukbezette tekenkamer Productkennis in hoofden van mensen Foutieve informatieverstrekking door 2D ACAD Copy van copy voor herhaalorders (lijkt ongeveer op….) Nauwelijks kwaliteitsterugkoppeling productie Geen directe koppeling met logistiek (voorraadbeheer, MRP) Service / support lastig door geen inzage as build status
Voordelen PCF? (Q, €, )
Tekenkamer interpreteert de verkoopinformatie en transformeert deze naar eenduidige informatie [Q]
Automatiseren van repeterende handelingen [] Traceerbaar maken van de “as build” status [] Menselijke fouten reduceren [Q] Snel inzicht in product en evt. problemen op voorhand [] Duidelijk onderscheid tussen standaard en maatwerk [] Inzicht in verbruik van materialen door koppeling logistiek [€] Onafhankelijkheid van toeleveranciers [,€] Groei mogelijk maken van Kraker Trailers [€] Geld verdienen
Diverse uitvoeringsvormen PCF mogelijk
Balans zien te vinden tussen vereiste Pro/E kennis en gebruikersvriendelijkheid
Doel:
Een configuratie van een trailer die snel wordt gegenereerd en eenvoudig verder kan worden aangepast.
Mogelijkheden:
• Pro/E: Mogelijkheden zeer beperkt. Geometrisch zijn onderdelen niet te koppelen, opties handmatig aan/uit te zetten, veel handwerk
• Pro/E + AAX: mogelijkheden van skeletons en layout, intelligentie ligt in model opgeslagen, lastig achteraf aan te passen
• Pro/E + AAX + AGW: meeste flexibiliteit en eenvoudig aan te passen
Greep uit de mogelijkheden
Uitvoeringsvorm Afmetingen 180 unieke configuratieopties
– Banden– Velgen– Kisten– Palletrek– Reservewielen– Deur in kopschot– Asstel– Steunpoot– Afdekzeil– Spatschermen– Spanbanden– Snelsluiting– Bediening cargofloor– Hydrauliekaansluiting– Werklamp– Meeloopschot zeil bespannen– Stickers– Spatschermen– Exspray– ALCOA– Kaptogen rond 80– Trap op deur– Aluminium kist– Extra zeilpijp
Volwaardig technisch tekeningenpakket
Resultaten toepassing Automation Gateway icm Pro/E
Gebruiksvriendelijke UI Visual Basic Intelligentie buiten model (vaste set routines) Vereist kwalitatief nauwgezet modelleren Rekenbeest nodig (64-bits, 4Gb) Werken met simplified representations niet ideaal 1 unieke Trailer genereren duurt ongeveer een ½ uur
Retrieve, rename, modify, replace (3D + 2D), save
Werkt prima samen icm Pro/INTRALINK Alle saaie, repeterende werkzaamheden zijn te automatiseren Snelle manier om Pro/E data te handelen (parameters toevoegen,
automatisch invoeren van waarden)
Vervolg
Volautomatische ODBC link met logistieke database Printroutines Salesconfigurator …
Wat is Automation Gateway (AGW)?
Pro/ENGINEER laten communiceren met een andere applicatie. Gebaseerd op Microsoft ActiveX technologie.(Visual Basic, VBA, C)
Welke applicaties kunnen gebruikt worden?
Visual Basic Software (programma schrijven)
Internet Explorer (Pro/E modellen configureren)
Microsoft EXCEL (VBA, gebruik maken van alle functionaliteit binnen Excel)
Microsoft WORD (VBA, als data input gebruiken voor Pro/PROGRAM)
Microsoft ACCESS (Database, afdelingen inkoop/verkoop/productie/magazijn)
SQLServer
Product features(functies) binnen AGW?
Bestanden beheer Retrieve, Rename, Copy IGES, STEP, DXF, Plotfiles…enz. Pro/INTRALINK
Dimensie & Parameter Create / Modify van dimensions & parameters Invoervenster voor waardes Waardes uitlezen
Geometrie & Model Suppress / Resume features / components Familytable Plaatsen van componenten / Interchange
Nog veel meer…..!!Layer, Simplified rep, Delete view, Note’s, BOM, Stuklijst, Config, Massprop, Regenerate, Designate, Erase, Macro…..enz!
AGW – Excel - Pro/E – Set / Get Dimensionserrgw = gw.DimensionSetValue("d0", dDimValue, , "agw_testpart.prt") errgw = gw.DimensionGetVal("d6", dDimValue, , "agw_testpart.prt")
errgw = gw.DimensionSetValue(ActiveCell.Offset(i, 0).value, ActiveCell.Offset(i, 2).value, , ActiveCell.Offset(i, 4).value)
errgw = gw.DimensionGetVal(ActiveCell.Offset(i, 0).value, waarde, , ActiveCell.Offset(i, 4).value)
AGW – Excel - Pro/E – Set / Get Parameter
errgw = gw.ParamSetValue(sParamName, sValue, , "agw_testpart.prt") errgw = gw.ParamGetVal(sParamName, sValue, , "agw_testpart.prt")
i = 1 Do While True If ActiveCell.Offset(i, 0).value = "" Then Exit Do zoekIN = ActiveCell.Offset(i, 4).value zoekNaar = "20XXXX" Modelnaam = Replace(zoekIN, zoekNaar, Projectnummer) errgw = gw.ModelRetrieve(Modelnaam) errgw = gw.SessionSetCurrentModel(Modelnaam) errgw = gw.ParamSetValue(ActiveCell.Offset(i, 0).value, ActiveCell.Offset(i, 2).value, ,
Modelnaam) i = i + 1 Loop
AGW – Excel - Pro/E – Suppress / Resume Components
errgw = gw.AssemblyComponentSuppress("/testasm.asm/planesasm.asm.45", 23, FD_CLIP_AL) errgw = gw.AssemblyComponentResume("/testasm.asm/planesasm.asm.45", 23, FEAT_RESUME_NO_OPTS)
i = 1 Do While True If ActiveCell.Offset(i, 0).value = "" Then Exit Do Do While True i = i + 1 If ActiveCell.Offset(i - 1, -1).value = "Geen keuze" Then Exit Do If ActiveCell.Offset(i - 1, -2).value = "Geen keuze" Then Exit Do If ActiveCell.Offset(i - 1, 1).value = "Yes" And ActiveCell.Offset(i - 1, 0).value = Optienr And ActiveCell.Offset(i - 1, 5).value = 1 Then zoekIN = ActiveCell.Offset(i - 1, 4).value zoekNaar = "20XXXX" Modelnaam = Replace(zoekIN, zoekNaar, Projectnummer) errgw = gw.ModelRetrieve(Modelnaam) errgw = gw.AssemblyComponentSuppress("/" & Modelnaam, ActiveCell.Offset(i - 1, 3).value, ActiveCell.Offset(i - 1, 6).value) End If Loop
AGW – Excel - Pro/E – Suppress/resume features
errgw = gw.FeatSuppress(sFeatName, "agw_testpart.prt")errgw = gw.FeatResume(sFeatName, "agw_testpart.prt")
Case "FeatureSuppressTrailer(1)" Application.Goto Reference:="FeatureSuppressTrailer"
k = 1 Do While True If ActiveCell.Offset(k, 0).value = "" Then Exit Do Do While True k = k + 1 If ActiveCell.Offset(k - 1, -1).value = "Geen keuze" Then Exit Do If ActiveCell.Offset(k - 1, -2).value = "Geen keuze" Then Exit Do If ActiveCell.Offset(k - 1, 1).value = "Yes" And ActiveCell.Offset(k - 1, 0).value = Optienr And ActiveCell.Offset(k - 1, 5).value = 1 Then zoekIN = ActiveCell.Offset(k - 1, 4).value zoekNaar = "20XXXX" Modelnaam = Replace(zoekIN, zoekNaar, Projectnummer) ID = ActiveCell.Offset(k - 1, 3).value errgw = gw.ModelRetrieve(Modelnaam) errgw = gw.SessionSetCurrentModel(Modelnaam) errgw = gw.FeatSuppress(ID, Modelnaam, True, True) End If Loop
AGW – Excel - Pro/E - Interchange
err = gw.AssemblyComponentInterchange(356, "DN25<cft43>.prt")
Case "InterchangeOpties" Application.Goto Reference:="InterchangeOpties" m = 1 Do While True If ActiveCell.Offset(m, 0).value = "" Then Exit Do Do While True m = m + 1 If ActiveCell.Offset(m - 1, -1).value = "Geen keuze" Then Exit Do If ActiveCell.Offset(m - 1, -2).value = "Geen keuze" Then Exit Do If ActiveCell.Offset(m - 1, 1).value = "Yes" And ActiveCell.Offset(m - 1, 0).value = Optienr Then zoekIN = ActiveCell.Offset(m - 1, 5).value zoekNaar = "20XXXX" Modelnaam = Replace(zoekIN, zoekNaar, Projectnummer) errgw = gw.ModelRetrieve(Modelnaam) errgw = gw.SessionSetCurrentModel(Modelnaam) errgw = gw.ModelRetrieve(ActiveCell.Offset(m - 1, 3).value & "<" & ActiveCell.Offset(m - 1, 6).value & ">" & ActiveCell.Offset(m - 1, 7).value) errgw = gw.AssemblyComponentInterchange(ActiveCell.Offset(m - 1, 4).value, ActiveCell.Offset(m - 1, 3).value & ActiveCell.Offset(m - 1, 7).value)
AGW – Excel - Pro/E - Interchange
errgw = gw.FamTableAddInstance("agw_testpart_350", "agw_testpart.prt") errgw = gw.FamTableSetValue("d0", "300", "agw_testpart_150", "agw_testpart.prt")errgw = gw.AssemblyComponentInterchange(356, "DN25<cft43>.prt")
errgw = gw.ModelRetrieve(Modelnaam) errgw = gw.SessionSetCurrentModel(Modelnaam) errgw = gw.ModelRetrieve(ActiveCell.Offset(m, 7).value & ActiveCell.Offset(m, 5).value & ActiveCell.Offset(m, 8).value & "<" & ActiveCell.Offset(m, 9).value & ">" &
ActiveCell.Offset(m, 10).value) If errgw = 90200 Then' errgw = gw.FamTableAddInstance(ActiveCell.Offset(m, 7).value & ActiveCell.Offset(m, 5).value & ActiveCell.Offset(m, 8).value, ActiveCell.Offset(m, 6).value)' errgw = gw.FamTableSetValue("L", ActiveCell.Offset(m, 5).value, ActiveCell.Offset(m, 7).value & ActiveCell.Offset(m, 5).value & ActiveCell.Offset(m, 8).value,
ActiveCell.Offset(m, 6).value) errgw = gw.ModelRetrieve(ActiveCell.Offset(m, 7).value & ActiveCell.Offset(m, 5).value & ActiveCell.Offset(m, 8).value & "<" & ActiveCell.Offset(m, 9).value & ">" &
ActiveCell.Offset(m, 10).value) End If errgw = gw.AssemblyComponentInterchange(ActiveCell.Offset(m, 3).value, ActiveCell.Offset(m, 7).value & ActiveCell.Offset(m, 5).value & ActiveCell.Offset(m,
8).value & ActiveCell.Offset(m, 10).value)
AGW – Excel - Pro/ENGINEER – Rename/Save-as
errgw = gw.ModelRename("new_name")errgw = gw.ModelSaveAs("saveas_part.prt") errgw = gw.SessionEraseDrawingAll("agw_testdrawing.drw")
If ActiveCell.Offset(m, 5).value <> "" Then' Rename drawings errgw = gw.ModelRetrieve(ActiveCell.Offset(m, 5).value)' errgw = gw.SessionSetCurrentModel(ActiveCell.Offset(m, 5).value) errgw = gw.ModelRename(ActiveCell.Offset(m, 6).value & ActiveCell.Offset(m, 7).value, ActiveCell.Offset(m, 5).value, ActiveCell.Offset(m,
1).value) End If If ActiveCell.Offset(m, 4).value <> "" Then' Rename skeletons errgw = gw.ModelRetrieve(ActiveCell.Offset(m, 4).value)' errgw = gw.SessionSetCurrentModel(ActiveCell.Offset(m, 4).value) errgw = gw.ModelRename(ActiveCell.Offset(m, 6).value & ActiveCell.Offset(m, 8).value, ActiveCell.Offset(m, 4).value, ActiveCell.Offset(m,
1).value) End If If ActiveCell.Offset(m, 3).value <> "" Then' Rename assemblies errgw = gw.ModelRetrieve(ActiveCell.Offset(m, 3).value)' errgw = gw.SessionSetCurrentModel(ActiveCell.Offset(m, 3).value) errgw = gw.ModelRename(ActiveCell.Offset(m, 6).value & ActiveCell.Offset(m, 7).value, ActiveCell.Offset(m, 3).value, ActiveCell.Offset(m,
1).value) End If
AGW – Excel - Pro/ENGINEER - BOMerrgw = gw.AssemblyGetComponentList(comps, lCount, "agw_testassmembly.asm", CUMULATIVE, ALL_LEVELS, UNSUPPRESSED)
Werkwijze…
Sheet 1
Sheet 2
Sheet 3