BOER SPEELTOESTELLEN
OPTIMALISATIE: O&O DOOR L.STUURMAN
Voorwoord Ik ben Lesly Stuurman, 23 jaar, en werk sinds januari 2011 bij Boer Speeltoestellen. Een bedrijf gespecialiseerd in speel- en sporttoestellen, straatmeubilair en waterglijbanen. Op de afdeling Ontwerp & Ontwikkeling ben ik werkzaam in de functie technisch tekenaar. Dit houdt in, dat ik me voornamelijk bezig houd met tekeningen die naar de productie moeten en toestelboekjes voor montage en voor de klant. Daarnaast mag ik mee denken over nieuwe toestellen en toestellijnen. Ook houd ik mij bezig met de ontwikkeling van onze huidige producten. Dit alles gebeurt met Inventor, 3D Studio Max en AutoCAD. Waarbij 3D Studio Max vooral wordt gebruikt door het Projectbureau en AutoCAD alleen voor gemeentelijke plattegronden. Inventor was voor mij, toen ik in januari bij Boer ging werken, een geheel nieuw programma. Ik stel mezelf graag doelstellingen, om steeds meer te weten te komen en sneller en efficiënter te gaan werken. Deze drang heeft mij in het verleden al aan het programmeren & optimaliseren gezet met AutoCAD en VB.NET. Door een collega werd ik op een Youtube filmpje gewezen, waarin iemand een functie had gecreëerd, die doormiddel van iLogic snel onderdelen kan wisselen of aanbouwen op een speeltoestel. Dit maakte mij nieuwsgierig en ik ben aan de slag gegaan met iLogic.
1 BOER OPTIMALISATIE
Door L. Stuurman
Inhoudsopgave Inleiding .............................................................. 3 Boer Speeltoestellen BV ................................................ 4 Sport - & Speeltoestellen ................................................... 5 Afdeling Ontwerp & Ontwikkeling ............................................. 7
Eerste Ontwerp ......................................................... 8 Werkwijze & Archivering Boer ................................................ 8 iProperties, Eigenschappen .................................................. 9 Knelpunten ................................................................. 10 Mogelijke Nieuwe Werkwijzen: ............................................... 11 Formulieren (Forms) ........................................................ 13 Regels (Rules) ............................................................. 14
Uitbreidingen ......................................................... 15 Gebruikers & Datums ........................................................ 15 Materials .................................................................. 19 Automatic Save Locater ..................................................... 21 Models in Drawings ......................................................... 24 Plotter .................................................................... 25
Eindresultaat ......................................................... 27 iParts ..................................................................... 27 iAssembly’s ................................................................ 28 Tekeningen ................................................................. 28
Slotwoord ............................................................. 29 Bijlagen .............................................................. 30 Codering “Materials” ....................................................... 30 Codering “Printen” ......................................................... 30 Codering “Save As” ......................................................... 31 Codering “Properties” ...................................................... 32
2 BOER OPTIMALISATIE
Door L. Stuurman
Inleiding In deze tijd is de computer niet meer weg te denken, zeker niet waar men zich bezig houdt met tekenen, ontwerpen en ontwikkelen, in elke branche vind je ze terug. Dit komt omdat de computer veel werk en dus tijd, uit handen neemt. Toch wordt de computer vaak nog niet optimaal benut en is de tijdwinst dus nog niet optimaal. Dit komt doordat men vooral te weinig tijd neemt voor optimalisatie in de werkomgeving. Een terugkerend patroon van bepaalde „standaard‟ handelingen, is dan ook aan de orde van de dag. Naast de tijd die daaraan verloren gaat, is de kans op fouten maken ook groter. Als de computer die handelingen over zou kunnen nemen, dan zou dat zowel tijd schelen, als ook de kans op fouten verkleinen. Dit kan al door een simpel overzichtelijk schema, een stukje codering of door het maken van macro‟s. Dit kost in eerste instantie even wat tijd, maar kan al op kort termijn z‟n vruchten af gaan werpen. Naar mijn idee (en ervaring) kan bijv. 1 dag programmeren, door één persoon, een werktijd-besparing van enkele minuten per model en/of tekening opleveren. Dan zou dit: 1 dag programmeren x 1 persoon = 8 uur 5 min. x 5 tekeningen (of modellen) x 6 pers. = 2,5 uur per dag opleveren Binnen enkele dagen is de investering van de programmeertijd al ingehaald. Daarna geldt alleen nog 100% tijdwinst! Bij Boer Speeltoestellen speelt vooral Inventor een grote rol voor het ontwerpen en ontwikkelen van de speel-, sporttoestellen en waterglijbanen. In dit verslag worden een aantal veelvoorkomende processen beschreven, met de daarbij komende knelpunten. En vervolgens worden mogelijke oplossingen beschreven voor het versnellen van deze processen. In het eerste hoofdstuk wordt kennis gemaakt met Boer Speeltoestellen BV, het bedrijf waar deze optimalisatie voor is gerealiseerd. In het tweede hoofdstuk volgt een overzicht van veel voorkomende knelpunten en mogelijke oplossingen die daar tegenover staan. Verder zal in dit hoofdstuk ook het eerste concept uitgebreid worden beschreven. In het derde hoofdstuk wordt ingegaan op uitbreidingen en toevoegingen, van de “Quick Properties” tool.
3 BOER OPTIMALISATIE
Door L. Stuurman
Boer Speeltoestellen BV Het bedrijf waar ik werkzaam ben is Boer Speeltoestellen BV. Boer is gespecialiseerd in het inrichten van openbare en recreatieve ruimten voor actief speelplezier. Het heeft een veelzijdig en uitgebreid programma aan speeltoestellen, sporttoestellen, bloembakken en straatmeubilair. Ook houdt het zich bezig met waterglijbanen en waterspeeltoestellen voor zwembaden. Niet te vergeten is ook de thematische inrichten, dat door ons dochterbedrijf GM Decor, wordt uitgevoerd. Boer heeft het volledige traject van aanvraag en ontwerp, tot plaatsing en service in eigenbeheer. Het bedrijf telt dan ook tussen de 100 en 120 werknemers . Hieronder ziet u het organogram van de organisatie:
Directie
Financiën & ICT
Ontwerp & Ontwikkeling
Financiën
Ontwerp & Ontwikkeling
ICT
Projectbureau
Operations
Bedrijfsbureau
Productie
Commercie
KAM
Service
Personeelszaken
Verkoop Waterglijbanen
Project Managment
Hout & RVS
Verkoop Belgïe
Inkoop
Kunststof
Verkoop Nederland
Planning Montage
Staal & Aluminium
Verkoop Duitsland
Polyester
Verkoop Binnendienst
Magazijn
Marketing,& Aanbestedingen
Voorbeeld thematisering door GM Decor
4 BOER OPTIMALISATIE
Door L. Stuurman
Sport - & Speeltoestellen Boer Speeltoestellen heeft een breed assortiment speel- & sporttoestellen. Zo zijn er diverse toestellijnen met als basismateriaal gecoat staal, zoals “Urban Play” en “Free Play”. Er zijn twee toestellijnen waarbij de basis kan wisselen tussen Hardhout en RVS, dit zijn Vrijbuiter, voor de grotere kinderen en Ukkepuk voor de kleintjes.
Er is een toestellijn met RVS als basismateriaal (“Pionier”). Nieuw sinds 2011 is “Adventure Play”, een lijn gefabriceerd van grillig gevormd FSC® gecertificeerd Acacia Robinia hout. Vooral populair om z‟n “palenwouden”.
Veelal worden nieuwe toestellijnen opgezet omdat er vraag naar is, zo is “Adventure Play” ontstaan. Het begint met het vastleggen van een “stramien”, bijv. vierkant of driehoekige vloertjes, vloerhoogtes, ect. Het idee bij “Adventure Play” is vooral dat het een „vrije look‟ heeft. Het “stramien” is wel aanwezig, maar niet zo duidelijk als bijvoorbeeld in de lijn “Vrijbuiter”. Met dit stramien worden een aantal basis toestellen opgezet en uitgewerkt, om het product te promoten. Dit vindt allemaal plaats op de afdeling Ontwerp & Ontwikkeling. Wanneer dit klaar is, worden er afbeeldingen gerenderd en productdatasheets gemaakt. Daarmee gaan de vertegenwoordigers op pad. Klanten kunnen dan kiezen voor bestaande toestellen of kunnen om aangepaste toestellen vragen. Dit kan zijn; een wijziging of uitbreiding van een bestaand toestel.
5 BOER OPTIMALISATIE
Door L. Stuurman
Maar het komt met regelmaat voor, dat een klant een totaal ander concept wil binnen een productlijn, zoals het schip, het bootje en de fuik, hiernaast afgebeeld. De vertegenwoordigers geven de eisen van de klant door en de ontwerpers gaan aan de slag. Wanneer een toestel dan wordt verkocht, wordt het uitgewerkt voor productie en komt het te staan tussen alle andere toestellen. Op deze manier breidt het assortiment zich in korte tijd snel uit. Tijdens de productie van een toestel, komt het wel eens voor dat een tekenaar iets bedacht heeft, dat in werkelijkheid niet blijkt te passen of te kunnen. De afdeling Productie past het onderdeel of toestel dan aan, in overleg met de afdeling O&O. De tekenaar kan dit vervolgens digitaal verwerken zodat het toestel in de toekomst wel juist wordt uitgevoerd. Wanneer een toestel een tijd wordt gebruikt door spelende kinderen, kan het wel eens zijn dat een klant met regelmaat tegen een probleem aanloopt. De afdeling O&O gaat dan brainstormen over een mogelijke oplossing voor het probleem, dus het product ontwikkelen. Zo is in het verleden de standaard dubbele schommel ontwikkeld en uitgevoerd met een overgooi beveiliging. Dit zorgt er voor, dat wanneer een schommelzitje over de boven stang wordt gegooid, deze niet blijft hangen maar netjes door draait. En wanneer de ketting wordt opgerold, zit er in de ketting een as, die er voor zorgt dat deze weer uitrolt. De zogenaamde anti-oprol beveiliging.
6 BOER OPTIMALISATIE
Door L. Stuurman
Afdeling Ontwerp & Ontwikkeling De afdeling O&O telt in totaal 8 man. De verdeling is als volgt: Lucas is afdelingshoofd. Hij gaat over de planning en alle bezigheden bij O&O, hij is eindverantwoordelijke. Ook gaat hij over veiligheid van de toestellen.
Lucas R. (Afdelingshoofd)
Ontwerp:
Willem gaat over de planning van het projectbureau, samen met Eva richten ze speelplekken in voor de verkoopbuitendienst. Wanneer ze een nieuw speeltoestel nodig hebben vragen ze dit bij O&O aan. Bij ontwerp zitten Marco, Thijs en Martijn. Bij ontwikkeling zitten Jeroen, (ook weer) Martijn en ik.
Ontwikkeling:
Projectbureau:
Martijn N.
Martijn N.
Willem v. d. L.
Marco v. T.
Jeroen v. R.
Eva d. B.
Thijs v. D.
(ik) Lesly Stuurman
Bij O&O is een mooie aansluitende lijn in kennis en vakgebied: Marco is een echte ontwerper, veel schetsen, locaties bezoeken voor inspiratie en weinig achter de computer. Thijs is een industrieel ontwerper. Met z‟n eigen ontwerpschetsen en die van Marco, kijkt hij of er vraag is op de markt en of het uitvoerbaar zal zijn in de bedachte materialen. Martijn sluit zich aan op het punt van uitvoerbaarheid, daarnaast kijkt hij ook naar de prijs. Wanneer Marco, Thijs en Martijn nieuwe toestellen hebben bedacht, moeten deze worden uitgewerkt voor productie, dit gebeurt in Inventor. Ook daar houden Thijs en Martijn zich mee bezig, maar vooral Jeroen en ik. Bij het uitwerken voor productie moeten we denken aan het maken van onderdeeltekeningen, Las- & Boorstaten, Zaag- & Boorstaten, toesteltekeningen, samenstellingstekeningen, ect. Binnen de afdeling O&O vindt veel ontwikkeling en optimalisatie van de werkzaamheden plaats. Naast zijn vaste functie houdt Martijn zich bezig met de lay-out van 2D tekeningen. Zo worden er een aantal gegevens automatisch in een “.idw bestand” opgenomen als er een 3D model in wordt geplakt. Thijs én Martijn houden zich ook bezig met het maken van makkelijk uitwisselbare onderdelen, zoals iParts en iAssembly‟s. Dit wordt ook wel het creëren van een “modulair systeem” genoemd. En dan nu het optimaliseren, dat is waar ik me een paar uur per week mee bezighoudt. Vaak nadat de vraag is geweest; “kan dit of dat niet sneller?”. Het kan zijn dat er gegevens met één click worden aangepast of het is dat met één knop elk papierformaat op de juiste manier wordt afgedrukt. Alles kan!
7 BOER OPTIMALISATIE
Door L. Stuurman
Eerste Ontwerp Werkwijze & Archivering Boer Om op een juiste manier van start te gaan met optimaliseren, is het belangrijk om eerst aandacht te schenken aan het Archiveringssysteem bij Boer. Hiernaast staat een overzicht van het mappensysteem van een computer op de afdeling O&O. Elke PC heeft een C: Station waar het besturingssysteem op draait en daarnaast een D: Station welke gekoppeld is met een „Vault‟. De vault zorgt er voor dat iedereen met up-to-date tekeningen werkt. Binnen de „Designs‟ map vinden we de werkmappen voor speel-, sporttoestellen, straatmeubilair en waterglijbanen. Ook staat hier een „Bibliotheek‟ waar alle standaard onderdelen, zoals bouten en moeren, kunnen worden gevonden. In dit verslag zal alleen gekeken worden naar de Speeltoestellen, met als voorbeeld de Productlijn “Free Play” (“FRP”). Binnen de structuur van Free Play bevinden zich 2 mapjes, het mapje voor de 3D files, hier staan alle „.iam‟ en „.ipt‟ en een gelijkwaardig 2D mapje, met daarin de bijhorende „.idw‟ files. De modellen en tekeningen worden op type gerangschikt; zo worden kunststof onderdelen onder “KST” ondergebracht, metalen onderdelen onder “OME” en complete toestellen onder “TOE”. Dit systeem in rangschikken kan worden terug gevonden in de benaming van de productfiles, bijv:
Lokale schijf (C:) Lokale schijf (D:) =
Designs
==
Bibliotheek
==
Speeltoestellen
===
Productlijn
====
CST
====
DRM
====
FRP
======
FRP_2D
======
FRP_3D
========
KST_FRP_3D
========
MOD_FRP_3D
========
OME_FRP_3D
========
ONT_FRP_3D
========
SME_FRP_3D
========
TOE_FRP_3D
========
TOZ_FRP_3D
====
UKP
====
VRB
OME_FRP_109_372
== Onderdeel: Metaal Productlijn: Free Play
Waterglijbanen
MOD_VRB_HHT_658 Materiaal: Staal 37-2 OnderdeelNummer Onderdeel: 000 t/m999 Module
OnderdeelNummer t 000 /m999 Productlijn: MateriaalVrijbuiter lijn: RVS of Hardhout
8 BOER OPTIMALISATIE
Door L. Stuurman
iProperties, Eigenschappen De Eigenschappen, welke op de vorige pagina zijn uitgelicht, worden in het „iProperties‟ scherm aangemaakt. In het tabblad „Summary‟ staan bijvoorbeeld, het Type (Category) en de Productlijn (Keyword). En in het Tabblad „Project‟ staan de onderdeel en materiaal nummers (Part Number & Description) De gegevens van onderdeel “OME_FRP_109_372” worden ingevuld, zoals rechts weergegeven. Naast de kenmerken worden er ook een Onderdeel-/ Toestelnaam (Title), een Opmerking of 2de naam (Subject), de Ontwerper (Mfg. / Eng. ApprovedBy:) en Ontwerpdatum (Mfg. / Eng. Approved Date:) toegekend aan het Model. Waarvan de laatst genoemde zich bevinden op het Tabblad „Status‟.
OME FRP
Bij „.ipt‟ onderdelen is het ook heel belangrijk om het materiaal (Material), op Tabblad „Physical‟, aan te geven. Dit in verband met het gewicht, de visuele en andere eigenschappen van het materiaal. Als laatste kan het nog voorkomen dat een onderdeel wijzigd, dan krijgt deze een revisie nummer (RevisionNumber). 109 372
9 BOER OPTIMALISATIE
Door L. Stuurman
Knelpunten Voor optimalisatie kan plaats vinden, moet er worden geïnventariseerd waar verbetering mogelijk is. Dit houdt in dat er moet worden gekeken naar problemen en knelpunten in het werk. Properties De eigenschappen (properties), worden in het „iProperties‟ venster aangemaakt. Dit venster bestaat uit circa 7 tabbladen, afhankelijk van het bestandstype waar in gewerkt wordt. Van deze tabbladen worden er totaal 4 gebruikt, dit houdt in dat er tot 3x toe een handeling moet worden verricht om van tabblad te wisselen en dat kost tijd. (dit kan doormiddel van een muisklik of [Ctrl] + [Page Down]/[Page Up]) Ook is er weinig overzicht op deze diverse properties. Om de juistheid te controleren (een tweede „check‟), moeten alle tabbladen opnieuw worden langs gelopen. Ook dit kost weer tijd en zorgt ervoor dat fouten onopgemerkt blijven. Gebruikers & overige Data Naast de productkenmerken (properties) komen er in het „iProperties‟ scherm ook standaard gegevens te staan. Zoals: de (laatste) gebruiker, de ontwerper, de datum van ontwerp, de bedrijfsnaam, ect. Deze „vaste‟ gegevens moeten bij elk model weer worden ingevuld. Dit kost ook weer tijd en zou fouten op kunnen leveren. Mappensysteem Door de werkwijze van Boer Speeltoestellen, als het gaat om onderdelen en de archivering hiervan, ontstaat er duidelijkheid. Maar er is een grote bibliotheek aan mappen, die er voor zorgt dat het „even‟ opslaan van een nieuw model of een nieuwe tekening toch weer wat tijd kost, vooral bij het zoeken van de juiste locatie. Ook kost het invullen van de bestandsnaam van het onderdeel weer tijd, terwijl de bestandsnaam bestaat uit gegevens die al in de Properties staan. Plotten Op de afdeling Ontwerp & Ontwikkeling, worden alle tekeningen (.idw files) geplot naar PDF. Er zijn tekeningen die op A4 geplot moeten worden of op A3 en er zijn „TPR‟ tekeningen, welke een formaat van 9x25cm hebben. Bij elke plot, moet er worden gecheckt of de PDF-Plotter het juiste formaat heeft staan. Wat ook weer veel tijd kost.
10 BOER OPTIMALISATIE
Door L. Stuurman
Mogelijke Nieuwe Werkwijzen: Het belangrijkste knelpunt is de tijd en als tweede het maken van fouten. Nu is tijd winnen „eenvoudiger‟, dan fouten voorkomen. Omdat optimalisatie op korte termijn tijdwinst zou kunnen geven, terwijl fouten „menselijk‟ blijven. Wel kan de kans op fouten worden verkleind, door overzichtelijke gegevens en het verminderen van het aantal gegevens, dat moeten worden ingevuld. Het is belangrijk om de werkwijze (archiveringsmethode) in takt te houden, zodat het werksysteem niet verandert. Om overzicht te creëren in de Properties, zou er een Prompt box, Form, Dialog box of enig ander gelijkwaardig formulier kunnen worden gemaakt, waar alle gegevens in staan. Zo‟n formulier zou dan kunnen worden opgeroepen, door bijv. een click op een knop of automatisch, wanneer men een tekening opent, sluit of bij een dergelijke handeling. Het invullen van de standaard gegevens (zoals gebruiker, ect.) zou door middel van een script, macro of rule kunnen worden aangestuurd. Dan kunnen er geen fouten worden gemaakt door de gebruiker, de gegevens staan immers „vast‟. Ook wordt er dan tijdwinst gemaakt, omdat de gegevens automatisch worden aangemaakt. Het voorgaande geldt ook voor het aanmaken van de bestandsnaam en het wegschrijven van de file naar de juiste locatie. Door gebruik van een script, macro of rule zouden deze, met minimale informatie, automatisch kunnen worden aangemaakt. Tijdwinst zou één knop (dus papierformaat weggeschreven
zo ook bij het plotten kunnen worden behaald, wanneer één click) bepaalt wat het papierformaat is. Elk (TPR, A3 of A4) wordt op de juiste afmeting als “.PDF-file”.
Voor dit soort optimalisaties kan gebruik worden gemaakt van: VBA / VB.NET, volledig externe programmering, welke later kan worden geïmplementeerd in Inventor. iLogic, programmering op „local‟ of „global‟ niveau, door middel van „Forms‟/„Global Forms‟ en „Rules‟/„External Rules‟. Inventor Template, een basis bestand waarin een groot deel van de gewenste informatie al is ingevuld in de „iProperties‟ en/of bij „Parameters‟. De bovengenoemde mogelijkheden zouden ook gecombineerd kunnen worden, om zo tot een efficiëntere optimalisatie te komen en om de tijd, welke nodig is voor het optimaliseren te verkleinen. Om dit op een goede manier te doen, moet er eerst worden gekeken naar de voor- en nadelen van de 3 mogelijkheden.
11 BOER OPTIMALISATIE
Door L. Stuurman
VBA / VB.NET; voor- & nadelen: o Met Visual Basic kunnen alle gewenste resultaten worden behaald, welke met iLogic én Templates ook kunnen worden behaald. o Het programma bevat een „debugger‟ welke laat zien waar fouten zitten. o Het programma vult zelf opties en commando‟s aan. o Met Visual Basic is het mogelijk om een “stand alone” programma te maken, zodat deze bij iedereen kan worden gebruikt. o Doordat het programma op zichzelf werkt, zal tijdens het programmeren alle informatie worden verschaft voor een stabiel geheel, wat tot een langere periode van programmeren zou kunnen leiden. o Door dat het programma op zichzelf werkt, zal het niet alle gegevens kunnen vasthouden. Sommige gegevens zullen dus door extra programmeren iedere keer weer moeten worden aangeroepen. Alle bedachte verbeteringen kunnen worden opgenomen en er is ruimte voor ontwikkeling. iLogic; voor- & nadelen: o iLogic bevat zogenaamde „snippets‟, waarin standaard functies staan uitgeschreven en deze zijn dus gelijk toepasbaar. o Door gebruik van „Global Forms‟ en „External Rules‟ zou het mogelijk kunnen zijn, om iedereen “live” te laten werken met de meest up-to-date versie van de formulieren. Deze Global Forms en External Rules kunnen namelijk worden gedeeld via een netwerkserver. o Bij een fout in een rule/script geeft iLogic exact aan wat de locatie van deze fout is. o Helaas vult het programma niet de programmeer commando‟s aan, waardoor alles volledig moet worden uitgeschreven. o Door dat het programma op zichzelf werkt, zal het niet alle gegevens kunnen vasthouden. Sommige gegevens zullen dus door extra programmeren iedere keer weer moeten worden aangeroepen. Alle bedachte verbeteringen kunnen worden opgenomen en er is ruimte voor ontwikkeling. Inventor Templates; voor- & nadelen: o Het grootste voordeel van een pre-set Template is, dat de „vaste‟ gegevens al zijn ingevuld. Er zijn dus geen extra handelingen meer nodig. o Na het opslaan van de Template blijven alle gegevens in het bestand achter. Wanneer de tekening of het model weer opnieuw wordt geopend, zullen deze gegevens direct toegankelijk zijn. o Overige gegevens zoals de „properties‟, gebruiker, datums en printerinstellingen zullen met de hand moeten worden ingevuld. Niet alle bedachte verbeteringen kunnen worden opgenomen en de ruimte voor ontwikkeling is erg beperkt. Mijn keuze is gevallen op iLogic, vooral omdat de „Global Forms‟ en „External Rules‟ eenvoudig met iedereen te delen zijn, via het netwerk. Wel combineer ik iLogic met het gebruik van diverse (bestaande) Templates, zodat alle huidige tekeningen ook te combineren zijn met de nieuwe optimaliseringstool.
12 BOER OPTIMALISATIE
Door L. Stuurman
Formulieren (Forms) Een knelpunt bij de Eigenschappen (Properties) is dat het niet in één oogopslag is te zien. Daarom heb ik in iLogic, te vinden bij View User Interface iLogic Browser, een formulier aangemaakt. Wat belangrijk is, is dat een „Global Form‟ wordt aangemaakt, welke op het netwerk kan worden weggeschreven. Dit zodat alle collega‟s direct gebruik kunnen maken van de meest up-to-date versie! Dit formulier wordt vanaf nu „Quick Properties‟ genoemd en wordt hiernaast weergegeven. In dit scherm staan de eerder behandelde Properties, maar nu direct toegankelijk en onder de benaming zoals die bij Boer wordt toegepast. Zo is heet „Title‟ nu „Benaming‟; „Subject‟ heet nu „Opmerking‟; „Category‟ heet nu „Type Naam‟; et cetera.
Een „Global Form‟ kan worden gemaakt door in de „Form Editor‟, onder het Tabblad „iProperties‟, direct de benodigde eigenschappen in het formulier te slepen. Wanneer in het „Quick Properties‟ iets wordt gewijzigd, wordt deze wijziging direct opgenomen in het „iProperties‟ venster. Maar met het verschil dat de gegevens nu in slechts één venster staan!
13 BOER OPTIMALISATIE
Door L. Stuurman
Regels (Rules) Er zijn een aantal eigenschappen die altijd hetzelfde zijn, namelijk de „Manager‟ (Lucas Rijnders), „Company‟ (Boer Speeltoestellen) en de website, welke altijd wordt geplaatst onder „Summary‟ „Comments‟. Deze eigenschappen moeten bij elk model worden ingevuld of worden gewijzigd als het oude gegevens bevat. Nu zouden deze in het „Quick Properties‟ venster kunnen worden toegevoegd, zoals de andere Properties in de vorige paragraaf. Maar omdat deze gegevens standaard zijn, is het makkelijker om een „Rule‟ te maken, die dit automatisch invult. Hiervoor kan een „External Rule‟ worden gebruikt, welke via het netwerk gedeeld kan worden zodat alle collega‟s direct met de meest up-to-date versie werken. In de „Rule Editor‟ van iLogic zijn al een aantal standaard codes en scripts voor geschreven, de zogenaamde „Snippets‟. Bij het tapje „iProperties‟, van de Snippets vinden we bijv. de code iProperties.Value("Project", "Part Number"). Met deze code wordt opgevraagd wat de waarde is van de iProperties, in dit geval het „Part Number‟ van het “Project‟ Tabblad. Wanneer nu voor het tabblad „Summary‟, locatie „Manager‟ de waarde altijd “Lucas Rijnders” moet zijn, kan deze code worden gebruikt: iProperties.Value("Summary", "Manager")="Lucas Rijnders"
De zelfde handeling kan ook voor de andere gegevens worden toegepast; iProperties.Value("Summary", "Comments")="Boerplay.com" iProperties.Value("Summary", "Company")="Boer Speeltoestellen BV"
Vervolgens kan de Rule „Auto Update‟ toegevoegd aan het formulier „Quick eigenschappen zijn aangepast, kunnen eigenschappen „Manager‟ en „Company‟
via de „Form Editor‟ worden Properties‟. Ter controle of de vanuit de „iProperties‟ de worden toegevoegd.
Nu deze gegevens zijn geautomatiseerd, is het ongewenst dat ze alsnog bewerkt kunnen worden vanuit het „Quick Properties‟ venster. Daarom wordt de eigenschap „ReadOnly‟ van deze gegevens op „True‟ gezet.
14 BOER OPTIMALISATIE
Door L. Stuurman
Uitbreidingen Gebruikers & Datums In de Paragraaf “Rules” wordt gebruik gemaakt van een „External Rule‟, om bepaalde gegevens standaard in te vullen, dit zijn „Manager‟, „Company‟, ect. Wat ook „standaard‟ is, maar dan per gebruiker, is de „User name‟ en de datum waarop een tekening wordt gemaakt of aangepast. Omdat er al gebruik wordt gemaakt van een „Rule‟, is het handig om deze gegevens ook direct mee te nemen. Voordat dit kan worden geïmplementeerd, moet worden bepaald welke situaties zich hierbij kunnen voordoen: 1. Het model of tekening is nieuw, dus de gebruikersnaam moet nog worden ingevuld. Hierbij geldt: Gebruiker = „Designer‟ = „Mfg. Approved By‟ = „Eng. Approved By‟. 2. Het model of tekening is bestaand, maar wordt gewijzigd, dus de gebruikersnaam kan afwijken van de maker. Hierbij geldt: „Designer‟ (bestaand) = „Mfg. Approved By‟ & Gebruiker = „Eng. Approved By‟. Bij situatie 1 geldt, dat de „Creation Date‟ = „Eng. Approved Date‟ = „Mfg. Approved Date‟ = Nu (vandaag). Terwijl bij Situatie 2 geldt, dat de „Creation Date‟ (Bestaand) = „Eng. Approved Date‟ en „Mfg. Approved Date‟= Nu (vandaag). Om te bepalen welke stappen genomen moeten worden, kan het volgende stroomschema worden aangehouden: Aanklikken knop “Auto Update”
Bestaande „Designer‟?
nee
Designer = Gebruikers Naam
ja
Creation Date = Nu
Mfg. Approved By = Designer
Mfg. Approved By = Gebruikers Naam
Mfg. Approved Date = Creation Date
Mfg. Approved Date = Nu
Eng. Approved By = Gebruikers Naam
Eng. Approved By = Gebruikers Naam
Eng. Approved Date = Nu
Eng. Approved Date = Nu
15 BOER OPTIMALISATIE
Door L. Stuurman
Om te bepalen welke situatie voor handen is, moet er eerst een controle plaats vinden. Deze controle ziet er als volgt uit: Dim MFG = iProperties.Value("Project","Designer")
:
If MFG = Nothing Then
Wanneer de „MFG‟ (dus de Designer) nog niets blijkt te zijn, dan kan direct de gebruiker naam worden ingevoerd als ontwerper; MFG = ThisApplication.GeneralOptions.UserName iProperties.Value("Project", "Designer") = MFG iProperties.Value("Status", "Mfg. Approved By") = MFG iProperties.Value("Status", "Eng. Approved By") = MFG
Waarna de datum ook volgt: iProperties.Value("Project", "Creation Date")= Now iProperties.Value("Status", "Mfg. Approved Date") = Now iProperties.Value("Status", "Eng. Approved Date") = Now
Maar indien dit niet het geval is, dus wanneer er al een „Designer‟, een ontwerper is ingevuld, dan volgt alleen: Else iProperties.Value("Status", "Eng. Approved By") = ThisApplication.GeneralOptions.UserName iProperties.Value("Status", "Eng. Approved Date") = Now
Waarna automatisch de „Mfg. Approved By‟ wordt overschreven door de „Designer‟, want bij Boer wordt in het vakje van „Mfg. Approved By‟, altijd de persoon genoteerd, die het model of de tekening heeft ontworpen (de „Designer‟) met daarbij de correcte datum. iProperties.Value("Status", "Mfg. Approved By") = iProperties.Value("Project", "Designer") iProperties.Value("Status", "Mfg. Approved Date") = iProperties.Value("Project", "Creation Date") End If
Met deze tool zou het dus niet meer nodig zijn om namen en datums in te voeren. Een stijl-„knelpunt‟ echter ontstaat, doordat voorheen de namen in hoofdletters werden uitgeschreven.
Tegenwoordig is de afspraak om alleen de eerste letter van de voor en achternaam als hoofdletter te noteren en de overige in kleine letters. Om nu te realiseren dat de tool direct een naam omzet, moeten de volgende keuzen door de tool worden genomen:
16 BOER OPTIMALISATIE
Door L. Stuurman
Aanklikken knop “Auto Update”
Bestaande „Designer‟?
nee
Geen bijzondere handelingen; direct Gebruikers Naam overnemen.
ja Mfg. Approved By = Designer
Bestaat de naam uit één woord?
ja
Één woord aanpassen naar kleine letters, met één hoofletter.
ja
Twee woorden aanpassen naar kleine letters, beide met één hoofdletter.
ja
Drie woorden aanpassen naar kleine letters, eerste en laatste woord, één hoofdletter
ja
Vier woorden aanpassen naar kleine letters, eerste en laatste woord, één hoofdletter
nee Bestaat de naam uit twee woorden?
nee Bestaat de naam uit drie woorden?
nee Bestaat de naam uit vier woorden?
nee Melding geven, vragen om naam na te kijken.
De bijhorende iLogic code wordt dan als volgt: Dim MFG = iProperties.Value("Project","Designer") : (handeling vorige pagina) Else Dim CMFG As String = MFG & " Lyeind" Dim MFGL() As Object = CMFG.Split(" ")
If MFG = Nothing Then
Om na te gaan wanneer we het laatste woord van de naam hebben, voegen we een extra woord toe, “ Lyeind”. Wanneer nu de naam “LESLY STUURMAN” wordt gesplitst, volgt: MFGL (0) = “LESLY” MFGL (1) = “STUURMAN” MFGL (2) = “Lyeind”
Vervolgens gaat de code verder: If MFGL(1) = "Lyeind" Then Dim VNMFG = MFGL(0) Dim LVN = Len(VNMFG) - 1 MFG = UCase(Left(VNMFG,1)) & LCase(Mid(VNMFG,2,LVN))
Dit deel is nu niet van toepassing, omdat „MFGL(1)‟ in dit voorbeeld de informatie “STUURMAN” bevat, dus naar de volgende stap: 17 BOER OPTIMALISATIE
Door L. Stuurman
Else If MFGL(2) = "Lyeind" Then
In het huidige voorbeeld bevat MFGL(2) de informatie “Lyeind”, dus start de bewerking. Dim VNMFG Dim ANMFG
= MFGL(0) = MFGL(1)
Hier worden de gegevens naar een nieuwe variabele overgegeven, waarbij het type verandert van Object naar String (tekst). Dim LVN = Len(VNMFG) - 1 Dim LAN = Len(ANMFG) – 1
Vervolgens volgt de controle van de lengte van de naam (Len), minus de eerste letter. Waarna de naam weer opnieuw wordt opgebouwd. MFG = UCase(Left(VNMFG,1)) & LCase(Mid(VNMFG,2,LVN)) & " " & UCase(Left(ANMFG,1)) & LCase(Mid(ANMFG,2,LAN))
De code bouwt in dit voorbeeld dus als volgt: MFG = L & esly & _ & S & tuurman
Waaruit ontstaat: MFG = “Lesly Stuurman”
Deze bewerking kan ook bij namen met één of twee tussenvoegsels, zoals “Willem van Wijk” of “Harry van der Ham”. Hiervoor volgen de regels: Else If MFGL(3) = "Lyeind" Then Dim VNMFG = MFGL(0) Dim ANMFG = MFGL(2) Dim LVN = Len(VNMFG) - 1 Dim LAN = Len(ANMFG) - 1 MFG = UCase(Left(VNMFG,1)) & LCase(Mid(VNMFG,2,LVN)) & " " & LCase(MFGL(1)) & " " & UCase(Left(ANMFG,1)) & LCase(Mid(ANMFG,2,LAN)) Else If MFGL(4) = "Lyeind" Then Dim VNMFG = MFGL(0) Dim ANMFG = MFGL(3) Dim LVN = Len(VNMFG) - 1 Dim LAN = Len(ANMFG) - 1 MFG = UCase(Left(VNMFG,1)) & LCase(Mid(VNMFG,2,LVN)) & " " & LCase(MFGL(1)) & " " & LCase(MFGL(2)) & " " & UCase(Left(ANMFG,1)) & LCase(Mid(ANMFG,2,LAN)) Else MessageBox.Show("AUB namen Checken", "Name Error") End If : End If
Dankzij deze code worden nu alle namen en datums in het model of document up-to-date gebracht en in dezelfde stijl gezet, met slechts één klik op een knop. Wat een mooie tijd winst oplevert en fouten, zoals het vergeten van het invullen van een datum, voorkomt.
18 BOER OPTIMALISATIE
Door L. Stuurman
Materials Op Pagina 7, paragraaf „iProperties, Eigenschappen‟ wordt nog een eigenschap behandeld, die voor Onderdelen (.ipt) erg belangrijk is. Dit is het materiaal van een onderdeel. Deze fysieke eigenschap is nodig om een onderdeel realistisch te maken. Het materiaal toevoegen zorgt o.a. voor de juiste „look‟, maar ook de dichtheid en dus het gewicht van het onderdeel wordt er door bepaald. Deze eigenschap wordt bewaard in de „Style Library‟ en wordt toegevoegd aan een model, in het „iProperties‟ venster, in het tabblad „Physical‟. Onder het kopje „Material‟ staat een lijst met alle aanwezig materialen. Uit een zogenaamd “pull-down” menu kan het juiste materiaal worden gekozen. Deze eigenschap kan niet direct in een formulier worden gesleept. Dus om toch in het formulier „Quick Properties‟ deze eigenschap weer te geven moet een tussenstap worden gemaakt, een variabele, waarna de volgende stappen volgen: Aanklikken knop
Bestaat de variabele?
nee
Maak de variabele aan, voeg de materialen lijst toe aan de variabele.
ja Materiaal van de variabele toevoegen aan het model.
Om de hierboven aangegeven stappen te verwezenlijken, kan in iLogic een Rule worden aangemaakt, welke als variabele, een Parameter aanmaakt. Dit is om te zorgen dat de informatie altijd direct voor handen is. De volgende code wordt opgenomen: Parameter.Quiet = True : MultiValue.Quiet = True
Dit zorgt er voor dat, wanneer de variabele nog niet bestaat, iLogic toch doorgaat met het proces. Dim LyM = Parameter("LyMateriaal") If LyM = Nothing Then
De controle volgt of er een Parameter bestaat met de naam “Ly Materiaal”. Indien dit niet het geval is, volgt:
19 BOER OPTIMALISATIE
Door L. Stuurman
LyParameter = ThisDoc.Document.ComponentDefinition.Parameters.UserParameters oParameter = LyParameter.AddByValue("LyMateriaal", iProperties.Material_ ,UnitsTypeEnum.kTextUnits)
Een Parameter wordt gecreëerd, waarna het huidige „material‟ wordt toegevoegd, deze informatie wordt toegekend als type tekst. Nu is er een Parameter ontstaan, welke slechts één type materiaal vast houdt. Om de overige materialen ook toe te voegen moet er een „Multi Value List‟ worden aangemaakt: MultiValue.List("LyMateriaal")=iProperties.Materials
In het venster „Parameters‟ staat onder de „UserParameters‟, de zo juist aangemaakte Parameter, “Ly Materiaal”.
Wanneer de variabele "LyMateriaal" al wel bestaat, volgt: Else iProperties.Material = Parameter("LyMateriaal") End If
Dit zorgt er voor dat wat er bij de Parameter wordt geselecteerd, wordt overgenomen op het model-materiaal. Waarna Inventor het scherm nog moet updaten zodat het materiaal netjes wordt weergegeven. InventorVb.DocumentUpdate()
In het „Form Editor‟ scherm kunnen nu de Regel „Materiaal Updaten‟ en de variabele (parameter) „LyMateriaal‟ worden toegevoegd aan het „Quick Properties‟ venster. Zoals rechts aangegeven. Wat belangrijk is, bij het toevoegen van de parameter „LyMateriaal‟, dat het „Control Type‟ wordt ingesteld op „Combo Box‟ zodat deze als „Pull-Down‟ Menu functioneert. Een „List Box‟ of „Radio Group‟ neemt veel meer ruimte inbeslag, doordat deze meerdere regels gebruiken.
20 BOER OPTIMALISATIE
Door L. Stuurman
Automatic Save Locater In het hoofdstuk „Eerste Ontwerp‟, paragraaf „Werkwijze en Archivering Boer‟ (Pagina 6) wordt uitgelegd hoe het „Mappensysteem‟ er uitziet bij Boer Speeltoestellen. Verder wordt er ook aan gegeven hoe de gegevens van een Model of Tekening duidelijk maken wat de locatie van het bestand zal zijn. Tevens komen de gegevens die uit de bestandsnaam zijn op te maken ook terug in de iProperties. OME_FRP_109_372
Een Onderdeel met de naam “OME_FRP_109_372.ipt” zal terug te vinden zijn in de map “D:/Designs/Speeltoestellen/Productlijn/FRP/FRP_3D/OME_FRP_3D/”. Onderdeel:
Materiaal: Metaal Om een nieuwe file op te slaan moeten in Staal 37-2 het mappensysteem zo‟n 7 mappen worden Productlijn: Onderdeeldoorlopen om de juiste locatie van de file te Free Play Nummer selecteren. 000 t/m999
In het iProperties venster staan deze gegevens genoteerd als: Type Naam: OME (Category) Productlijn: FRP (Keywords) Onderdeel Nr: 109 (Part Number) Description: 372 (Description) Het zou er dus op neer komen dat de zelfde 4 gegevens minimaal 3x gebruikt zouden worden. Maar met een “External Rule” zou dit na 1x invullen geautomatiseerd kunnen worden. Voor dat er kan worden begonnen aan de code moet er een stappen plan worden uitgezet; Aanklikken knop “Opslaan Als / Opslaan”
Bestaat het bestand al?
Dit Document Opslaan.
ja
Toon bericht: “File Opgeslagen”
nee Zijn de eigenschappen ingevuld?
nee
Melding: eigenschappen controleren
ja Controleren Filetype; .iam / .ipt / .idw (of anders)
Eigenschappen overnemen, opslaan onder juiste map locatie en aanmaken bestandsnaam.
Toon bericht: “File Opgeslagen Als…”
21 BOER OPTIMALISATIE
Door L. Stuurman
Wanneer de te nemen stappen bekend zijn, blijkt dat het Filetype moet worden gecontroleerd. Dit kan bij een Model een “.iam” of “.ipt” zijn en bij een tekening zou het alleen een .idw zijn. Maar een tekening, van het type “.idw”, komt in veel variaties voor. Naast de “TOE_.. .. .idw” is er ook de “ZBS”, de “LBS”, ect. Een toestel zoals de Free Play Glijbaan heeft de tekeningen: “TOE_FRP_511_001.idw”, “TPR_FRP_511_001.idw” & “OFF_TPR_511_001.idw” Om ervoor te zorgen dat het filetype altijd goed wordt herkent, wordt er in elke Template een parameter aangemaakt met de naam “LyFileType”. In deze parameter wordt de informatie opgeslagen van het filetype, zodat dit door een “Rule” kan worden opgevraagd. Nu kan de code worden geschreven, eerst worden er gegevens opgevraagd: Dim DN = ThisDoc.FileName(False) Dim PL = iProperties.Value("Summary", "Keywords") Dim PCa = iProperties.Value("Summary", "Category") Dim PP = iProperties.Value("Project", "Part Number") Dim PD = iProperties.Value("Project", "Description") Dim FT = Parameter("LyFileType") If DN = Nothing Then
Indien het bestand nog niet is opgeslagen, zal Inventor geen „Filename‟ kunnen vinden, dit activeert vervolgens het automatisch opslaan. If PL = "" Then MessageBox.Show("AUB Productlijn invoeren", "Keywords Error") Else If PCa = "" Then MessageBox.Show("AUB Type Naam invoeren", "Category Error") Else If PP = "" Then MessageBox.Show("AUB Onderdeel Nummer invoeren", "Part Number Error") Else If PD = "" Then MessageBox.Show("AUB Description invoeren", "Description Error")
Als er nog een gegeven ontbreekt kan er geen file naam worden gegenereerd en kan ook de juiste map locatie niet worden vastgesteld. Na een melding, welke gegevens er nog missen wordt het proces beëindigd. Else If FT = ".iam" Then ThisDoc.Document.SaveAs("D:\Designs\Speeltoestellen\Productlijn\" & PL & "\" & PL & "_3D\" & PCa & "_" & PL & "_3D\" & PCa & "_" & PL & "_" & PP & "_" & PD & ".iam" , False) MessageBox.Show("File Opgeslagen Als " & PCa & "_" & PL & "_" & PP & "_" & PD & ".iam", "Saved")
Wanneer de gegevens volledig zijn, wordt het file type gecontroleerd, wanneer dit “.iam” is, wat vanuit de parameter „LyFileType‟ wordt nagekeken, wordt de file opgeslagen onder de locatie: “D:\Designs\Speeltoestellen\Productlijn\(Productlijn)\(Productlijn)_3D \(Type Naam)_(Productlijn)_3D\”
met als bestandsnaam: “(Type Naam)_(Productlijn)_(Onderdeel Nr.)_(Description).iam”
22 BOER OPTIMALISATIE
Door L. Stuurman
Een Toestel zoals de Free Play Glijbaan wordt opgeslagen als: “D:\Designs\Speeltoestellen\Productlijn\FRP\FRP_3D\TOE_FRP_3D\TOE_FRP_511_001.iam”
Na het opslaan van het bestand op de juiste locatie, wordt een bericht weergegeven, die de gegevens van de bestandsnaam weergeeft ter controle. Else If FT = ".ipt" Then ThisDoc.Document.SaveAs("D:\Designs\Speeltoestellen\Productlijn\" & PL & "\" & PL & "_3D\" & PCa & "_" & PL & "_3D\" & PCa & "_" & PL & "_" & PP & "_" & PD & ".ipt" , False) MessageBox.Show("File Opgeslagen Als " & PCa & "_" & PL & "_" & PP & "_" & PD & ".ipt", "Saved")
De behandeling van een “.iam” wordt identiek uitgevoerd, wanneer het filetype een “.ipt” is. Else If FT = ".idw" Then ThisDoc.Document.SaveAs("D:\Designs\Speeltoestellen\Productlijn\" & PL & "\" & PL & "_2D\" & PCa & "_" & PL & "_2D\" & PCa & "_" & PL & "_" & PP & "_" & PD & ".idw" , False) MessageBox.Show("File Opgeslagen Als " & PCa & "_" & PL & "_" & PP & "_" & PD & ".idw", "Saved")
Ook de behandeling van een “.idw” wordt op de zelfde manier uitgevoerd, maar met het verschil dat de mappen structuur voor 2D wordt aangehouden in plaats van 3D. Else If FT = "ZBS" Then : PCa = FT : End If If FT = "LBS" Then : PCa = FT : End If If FT = "OFF" Then : PCa = FT : End If If FT = "TPR" Then : PCa = FT : End If iProperties.Value("Summary", "Category") = PCa ThisDoc.Document.SaveAs("D:\Designs\Speeltoestellen\Productlijn\" & PL & "\" & PL & "_2D\" & PCa & "_" & PL & "_2D\" & PCa & "_" & PL & "_" & PP & "_" & PD & ".idw" , False) MessageBox.Show("File Opgeslagen Als " & PCa & "_" & PL & "_" & PP & "_" & PD & ".idw", "Saved") End If : End If :
Bij een afwijkende waarde van de parameter “LyFileType”, bijvoorbeeld wanneer de waarde “TPR” is, wordt het bestand nog wel op een zelfde manier behandeld als voorgaande. Een verschil echter ligt in de “Type Naam”. Indien de waarde “TPR” is, moet deze worden opgeslagen onder het mapje “/x_2D/TPR_x_2D/”. Daarom wordt de variable “PCa”, welke normaal het gegeven „Product-Category‟ bevat, gevuld met het gegeven, dat correspondeert met de afwijkende “Type Naam”. Het “TPR”-bestand van de Free Play Glijbaan wordt opgeslagen als:
“D:\Designs\Speeltoestellen\Productlijn\FRP\FRP_2D\TPR_FRP_2D\TPR_FRP_511_001.idw”
De laatste stap die nog niet is gezet, maar wel in het stappenplan voorkwam, is de situatie waarin het bestand al wel bestaat. Daarvoor voldoet de volgende code: Else : ThisDoc.Save : MessageBox.Show("File Opgeslagen", "Saved") : End If
23 BOER OPTIMALISATIE
Door L. Stuurman
Models in Drawings Met het maken van het knopje “Opslaan Als / Opslaan”, dat behandeld is in paragraaf “Automatic Save Locater”, is een „knelpunt‟ ontstaan. Dit „knelpunt‟ is het feit dat de gegevens van een Model, die in de iProperties worden opgeslagen, ook moeten worden ingevuld in een tekening. Immers, anders werkt de code niet! Extra handelingen, dus tijdverlies en kans op fouten komen om de bocht. In de vorige paragraaf kwam al deels naar voren dat de tekeningen, “.idw” files, die bij een model horen, “.iam” of “.ipt”, bijna identiek zijn. Dit zou betekenen dat de gegevens van het model, dus gebruikt kunnen worden om een tekening op te slaan. Om dit te realiseren wordt de Rule “Auto Update” uitgebreid, dit om te voorkomen dat er te veel knoppen bij de „Quick Properties‟ komen. Dim Onderdeelnaam = IO.Path.Getfilename(ThisDoc.ModelDocument.FullFileName) Met deze code gaat Inventor achterhalen welk model (als eerste) in een tekening is geplaatst. Vervolgens kunnen de iProperties (eigenschappen) direct worden opgevraagd. Parameter.Quiet = True : Dim FT = Parameter("LyFileType") If FT = ".ipt" Then : Else If FT = ".iam" Then
Wanneer het FileType een “.ipt” of “.iam” is, worden er geen handelingen uitgevoerd. Else If FT = ".idw" Then iProperties.Value("Summary", "Keywords") = iProperties.Value(Onderdeelnaam,"Summary", "Keywords") iProperties.Value("Summary", "Category")= iProperties.Value(Onderdeelnaam,"Summary", "Category") iProperties.Value("Project", "Part Number")= iProperties.Value(Onderdeelnaam,"Project", "Part Number") iProperties.Value("Project", "Description")= iProperties.Value(Onderdeelnaam,"Project", "Description") Indien het FileType een “.idw” is, kunnen de eigenschappen “Productlijn”, “Type Naam”, “Onderdeel Nr.” en “Description” direct worden overgenomen in de iProperties van de tekening. Else If FT = Nothing Then Wanneer de variabele “LyFileType” niet bestaat of leeg is worden er geen handelingen ondernomen. Echter, indien er een andere waarde is ingevuld, zoals “ZBS”, “LBS” of “TPR”, dan betekend het dat de “Type Naam” hiermee moet corresponderen. Daarvoor volgt: Else : iProperties.Value("Summary", "Category") = Parameter("LyFileType") iProperties.Value("Summary", "Keywords") = iProperties.Value(Onderdeelnaam,"Summary", "Keywords") iProperties.Value("Project", "Part Number")= iProperties.Value(Onderdeelnaam,"Project", "Part Number") iProperties.Value("Project", "Description")= iProperties.Value(Onderdeelnaam,"Project", "Description") End If
24 BOER OPTIMALISATIE
Door L. Stuurman
Plotter Op de Afdeling Ontwerp & Ontwikkeling worden alle tekeningen, “.idw” files, „afgedrukt‟ als PDF. Deze PDF‟s worden vervolgens in de openbare bibliotheek ondergebracht voor alle andere afdelingen. Te denken aan toestelboekjes voor de Verkoop en samenstellings-/boor-/las- tekeningen voor Productie. Voor het printen van de tekeningen naar een PDF, wordt de software “PDFCreator” gebruikt. Deze „printer‟ staat bij iedere computer als standaard ingesteld, en plaatst de „printjes‟ automatisch in een voorgeselecteerde map. Dus vanuit het Printscherm ([Ctrl]+[P]) kan direct op [OK] worden gedrukt en de PDF file is gereed. Maar, zoals in de voorgaande paragraven al naar voren is gekomen, zijn er nogal wat diverse „File Type‟, zoals de “TPR” en “ZBS”. De meeste tekeningen worden op het A4 formaat toegepast, maar soms is dit te klein en wordt er ook gebruik gemaakt van een A3. En het File Type “TPR” heeft een eigen formaat, te weten 9 cm x 25 cm. Om te controleren welk papierformaat staat ingesteld, moeten totaal 3 venster worden doorlopen. Dit kost onnodig tijd en kan (bij het overslaan van de controle) tot problemen leiden ivm verkeerde papierformaten.
25 BOER OPTIMALISATIE
Door L. Stuurman
Om dit proces te versnellen en fouten te minimaliseren moeten de volgende stappen worden overwogen: Aanklikken knop “Printen - PDF”
Is het een “TPR” file?
ja
„Afdrukken‟ op formaat 9 x 25cm
ja
„Afdrukken‟ op formaat 42 x 29.7cm
ja
„Afdrukken‟ op formaat 29.7 x 21cm
nee Heeft de sheet A3 formaat?
nee Heeft de sheet A4 formaat?
De code die volgt op dit schema zou als volgt kunnen zijn: Dim Printer = ThisApplication.ActiveDocument.PrintManager
De variabele “Printer” wordt nu door iLogic herkend als de PrintManager, dit is het printscherm dat wordt geactiveerd door te drukken op of [Ctrl]+[P]. Vanuit “Printer” kunnen nu de print opdrachten, formaatinstellingen, ect., worden aangestuurd. Printer.PrintRange = PrintRangeEnum.kPrintAllSheets
Het is gewenst dat van elk document alle sheets worden afgedrukt op PDF. Dim DocExt = ThisDoc.FileName(False) Dim DocType = DocExt.split("_") If DocType(0) = "TPR" Printer.PaperSize = kPaperSizeCustom Printer.PaperHeight = 25 Printer.PaperWidth = 9 Printer.SubmitPrint
Om het type “TPR” te filteren, wordt de bestandsnaam gesplitst. Daarna volgt de controle of het bestand van het type “TPR” is. Als dit het geval is worden de afmetingen ingegeven, Hoogte 25 cm, Breedte 9 cm, en wordt het document afgedrukt. Wanneer het bestand geen “TPR” is, wordt de „size‟, formaat, van de active sheet gecontroleerd. Is dit “A3” of “A4” worden ook de hoogte en breedte weer ingegeven en het document weggeschreven als PDF. Else If ActiveSheet.Size = "A3" Printer.PaperSize = kPaperSizeCustom Printer.PaperHeight = 42 Printer.PaperWidth = 29.7 Printer.SubmitPrint Else If ActiveSheet.Size = "A4 " Printer.PaperSize = kPaperSizeCustom Printer.PaperHeight = 29.7 Printer.PaperWidth = 21 Printer.SubmitPrint End If
26 BOER OPTIMALISATIE
Door L. Stuurman
Eindresultaat Hiernaast is het eindresultaat weergegeven, een venster genaamd “Quick Properties” dat, zoals de naam al aangeeft, snel alle eigenschappen weergeeft die bij Boer gebruikt worden. Ook zijn er in dit venster een aantal ´intelligente´ knoppen geïntegreerd, die handelingen, zoals het invullen van iProperties, afdrukformaat selecteren en zelfs de juiste locatie vinden voor het opslaan van een bestand, automatiseren.
OME PST Test Ly
Om nog wat meer duidelijkheid te krijgen van de Tool, volgen nu een aantal voorbeelden van het gebruik.
iParts Wanneer een nieuw iPart wordt geopend, zal het materiaal standaard op “Default” staan. Door op de lijst te drukken naast “Materiaal” kan het gewenste materiaal worden geselecteerd. Daarna volgt een klik op “materiaal updaten” en het wordt toegevoegd. Wanneer het part is geworden zoals gewenst, kunnen de “Type Naam”, de “Productlijn”, het “Onderdeel nr.” en de “Description” worden ingevuld. Daarna kan er op “Opslaan als / Opslaan” worden geklikt en zal de Tool automatisch de juiste locatie van het product opzoeken. Ook kunnen de “Benaming” en “Opmerking” worden ingevoerd. Deze gegevens worden direct doorgezet naar de iProperties van het onderdeel. Als laatste handeling kan er nog worden gedrukt op “Auto Update”. Dit zorgt er voor dat de huidige gebruiker en de huidige datum worden ingesteld. Na het openen van een bestaand iPart, zal het materiaal nog niet via de Tool te selecteren zijn. Om dit te activeren, kan er op de knop “Materiaal Updaten” worden gedrukt. Wanneer de Tool nu opnieuw wordt geopend, werkt het systeem zoals bij een nieuw iPart. Bij het drukken op de knop “auto update” zullen de “Manager”, de “Company”, de huidige gebruiker en huidige datum worden ingesteld. De maker (“Gemaakt door:”) en de datum van het maken, blijven zoals eerder was ingesteld. Ook kan de “Revisie” direct worden ingevoerd of worden gecontroleerd. 27 BOER OPTIMALISATIE
Door L. Stuurman
iAssembly’s Bij een iAssembly gaat het zelfde op als bij een iPart, met uitzondering van het Materiaal. De “Benaming” en “Opmerking” kunnen worden ingevoerd in het “Quick Properties” venster, door te klikken op “Auto Update” zullen de datums en gebruikers worden ingesteld en na wanneer de “Type Naam”, “Productlijn”, “Onderdeel nr.” en “Description” zijn ingevoerd, kan het bestand worden opgeslagen door op de “Opslaan Als / Opslaan” knop te klikken. Wanneer een bestaande iAssembly wordt geopend, zullen alle nodig iProperties direct zichtbaar zijn in het “Quick Properties” venster. Ook nu kunnen de huidige gebruiker en de datum worden ingesteld door op “Auto Update” te klikken en kan de Revisie letter worden aangepast.
Tekeningen Nadat een nieuwe tekening, d.w.z. een .idw file, is geopend, moet er eerst een onderdeel of samenstelling worden ingevoegd. Onder het tapje “Place Views” kies “Base”, daar kan een bestaand model worden geselecteerd en worden geprojecteerd.
Nadat het Model is aangebracht in de tekening, kan het “Quick Properties” venster z‟n werk doen. Wanneer er op de knop “Auto Update wordt geklikt, neemt de Tool automatisch de gegevens over van al eerder geplaatste Model. Hierbij worden dus de “Benaming”, “Opmerking”, “Type Naam”, “Productlijn”, “Onderdeel nr.” en “Description” exact overgenomen. Wanneer er vervolgens op de knop “Opslaan als / Opslaan” wordt geklikt, zal de tekening direct op de juiste locatie worden opgeslagen.
28 BOER OPTIMALISATIE
Door L. Stuurman
Slotwoord Aan het eind van dit verslag wil ik u danken voor de tijd, die u genomen heeft om dit door te nemen. U zult wellicht begrijpen dat het werk van een programmeur, door ontwikkelingen en vernieuwing, nooit klaar is. De “Quick Properties” zoals deze in dit verslag is behandeld, heeft inmiddels al weer nieuwe toevoegingen en aanpassingen gekregen. Dit alles om het werk te versnellen en om fouten te minimaliseren. Collega‟s zijn dan ook erg enthousiast en veelal komen uitbreidingen door ideeën van collega‟s.
29 BOER OPTIMALISATIE
Door L. Stuurman
Bijlagen Codering “Materials” Parameter.Quiet = True : MultiValue.Quiet = True Dim DN = ThisDoc.FileName(True) Dim DNx = dn.split(".") If DNx(1) = "ipt" Then Dim LyM = Parameter("LyMateriaal") If LyM = Nothing LyParameter=ThisDoc.Document.ComponentDefinition.Parameters.UserParameters oParameter=LyParameter.AddByValue("LyMateriaal", iProperties.Material ,UnitsTypeEnum.kTextUnits) MultiValue.List("LyMateriaal")=iProperties.Materials Else iProperties.Material = Parameter("LyMateriaal") End If : End If InventorVb.DocumentUpdate()
Codering “Printen” oPrintMgr = ThisApplication.ActiveDocument.PrintManager oPrintMgr.PrintRange = PrintRangeEnum.kPrintAllSheets Dim DocExt = ThisDoc.FileName(False) Dim DocType = DocExt.split("_") If DocType(0) = "TPR" oPrintMgr.PaperSize = kPaperSizeCustom oPrintMgr.PaperHeight = 25 oPrintMgr.PaperWidth = 9 oPrintMgr.SubmitPrint Else If ActiveSheet.Size = "A3" oPrintMgr.PaperSize = kPaperSizeCustom oPrintMgr.PaperHeight = 42 oPrintMgr.PaperWidth = 29.7 oPrintMgr.SubmitPrint Else oPrintMgr.PaperSize = kPaperSizeCustom oPrintMgr.PaperHeight = 29.7 oPrintMgr.PaperWidth = 21 oPrintMgr.SubmitPrint End If
30 BOER OPTIMALISATIE
Door L. Stuurman
Codering “Save As” Dim Dim Dim Dim Dim Dim
DN = ThisDoc.FileName(False) PL = iProperties.Value("Summary", "Keywords") PCa = iProperties.Value("Summary", "Category") PP = iProperties.Value("Project", "Part Number") PD = iProperties.Value("Project", "Description") FT = Parameter("LyFileType")
If DN = Nothing Then If PL = "" Then MessageBox.Show("AUB Productlijn invoeren", "Keywords Error") Else If PCa = "" Then MessageBox.Show("AUB Type Naam invoeren", "Category Error") Else If PP = "" Then MessageBox.Show("AUB Onderdeel Nummer invoeren", "Part Number Error") Else If PD = "" Then MessageBox.Show("AUB Description invoeren", "Description Error") Else If FT = ".iam" Then ThisDoc.Document.SaveAs("D:\Designs\Speeltoestellen\Productlijn\" & PL & "\" & PL & "_3D\" & PCa & "_" & PL & "_3D\" & PCa & "_" & PL & "_" & PP & "_" & PD & ".iam" , False) MessageBox.Show("File Opgeslagen Als " & PCa & "_" & PL & "_" & PP & "_" & PD & ".iam", "Saved") Else If FT = ".ipt" Then ThisDoc.Document.SaveAs("D:\Designs\Speeltoestellen\Productlijn\" & PL & "\" & PL & "_3D\" & PCa & "_" & PL & "_3D\" & PCa & "_" & PL & "_" & PP & "_" & PD & ".ipt" , False) MessageBox.Show("File Opgeslagen Als " & PCa & "_" & PL & "_" & PP & "_" & PD & ".ipt", "Saved") Else If FT = ".idw" Then ThisDoc.Document.SaveAs("D:\Designs\Speeltoestellen\Productlijn\" & PL & "\" & PL & "_2D\" & PCa & "_" & PL & "_2D\" & PCa & "_" & PL & "_" & PP & "_" & PD & ".idw" , False) MessageBox.Show("File Opgeslagen Als " & PCa & "_" & PL & "_" & PP & "_" & PD & ".idw", "Saved") Else If FT = "ZBS" Then PCa = FT : End If If FT = "LBS" Then PCa = FT : End If If FT = "OFF" Then PCa = FT : End If If FT = "TPR" Then PCa = FT : End If iProperties.Value("Summary", "Category") = PCa ThisDoc.Document.SaveAs("D:\Designs\Speeltoestellen\Productlijn\" & PL & "\" & PL & "_2D\" & PCa & "_" & PL & "_2D\" & PCa & "_" & PL & "_" & PP & "_" & PD & ".idw" , False) MessageBox.Show("File Opgeslagen Als " & PCa & "_" & PL & "_" & PP & "_" & PD & ".idw", "Saved") End If : End If : Else : ThisDoc.Save : MessageBox.Show("File Opgeslagen", "Saved") : End If
31 BOER OPTIMALISATIE
Door L. Stuurman
Codering “Properties” Parameter.Quiet = True : MultiValue.Quiet = True Dim FT = Parameter("LyFileType") iProperties.Value("Summary", "Manager") = "Lucas Rijnders" iProperties.Value("Summary", "Company") = "Boer Speeltoestellen BV" iProperties.Value("Summary", "Comments") = "Boerplay.com" Dim MFG = iProperties.Value("Project","Designer") If MFG = Nothing Then iProperties.Value("Project","Designer") = ThisApplication.GeneralOptions.UserName MFG = iProperties.Value("Project","Designer") Else Dim Dummy As String = MFG & " Lyeind" Dim MFGL() As Object = Dummy.Split(" ") If MFGL(1) = "Lyeind" Then Dim VNMFG = MFGL(0) Dim LVN = Len(VNMFG) - 1 MFG = UCase(Left(VNMFG,1)) & LCase(Mid(VNMFG,2,LVN)) Else If MFGL(2) = "Lyeind" Then Dim VNMFG = MFGL(0) Dim ANMFG = MFGL(1) Dim LVN = Len(VNMFG) - 1 Dim LAN = Len(ANMFG) - 1 MFG = UCase(Left(VNMFG,1)) & LCase(Mid(VNMFG,2,LVN)) & " " & UCase(Left(ANMFG,1)) & LCase(Mid(ANMFG,2,LAN)) Else If MFGL(3) = "Lyeind" Then Dim VNMFG = MFGL(0) Dim ANMFG = MFGL(2) Dim LVN = Len(VNMFG) - 1 Dim LAN = Len(ANMFG) - 1 MFG = UCase(Left(VNMFG,1)) & LCase(Mid(VNMFG,2,LVN)) & " " & LCase(MFGL(1)) & " " & UCase(Left(ANMFG,1)) & LCase(Mid(ANMFG,2,LAN)) Else If MFGL(4) = "Lyeind" Then Dim VNMFG = MFGL(0) Dim ANMFG = MFGL(3) Dim LVN = Len(VNMFG) - 1 Dim LAN = Len(ANMFG) - 1 MFG = UCase(Left(VNMFG,1)) & LCase(Mid(VNMFG,2,LVN)) & " " & LCase(MFGL(1)) & " " & LCase(MFGL(2)) & " " & UCase(Left(ANMFG,1)) & LCase(Mid(ANMFG,2,LAN)) Else : MessageBox.Show("AUB namen Checken", "Name Error") : End If iProperties.Value("Project","Designer") = MFG End If iProperties.Value("Status", "Mfg. Approved By") = MFG iProperties.Value("Summary", "Author") = MFG Dim ENG = iProperties.Value("Status", "Eng. Approved By") iProperties.Value("Status", "Mfg. Approved Date") = iProperties.Value("Project", "Creation Date") If ENG = Nothing Then iProperties.Value("Status", "Eng. Approved By") = MFG iProperties.Value("Status", "Eng. Approved Date") = Now
32 BOER OPTIMALISATIE
Door L. Stuurman
Else iProperties.Value("Status", "Eng. Approved By") = ThisApplication.GeneralOptions.UserName iProperties.Value("Status", "Eng. Approved Date") = Now End If Dim DN = ThisDoc.FileName(False) Dim Onderdeelnaam = IO.Path.Getfilename(ThisDoc.ModelDocument.FullFileName) If DN = Nothing Then If FT = ".ipt" Then Else If FT = ".iam" Then Else If FT = ".idw" Then iProperties.Value("Summary", "Title") = iProperties.Value(Onderdeelnaam,"Summary", "Title") iProperties.Value("Summary", "Subject")= iProperties.Value(Onderdeelnaam,"Summary", "Subject") iProperties.Value("Summary", "Keywords") = iProperties.Value(Onderdeelnaam,"Summary", "Keywords") iProperties.Value("Summary", "Category")= iProperties.Value(Onderdeelnaam,"Summary", "Category") iProperties.Value("Project", "Part Number")= iProperties.Value(Onderdeelnaam,"Project", "Part Number") iProperties.Value("Project", "Description")= iProperties.Value(Onderdeelnaam,"Project", "Description") Else If FT = Nothing Then Else iProperties.Value("Summary", "Category") = FT iProperties.Value("Summary", "Keywords") = iProperties.Value(Onderdeelnaam,"Summary", "Keywords") iProperties.Value("Project", "Part Number")= iProperties.Value(Onderdeelnaam,"Project", "Part Number") iProperties.Value("Project", "Description")= iProperties.Value(Onderdeelnaam,"Project", "Description") End If Else DN = ThisDoc.FileName(True) Dim DNx = dn.split(".") If DNx(1) = "idw" Then iProperties.Value("Summary", "Title") = iProperties.Value(Onderdeelnaam,"Summary", "Title") iProperties.Value("Summary", "Subject")= iProperties.Value(Onderdeelnaam,"Summary", "Subject") iProperties.Value("Summary", "Keywords") = iProperties.Value(Onderdeelnaam,"Summary", "Keywords") iProperties.Value("Summary", "Category")= iProperties.Value(Onderdeelnaam,"Summary", "Category") iProperties.Value("Project", "Part Number")= iProperties.Value(Onderdeelnaam,"Project", "Part Number") iProperties.Value("Project", "Description")= iProperties.Value(Onderdeelnaam,"Project", "Description") iProperties.Value("Project", "Revision Number")= iProperties.Value(Onderdeelnaam,"Project", "Revision Number") Dim DNt = dn.split("_") If DNt(0) = "ZBS" Then iProperties.Value("Summary", "Category") = "ZBS" Else If DNt(0) = "LBS" Then iProperties.Value("Summary", "Category") = "LBS" Else If DNt(0) = "TPR" Then iProperties.Value("Summary", "Category") = "TPR" Else If DNt(0) = "OFF" Then iProperties.Value("Summary", "Category") = "OFF" End If : End If : End If
33 BOER OPTIMALISATIE
Door L. Stuurman