Afstudeerverslag Autodesk Vault met AutoCAD Mechanical voor Van Riet Material Handling Systems
Opgesteld door
: Ruud-Jan de Boer
Functie
: Artikel-beheerder / CAD-beheerder
Datum
: 25-04-2008
Begeleider
: ir. R. Boeklagen
Bedrijf
: Van Riet Material Handling Systems
Afdeling
: Logistiek
Adres
: Groningenhaven 2
Plaats
: Nieuwegein
Ruud-Jan de Boer
Page 1
26-4-2008
Voorwoord Deze scriptie heb ik geschreven in het kader van mijn opleiding “ACE System Manager” aan het CAD-College te Nijmegen. Ik werk sinds augustus 2002 bij Van Riet Material Handling Systems. Ik ben werkzaam op de afdeling logistiek en doe naast mijn werk als artikel-beheer ook het CAD-beheer. De theoretische kennis die ik heb opgedaan tijdens mijn opleiding aan het CADCollege, wil ik gaan toepassen op het verbeteren en vergemakkelijken van het beheer van de tekeningen in Autodesk Vault. Binnen deze functie wil ik de tekeningen gaan opslaan en beheren in Autodesk Vault. Tot slot wil ik iedereen bedanken die mij hebben geholpen bij het tot stand komen van dit afstudeerverslag en mijn cursusbegeleider ir. R. Boeklagen.
R.J. de Boer April 2008
Ruud-Jan de Boer
Page 2
26-4-2008
Inhoudsopgave Voorwoord................................................................................................................................. 2 Inhoudsopgave......................................................................................................................... 3 Verklarende woordenlijst ........................................................................................................ 4 Samenvatting............................................................................................................................ 5 Inleiding..................................................................................................................................... 6 Van Riet Material Handling Systems ..................................................................................... 7 Beschrijving algemene doelen van de organisatie.......................................................... 7 Analyse van de organisatie........................................................................................... 10 Beschrijving huidige werkwijze............................................................................................ 11 Tekeningenbeheer in ERP (Baan IV). ............................................................................. 11 Tekeningenbeheer op server. ...................................................................................... 11 Ontbreken koppeling tussen ERP en AutoCAD...................................................... 12 Nadelen en gevolgen van de huidige werkwijze............................................... 12 Voorgestelde oplossing met Vault...................................................................................... 13 Wat is Vault?....................................................................................................................... 13 Werking Vault? ............................................................................................................... 14 Opslagmogelijkheden voor tekeningen .............................................................................. 15 AutoCAD Mechanical en Windows verkenner................................................................ 15 AutoCAD Mechanical en Vault...................................................................................... 16 AutoCAD Mechanical met VBA applicatie en Vault. .............................................. 17 Werking programma.............................................................................................. 17 Code..................................................................................................................... 21 Beschrijving nieuwe werkwijze met Vault.......................................................................... 29 Tekeningenbeheer in ERP (Baan IV) .............................................................................. 29 Tekening vanuit AutoCAD Mechanical. ....................................................................... 29 Tekeningenbeheer in Vault. ..................................................................................... 32 Risico tekeningen in Working folder en in Vault. .............................................. 35 Check In en status bestand via Referencefilemanager................................ 37 Voordelen nieuwe werkwijze met Vault. ............................................................................ 38 Geringe belasting netwerk en server.............................................................................. 38 Bescherming status van het bestand.......................................................................... 38 Terugzoeken bestanden. .......................................................................................... 39 Conclusie. ................................................................................................................................ 41 Aanbeveling. ........................................................................................................................... 41
Ruud-Jan de Boer
Page 3
26-4-2008
Verklarende woordenlijst ACE
-Titel verbonden aan het behalen van het HBO diploma AutoCAD. -ACE betekent AutoCAD Certifiied Engineer
Baan IV
-Bedrijfsbesturingssysteem voor het organiseren en uitvoeren van alle processen binnen het bedrijf. -Een databaseprogramma waarin ook het beheer van de tekeningen bijgehouden wordt.
EDM
-Engineering Data Management. -In deze omgeving van Baan IV wordt het tekeningenbeheer uitgevoerd.
AutoCAD
-Tekenprogramma waarmee men computer ondersteund kan ontwerpen. -CAD betekent Computer Aided Design.
SQL server
-Relationele database.
VBA
-Visual Basic for Applications. -Programmeertaal die met programma’s wordt meegeleverd, zoals bijvoorbeeld AutoCAD.
Vault
-Een system voor datamanagement. -Versiebeheer op alle data welke in Vault opgeslagen worden.
Ruud-Jan de Boer
Page 4
26-4-2008
Samenvatting Bij Van Riet Material Handling Systems ontbreekt een opslagsysteem voor de tekeningen waarmee het mogelijk is om op bepaalde kenmerken (properties) tekeningen te kunnen terugzoeken. Het probleem van het ontbreken van een dergelijk opslagsysteem is dat het heel lastig is om tekeningen te kunnen terugzoeken. Ik heb een koppeling VBA programma gemaakt waarmee bepaalde kenmerken worden toegevoegd aan de tekeningen. De tekeningen voorzien van deze kenmerken worden vervolgens opgeslagen in Vault waarin het mogelijk is om te zoeken op deze kenmerken. De in dit verslag beschreven werkmethodiek zal bij Van Riet Material Handling Systems toegepast gaan worden.
Ruud-Jan de Boer
Page 5
26-4-2008
Inleiding De afdeling engineering van Van Riet Material Handling Systems heeft behoefte aan een gestructureerd opslagsysteem voor de tekeningen waarmee het mogelijk moet zijn om op bepaalde kenmerken (properties) tekeningen te kunnen terugzoeken. Ik heb een VBA macro gemaakt voor het invullen van de rechteronderhoek en de Custom properties (valt buiten dit verslag). Het voorstel houd in om de tekeningen welke door de afdeling engineering gemaakt worden onder te brengen in Vault. Het opslaan van de tekeningen in Vault heeft veel voordelen t.o.v. de huidige manier van opslaan. In het verslag zal ik deze voordelen nader toelichten.
Ruud-Jan de Boer
Page 6
26-4-2008
1.
Van Riet Material Handling Systems
1.1
Beschrijving algemene doelen van de organisatie
Strategie
Van Riet Material Handling Systems biedt waardevermeerdering voor haar klanten door de levering van op individuele wensen afgestemde material handling systemen in Nederland, Europa en Azië. De systemen zijn speciaal geschikt voor toepassingen in veeleisende omgevingen: sorteercapaciteiten tot 20.000 colli per uur, stukgoederen van 100 gram tot 80 kg, pallets of (rol)containers tot 2500 kg, "hardhandige" gebruikers en een lange levensduur. Van Riet Material Handling Systems biedt deskundig advies voor Pallet-, Order Pick-, Sorteer-, Robot- en Transportsystemen. Kosteneffectiviteit, maximale beschikbaarheid en low costs of ownership zijn kenmerkend voor de systemen. De medewerkers kenmerken zich door deskundigheid, betrokkenheid, bescheidenheid en een persoonlijke benadering. Visie Van Riet Material Handling Systems is een onafhankelijk bedrijf, autonoom en in samenwerking met collega-bedrijven actief in Europa en Azië. Van Riet Material Handling Systems wordt gewaardeerd door haar klanten als deskundig, betrokken, toegewijd, bescheiden en betrouwbaar bedrijf, met een platte en gemotiveerde organisatie. Van Riet Material Handling Systems stelt haar medewerkers in staat zich te ontwikkelen door uitdagend werk, handelend als een goed burger, zorgdragend voor gezondheid, veiligheid en omgeving.
Sorteermachine voor keukens.
Ruud-Jan de Boer
Page 7
26-4-2008
Van Riet Material Handling Systems heeft partners in: het United Kingdom, China, Frankrijk, Scandinavië, Tsjechië. Polen, Spanje, Duitsland, en Italië. Missie Gebruikmakend van haar jarenlange expertise op het gebied van material handling systemen biedt Van Riet Material Handling Systems op verantwoorde wijze innovatieve en kosteneffectieve oplossingen met als doel een waardevermeerdering te realiseren voor onze klanten, aandeelhouders en medewerkers. Van Riet Material Handling Systems levert op individuele wensen aangepaste, kosteneffectieve material handling systemen voor het (in building) transport van goederen, met een gewicht vanaf circa 1-10 kilogram (alle goederen of een deel ervan). Van Riet Material Handling Systems is marktgeoriënteerd, professioneel en innovatief, gericht op sorteer-, pallet-, robot-, orderpick- en transportsystemen. Service en life cycle management geven inhoud aan de klantgerichte aanpak van Van Riet Material Handling Systems. Van Riet Material Handling Systems ontwikkelt alle essentiële mechanische -en besturingselementen in eigen huis waardoor een optimaal samenspel wordt gewaarborgd. Van Riet Material Handling Systems is op deze wijze in staat de werking van elk systeem optimaal te garanderen tegen een goede prijs/kwaliteit verhouding. Voor haar medewerkers is Van Riet Material Handling Systems een aantrekkelijke, professionele, gedreven en resultaatgerichte werkgever. Voor haar klanten in Nederland, Europa en Azië is Van Riet Material Handling Systems een deskundige kennispartner - Van Riet Material Handling Systems bindt zich aan haar klanten door haar jarenlange ervaring, haar deskundig advies en haar gedrevenheid steeds eerlijk en stipt te leveren wat overeengekomen is.
Ruud-Jan de Boer
Page 8
26-4-2008
Bij Van Riet Material Handling Systems staat de betrokkenheid van onze ervaren medewerkers centraal. Een persoonlijke benadering met oog voor detail is kenmerkend voor Van Riet Material Handling Systems. Onze medewerkers hebben aandacht voor onze klanten, zijn toegewijd en bescheiden en spelen praktisch en snel in op klantwensen. Door de jaren heen zijn onze medewerkers en hun instelling steeds het fundament geweest onder Van Riet Material Handling Systems. Mede dankzij haar medewerkers is Van Riet Material Handling Systems uitgegroeid tot één van de meest toonaangevende material handling leveranciers in Nederland. Van Riet Material Handling Systems werkt vanuit een maatschappelijke bevlogenheid met de overtuiging een bijdrage te leveren aan de Nederlandse samenleving. Van Riet Material Handling Systems biedt werkgelegenheid aan meer dan 80 medewerkers en heeft meer dan 100 verschillende toeleveranciers en partners, waar een veelvoud aan mensen werkzaam is. Van Riet Material Handling Systems voelt zich verantwoordelijk voor alle betrokkenen. Van Riet Material Handling Systems volgt voortdurend alle regelgeving, normen en ontwikkelingen en hun invloed op onze medewerkers, onze toeleveranciers, onze partners en op onze zakelijke activiteiten. Het is de ambitie van Van Riet Material Handling Systems om in de toekomst als zelfstandig bedrijf te blijven opereren en onze zo kenmerkende persoonlijke en praktische benadering voor onze huidige en toekomstige klanten te behouden.
Nieuwe sorteermachine HC ontwikkeld met Autodesk Inventor.
Ruud-Jan de Boer
Page 9
26-4-2008
1.2
Analyse van de organisatie
Organogram van Riet Material Handling Systems: Directie
Sales
Administratie
P&O Receptie
R en D
ICT/ Kwaliteit beheer
Sales Back Office
Project Manage-ment
Marketing
Operations
Interne projecten
Engineering
Logistiek
Assemblage Montage
Inkoop
W v b / Art Beheer
Netwerk planning
Magazijn / expeditie
Service
Documentatie
Van Riet Material Handling Systems is gevestigd in Nieuwegein. Het is een middelgrote onderneming met circa 80 medewerkers. De organisatiecultuur bestaat uit korte lijnen. Korte lijnen zorgen voor een directe aansturing van de uitvoerende functies.
Ruud-Jan de Boer
Page 10
26-4-2008
2. 2.1
Beschrijving huidige werkwijze. Tekeningenbeheer in ERP (Baan IV).
De tekeningnummers worden beheerd in de EDM (engineringsomgeving in Baan IV). De engineer maakt in de EDM een nieuw nummer aan en vult daarna ook de rest van de velden in. 2.2
Tekeningenbeheer op server.
Na het invullen van de gegevens van de tekening in de EDM start de engineer AutoCAD Mechanical op. In AutoCAD Mechanical dubbelklikt de engineer op het Block van de rechteronderhoek. Dit is een Block waaraan Attributes gekoppeld zijn en de engineer vult in het invulscherm de velden in. Nadat de engineer klaar is met het invullen van de velden klikt hij op OK en de gegevens in de rechteronderhoek worden ingevuld. Vervolgens slaat de engineer de tekening op onder het juiste projectnummer op de server onder Project. Zie onderstaande schermafdruk.
Ruud-Jan de Boer
Page 11
26-4-2008
2.3
Ontbreken koppeling tussen ERP en AutoCAD.
Er is op dit moment geen koppeling aanwezig tussen EDM en AutoCAD. 2.4
Nadelen en gevolgen van de huidige werkwijze.
Het terugzoeken op bepaalde eigenschappen in het ERP systeem is lastig en niet gebruikersvriendelijk. Het kost nogal wat tijd om via het ERP systeem tekeningen te kunnen terugzoeken welke bv. in een bepaald project gebruikt zijn. Hierdoor gebruikt een engineer het ERP systeem niet om tekeningen terug te zoeken. De gegevens welke ingevuld worden in de rechteronderhoek met de Block Attributes zijn eigenlijk “losstaande” gegevens. Deze zijn nergens aan gekoppeld en zijn niet voorzien van Properties (eigenschappen). Op dit moment is bij veel bedrijven de Windows Explorer de omgeving waarin data (in dit geval dus tekeningen) “beheerd” wordt. Zie onderstaand voorbeeld.
Ruud-Jan de Boer
Page 12
26-4-2008
De tekeningen worden in een mappenstructuur op de server bij Van Riet opgeslagen en deze tekeningen zijn niet voorzien van Properties. Een engineer kan dus met dit huidige systeem van opslag op de server geen tekeningen terugzoeken wegens het ontbreken van Properties aan de tekeningen. Tevens is het zoeken via de Windows Verkenner omslachtig en het zoeken verloopt ook niet snel. Het terugzoeken van tekeningen voor bv. hergebruik in een ander project gebeurt op dit moment dus via het geheugen van de engineers. Iemand herinnert zich dat hij iets gemaakt heeft voor een project en dat hij datzelfde ontwerp nu weer kan gebruiken voor zijn nieuwe project. Dit is totaal onacceptabel omdat de kennis nu bij de engineers aanwezig is en wanneer de engineer vertrekt bij Van Riet dan is het bedrijf die kennis kwijt en wordt het heel lastig voor de overgebleven engineers om tekeningen terug te zoeken.
3. 3.1
Voorgestelde oplossing met Vault. Wat is Vault?
Vault is een werkgroep datamanagement systeem voor het delen van data voor bv. een engineeringsafdeling. Vault draait bij Van Riet op een SQL server 2005 database. De Vault is een beheer omgeving voor alle engineeringsdata en houd ook versies van engineeringsdata bij. Let op: versie is wat anders dan revisie. Vault is niet bedoeld voor revisiebeheer, dat kan Vault niet. De Vault bestaat uit de ADMS (Autodesk Data Management Server) en de Vault clients (werkstations). Op de server worden dus alle engineeringsdata opgeslagen en de clients kunnen deze data dan ophalen van de server. In Vault kunnen dus behalve tekeningen ook andere data opgeslagen worden zoals DWF bestanden en de Microsoft Office bestanden.
Vault server
Werkstations
Ruud-Jan de Boer
Page 13
26-4-2008
3.2
Werking Vault?
Op het moment dat een gebruiker een bestand uit de Vault wil gebruiken om te bewerken, dan checked hij het bestand uit, uit de Vault. Vault kopieert het bestand dan naar de Working Folder van de gebruiker, locaal op zijn werkstation. Vervolgens wordt het bestand in Vault ‘gecodeerd’als zijnde uitgechecked, de overige gebruikers kunnen het bestand wel bekijken, maar niet uit-checken om te bewerken. Als de gebruiker het bestand bewerkt heeft, kan hij vanuit AutoCAD Mechanical het bestand weer inchecken, zodat alle overige gebruikers het bestand ook weer kunnen gebruiken voor bewerking. Door het kopieren van de bestanden van Vault naar de werkstations en weer terug, ontstaat er op elk werkstation een kopie van de Vault in de Working Folders, ook met dezelfde mappenstructuur. Hierdoor hoeft Vault op een bepaald moment niet telkens alle bestanden heen en weer te kopieren, maar kan Vault volstaan met een vergelijking met de meest recente versies. Een bestand dat dus door gebruiker A net bewerkt is, en ingechecked, kan dus nog als ‘’oude’’ kopie op Working Folder van gebruiker B staan. Vault zal dan ook een melding geven ‘’local copie out of date, get latest version’’ bij gebruiker B. Belangrijk om te realiseren als gebruikers, is dus dat het heel makkelijk is om per ongeluk te gaan werken met bestanden in de Working Folder en dus niet in de Vault. Deze bestanden kunnen echter ouder zijn dan de Vaultversie. Aanpassingen van de bestanden in de Working Folder kunnen problemen met inchecken veroorzaken of in het ergste geval de juiste bestanden in Vault overschrijven! Zie hieronder.
Ruud-Jan de Boer
Page 14
26-4-2008
4. 4.1
Opslagmogelijkheden voor tekeningen. AutoCAD Mechanical en Windows verkenner.
De tekeningen welke met AutoCAD Mechanical gemaakt worden kunnen opgeslagen worden in een bepaalde mappenstructuur op een server.
Mappenstructuur op server De tekeningen worden dan in bovenstaand voorbeeld opgeslagen onder een bepaald project met een submappenstructuur. Het grote nadeel van deze manier van opslaan is dat niet gezocht kan worden op eigenschappen van het tekeningenbestand omdat deze geen gekoppelde eigenschappen (properties) heeft. Deze nadelen staan ook beschreven onder hoofdstuk 2 Beschrijving huidige werkwijze.
Ruud-Jan de Boer
Page 15
26-4-2008
4.2
AutoCAD Mechanical en Vault.
De tekeningen welke met AutoCAD Mechanical gemaakt worden kunnen dan vervolgens met een Check In opgeslagen worden in de Vault. Het grote voordeel hiervan is dat een engineer in de Vault de functie Advanced Find kan gebruiken om een tekening te zoeken. Een belangrijke voorwaarde hierbij is dat de tekening wel voorzien moet zijn van eigenschappen en daar bedoel ik de Custom Properties mee. De engineer moet dan handmatig zelf de Custom Properties invullen en ook moet hij deze actie nog een keer herhalen om de rechteronderhoek van de tekening in te vullen. De engineer moet dan 2x een handmatige actie uitvoeren om de tekening te voorzien van Custom Properties.
Custom Properties Deze Custom Properties moeten handmatig door de engineer ingevuld worden.
Ruud-Jan de Boer
Page 16
26-4-2008
Rechteronderhoek De rechteronderhoek moet ook handmatig door de engineer ingevuld worden. Voordeel van deze werkmethode: een engineer kan in Vault tekeningen terugzoeken op de Custom Properties mits die zijn toegevoegd aan de tekeningbestanden. Nadeel van deze werkmethode: de engineer moet 2x een handmatige actie uitvoeren om de Custom properties en de rechteronderhoek in te vullen. Hierdoor kunnen ook weer fouten ontstaan bij het invullen. 4.3
AutoCAD Mechanical met VBA applicatie en Vault.
Om het invullen van de Custom Properties en de rechteronderhoek makkelijker te maken voor de engineer heb ik een VBA applicatie ontwikkeld welke de Custom Properties en de rechteronderhoek invuld. 4.3.1 Werking programma.
De engineer opent in AutoCAD Mechanical de Van Riet Template. Deze Template is voorzien van Custom Properties (alleen is de waarde hiervoor nog niet ingevuld) en de rechteronderhoek is voorzien van Fields. Aan deze Fields kunnen Custom Properties gekoppeld worden. Vervolgens start de engineer de VBA applicatie DocProp. Zie onderstaande schermafdruk op begin pagina 18.
Ruud-Jan de Boer
Page 17
26-4-2008
Document Properties De engineer kan nu de velden gaan invullen in het formulier Document Properties. Hij kan op het pijltje bij Projectnummer klikken en krijgt dan een overzicht van de diverse projecten waar de engineering op dat moment mee bezig is. Het VBA programma leest deze informatie uit een INI bestand. In het programma is een padverwijzing opgenomen naar de locatie waar de INI bestanden staan en deze worden vervolgens weergegeven wanneer de engineer op de pijl naast Projectnummer klikt. Wanneer de engineer het juiste project geselecteerd heeft worden het Projectnummer, Klantnaam en Locatie uit het INI bestand gelezen en worden deze gegevens overgenomen in de velden van het formulier. Vervolgens moet de engineer zijn eigen naam nog selecteren door op het pijltje naast Engineer te klikken en de engineer moet dan nog de Benaming en het Tekeningnummer invullen. Naast Revisie kan de engineer nog de juiste revisieaanduiding voor de tekening selecteren. Nadat alle gegevens ingevuld zijn in het formulier Document Properties klikt de engineer op OK. Het programma vult nu vervolgens de waarden in welke bij de Custom Properties horen.
Ruud-Jan de Boer
Page 18
26-4-2008
Custom Properties De Value wordt nu door het programma ingevuld. De Custom Properties zijn gekoppeld aan de Fields welke aanwezig zijn in de rechteronderhoek en de waarden van de Fields worden nu ook automatisch in de rechteronderhoek ingevuld.
Rechteronderhoek Wanneer de engineer de tekening opslaat wordt ook automatisch de datum ingevuld. De datum is ook een Field en deze leest de systeemdatum van Windows uit.
Ruud-Jan de Boer
Page 19
26-4-2008
Voordeel van deze werkmethode: de engineer hoeft nu alleen nog maar het formulier Document Properties in te vullen en de VBA applicatie vult dan automatisch de Custom Properties en de rechteronderhoek in. De engineer hoeft nu maar 1 keer de gegevens in te vullen. Tevens worden door het uitlezen van een ini bestand de Projectgegevens uniform ingevuld bij alle engineers die werkzaam zijn bij Van Riet. Op deze manier wordt voorkomen dat engineers voor de klant verschillende benamingen gaan invullen. De Custom Properties worden opgeslagen in de tekening en bij een Check In naar de Vault zijn deze Custom Properties ook zichtbaar met de Vault Explorer. Nu kan de engineer met Advanced Find gaan zoeken naar een bepaalde tekening. De Vault Explorer en Advanced Find worden nader beschreven in hoofdstuk 5 Beschrijving nieuwe werkwijze met Vault.
Vault Explorer
Ruud-Jan de Boer
Page 20
26-4-2008
4.4
Code VBA programma en INI bestand.
In veel computerprogramma’s zoals AutoCAD Mechanical, Word, Excel, Outlook wordt de interne programmeertaal VBA (Visual Basic for Applications) meegeleverd. Met VBA kunnen programma’s gemaakt worden om taken te automatiseren. Het programma DocProp is in AutoCAD Mechanical met VBA gemaakt. 'This macro shows a form presents a list of projects to chose from 'and imports additional information from an ini-file. 'Then the form information is written to the custom en standard properties 'Made by Ruud-Jan de Boer Private Declare Function GetPrivateProfileStringA Lib _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strDefault As String, _ ByVal strReturnedString As String, _ ByVal lngSize As Long, ByVal strFileNameName As String) As Long Private Function GetPrivateProfileString32(ByVal strFileName As String, _ ByVal strSection As String, ByVal strKey As String, _ Optional strDefault) As String Dim strReturnString As String, lngSize As Long, lngValid As Long On Error Resume Next If IsMissing(strDefault) Then strDefault = "" strReturnString = Space(1024) lngSize = Len(strReturnString) lngValid = GetPrivateProfileStringA(strSection, strKey, _ strDefault, strReturnString, lngSize, strFileName) GetPrivateProfileString32 = Left(strReturnString, lngValid) On Error GoTo 0 End Function Private Sub CmdPadverw_Click() FrmPadverw.Show End Sub Private Sub UserForm_Initialize() On Error Resume Next If Err.Number <> 0 Then MsgBox "Er is een fout opgetreden!", vbExclamation, "Let op" End If 'Custom properties aanmaken als deze nog niet aanwezig zijn Value8 = ThisDrawing.SummaryInfo.NumCustomInfo If Value8 < 8 Then ThisDrawing.SummaryInfo.AddCustomInfo key:="Projectnummer", Value:="" ThisDrawing.SummaryInfo.AddCustomInfo key:="Klantnaam", Value:=""
ThisDrawing.SummaryInfo.AddCustomInfo key:="Locatie", Value:="" ThisDrawing.SummaryInfo.AddCustomInfo key:="Revisie", Value:="" ThisDrawing.SummaryInfo.AddCustomInfo key:="Controleur", Value:=""
Ruud-Jan de Boer
Page 21
26-4-2008
ThisDrawing.SummaryInfo.AddCustomInfo key:="Formaat", Value:="" ThisDrawing.SummaryInfo.AddCustomInfo key:="Reviseur", Value:="" ThisDrawing.SummaryInfo.AddCustomInfo key:="RevisieDatum", Value:="" End If If Value8 < 10 Then ThisDrawing.SummaryInfo.AddCustomInfo key:="Gebruikerspad", Value:="G:\UserInfo" ThisDrawing.SummaryInfo.AddCustomInfo key:="Projectpad", Value:="\\SNWG006\Mechanical_Settings\Projecten" End If 'Pad voor de project ini bestanden Dim Ppad As String Dim Projectpad As String ThisDrawing.SummaryInfo.GetCustomByIndex 9, Projectpad, Ppad Projectpad = Ppad 'Verzamel recente projecten in ComboBox Dim objFSO As FileSystemObject Dim objFile As File Dim i As Long Dim File As String Dim x As Variant Dim project As String Dim output As String Set objFSO = New FileSystemObject With Excel.Application.FileSearch .LookIn = Projectpad .SearchSubFolders = False .FileName = "*.INI" .Execute For i = 1 To .FoundFiles.Count Set objFile = objFSO.GetFile(.FoundFiles(i)) project = objFile.Name x = Split(project, ".") output = x(0) CBProjectnr.AddItem output Next i End With CBProjectnr.AddItem " " 'Voegd opties toe aan de engineer optiebox CBengineer.AddItem "STEHUM", ListIndex = 0 CBengineer.AddItem "JOODEK", ListIndex = 1 CBengineer.AddItem "LEOHOO", ListIndex = 2 CBengineer.AddItem "FERGUR", ListIndex = 3 CBengineer.AddItem "PETNIE", ListIndex = 4 CBengineer.AddItem "ERWPET", ListIndex = 5 CBengineer.AddItem "CORMEI", ListIndex = 6 CBengineer.AddItem "RODMAR", ListIndex = 7 'Voegd opties toe aan de controleur optiebox
Ruud-Jan de Boer
Page 22
26-4-2008
CBControleur.AddItem CBControleur.AddItem CBControleur.AddItem CBControleur.AddItem CBControleur.AddItem CBControleur.AddItem CBControleur.AddItem CBControleur.AddItem
"STEHUM", ListIndex = 0 "JOODEK", ListIndex = 1 "LEOHOO", ListIndex = 2 "FERGUR", ListIndex = 3 "PETNIE", ListIndex = 4 "ERWPET", ListIndex = 5 "CORMEI", ListIndex = 6 "RODMAR", ListIndex = 7
'Voegd opties toe aan de revisor optiebox CBRevisor.AddItem "STEHUM", ListIndex = 0 CBRevisor.AddItem "JOODEK", ListIndex = 1 CBRevisor.AddItem "LEOHOO", ListIndex = 2 CBRevisor.AddItem "FERGUR", ListIndex = 3 CBRevisor.AddItem "PETNIE", ListIndex = 4 CBRevisor.AddItem "ERWPET", ListIndex = 5 CBRevisor.AddItem "CORMEI", ListIndex = 6 CBRevisor.AddItem "RODMAR", ListIndex = 7 'Voegd opties toe aan de revisie optiebox CBRevision.AddItem "A", ListIndex = 0 CBRevision.AddItem "B", ListIndex = 1 CBRevision.AddItem "C", ListIndex = 2 CBRevision.AddItem "D", ListIndex = 3 CBRevision.AddItem "E", ListIndex = 4 CBRevision.AddItem "F", ListIndex = 5 CBRevision.AddItem "1", ListIndex = 6 'Voegd opties toe aan de formaal optiebox CBFormaat.AddItem "A4", ListIndex = 0 CBFormaat.AddItem "A3", ListIndex = 1 CBFormaat.AddItem "A2", ListIndex = 2 CBFormaat.AddItem "A1", ListIndex = 3 CBFormaat.AddItem "A0", ListIndex = 4 'Zet huidige (built in) gegevens in textboxen TxtSubject.Text = ThisDrawing.SummaryInfo.Subject TxtOpm.Text = ThisDrawing.SummaryInfo.Comments 'Zet gebruikersnaam in engineer veld als deze leeg is Dim Gebruikerspad As String Dim Engineer As String Dim Gpad As String ThisDrawing.SummaryInfo.GetCustomByIndex 8, Gebruikerspad, Gpad Gebruikerspad = Gpad + "\Userinfo.ini" Engineer = ThisDrawing.SummaryInfo.Author If Engineer = "" Then CBengineer.Text = GetPrivateProfileString32(Gebruikerspad, "Info", "Initialen") 'WordBasic.[GetPrivateProfileString$]("Info", "Initialen", Gebruikerspad) Else CBengineer.Text = ThisDrawing.SummaryInfo.Author End If
Ruud-Jan de Boer
Page 23
26-4-2008
'Zet T- in tekeningnummer veld als deze leeg is Value10 = ThisDrawing.SummaryInfo.Title If Value10 = "" Then TxtTekNr.Text = "T-" Else TxtTekNr.Text = ThisDrawing.SummaryInfo.Title End If 'Zet huidige (custom) gegevens in textboxen Dim Value0 As String ThisDrawing.SummaryInfo.GetCustomByKey Klantnaam, Value0 TxtKlant.Text = Value0 Dim Value1 As String ThisDrawing.SummaryInfo.GetCustomByKey Locatie, Value1 TxtLocatie.Text = Value1 Dim Value2 As String ThisDrawing.SummaryInfo.GetCustomByKey Projectnummer, Value2 CBProjectnr.Text = Value2 Dim Value3 As String ThisDrawing.SummaryInfo.GetCustomByKey Controleur, Value3 CBControleur.Text = Value3 Dim Value4 As String ThisDrawing.SummaryInfo.GetCustomByKey Reviseur, Value4 CBRevisor.Text = Value4 Dim Value6 As String ThisDrawing.SummaryInfo.GetCustomByKey Formaat, Value6 CBFormaat.Text = Value6 Dim Value7 As String ThisDrawing.SummaryInfo.GetCustomByKey RevisieDatum, Value7 TxtRevDat.Text = Value7 'Zet de revisie op een als deze niet ingevult is Dim Value5 As String ThisDrawing.SummaryInfo.GetCustomByKey Revisie, Value5 If Value5 = "" Then CBRevision.Text = "1" Else CBRevision.Text = Value5 End If End Sub Private Sub CBProjectnr_Change() Dim Ppad As String Dim Projectpad As String Dim Projectnummer2 As String ThisDrawing.SummaryInfo.GetCustomByIndex 9, Projectpad, Ppad Projectpad = Ppad Projectnr = CBProjectnr.Text
Ruud-Jan de Boer
Page 24
26-4-2008
If Projectnr = " " Then CBProjectnr.Text = "" TxtKlant.Text = "" TxtLocatie.Text = "" Else Projectpad2 = Projectpad + "\" + Projectnr + ".ini" TxtKlant.Text = GetPrivateProfileString32(Projectpad2, "Info", "KlantNaam") TxtLocatie.Text = GetPrivateProfileString32(Projectpad2, "Info", "Locatie") End If End Sub Private Sub OK_Click() 'Vul de (built in)document eigenschappen in ThisDrawing.SummaryInfo.Author = CBengineer.Text ThisDrawing.SummaryInfo.Subject = UCase(TxtSubject.Text) ThisDrawing.SummaryInfo.Title = UCase(TxtTekNr.Text) ThisDrawing.SummaryInfo.Comments = UCase(TxtOpm.Text) 'Vul de (custom)document eigenschappen in ThisDrawing.SummaryInfo.SetCustomByKey key:="Projectnummer", Value:=CBProjectnr.Text ThisDrawing.SummaryInfo.SetCustomByKey key:="Klantnaam", Value:=UCase(TxtKlant.Text) ThisDrawing.SummaryInfo.SetCustomByKey key:="Locatie", Value:=UCase(TxtLocatie.Text) ThisDrawing.SummaryInfo.SetCustomByKey key:="Revisie", Value:=CBRevision.Text ThisDrawing.SummaryInfo.SetCustomByKey key:="Controleur", Value:=CBControleur.Text ThisDrawing.SummaryInfo.SetCustomByKey key:="Formaat", Value:=CBFormaat.Text ThisDrawing.SummaryInfo.SetCustomByKey key:="RevisieDatum", Value:=TxtRevDat.Text ThisDrawing.SummaryInfo.SetCustomByKey key:="Reviseur", Value:=CBRevisor.Text 'Regenereerd de tekening ThisDrawing.Regen acAllViewports Unload Me End Sub Private Sub Annuleren_Click() Unload Me End Sub
De werkmethode met het INI bestand is hieronder beschreven. Het INI (applicatie INItialisatie) bestandsformaat is een eenvoudige manier om waarden op te slaan die mogelijk kunnen wijzigen. In dit geval dus de waarden van de klantgegevens. Het INI bestand is een standaard formaat welke ook buiten de gecompileerde code te benaderen is. INI bestanden zijn tekstgebaseerde bestanden. Je kunt de waarden dus lezen en bewerken. De manier om de inhoud te lezen en te wijzigen is ingebouwd in Windows.
Ruud-Jan de Boer
Page 25
26-4-2008
Het Projectnummer, Klantnaam en Locatie worden door het programma uit een INI bestand gelezen. Het INI Bestand. Een INI bestand kent drie soorten informatie: secties, sleutels en waarden. Een sectie is een string tussen blokhaken (zoals [sectienaam]). De sleutels en waarden zijn altijd een paar. Een sleutel zelf heeft geen waarde, maar een is-gelijk teken (=) scheidt de sleutel van haar waarde. Tezamen vormen de sleutel en de waarde een item. Items maken altijd deel uit van een sectie. Iedere sectie kent vervolgens een aantal child-items. Hieronder staat een voorbeeld van een INI bestand voor het project waarop de voorbeelden in dit verslag gebaseerd zijn. [INFO] Projectnr=271393 Klantnaam=HILVERDA DE BOER Locatie=AALSMEER INI bestanden kwamen het eerst voor in Windows 3.x en waren oorspronkelijk bedoeld om globale Windows instellingen voor verschillende applicaties te bewaren. Daarom werden de sectie-headers eerst ook wel applicatie genoemd - een naam die nog steeds in de Win32 API voorkomt, ondanks het feit dat recentere documentatie de termen sectie/sleutel/waarde (section/key/value) gebruikt. Windows bevat speciale APIs om het win.ini bestand te lezen in de $Windows folder en functioneel identieke "private" versies van de functies die waarden van spefieke INI bestanden kunnen lezen en schrijven. Deze functies zitten in kernel32.dll. De INI bestanden kunnen geopend worden met Notepad en kunnen dus hiermee ook gewijzigd worden. De afdeling engineering kan met het Excel bestand Projecten Beheren deze INI bestanden genereren. In het Excel bestand is ook een VBA programma gemaakt welke het INI bestand aanmaakt en naar een opgegeven locatie op de server bij Van Riet wegschrijft. Wanneer een engineer het Excel bestand opstart wordt het programma geladen en opent het formulier Projectenlijst.
Ruud-Jan de Boer
Page 26
26-4-2008
Projectenlijst De afdeling engineering kan nu via het formulier Projectenlijst welke met VBA gemaakt is een nieuw project toevoegen. Ook is het mogelijk om met dit formulier een bestaand project te wijzigen of te verwijderen. Wanneer een nieuw project is toegevoegd dan kan Klaar aangeklikt worden en dan wordt het nieuwe INI bestand aangemaakt en naar de opgegeven locatie op de server weggeschreven. Hieronder volgt nog een stukje code voor het aanmaken van een nieuw project. Private Declare Function GetPrivateProfileStringA Lib _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strDefault As String, _ ByVal strReturnedString As String, _ ByVal lngSize As Long, ByVal strFileNameName As String) As Long Private Declare Function WritePrivateProfileStringA Lib _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strString As String, _ ByVal strFileNameName As String) As Long Private Function WritePrivateProfileString32(ByVal strFileName As String, _ ByVal strSection As String, ByVal strKey As String, _ ByVal strValue As String) As Boolean Dim lngValid As Long On Error Resume Next lngValid = WritePrivateProfileStringA(strSection, strKey, _ strValue, strFileName) If lngValid > 0 Then WritePrivateProfileString32 = True On Error GoTo 0 End Function
Ruud-Jan de Boer
Page 27
26-4-2008
Private Function GetPrivateProfileString32(ByVal strFileName As String, _ ByVal strSection As String, ByVal strKey As String, _ Optional strDefault) As String Dim strReturnString As String, lngSize As Long, lngValid As Long On Error Resume Next If IsMissing(strDefault) Then strDefault = "" strReturnString = Space(1024) lngSize = Len(strReturnString) lngValid = GetPrivateProfileStringA(strSection, strKey, _ strDefault, strReturnString, lngSize, strFileName) GetPrivateProfileString32 = Left(strReturnString, lngValid) On Error GoTo 0 End Function Private Sub CmdToevoegen_Click() WriteUserInfo Unload Me FrmProjectenlijst.LstProjecten.Clear FrmProjectenlijst.LijstGen End Sub Private Sub WriteUserInfo() ' saves information in the file IniFileName Projectnummer = TxtProjectnummer.Text Klantnaam = TxtKlantnaam.Text Locatie = TxtLocatie.Text Dim DmFileName As String DmFileName = ThisWorkbook.Path + "\" + Projectnummer + ".ini" If Not WritePrivateProfileString32(DmFileName, "INFO", _ "Projectnr", Projectnummer) Then MsgBox "Kan niet opslaan in " & IniFileName, _ vbExclamation, "Map bestaat niet!" Exit Sub End If WritePrivateProfileString32 DmFileName, "INFO", _ "Projectnr", Projectnummer WritePrivateProfileString32 DmFileName, "INFO", _ "Klantnaam", Klantnaam WritePrivateProfileString32 DmFileName, "INFO", _ "Locatie", Locatie End Sub Private Sub CmdAnnuleren_Click() Unload Me End Sub
Ruud-Jan de Boer
Page 28
26-4-2008
5 5.1
Beschrijving nieuwe werkwijze met Vault. Tekeningenbeheer in ERP (Baan IV)
De tekeningnummers worden ook nog steeds beheerd in de EDM (engineeringsomgeving in Baan IV). De engineer maakt in de EDM een nieuw nummer aan en vult daarna ook de rest van de velden in de EDM in. 5.2
Tekening vanuit AutoCAD Mechanical.
Van Riet heeft voor de opslag van de tekeningen in Vault een nieuwe server gekocht. Deze server wordt alleen gebruikt voor de opslag van CAD data (tekeningen dus). Na het invullen van de gegevens van de tekening in de EDM start de engineer AutoCAD Mechanical op. In AutoCAD Mechanical start de engineer de VBA macro DocProp en vult de velden in welke bij de tekening en het project behoren.
Document Properties
Ruud-Jan de Boer
Page 29
26-4-2008
Als de engineer klaar is met het invullen van de velden dan klikt hij OK aan en de VBA macro vult de rechteronderhoek in. De gegevens in de rechteronderhoek zijn met Fields aangemaakt. Aan deze Fields zijn bepaalde properties gekoppeld. Tevens vult de VBA macro de Custom properties in die bij het desbetreffende document horen.
Rechteronderhoek
Custom Properties
Ruud-Jan de Boer
Page 30
26-4-2008
Hieronder staat de tekening. In de rechteronderhoek zijn de Custom properties te zien.
Ruud-Jan de Boer
Page 31
26-4-2008
5.3
Tekeningenbeheer in Vault.
De engineer heeft de tekening klaar en wil deze nu vervolgens gaan opslaan in de Vault. De engineer gaat nu eerst inloggen in Vault. Dit commando zit in de werkbalk Vault.
Werkbalk Vault Na het inloggen in Vault start de engineer de Vault Explorer op. Dat is de omgeving waarin alle data welke aanwezig is in Vault bekeken kan worden.
Vault Explorer In de Vault Explorer maakt de engineer een nieuwe map aan waarin hij de tekening gaat opslaan. Na het aanmaken van de nieuwe map in Vault geeft hij het commando Go to working folder en de complete mappenstructuur wordt vanuit Vault gekopieerd naar de Workingfolder welke op de harde schijf van het werkstation staat. (Dit is dus de locale werkomgeving). Deze Workingfolder kan weer bekeken worden met de Windows Explorer.
Ruud-Jan de Boer
Page 32
26-4-2008
Workingfolder Vanuit AutoCAD Mechanical slaat de engineer de tekening op in de Workingfolder. Dus eerst het bestand lokaal opslaan! In AutoCAD Mechanical geeft de engineer nu vanuit de werkbalk Vault het commando Check In.
Werkbalk Vault
Ruud-Jan de Boer
Page 33
26-4-2008
Check In De tekening wordt nu vanuit de Workingfolder gekopieerd naar de server waarop Vault draait. Ook worden de Custom properties welke aan de tekening gekoppeld zijn meegenomen in de Vault. Vault geeft nu aan deze tekening welke nu opgeslagen is in Vault versie 1. Deze versiestatus kan bekeken worden in de Vault Explorer. Zie begin pagina 28.
Ruud-Jan de Boer
Page 34
26-4-2008
Vault Explorer Via de werkbalk Vault kan de engineer het commando Check Out geven en de huidige versie 1 van de tekening wordt dan vanuit Vault gekopieerd naar de Working folder op de harde schijf van het werkstation. De engineer kan nu de tekening bewerken en nadat hij daarmee klaar is kan hij weer het commando Check In geven. De tekening wordt nu weer gekopieerd vanuit de Working folder naar de server waarop Vault draait. Vault zal nu versie 2 aan de tekening geven. 5.4
Risico tekeningen in Working folder en in Vault.
Doordat de tekeningen opgeslagen worden zowel lokaal in de Working folder en in de Vault is het gevaar aanwezig dat dezelfde tekening in de Working folder nieuwer is dan de versie welke in Vault opgeslagen is. Om hiervoor te waarschuwen hanteert de Vault een “bolletjessysteem” waarmee de status van een tekening aangegeven kan worden. Het zijn iconen welke de status aangeeft van een bestand. Dit kunnen dus tekeningen zijn maar ook Office documenten.
Ruud-Jan de Boer
Page 35
26-4-2008
Iconen status bestand
Ruud-Jan de Boer
Page 36
26-4-2008
5.5
Check In en status bestand via Referencefilemanager.
Het is ook mogelijk om de Check In en Check Out via de Referencefilemanager uit te voeren.
Referencefilemanager Het witte bolletje links bovenin geeft aan dat de tekening nu lokaal staan in de Working folder.
Ruud-Jan de Boer
Page 37
26-4-2008
Referencefilemanager Nu geeft de Referencefilemanager aan dat de tekening is Checked Out door de engineer en dat de versie welke lokaal in de Working folder staat gelijk is aan de versie welke in de Vault aanwezig is.
6 Voordelen nieuwe werkwijze met Vault. 6.1
Geringe belasting netwerk en server.
De Vault is ook ontworpen om het netwerk en de server te ontlasten. Het bestand wordt immers met een Check Out gekopieerd vanaf de server naar de Working Folder welke lokaal staat. Vanaf dat moment werkt de engineer op zijn lokale werkstation aan het bestand, dus er is op dat moment geen dataverkeer nodig van de server naar het werkstation. Aan het einde van de werkdag geeft de engineer een Check In om het bestand weer naar de Vault te kopiëren. Het netwerk en de server worden dus eigenlijk alleen belast bij de Check In en Ckeck Out. 6.2
Bescherming status van het bestand.
Nadat een engineer een Check Out heeft gegeven aan een bestand vanuit de Vault is vanaf dat moment het desbetreffende bestand in Vault geblokkeerd. Het bestand is immers bij een bepaalde engineer onderhanden. Het bestand wordt dan in Vault aangegeven met een bolletje met daarin een kruis. Een andere engineer kan
Ruud-Jan de Boer
Page 38
26-4-2008
hetzelfde bestand in Vault dus alleen maar bekijken maar kan deze dus niet gaan bewerken omdat door de Check Out het bestand geblokkeerd is door de andere engineer. 6.3
Terugzoeken bestanden.
Zoals ik al eerder beschreven heb is het terugzoeken van bestanden via de Windows verkenner niet echt gemakkelijk en nogal omslachtig. De Vault Explorer heeft hiervoor wel voortreffelijke zoekmethoden. De Vault draait op een SQL server en alle data in Vault wordt geïndexeerd en hierdoor is het dus mogelijk om te zoeken op eigenschappen (properties). Tevens gaat het zoeken veel sneller in Vault t.o.v. de Windows verkenner. De Vault bevat een Advanced Find mogelijkheid waarmee bestanden doorzocht kunnen worden op eigenschappen (properties).
Advanced Find De engineer kan nu aan een bepaalde Property een Conditie en een Waarde geven waarop gezocht kan gaan worden.
Ruud-Jan de Boer
Page 39
26-4-2008
Advanced Find In de bovenstaande schermafdruk staat een voorbeeld waarin gezocht is op de Property Projectnummer waarvan de Waarde gelijk is aan 271393. De Advanced Find laat de engineer dan zien welke bestanden in Vault voldoen aan die voorwaarde. Hiermee is het dus mogelijk om diverse Propertys te gaan zoeken in Vault. Dit is echt het hele grote voordeel van Vault t.o.v. de huidige werkmethode. De engineer heeft nu eindelijk de mogelijk om te gaan zoeken in Vault op Properties en dat hij daarmee niet meer afhankelijk hoeft te zijn van iemand die toevallig nog iets wist van een bepaald project.
Ruud-Jan de Boer
Page 40
26-4-2008
7 Conclusie. Het implementeren van Vault voor het opslaan van de bestanden welke engineering aanmaakt heeft tot onderstaande punten geleid. • • • •
Ontlasting van het netwerk en server dankzij lokaal werken aan een bestand. Bescherming van een bestand welke is uitgecheckt door een bepaalde engineer. Hierdoor is een bestand in Vault gelocked. Uitstekende terugzoekmogelijkheden dankzij de functie Advanced Find. Hierdoor is het eindelijk mogelijk om op bepaalde eigenschappen (properties) te gaan zoeken in Vault. Ook niet tekeningbestanden kunnen opgeslagen worden in Vault. Hierdoor is het dus mogelijk om een Excel rekenblad aan een bepaalde constructie te “hangen”. Via een attachment kan een rekenblad aan een ander bestand gekoppeld worden en ook op de eigenschappen van dat rekenblad kan gezocht worden.
AutoCAD Mechanical is al geïmplementeerd bij Van Riet Material handling Systems en binnenkort zal de engineering ook gaan werken met Vault.
8 Aanbeveling. De Vault is een goede oplossing voor het databeheer en biedt een prima mogelijkheid voor het zoeken op eigenschappen. Helaas is de Vault niet in staat om revisies op tekeningen te beheren. De oplossing voor het beheren van revisies is het implementeren van Autodesk Productstream. Deze software maakt het mogelijk om revisies te gaan beheren. Productstream werkt dan samen met Vault en deze voert dan het revisiebeheer uit. Ook is het mogelijk om met Productstream een koppeling te maken met het ERP systeem. Een engineer hoeft dan alleen nog maar te werken met AutoCAD Mechanical en Productstream en hij heeft dan niet meer rechtstreeks te maken met het ERP systeem. De engineer maakt dan zijn stuklijst (BOM) in Productstream en vervolgens koipieert Productstream de stuklijst naar het ERP systeem waarin vervolgens de productieadviezen gemaakt kunnen worden voor het aansturen van het productieproces. Het uiteindelijke doel is om in de toekomst bij Van Riet Material Handling Systems ook te gaan werken met Productstream.
Ruud-Jan de Boer
Page 41
26-4-2008