De groei van block naar VB.net-code



Vergelijkbare documenten
Plotten & Printen met Autocad:

Elbo Technology BV Versie 1.1 Juni Gebruikershandleiding PassanSoft

Tips & Trucs ArchiCAD : Instellingen Kozijnstaat wijzigen (NL+)

Normen revisie tekeningen Openbare verlichting

Asta Powerdraw voor de afdrukkaders gebruiken

HANDLEIDING. Emjee ICT diensten Ticketsysteem

1 Inleiding. 3 Handmatig... invoeren zaken basis 4 Verwerken... zaken 5 Afhandelen... van zaken. 7 Uitgebreidere... zaak opties

StabiCAD V Applicatiebeheer

1. Werken met StabiCAD V Sparingen Inleiding Bouwkundige plattegrond Verwante modules... 3

1. Installeren Update 2.4.7

Handleiding Op Maat Wizard.

Tips & Trucs Werkmethodieken 100 : Overstappen van de Simatek werkmethodiek naar KUBUS KeyMember Projecten overzetten

Elektronisch factureren

Inhoudsopgave Wat zijn Leads in Plan-IT?... 3 Hoe zet ik de Leads functionaliteit aan in Plan-IT?... 4 Wat zijn de statussen en hoe werken ze?...

AFSTUDEER OPDRACHT HBO-OPLEIDING ACE-MANAGER C.G. Vrijhoeven (Begeleider R.Boeklagen) TEC - Nijmegen

Net2 kaarten bedrukken

AFO 142 Titel Aanwinsten Geschiedenis

HANDLEIDING INFOGRAPHIC SOFTWARE Versie 2.3 / jan 2014

d-basics Creditline, nieuw bestandsformaat Deutsche Bank

RIE Vragenlijst Editor

HANDLEIDING Q3600 Webshop

StabiCAD V Veiligheid

Wat is nieuw in deze handleiding: Dit is een nieuwe handleiding welke nieuwe functies beschrijft.

Quick start handleiding versie 1.0

Handleiding helpdesk. Datum: Versie: 1.0 Auteur: Inge van Sark

Gebruikershandleiding CBZ Add-in AutoCAD

Inrichting Systeem: Locaties & Toegang

VBA voor doe-het-zelvers

Doelstelling Het doel van deze zelfstudie is om een project te exporteren naar een CAD bestand.

Eenvoudig een backup van je bestanden maken. G.v.Eijndhoven ( )

Handleiding De Biedwedstrijd

AFO 139 Automatische export

Handleiding voor het zelf onderhouden van je Wordpress website

Deze zelfstudie maakt gebruik van de module Profielen en Ontwerpen. Opmerking: Deze zelfstudie kan niet worden uitgevoerd met LISCAD Lite.

Met deze module heeft u de mogelijkheid om gemakkelijk, snel en efficiënt uw documenten als naslag in Unit 4 Multivers te koppelen.

Peridos. Aanleveren van gegevens. Datum: Landelijk beheer Peridos. Versie: 1.1

Beschrijvings SW gebruikers handleiding (V1.1) Voor Apple Macintosh computers Voor Macintosh Computer

Gebruikers Toevoegen. EasySecure International B.V. +31(0) Support.EasySecure.nl. v

CRM - Salesplanner - NL

Landelijk Indicatie Protocol (LIP)

MADASTER PLATFORM. IFC export in BIM software. Archicad 21 & Revit 2019

Foto's in Lightroom snel aan een verzameling toevoegen.

Handleiding Wordpress

Handleiding DAM Edit Design

Rhino: Back-up maken. RsyncBackup

Aan de slag met AdminView

Handleiding voor Zotero versie 2.0

Module handleiding VivianCMS. Fotoalbum

Installatie KIMS Sales&Design 2014

Het maken, plaatsen en beheren van symbolen (blocks) In deze beschrijving zijn de afbeeldingen uit de windows versie van AutoCad 2013

Globale kennismaking

Installatiehandleiding. Facto minifmis

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling

Handleiding voor de update naar TouchSpeak 10 op Windows XP

Website catalogus beheer

Samenvoegen met Word en Excel 2010

I N H O U D S O P G A V E

Upgrade naar People Inc 3.5.0

Handleiding Zorgverzekeraar Winmens versie 7.29

Nieuw in MatrixKozijn Hout 3.2

Handleiding Op Maat Wizard

In dit document vindt u de beschrijving van alle aanpassingen die in SalonNet zijn doorgevoerd vanaf versie 2.08 (augustus 2013)

Installatiehandleiding MatrixKozijn 3.1

Tips & Trucs ARCHICAD : Bestaande ARCHICAD 21 projecten omzetten naar ARCHICAD 22

Tekenen met Floorplanner

ProjectHeatmap. Onderzoeksrapport v Dennis Wagenaar

1. Over LEVIY 5. Openen van de activiteit 2. Algemene definities 6. Inloggen op het LEVIY dashboard 3. Inloggen 6.1 Overzichtspagina 3.

De Kleine WordPress Handleiding

Herberekenen BaseCamp GPS routes Motorclub Zwolle en Omstreken

Handleiding Pétanque Competitie Beheer. (versie 1.1) April 2014

Afdrukken van AutoCad-tekeningen

Handleiding wordpress

Verkleinen- en uploaden van beelden

Update Infine Jaarrekening Versie 3.9.1

Installatie- en gebruikshandleiding Risicoverevening. 11 april 2007 ZorgTTP

CAD Standaard Plottool Installatiehandleiding

Quick start OASE voor docenten en medewerkers

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010

Handleiding Word Press voor de bewoners Westerkaap 1

Getting-started tutorial. Versie 1.0

Een website omzetten naar WordPress

Met de filters bovenin het scherm kunt u bepalen of u de leerlingen van alle afdelingen/stamklassen wilt zien of slechts een selectie daarvan.

Uitleg van de Systeeminstellingen in Ubuntu.

Deze zelfstudie maakt gebruik van de module Profielen en Ontwerpen. Opmerking: Deze zelfstudie kan niet worden uitgevoerd met LISCAD Lite.

Website maker. Bezoek je domein om de Website maker in te stellen. De volgende melding zal zichtbaar zijn.

Factuur2King Multi User release notes

Net2 kaarten bedrukken

Snel op weg met Solid Edge ST5

VBA voor Doe het Zelvers deel 14

Factuur Lay-out / Factuur Template

Inrichting Systeem: Locaties & Toegang

Gebruikershandleiding BBLV Applicatie Beveiligingsprogramma Handleiding voor gebruikers van het BBLV Beveiligingsprogramma versie 2.

Wij heten u van harte welkom als nieuwe gebruiker van Cloud24You Express!

QuikStart Beginnend Gebruiker - Algemeen. De werking van Vabi Elements in een vogelvlucht

HelpDesk - zoeken, vraag stellen, nieuws en meer Versie: concept_software

NIS Notarieel Informatie Systeem

Handleiding. Social Media Management Software

Stap 5. Koppel vervolgens de Stages aan de AIOS op het blad AIOS Stageplaats (figuur 5). Nu kunnen de Stage specifieke afspraken aangemaakt worden.

Eindgebruikershandleiding Jira

Transcriptie:

Titel: De groei van block naar VB.net-code Gemaakt door: J. van Wijlick Datum: 11 juli 2014 School: TEC / CAD College HBO-traject: AutoCAD System Manager Begeleider: ir. R. Boeklagen

Pagina 2 van 100

Inhoudsopgave: Inhoudsopgave Voorblad... 1 Inhoudsopgave... 2 1 - Voorwoord / voorstellen... 5 2 - Omschrijving van het bedrijf... 7 2.1 - Organigram Deerns Nederland (Nationaal)... 9 2.2 - Organigram Deerns Group (Internationaal)... 10 3 Probleemstelling... 11 3.1 - De huidige situatie... 11 3.2 - De toekomstige / nieuwe situatie... 13 3.3 - De probleemstelling... 14 4 De huidige situatie updaten (Optie 1)... 15 4.1 - Resumé... 17 5 Het dynamisch block... 18 6 - Stempels omzetten naar dynamische block (Optie 2 deel 1)... 20 6.1 Dynamische blocken A4-Stemp en A0-Stemp... 20 6.2 Dynamisch stempel A4-stemp... 22 6.3 Dynamisch stempel A0-stemp... 23 7 - Kaders omzetten naar dynamisch block (Optie 2 deel 2)... 24 7.1 Hoe werkt het dynamisch block Kaders... 25 8 Omzetten naar VB.net-code (Optie 3)... 27 8.1 Het verschil tussen een Block en een Wblock... 27 8.2 Verzamelen van informatie... 28 8.3 Starten met programmeren... 29 8.4 Structuur van het VB-project... 30 8.5 Structuur van de stempels... 31 8.6 Structuur van de kaders... 33 Pagina 3 van 100

09 Omschrijven / Uitleg programmacode. 35 9.1 Functie Plaats kader... 35 9.2 Functie Plaats A0-stempel (Nederlands)... 42 9.3 Functie FilterKaderNotA0Ext3... 46 9.4 Functie MaakLayerVports... 47 10 Conclusies, voor- & nadelen... 50 10.1 - Voor- en nadelen huidige DWG s updaten (Optie 1)... 50 10.2 - Voor- en nadelen dynamische blocken (Optie 2)... 50 10.3 - Voor- en nadelen VB.net-code (Optie 3)... 50 10.4 - Voor- en nadelen tussen optie 1 en optie 2... 51 10.5 - Voor- en nadelen tussen optie 2 en optie 3... 51 10.6 - Voor- en nadelen tussen optie 1 en optie 3... 52 11 - Aanbevelingen & wensen... 53 11.1 - Aanvulllingen huidige programma... 53 11.2 - Aanvullingen toekomstige programma-update s... 53 12 - Zelfreflectie... 55 12.1 - Cursussen... 55 12.2 - Eindopdracht... 55 12.3 - Resumé... 56 Bijlagen: Bijlage A Plan van aanpak... 57 1 De omgevingsfactoren... 2 De probleemstelling en het onderwerp... 1 3 Globale indeling van de afstudeeropdracht... 1 4 De planning... 1 Bijlage B Woordenlijst en definities... 64 Bijlage C Handleiding toolpalettes... 68 Bijlage D Afmetingen kaders... 70 D-1 Afmetingen kaders A0... 71 D-2 Afmetingen kaders A1... 76 Pagina 4 van 100

D-3 Afmetingen kaders A2... 78 D-4 Afmetingen kaders A3... 79 D-5 Afmetingen kaders A4... 80 Bijlage E Afmetingen en coordinaten stempel klein... 81 Bijlage F Stappenplan Kader plaatsen... 83 Opmerking: Er mag niets zonder schriftelijke toestemming van de auteur van dit verslag en programma worden gekopieerd, gefotografeerd, overgenomen voor gebruik. Indien met toestemming wil vragen kan dit door een e-mail te sturen naar: Joop.van.Wijlick @gmail.com met daarin de vraag voor toestemming van het gebruiken van gegevens uit deze opdracht. Pagina 5 van 100

Pagina 6 van 100

Hoofdstuk 1: Voorwoord / voorstellen Mijn naam is Joop van Wijlick, ben 41 jaar en woonachtig in Eindhoven. Op 01 juli 2001 heb ik de overstap gemaakt naar Deerns Raadgevende Ingenieurs bv te Eindhoven. Voor de overstap naar Deerns Raadgevende ingenieurs bv ben ik werkzaam geweest in de installatietechniek (Utilliteit en bedrijfs-installaties) en de machinebouw (Hijswerk-tuigen, bovenloop-kranen). Deze banen waren allen fulltime banen, ik wilde graag de overstap maken van de werkvloer naar de tekenkamer. Om deze overstap te kunnen maken heb ik diverse opleidingen / cursussen (grotendeels in de avonduren) doorlopen en allen met mooie resultaten afgesloten. Bij mijn vorige werkgever (Imtech Projects Zuid te Roermond) heb ik kennis mogen maken met de tekenkamer en heb daar heel veel mogen en kunnen leren dankzij een zeer fijne hoofdtekenaar die zijn AutoCAD-kennis met mij en andere AutoCADtekenaars deelde. Hier heb ik heel veel geleerd en ook de drive gekregen om het programma AutoCAD: - Verder te verdiepingen in het programma - Customizing, programma naar mijn wensen instellen - Automatiseren van werkzaamheden (Automatiseren wat je kunt automatiseren) Na bij Imtech Projects Zuid (Eerst gedetacheerd, daarna in vaste dienst) diverse projecten te hebben getekend / gereviseerd heb ik in juli 2001 de overstap gemaakt van de installatietechniek naar de advieswereld door een baan aan te nemen bij Deerns Raadgevende Ingenieurs bv te Eindhoven. Deze baan was een grote uitdaging daar ik er de enigste tekenaar op de vestiging werd, en er geen andere tekenaar op de vestiging aanwezig was. Hierdoor heb ik mij goed kunnen ontplooien tot de tekenaar die ik vandaag de dag ben. Maar ook bij Deerns ben ik doorgegaan met het me verdiepen in het programma AutoCAD en de uitgebreide mogelijkheden van dit programma. In het eerste jaar heb ik een cursus 3D-tekenen gevolgd. Het jaar daarna heb ik een customizing-cursus gevolgd. Door deze cursussen ben ik nog meer allround geworden, maar ook heb ik een stap gemaakt naar de richting waar mijn interesse liggen, namelijk 3d en customizing. Om een bevestiging van kennis voor het programma te krijgen ben ik begonnen aan het de opleiding HBO-traject AutoCAD met als richting System Manager. Deze opleiding heeft mij ook weer heel veel geleerd over AutoCAD, maar met name op het gebied van programmeren (VB.net). Het programmeren met de VB.net-code was een zeer grote uitdaging voor mij. Geduren-de de deelcursussen heb ik veel geleerd over zowel de programma s AutoCAD en Visual Studio, maar ook over een denkwijze. Met denkwijze bedoel ik te zeggen Hoe pak ik een probleem slim, snel en makkelijk aan. Deze opleiding dient te worden afgesloten met een eindopdracht (werkstuk). Gedurende de opdracht ben ik ziek geworden en ben bijna een jaar uit de roulatie geweest. Gedurende deze periode heb ik goed nagedacht over de het onderwerp en de aanpak van de opdracht. Pagina 7 van 100

Dankzij TEC Nijmegen was het mogelijk om de opleiding af te ronden in mijn eigen tempo zodat ik geen terugval kreeg. Hiervoor wil ik TEC Nijmegen (Ronald, Leonie en Paul) heel erg bedanken. Het was een stevige klus, uitdaging om mijn plan / idee uit te werken tot een goed functionerend programma. Dit is gebeurd met heel veel vallen en opstaan, maar ik heb er heel veel van geleerd en veel kennis van opgedaan. Met name het programmeren was een behoorlijke uitdaging, maar het is toch goed gekomen want ik heb het idee dat wat ik wilde maken ook heb gerealiseerd. Het resultaat van deze mooi en uitdagende opdracht ligt nu voor u. Pagina 8 van 100

Hoofdstuk 2: Omschrijving van het bedrijf Het bedrijf waar ik werkzaam ben is Deerns (De volledige naam was voor 01 januari 2013 Deerns Raadgevende Ingenieurs B.V.). Het bedrijf Deerns is een technisch raadgevend adviesbureau dat circa 350-400 werknemers in Nederland telt over de diverse kantoren / werklocaties. Deerns maakt de meest mooie, gerenommeerde, innovatieve projecten en dat niet alleen in Nederland, maar ook internationaal. Deerns heeft de ambitie om meer internationaal te groeien daar de markten waarop Deerns actief is steeds meer internationaler worden. Door de internationale groei maar ook dat er steeds meer internationale projecten die Deerns verwerft heeft men een groep opgericht genaamd de Deerns Group. In deze groep zijn alle internationale kantoren (per land) ondergebracht. De kantoren van Deerns in Nederland zijn hier ook in onder gebracht als Deerns Nederland. De kantoren / werklocaties van Deerns in Nederland zijn gesitueerd in de plaatsen: - Rijswijk (Hoofkantoor), - Eindhoven (Werklocatie), - Maastricht (Kantoor) - Nijmegen (Werklocatie), - Amsterdam (Werklocatie), - Groningen (Werklocatie), - Zwolle (Werklocatie). Met werklocaties wordt bedoeld dit is een soort van kantoor waar collega s kunnen werken om zo effectiever te kunnen werken door bijvoorbeeld de reistijden, reiskosten sterk te verminderen. Of om dicht bij de opdrachtgever te kunnen werken aan het betreffende project. Met andere woorden daar waar installatietechniek of bouwfysica gevraagd is, is een werkgebied voor Deerns. Voor meer informatie over Deerns zie www.deerns.nl (Nederlands) of www.deerns.com (Engels). De internationale kantoren die over de wereld verspreid zijn liggen in de volgende landen. - België (Antwerpen) - Duitsland (Berlijn, Koln, Stuttgart) - Spanje (Barcelona) - Groot-Brittannië (London) - Verenigde Staten van Amerika (Phoenix) - Italië (Milaan) - Frankrijk (Parijs) - België (Antwerpen) - Saoedi-Arabië (Dubai) De werkgebieden waar Deerns werkzaam is zijn hier onder weergegeven in trefwoorden: Pagina 9 van 100

- Beheer en onderhoud - Bouwfysica - Clean technologie - Communicatienetwerken - Datacenters - Duurzaamheid - Energie & energiebesparing - Industrie (procesindustrie, nanotechnologie-industrie) - Kostenmanagement - Laboratoriuminrichting - Medische inrichting, ziekenhuizen - Milieu en veiligheid - Regeltechniek - Renovatie - Sanitaire techniek - Transport en logistiek - Utiliteit (scholen, kantoren, multifunctionele centra) - Vastgoed - Validatie - Verlichting en lichtontwerp - Zuivere bedrijfsstoffen Eindhoven Amsterdam Groningen Maastricht Nijmegen Rijswijk Pagina 10 van 100

2.1 - Organigram Deerns Nederland (Nationaal) In deze groep ben ik werkzaam Pagina 11 van 100

2.2 - Organigram Deerns Group (Internationaal) Pagina 12 van 100

Hoofdstuk 3: Probleemstelling Om de probleemstelling te kunnen formuleren is het belangrijk om eerst uit te leggen hoe de huidige situatie is, om zo een goed beeld te krijgen van de huidige situatie maar ook waarom de huidige opzet van de bedrijfstemplate destijds gekozen is voor deze opzet. Eerst zal de huidige situatie worden omschreven om vervolgens de toekomstige situatie te omschrijven. Voor 01 januari 2013 was de volledige naam van het bedrijf Deerns Raadgevende Ingenieurs B.V.. Het bedrijf was het meest werkzaam in Nederland met ook wel internationale projecten. Maar nu het bedrijf is ondergebracht in de Deerns group worden er steeds meer internationale projecten verworven en dit heeft ook gezorgd voor groei in het aantal internationale kantoren van Deerns internationaal. Maar voor deze opdracht wordt alleen gekeken naar de situatie van de Nederlandse kantoren / werklocaties. 3.1 De huidige situatie De situatie van de Deerns-kantoren (Amsterdam, Eindhoven, Groningen, Maastricht, Nijmegen) ten tijde van het starten van deze eindopdracht was als volgt, er waren 5 vestigingen waarvan 1 hoofdvestiging. Deze vestigingen waren gelokaliseerd in: - Amsterdam - Eindhoven - Groningen - Maastricht - Nijmegen - Rijswijk (Hoofdkantoor) - De vestigingen Amsterdam, Eindhoven, Groningen, Maastricht en Nijmegen zijn allen voorzien van eigen servers. Deze servers zijn allen verbonden, door middel van een glasvezelverbinding (Infra), met de hoofdservers op het hoofdkantoor in Rijswijk. De structuur die op deze manier geconstrueerd is, wordt ook wel een sterstructuur genoemd. Het voordeel van deze structuur is dat als één de vestiging (Amsterdam, Eindhoven, Groningen, Maastricht of Nijmegen) getroffen wordt door een storing (bijvoorbeeld storing elektriciteitsnet of verbreken van de glasvezelverbinding) de overige kantoren gewoon door kunnen draaien. Maar als de glasvezelverbinding tussen een vestiging en het hoofdkantoor verbroken wordt kan de vestiging gewoon doordraaien. Dit komt ook doordat de servers op de vestigingen voorzien van de benodigde software en die lokaal de softwarelicenties afgeven die wordt benodigd door de werknemers op de betreffende vestiging. Deze software was voorzien van een hardware-matige sleutel, een zogenaamde dongle, die op lokale server geplaatst diende te worden. Het lokaal afgeven van een softwarelicentie heeft twee grootte voordelen, namelijk: - Geen dataverkeer over de glasvezelverbinding (Geen vertraging op de glasvezel) Pagina 13 van 100

- Niet afhankelijk van de hoofdvestiging mocht daar de server wegvallen door bijvoorbeeld o Wegvallen van de netspanning o Onderbreking / storing in de glasvezelverbinding De glasvezelbekabeling tussen de vestigingen en het hoofdkantoor heeft naast het snel beschikken van projectbestanden, of het werken op afstand aan een project ook nog de functie voor het maken van een reserve back-up van de projectbestanden op de vestiging. Er werden toen twee back-up s gemaakt, namelijk 1x lokaal op de vestiging en 1x op de hoofdkantoor. Zie voor een grafische weergave van de netwerkstructuur het volgende schema Netwerkstructuur 2001. Deerns heeft ook een bedrijfstemplate voor het gebruik van AutoCAD. Deze template bestaat uit een behoorlijk aantal bestanden. Voor de exacte bestanden en uitleg zie hoofdstuk 4 van die verslag voor nader uitleg over deze bestanden en welke bestanden er nodig zijn om de huidige template te maken. Deze bestanden, die benodigd zijn voor het maken van de template, zijn op elke vestiging op de server geplaatst. Bijvoorbeeld op de vestiging Eindhoven staan niet alleen de template -bestanden voor de vestiging Eindhoven maar ook die van de overige vestigingen. De reden hiervoor is dat deze bestanden direct beschikbaar zijn indien er gewerkt diende te worden aan het andere projecten van een andere vestiging. Het enige verschil tussen de templates tussen vestigingen het adres van de betreffende vestiging. Daarnaast zijn deze template-bestanden niet alleen in het Nederlands maar ook in het Engels beschikbaar, met andere woorden alle bestanden zijn dus dubbel. Deze situatie werkt goed maar is erg omslachtig als er een wijziging of onderhoud aan de bestanden doorgevoerd dient te worden. Dit was een beknopte omschrijving van de huidige situatie. Pagina 14 van 100

3.2 De toekomstige / nieuwe situatie De toekomstige / nieuwe situatie zal wat betreft het netwerk weinig veranderen, maar de veranderingen liggen meer op het gebied van de software. Daarnaast worden er ook verbindingen gemaakt met de internationale vestigingen van Deerns die steeds meer ontstaan. Het een grafische weergave van de nieuwe situatie zie schema Netwerkstructuur 2013. Behalve de wijzigingen op het gebied van de software zijn er ook wijzigingen in de locaties van de software. In de huidige situaties is de software op de servers van de vestigingen (dus lokaal geïnstalleerd) maar in de toekomstige situatie wordt de software op de servers van de hoofdvestiging geïnstalleerd en wordt vanaf deze servers de licenties afgegeven aan de gebruikers van de programma s. In de nieuwe situatie is dit wel mogelijk doordat door de tijd heen de technieken van glasvezelverbindingen en bandbreedtes ook verbeterd zijn. Hierdoor is het dus mogelijk om meerdere signalen over de glasvezels-verbindingen te sturen. Mede door deze verbeteringen maar ook voor het beheren van de softwareprogramma s en bijbehorende licenties is er gekozen voor de softwareprogramma s op de hoofdserver op hoofdkantoor in Rijswijk te installeren. Maar betrekking tot de template heeft deze verandering weinig tot geen invloed. De grootste reden om de template aan te passen is namelijk: De huidige template met alle zijn benodigde bestanden zou kunnen worden terug gebracht tot circa 3 bestanden. Pagina 15 van 100

Met de huidige softwareprogramma s is het wel mogelijk om template terug te brengen tot de gewenste drie bestanden, maar dit was ten tijde van het creëren van de template niet goed mogelijk gezien ook het hoeveelheid vestigingen / kantoren het bedrijf had. Denk dan aan de mogelijkheid tot het vervaardigen van dynamische blocken. Deze optie is namelijk ook de belangrijkste optie om de huidige template met al zijn benodigde bestanden samen te bouwen / voegen tot de circa 3 bestanden voor de toekomstige / nieuwe situatie. Het voordeel hiervan dat de template maar bestaat uit 3 bestanden, namelijk: - Stempel groot (Tekeningformaat: A1 en groter) - Stempel klein (Tekeningformaat: A2 en kleiner) Door het maken van deze 3 bestanden wordt er eigenlijk het volgende gerealiseerd: - Verminderen van het aantal benodigde template-bestanden - Verminderen van de kosten voor het aanpassen / onderhouden van de bestanden - Template vereenvoudigen - Gebruiksvriendelijker maken van de template Dus het vervaardigen van een aantal dynamische blocks is een optie, maar er is ook nog een andere optie die ook erg interessant is om eens goed naar te kijken / te onderzoeken. Deze optie is de template te gaan programmeren in de vorm van een computerprogramma. Dit programma wordt dan geschreven in de taal Visual Basic.net oftewel VB.net. 3.3 - De probleemstelling: De probleemstelling is dus als volgt te omschrijven. Het onderzoeken / uitwerken van drie mogelijkheden / opties betreffende onderhoud of aanpassen van de template met alle benodigde bestanden. In deze eindopdracht wordt beschreven welke methode je het beste kunt nemen voor het vervaardigen en onderhouden, wijzigen van bedrijfs-template. Uiteraard is het ook belangrijk dat dit tijd en kosten bespaard. In deze eindopdracht worden drie opties uitgewerkt. - Optie 1: Huidige templates / DWG-bestanden updaten (DWG voor DWG) - Optie 2: Template omzetten naar een dynamisch block (voorzien van diverse opties) - Optie 3: Templates in VB.net gaan programmeren Om het onderhouden en updaten makkelijker (minder tijdrovend) te maken en beheersbaar te houden gaat deze eindopdracht. In deze eindopdracht worden drie manieren onderzocht om de bedrijfstemplate makkelijker te onderhouden en te updaten. Deze drie manieren zijn omschreven is de hoofdstukken 4, 6 en 7. Pagina 16 van 100

Hoofdstuk 4: De huidige situatie updaten (Optie 1) De huidige AutoCAD-template is te omschrijven als een verzameling (database) van objecten, textstyles, dimensions en (systeem)instellingen die zo zijn toegepast / ingesteld dat deze de bedrijfsstandaard van het bedrijf Deerns vormen. De verzameling van onderdelen is onder te verdelen in de onderstaande groepen: - Blocken (Samengestelde tekeningen), bijvoorbeeld: Kaders, stempels, symbolen. - Fonts (Tekststijlen), bijvoorbeeld: Burofont-018, Burofont-025, Burofont-035, Burofont-050, Burofont-070. - Dimension (Maatvoeringen), bijvoorbeeld IS0-25, ISO-250. - Layers (Lagen), bijvoorbeeld: 0, BL$4--_Stempellijn018. - Hatches (Arceringen), bijvoorbeeld Solid, ANSI31. - Linetypes (Lijntypes), bijvoorbeeld Continious, Hidden Er zullen waarschijnlijk nog een paar groepen zijn maar dit zijn voor mij de belangrijkste groepen. In de huidige situatie is voor elke Deerns-vestiging een grote map met diverse DWGbestanden nodig om te komen tot de huidige AutoCAD-template. Deze bestanden zijn per vestiging is te verdelen in twee groepen, namelijk: - Kaders. o Kaderformaten die bij Deerns worden toegepast. o Kaderformaten bij die we zo goed als nooit gebruiken. - Stempels. o De stempels zijn onder te verdelen in taal: Nederlands en Engels o Te verdelen in klein formaat (A4, A3, A2, Z-formaten) en groot formaat (A0, A1) Deze bestanden (kaders en stempels) zijn allemaal losse DWG-bestanden. Door zoveel bestanden te hebben resulteert het er ook in dat deze de nodige plaats in nemen op de server in de vestiging. Heden ten dage is dit minder hinderlijk dan tien jaar geleden toen elke MB telde die op de server werd geplaatst. Nu zijn de server gemaakt voor het bijplaatsen van een nieuwe netwerkschijf, en is plaats op de server een minder belangrijk onderwerp. De AutoCAD-template is voorzien van een aantal kaders, welke elk op een separate layout zijn geplaatst inclusief het bijbehorende stempel. Deze manier van dezelfde blocken in een tekening op verschillende layouts plaatsen resulteert in een zwaar DWG-bestand. De kaderformaten die veel worden toegepast zijn: Pagina 17 van 100

Kaders: Omschrijving Afmeting (mm) Bestandsnaam (DWG) Bestandsnaam (DWT) A0-STD 1189x841 A0-kader.dwg A0-dri.dwt A0-Ext1 1399x841 A0-Ext1-kader.dwg A0-Ext1-dr.dwt A0-Ext2 1609x841 A0-Ext2-kader.dwg A0-Ext2-dri.dwt A0-Ext3 1819x841 A0-Ext3-kader.dwg A0-Ext3-dri.dwt A0-Ext4 2029x841 A0-Ext4-kader.dwg A0-Ext4-dri.dwt A1-STD 841x594 A1-kader.dwg A1-dri.dwt A2-STD 594x420 A2-kader.dwg A2-dri.dwt A3-STD 420x297 A3-kader.dwg A3-dri.dwt A4h 297x210 A4h-kader.dwg A4h-dri.dwt A4v 210x297 A4v-kader.dwg A4v-dri.dwt Z3 630x297 Z3-kader.dwg Z3-dri.dwt Z4 840x297 Z4-kader.dwg Z4-dri.dwt Z5 1050x297 Z5-kader.dwg Z5-dri.dwt Stempels Nederlands: Omschrijving Taal Toepassen bij kader Bestandsnaam (DWG) A0-stemp1 Nederlands A0, A1 A0-stemp1.dwg A4-stemp1 Nederlands A4, A3, A2, Z3, Z4, Z5 A4-stemp1.dwg Stempels Engels: Omschrijving Taal Toepassen bij kader Bestandsnaam (DWG) A0-stemp1 Engels A0, A1 A0-stemp1-eng.dwg A4-stemp1 Engels A4, A3, A2, Z3, Z4, Z5 A4-stemp1-eng.dwg Overige bestanden die benodigd worden bij de stempels Omschrijving Taal Toepassen bij Bestandsnaam (DWG) Deerns-RI Nederlands Nederlands Nederlandse stempels A0-stemp1-eng.dwg Deerns-RI Engels Engels Engelse stempels A4-stemp1-eng.dwg Daarnaast zijn er nog een aantal DWG-bestanden die worden gebruikt bij de huidige standaard. Deze bestanden zijn: Naam Omschrijving Bestandsnaam (DWG) acadiso Template-bestand met standaard instellingen Acadiso.dwg A0-arch Block gegevens architect A0-arch.dwg A0-inst Block gegevens installateur A0-insti.dwg A0-opdr Block gegevens opdrachtgever A0-opdr.dwg Pagina 18 van 100

De hierboven vermelde kaders, stempels en overige bestanden zijn dus voor elke vestiging gemaakt. Deze manier werkt, maar is arbeidsintensief om te onderhouden en te updaten. Gedurende deze opdracht kwam er een mooie klus bij die ook binnen grenzen van deze opdracht valt, is dus meegenomen in deze opdracht. Het betreft hier de naamswijziging van het bedrijf. Begin 2012 heeft Deerns zijn naam veranderd van Deerns Raadgevende ingenieurs in Deerns. Voor deze opdracht kwam dit goed uit want toen kon was deze optie beter uitwerken / onderzoeken. De werkzaamheden waren: - Wijzigen van het logo (Verwijderen en verschalen van onderdelen), - Wijzigen van locatie van het logo, - Adresgegevens standaardiseren. De bovenstaande werkzaamheden diende dus voor 5 vestigingen te gebeuren voor de Nederlandse en Engelse stempels. Dit was een mooie klus om te kijken en te bevestigen dat deze manier van standaarden in onderhoud en bijwerken veel tijd kost. 4.1 Resumé: Deze optie was ten tijde dat dit gemaakt is misschien up to date, maar met de progressie die het programma AutoCAD door de jaren heen heeft gemaakt is deze optie eigenlijk ouderwets. Om deze optie weer up to date te maken heb ik twee optie uitgewerkt om te kijken welk het beste is om te gaan gebruiken voor de toekomst. Pagina 19 van 100

Pagina 20 van 100

Hoofdstuk 5: Het dynamisch block Sinds de ontwikkeling van het programma AutoCAD is de fabrikant, AutoDesk, van het programma ook steeds verder gegaan met de ontwikkeling / vernieuwingen van functies van het programma. Een van de grootste ontwikkeling / vernieuwingen van AutoCAD 2006 was de invoering van het dynamische block. Deze functie was toen een grootte aanvulling voor het programma, die bij vele tekenaars erg fijn is ontvangen. Met name het verwerken van de diverse opties in 1 block was zeer handig. Wat is een dynamisch block: Een dynamisch block is een block-definitie waarin aangepaste properties (eigenschappen) en grips naast de geometrie in een (standaard)block zijn opgenomen. Een dynamisch block heeft als voordelen: - Flexibiliteit, - Parametrisch tekenen, - Intelligentie, - Instelbare stappen, - Wijzigbaar (in de tekening) - Minder bestanden (templates), dus minder capaciteit nodig op de hard drive / memory stick - Makkelijker te onderhouden - Makkelijk te gebruiken door tekenaars - Bij uitwisseling hoef je maar 1 bestand te versturen De nadelen van een dynamisch block: - Eerste paar keer dat je een dynamisch block maakt is het traag en moet je goed weten wat je resultaat van het block moet gaan worden. Als je de functionaliteiten en opties weet te gebruiken kan men er vele makkelijke blocken (hulpmiddelen) mee maken. - Bij aanpassen moet men goed weten hoe een dynamisch block in elkaar zit en hoe deze werkt. Zodat je geen koppelingen verwijderd of veranderd welk niet tot de aanpassingen van het block behoren. - Alles in 1 bestand. (Als het bestand corrupt is ben je alles kwijt) Het dynamisch block is een mooie oplossing voor het verkleinen van het aantal bestanden dat is omschreven in hoofdstuk 4 De huidige situatie updaten. Hierdoor zou je de bestanden kunnen verminderen tot: - 1 Dynamisch block voor de kaders - 1 Dynamisch block voor het kleine stempel - 1 Dynamisch block voor het grote stempel Het is natuurlijk ook mogelijk om de twee dynamische blocken van de stempels samen te voegen tot 1 dynamisch block, maar dat is voor deze opdracht niet Pagina 21 van 100

wenselijk. De reden hiervoor is dat het stempel (A0-stemp.dwg) voor de tekeningformaten A1 en groter (A0, A0-Ext1, A0-Ext2, A0-Ext3, A0-Ext4, A0-Ext5, A0-Ext6) meer informatie bevatten het kleine stempel (A4-stemp.dwg). Deze informatie in het A0-stempel (A0-stemp.dwg) zijn verwerkt zij de gegevens van de opdrachtgever en de architect. Hoe werkt een dynamisch block (voor de gebruiker)? Door het block 1x te selecteren verschijnt er blauw driehoek (meestal naast) naast het dynamische block. Door vervolgens op deze blauwe driehoek te klikken verschijnt er een keuzemenu waaruit 1 van de optie kan worden geselecteerd. De optie wordt dan direct zichtbaar (Realtime update van het block) op het beeldscherm. Dit is een korte omschrijving van een dynamisch block. Pagina 22 van 100

Hoofdstuk 6: Stempels omzetten naar dynamisch block (Optie 2 deel 1) De lijst van DWG-bestanden zoals omschreven in hoofdstuk 4 De huidige situatie kunnen behoorlijk worden verminderd door gebruik te gaan maken van dynamische blocken. Om het overzichtelijk te houden worden er nu 3 dynamische blocken gecreëerd, namelijk: - 1x Dynamisch block voor het kleine stempel, - 1x Dynamisch block voor het grote stempel, - 1x Dynamisch block voor de kaders Het omzetten / creëren van het dynamisch block van de kaders wordt in hoofdstuk 7 Kaders omzetten naar dynamisch block (Optie 2 deel 2) omschreven. Nu de drie dynamische blocken gedefinieerd zijn, kan vervolgens de informatie verzameld gaan worden welke voorwaarden aan het dynamische block gesteld gaan worden. 6.1 Dynamisch blocken A4-Stemp en A0-Stemp Voor de dynamische blocken van de stempels (Groot en klein) dienen de volgende twee mogelijkheden te zijn voorzien: - Adresgegevens de vestigingen (Postbus, postcode, plaats, telefoonnummer) - Taal (Nederlands / Engels) De keuze mogelijkheden voor deze blocken zijn dan: Eindhoven & Nederlands Keuzemogelijkheid Vestiging Taal Rijswijk NL Rijswijk Nederlands Rijswijk ENG Rijswijk Engels Eindhoven NL Eindhoven Nederlands Eindhoven ENG Eindhoven Engels Maastricht NL Maastricht Nederlands Maastricht ENG Maastricht Engels Nijmegen NL Nijmegen Nederlands Nijmegen ENG Nijmegen Engels Groningen NL Groningen Nederlands Groningen ENG Groningen Engels Amsterdam NL Amsterdam Nederlands Amsterdam ENG Amsterdam Engels Zoals in de hierboven staande tabel is weergegeven zijn er veel keuzemogelijkheden (12 mogelijkheden), maar om het voor de gebruiker gemakkelijker (keuzemogelijkheden zichtbaar in 1 scherm) en sneller (minder klikken voor het gewenste resultaat) te maken is voor deze manier van keuzemogelijkheden Pagina 23 van 100

gekozen. Het is natuurlijk ook mogelijk om het aantal keuzemogelijkheden nog te verkleinen naar eerst de vestiging en vervolgens de taal, maar daar is hier niet vanuit gegaan. Voor het vervaardigen van de blocken (dynamisch block A0-stemp en Kaders ) is het belangrijk om eerst alle benodigde gegevens bij elkaar te zoeken. Maar ook goed nagaan of het block benaderd moet kunnen worden door andere software dan AutoCAD. In dit geval is dit van toepassing daar Deerns gebruikt maakt van het programma StabiCAD. Dit programma, StabiCAD, heeft een tekeningenbeheerstool genaamd StabiBase. StabiBase is een tekeningenbeheerstool waar het tekeningstempel kan worden ingevuld voordat je begint met tekenen. De gegevens die je hier kan invullen zijn: - Schaal, - Initialen van de tekenaar, - Wie heeft de tekening gecontroleerd, - Wie heeft de tekening gezien, - Tekeningformaat, - Fase van de tekening, - Discipline, - Sub-discipline, - Naam / onderwerp van de tekening, - Tekeningnummer, - Datum van de tekening. De dynamische blocken van de stempels dienen dan door StabiCAD te worden uitgelezen en te worden geüpdatet. Doordat in StabiCAD de naam van het block reeds is gedefinieerd, is hier dus ook geen andere optie voor om de bestandsnaam van de dynamische blocken te wijzigingen. Voor de dynamisch block voor de het grootte stempel is A0-stemp, de naam voor het dynamische block voor het kleine stempel is dan A4-stemp. Deze benamingen worden dus ook gebruikt bij de dynamische blocken. De stempels (groot en klein) zijn beide voorzien zijn van het bedrijfslogo. Dit logo, bestaande uit arceringen (Hatches) en speciale polylijnen (Spline), is een normaal block dat ook dient te worden voorzien in het dynamische block. Als alle benodigde gegevens verzameld zijn kan worden gestart met het maken van het block. Eerst wordt een standaard block gemaakt om vervolgens dit block te openen in de Blockeditor om te worden voorzien van de benodigde parameters. Er wordt eigenlijk maar één block gemaakt, met uitzondering van de adresgegevens en de teksten die in het Nederlands en in het Engels zichtbaar dienen te zijn. Tevens wordt het bedrijfslogo geplaatst (1x). Als dit is gebeurd wordt dit bestand weggeschreven als een block. Vervolgens wordt dit block geopend met de blockeditor en worden de parameters, actions, parameter sets, constrains geplaatst. De keuzemogelijkheden worden verwerkt in de Visibillity States. Hoe dit precies wordt gedaan wordt in het verslag nu nader uitgewerkt, zie hiervoor het AutoCADboek van TEC Nijmegen. Als dit allemaal gebeurd is en ook goed getest is wordt het dynamisch block gesaved en wordt gestart aan het vervaardigen van het dynamische block van het A0- Pagina 24 van 100

stempel. De werkwijze is identiek aan de werkwijze van het A4-stempel welk hierboven kort omschreven is. De dynamische blocken A0-stemp en A4-stemp dienen geplaatst te worden in een layout, in vorige versies van AutoCAD ook wel Paperspace genoemd. De reden waarom dit dynamische block in een layout dient te worden geplaatst is dat het stempel als schaal 1 op 1 heeft dus de werkelijke grootte. De dynamische blocken A0-stemp en A4-stemp hebben als insertionpoint (Basepoint) 0,0,0 (x,y,z), maar dienen in de tekening nog naar de juiste positie te worden geschoven welke afhankelijk is van het gekozen kader. Doordat het block een 2-dimensionaal block is, is het niet specifiek nodig om een Z-waarde bij het insertionpoint te vermelden. Natuurlijk is er ook nagedacht om de twee stempels (A0-stemp1 en A4-stemp1) samen te voegen in één te maken dynamisch block. Dit is praktisch en theoretisch mogelijk, maar doordat Deerns gebruikt maakt van de AutoCAD-applicatie StabiCAD is het geen optie om dit dynamische block van de twee stempels. De functie Stempelupdate en Setup tekening herkend maar twee blocknamen van de blocken die het mag en kan updaten. Dit is ook de reden waarom er niet wordt gekozen om 1 dynamisch block te maken. 6.2 Dynamisch stempel A4-stemp Hieronder is een beeldschermafdruk weergegeven van het nieuwe dynamische block A4-stemp1. De locatie waar de rode pijlpunt naar wijst is de locatie waar het blauwe driehoekje is geplaatst. Door op dit driehoekje te klikken wordt het keuzemenu zichtbaar en kan de gebruiker het gewenste adres en taal selecteren. Een afbeelding van dit keuzemenu is ter verduidelijking weergegeven aan het eind van de rode pijl die de locatie van het driehoekje aanduidt. Pagina 25 van 100

6.3 Dynamisch stempel A0-stemp Hieronder is een beeldschermafdruk weergegeven van het nieuwe dynamische block A0-stemp1. De locatie waar de rode pijlpunt naar wijst is de locatie waar het blauwe driehoekje is geplaatst. Door op dit driehoekje te klikken wordt het keuzemenu zichtbaar en kan de gebruiker het gewenste adres en taal selecteren. Een afbeelding van dit keuzemenu is ter verduidelijking weergegeven aan het eind van de rode pijl die de locatie van het driehoekje aanduidt. Pagina 26 van 100

Hoofdstuk 7: Kaders omzetten naar dynamisch block (Optie 2 deel 2) Ook voor de kaders wordt er een dynamisch block gemaakt. In dit dynamische block zijn alle standaard kaders voorzien die binnen Deerns worden toegepast voor het vervaardigen van tekeningen. Er wordt geen onderscheidt gemaakt tussen grote en kleine kaders ten opzichte van de stempels, waar 2 dynamische blocken gemaakt worden, worden de diverse kaders wel in één dynamisch block verwerkt. Bij de kaders is het probleem niet van het updaten van een block zoals beschreven is bij het vervaardigen van het dynamisch block van de stempels. De kaders die in het dynamisch block zijn verwerkt zijn: - A0-STD, A0-Ext1, A0-Ext2, A0-Ext3, A0-Ext4, A0-Ext5, A0-Ext6, - A1-STD, A1-Ext1, - A2-STD - A3, - A4, - A4h De hieronder staande lijst geeft de kaderformaten en bijbehorende afmetingen (buitenafmetingen) weer. Keuzemogelijkheid Naam Lengte (mm) Hoogte (mm) A4h A4 210 297 A4-STD A4 297 210 A3-STD A3 420 297 A2-STD A2 594 420 A1-STD A1 841 594 A0-STD A0 1189 841 A0-Ext1 A0 1399 841 A0-Ext2 A0 1609 841 A0-Ext3 A0 1819 841 A0-Ext4 A0 2029 841 A0-Ext5 A0 2239 841 A0-Ext6 A0 2449 841 Als alle benodigde gegevens verzameld zijn kan worden gestart met het samenstellen / maken van het block (DWG). Tijdens het starten van het bouwen van dit dynamisch block kan er een moment van een beslissing te nemen namelijk of het block gemaakt zou worden met : - Losse lijnstukken ( dat wil zeggen gewone lijnen) - Lijnstukken voorzien van parameters De keuze die toen gekozen is de optie van de losse lijnstukken. De reden waarom voor deze optie is gekozen is makkelijk te verklaren, namelijk het binnen- en het buitenrechthoek van het kader was wel te maken met de parametrisch opties maar Pagina 27 van 100

de verbindingslijnen tussen deze twee rechthoeken als ook de verticale kaders waren bijna niet mogelijk om dit te creëren. De optie met losse lijnen heeft wel als nadeel dat lijnen over elkaar worden getekend. Vervolgens zijn de kaders geïmporteerd in de tekening om vervolgens de Visibillity States te gaan maken. Na het maken van de eerste twee Visibillity States was het erg belangrijk om deze goed te testen of het ook goed werkte. Toen dit goed functioneerde konden de overige formaten worden gemaakt met de Visibillity States. Elke keer als er een kader ingevoerd was diende dit wel getest te worden. Het maken van dit dynamische block was ten op zichtte van het dynamisch block van de stempels sneller en makkelijker. De AutoCAD-gebruiker / tekenaar kan na inserten van dit dynamische block in layout (Paperspace) van de actieve tekening snel en makkelijk van kader wisselen zonder moeilijke handelingen. Het dynamische block van de kaders heeft als insertionpoint (Basepoint) 0,0 (x,y). De Z-coördinaat is niet van toepassing daar het een twee dimensionaal block / object betreft. Dit dynamische block dient op een layout (Paperspace) te worden geinsert, de reden hiervoor is dat de kader op schaal 1:1 zijn getekend. 7.1 - Hoe werkt het dynamisch block Kaders? De knop met de keuzemogelijkheid voor het kaderformaat geeft na het aanklikken een submenu weer met de lijst van kaderformaten waar uit gekozen kan worden. Deze knop is weergegeven in de vorm van een blauw driehoekje. Dit driehoekje wordt zichtbaar als je het dynamisch block (kader) geselecteerd wordt. Het submenu van de kaders bestaat uit de volgende kaders waar men uit kan kiezen: A0-Ext6_(841x2449mm) A0-Ext5_(841x2239mm) A0-Ext4_(841x2029mm) A0-Ext3_(841x1819mm) A0-Ext2_(841x1609mm) A0-Ext1_(841x1399mm) A0-STD_(841x1189mm) A1-Ext1_(594x1051mm) A1-STD_(594x841mm) A2-STD_(420x594mm) A3-STD_(297x420mm) A4h_(297x210mm) A4v_(210x297mm) In de onderstaande afbeelding is dit visueel zoals de gebruiker dit zal zien. Pagina 28 van 100

De coördinaten die zijn weergegeven is het insertionpoint van het block. Dit block dient op de oorsprong van de tekening te worden geinstert dit in verband met de plotterinstellingen. Maar daarnaast is dit ook voor de gebruikers prettig die vaak eigengemaakte pagesetup-instellingen hebben die worden geladen als ze batch plot moeten maken van tekeningen. Met batch plot wordt bedoelt dat de gebruiker veel tekeningen in 1 commando wil plotten / afdrukken om zo werk te besparen. X/Y-coordinaat 0,0 Kader Knop met de keuzemogelijkheid voor kaderformaat De hierboven weergegeven afbeelding geeft het formaat van een A0-STD (A0- standaard 1189x841mm) maar de locaties van de Keuzeknop en het insertionpoint zijn voor alle kaderformaten die in het block verwerkt zijn gelijk. Pagina 29 van 100

Pagina 30 van 100

Hoofdstuk 8: Omzetten naar VB.net-code (optie 3) De derde optie die is uitgewerkt in deze eindopdracht is het programmeren, in programmeertaal VB.net, van de gewenste bestanden die in de huidige situatie (optie 1) bestaan uit diverse DWGbestanden. In tegenstelling tot de vorige twee opties, optie 1 DWG-bestanden en optie 2 Dynamische blocken, zullen er geen DWG-bestanden worden geprogrammeerd die buiten de tekening(en) op het netwerk of op een ander geheugenmedium (USB-stick of portable HD-drive) worden opgeslagen. Het resultaat van deze optie is dus een gewoon één, klein van bestandsgrootte, bestand voorzien van de programmeercode. Dit is eigenlijk in eenvoudige uitleg van deze optie. Wat betreft de DWG-bestanden, deze worden daadwerkelijk gemaakt door de programmacode die voor deze optie is gemaakt, maar de DWG-bestanden worden als block in de tekening geplaatst en niet weggeschreven als een Wblock. 8.1 - Het verschil tussen een Block en een Wblock: Het verschil tussen een block en een Wblock is eigenlijk alleen de plaats waar dit bestand (want dat is een block eigenlijk) wordt weggeschreven / opgeslagen. Een block wordt weggeschreven in de actuele tekening, terwijl een Wblock buiten de tekening wordt weggeschreven om vervolgens als block in de actuele tekening en andere tekeningen te worden geinsert. Bij het wegschrijven van een Wblock is de gebruiker eigenlijk een soort van bestandenbibliotheek (Library) aan het maken. Dit is makkelijk om niet steeds hetzelfde block te moeten maken. Optie 1 is eigenlijk een bibliotheek van DWG-bestanden die behoorlijk onderhoudsgevoelig en veel werk op levert als deze geupdate dient te worden. Vandaar dat de programmeercode die in deze optie is uitgewerkd geen DWG-bestanden als Wblock savedwegschrijft maar deze wegschrijft als block in de actuele tekening. Bij wijzigingen aan de blocken (bijvoorbeeld ander logo) hoeft de programmeur alleen de programmacode aan te passen en het onderhoud / updaten van de blocken is gereed. Dit is dus minder arbeidsintensief dan het aanpassen van de diverse DWG-bestanden zoals omschreven is in optie 1 (Hoofdstuk 4). Alleen dient degene die de aanpassingen maakt aan de programmeercode kennis te hebben van het programmeren in de programmeertaal VB.net. Voor het programmeren van de programmeertaal VB.net is een speciaal softwareprogramma nodig, welk te onderscheiden is in 2 versies namelijk: - Microsoft Visual Express (Gratis, beperkte options) - Microsoft Visual Studio De twee grootste verschillen tussen deze twee programma s is dat Microsoft Visual Express een gratis programma is dat iedereen gratis kan downloaden van de website van Microsoft. Daarnaast is Visual Express voorzien van beperkte opties. Terwijl de gebruiker voor het andere programma Microsoft Visual Studio dient te betalen, maar dit programma is daarom wel full options. Het programma Microsoft Visual Express is voldoende om deze optie van de eindopdracht te maken. Er zullen natuurlijk ook andere programma s beschikbaar zijn waar je de VB.net-code in zou kunnen programmeren / schrijven maar deze worden in deze opdracht niet behandeld. Voor deze optie is gekozen voor VB.net daar dit de opvolger van de programmeertaal VBA (Visual Basic for Apllictions) die niet meer ondersteund wordt / gaat worden door Autodesk (Producent van het programma AutoCAD). Een andere optie zou het programmeren in de programmeertaal van Autodesk zelf te zijn geweest namelijk AutoLISP. Deze programmeertaal wordt wel nog gewoon Pagina 31 van 100

ondersteund, daarnaast is deze taal zeer krachtig maar is daardoor wel behoorlijk moeilijk om te programmeren. Maar als nadeel heeft deze taal dat de foutmeldingen behoorlijk zoekwerk opleveren. Dit is in de programmeertaal VB.net gemakkelijker, want het softwareprogramma geeft aan waar en welke regel de fout staat en waarom deze fout. Optie 3 heeft misschien wel als grootste kenmerk dat er minder bestanden zijn voor de gebruiker ten opzichte van de opties 1 en 2. In optie 3 worden er door de programmeur diverse bestanden gemaakt indien deze ook gebruik wil maken van bijvoorbeeld een logo in DWG-bestandsformaat. Maar het is dus ook mogelijk om het zo te programmeren dat er maar 1 bestand nodig is. In deze opdracht is er ook gekozen om de programmeertaal te verwerken in maar een bestand om het compact, duidelijk te houden maar ook dat er geen verschillen van versies ontstaan tussen bestanden. Want verschillende versies van programmeertaal in een programma is nooit handig, en levert uiteindelijk alleen maar problemen / fouten op waar je niet op zit te wachten. Dus in deze optie wordt er geen gebruik gemaakt van DWG- of DWT-bestanden dit wordt allemaal in programmacode verwerkt. Daarnaast is het programmeren van 1 bestand ook makkelijk indien het tekenwerk wordt uitbesteed aan een derde partij en de bedrijfsstandaard makkelijk mee te geven is in 1 bestand. Als het programmeren gereed is dient het project te worden gecomprimeerd (built) door de programmeersoftware tot één bestandsformaat. Dit bestand heeft dan de extensie.dll. De afkorting DDL staat voor Dynamic Link Library. Met andere woorden dit bestandsformaat is een samenbouw / bibliotheek van meerdere kleine programmaatjes die allemaal met elkaar kunnen werken / elkaar nodig hebben voor het uitvoeren van het programma. 8.2 - Verzamelen van informatie Voordat er gestart kan worden met het daadwerkelijk programmeren moet er eerst een plan van aanpak te worden gemaakt om zo vooraf een duidelijk te formuleren waar aan het programma dient te voldoen en welke functies er geprogrammeerd dienen te worden. Het is het slimste om deze dan eerst de functies op te gaan schrijven in een vorm lijst, om vervolgens de functies één voor één nauwkeuriger te gaan omschrijven. Dit omschrijven kan tekstueel maar daarnaast is het verstandig om dit ook uit te werken in een volgordediagram (Flowchart) om zo een beter inzicht te krijgen in de werking, eisen / voorwaarden van de functie. Tevens is een volgordediagram ook makkelijk om standaardhandelingen inzichtelijk te maken. Denk hierbij aan de opties zoals If-then, (als de voorwaarde voldoet dan volgt). Bij het verzamelen van de informatie zijn een paar vragen belangrijk namelijk: - Welke gegevens zijn nodig? - Zijn erg gegevens van de huidige situatie die te gebruiken zijn? - Welke gegevens moeten worden opgevraagd / opgezocht? - Zijn er personen (binnen of buiten in het bedrijf) die mij kunnen voorzien van specifieke gegevens? - Hoe kom ik aan de gegevens? - Noteer de gegevens in een lijst zodat er altijd duidelijk is van welke gegevens er uit is gegaan. In dit geval zijn er bestaande DWG-bestanden beschikbaar waaruit 99% van de benodigde informatie uit kon worden gehaald. De informatie die uit het bestaande DWG-bestand kan worden gehaald zijn weergegeven in de volgende tabel: - Insertionpoint - Kleuren van de objecten - Tekststylen conform bedrijfsstandaard, - Weergave van de huidige onderdelen, zoals stempels (Groot en klein formaat) of welke kaders dienen er worden voorzien. - Huidige DWG-bestanden uitpluizen naar gegevens zoals insertionpoints, justify-punten van teksten / attributen Pagina 32 van 100

- Coördinaten van de exacte posities van de objecten / teksten. - Lengte van de lijnstukken, - Layerbenamingen, - Bedrijfslogo? o Wordt dit ingeladen of is dit verwerkt als block in het DWG-bestand? o o - Enzovoort Bedrijfslogo opgebouwd als DWG-bestand of is het een afbeelding? Indien het bedrijfslogo als DWG-bestand is opgebouwd nagaan of hoe het is opgebouwd zodat het kan worden geprogrammeerd in VB.net-code. 8.3 - Starten met programmeren Als de gegevens / informatie verzameld zijn kan er worden begonnen met het programmeren van de functie. Gedurende het programmeren zullen er nog wel gegevens ontbreken waar bij het verzamelen van de gegevens niet aan gedacht is of misschien zelfs is vergeten. En gedurende het programmeren zal ook duidelijk worden dat niet alles in 1 functie kan worden geprogrammeerd maar dat het ook slimmer is om programmacode op te delen in kleinere functies die weer bij andere functie gebruikt kunnen worden. Een paar voorbeelden hiervan zijn: - Aanmaken van een layer, - Actief maken van een layer, - Creëren van een lijnstuk, - Filteren op object, benaming of zelfs of iets aanwezig is in de tekening (database) - Enzovoort. Zo wordt ook duidelijk dat een eenvoudige functie toch meer programmeerwerk heeft dan vooraf gedacht wordt. Voor elke grote functie is het verstandig om een stappenplan (Flow-chart) te maken om zo de stappen / voorwaarden die de functie bepalen inzichtelijk te maken. Uiteraard is het natuurlijk ook mogelijk om dit voor kleinere functies te doen. Het stappenplan is het ook handig om de delen programmeercode naast de betreffende stappen te plaatsen waardoor je een nog duidelijke beeld krijgt van het programmeren van de functie. Tevens worden bepaalde opties van programmeren (b.v. If-then -opties, enzovoort) meteen zichtbaar. Na het maken van het stappenplan kan worden gestart met programmeren van de functies. Om tijdens het programmeren de overview te hebben is het verstandig om een plan van aanpa kmaken om de volgorde van werken aan te houden. Want tijdens het programmeren is het makkelijk om af te wijken van het oorspronkelijke plan. Het plan is hieronder weergegeven: Plan van aanpak tijdens het programmeren: 1. Maak een omschrijving (tekstueel) van de functie van het programma. 2. Maak van de functies (totale functie en subfuncties) volgorde diagrammen (flow charts). 3. Details van het volgorde diagram uit werken in een gedetailleerd volgorde diagram. 4. Stel mijlpalen vast!!!! 5. Aanmaken van een project (Programma) in het software-programma Visual Studio. 6. Programmeren / samenstellen van visuele dialoogboxen. 7. Programmeren van de kleinere (sub-) functies. (Indien gewenst aantekeningen / opmerkingen verwerken in de programmeercode om later nog te kunnen nagaan waarom bepaalde functies gemaakt zijn) 8. Testen van de geprogrammeerde functies 9. Aanpassen / verbeteren van geteste functies. (Indien gewenst aantekeningen / opmerkingen verwerken in de programmeercode om later nog te kunnen nagaan waarom bepaalde functies gemaakt zijn) 10. Samenbouwen / koppelen van de functies 11. Testen van de samengebouwde / gekoppelde functies 12. Testen van het totale programma Pagina 33 van 100

Het is natuurlijk mogelijk om alles is één grote routine te programmeren, maar dit is praktisch gezien geen slimme optie, want het is niet mogelijk om een bepaald deel van een routine aan te roepen om te gebruiken bij een andere code. Daarom is het verstandig om zo veel mogelijk kleinere subroutines te schrijven zodat deze weer te benaderen (aanroepen) vanuit andere routines. Op deze manier maak je optimaal gebruik van de mogelijkheid, maar tevens bespaart het dubbelwerk wat programmeren betreft. Tijdens het starten van het daadwerkelijke programmeren zijn eerst de toolpalettes aangemaakt en vervolgens wordt de layout gemaakt voor de dialoogbox (Userinterface) door deze te voorzien van de objecten die benodigd zijn om de dialoog box te maken zoals deze gewenst is. Het is het visuele bedieningsmenu dat de gebruiker zal gaan gebruiken. Deze dialoogbox dient wel overwogen te worden gemaakt. Hier wordt mee bedoeld dat er geen onzinnig objecten / functies zijn verwerkt. De dialoogbozen hebben mede als functies dat de gebruiker snel en overzichtelijk kan werken met deze functies. Zoeken op een dialoogbox leidt tot tijdverlies maar ook tot ontevredenheid bij de gebruiker welk weer resulteert dat deze minder plezier heeft en te veel tijd nodig heeft. Als de dialoogboxen naar wens zijn kan worden begonnen met het programmeren van de functies en subfuncties. 8.4 - Structuur van het VB-project In het project is een structuur gemaakt wat betreft de locatie waar de geprogrammeerde functies zijn verzameld. Deze structuur bestaat uit een aantal hoofdgroepen (modules). Deze groepen zijn hieronder weergegeven. Een afbeelding van deze groepen in het programmeerprogramma is daarnaast weergegeven. De hoofdgroepen zijn: - mdlaantekeningen. (Deze module bevat aantekeningen zie gemaakt zijn ten behoeve van het programmeren) - mdlattributen, (Deze module bevat functies betreffende: Attributen) - mdlblocks, (Deze module bevat functies betreffende: Blocks) - mdlfilter, (Deze module bevat functies betreffende: Filters) - mdlhatch, (Deze module bevat functies betreffende: Hatching (Arceringen) - mdlinstellingen, (Deze module bevat functies betreffende: Instellingen, systeeminstellingen) - mdlkaders, (Deze module bevat functies betreffende: Kaders (Samenvoeging van codes voor kaders) - mdllayers, (Deze module bevat functies betreffende: Layers) - mdlopvragen, (Deze module bevat functies betreffende: Opvragen) - mdlpagesetup, (Deze module bevat functies betreffende: Pagesetup) - mdlpurge, (Deze module bevat functies betreffende: Purge (Verwijderen van ongebruikte objecten in de database)) - mdlstempels, (Deze module bevat functies betreffende: Stempels (Samenvoeging van codes voor stempels) - mdltekenen, (Deze module bevat functies betreffende: Tekenen) - mdlteksten, (Deze module bevat functies betreffende: Teksten) - mdltoevoegen, (Deze module bevat functies betreffende: Toevoegen) - mdlverwijderen, (Deze module bevat functies betreffende: verwijderen) - mdlview, (Deze module bevat functies betreffende: view) - mdlwijzigen, (Deze module bevat functies betreffende: wijzigen) - mdlzoom, (Deze module bevat functies betreffende: zoom) Voor het programmeren van het stempels en de kaders zijn diverse kleine (sub)functies gemaakt. Deze kleinere functies zijn ook weer voor andere functies. Deze functies zijn Een aantal (sub)functies zijn: - Aanmaken van een nieuwe layer Pagina 34 van 100

- Aktief maken van een bepaalde layer zonder bepaalde eigenschappen - Aktief maken van een bepaalde layer met bepaalde eigenschappen Aanmaken van tekststylen - Aanmaken van standaard STabiCAD-layers - Tekenen van een lijnstuk - Aanmaken van een Vport-layer - Aanmaken van een hatching (Arceerpatroon) - Arceren van een object(en) Deze (sub)functies zijn verzameld, op onderwerp, in hoofdgroepen zoals die hierboven zijn weergegeven. 8.5 - Structuur van de stempels Nu meer inzichtelijk is gemaakt hoe het VB-project globaal is opgezet is het ook mogelijk om (globaal) inzichtelijk te maken hoe het stempel is opgezet. Hieronder is een screenshot weergegeven van de (sub)functies die specifiek zijn gemaakt zijn om de stempels te kunnen maken. Voor een A0-stempel (A0-A1) Voor een A4-stempe (A2-A3-A4). Deze (sub)functies worden op de module van de toolpalette (uscpalette2.vb voor de Nederlandse stem- Pagina 35 van 100

pels en uscplaette3.vb voor de Engelstalige stempels) samengevoegd tot één programmacode met als functie het creëren van een stempel, uiteraard is het formaat van het stempel afhankelijke van de keuze van de grebruiker. Om dit duidelijker te maken is hiernaast een screenshot van de code Hier is de deel van een samengebouwde functie van meerdere functies. - Filteren op bloknaam - Verwijderen van filterresultaat - Purgen van blocks (2x) - Plaatsen A0-stempel De hierboven weergegeven programmeercode wordt aangestuurd door de toolpalette die door de gebruiker te gebruiken is voor het selecteren van het gewenste stempel maar deze programmeercode is voor de gebruiker niet zichtbaar of wijzigbaar. De gebruiker zoals reeds eerder omschreven in dit verslag een toolpalette waar deze zijn gewenst stempel kan selecteren. Deze toolpalette ziet er (in AutoCAD) als volgt uit. Toolpalette Stempels NED Toolpalette Stempels ENG Plaats stempel Wijzig adres Pagina 36 van 100

De toolpalettes voor de stempels (Nederlandse- en Engelstalige stempels) zijn identiek met uitzondering van het resultaat dat wordt getekend op de tekening. Een toolpalette is ook te omschrijven als een verzamelplaats voor het samenbouwen van meerdere (kleinere) functies tot één (grotere) functie. 8.6 - Structuur van de kaders Voor de structuur van de kaders kan worden gezegd dat deze deels identiek is aan de structuur van de stempels, namelijk dat er een toolpalette is gemaakt voor de bediening door de gebruiker. Deze toolplatte ziet er als volgt uit. Toolpalette Kaders Plaats kader Deze toolpalette geeft de keuze mogelijkheid van kaders weer waar de gebruiker uit kan keizen. Achter deze toolpalette zit uiteraard ook weer een behoorlijke programmacode, die opgebouwd is uit diverse (sub)-functies tot één grote functie. Hieronder is een screenshot weergegeven met daarin een de diverse subfuncties benoemd. Pagina 37 van 100

Omschakelen van Modelspace naar Paperspace Nieuwe layers Layer aktief maken Dit is een deel een samengebouwde functie van diverse functies voor het plaatsen van een A0-kader Opvragen en wijzigen van de layoutnaam Dit is een beknopte omschrijving van het programmeren en de structuur binnen het programma. Pagina 38 van 100

Hoofdstuk 09: Omschrijven / uitleg programmacode In dit hoofdstuk worden een drietal delen van uit de programmeercode omschreven in normale tekst zodat iemand zonder programmeerkennis ook begrijpt wat de computertaal doet / uitvoert. De omschrijving wordt als volgt weergegeven: - Code = de programmeercode - Omschrijving = is de programmeercode omschreven in normale tekst 9.1 Functie Plaats kader De volgende programmeercode is geprogrammeerd achter onderstaande deel programmacode is afkomstig uit de code die is geprogrammeerd achter de knop Plaats kader op het eerste tabblad (Kaders) en gaat over het de voorwaardestelling (Case select). Code: Omschrijving: Overschakelen van Modelspace naar Paperspace ook wel Layout genoemd. Code: Omschrijving: Maak een nieuwe laag aan met de volgende eigenschappen: Naam: BL$2A--_KADER025 Kleur: 50 Current / aktief: True PlotNoPlot: True Maak een nieuwe laag aan met de volgende eigenschappen: Naam: BL$2A--_KADER050 Kleur: 130 Current / aktief: True PlotNoPlot: True Code: Omschrijving: Maak laag BL$2A--_KADER025 current / aktief Pagina 39 van 100

Code: Omschrijving: Reserveer een geheugenplaats met de naam Layoutname met als eigenschap tekst. Code: Omschrijving: De voorwaarde waaraan voldaan dient te worden is waar. Code: Omschrijving: - De radiobutton A0-STD (1189x841mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA0STD met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A0-STD (1189x841mm) Code: Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A0-STD (1189x841mm). Code: Pagina 40 van 100

Omschrijving: - De radiobutton A0-Ext1 (1399x841mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA0Ext1 met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A0-Ext1 (1399x841mm) Code: Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A0-Ext1 (1399x841mm). Code: Omschrijving: - De radiobutton A0-Ext2 (1609x841mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA0Ext2 met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A0-Ext2 (1609x841mm) Code: Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A0-Ext2 (1609x841mm). Code: Pagina 41 van 100

Omschrijving: - De radiobutton A0-Ext3 (1819x841mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA0Ext3 met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A0-Ext3 (1819x841mm) Code: Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A0-Ext3 (1819x841mm). Code: Omschrijving: - De radiobutton A0-Ext4 (2029x841mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA0Ext4 met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A0-Ext4 (2029x841mm) Code: Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A0-Ext4 (2029x841mm). Code: Pagina 42 van 100

Omschrijving: - De radiobutton A0-Ext5 (2239x841mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA0Ext5 met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A0-Ext5 (2239x841mm) Code: Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A0-Ext5 (2239x841mm). Code: Omschrijving: - De radiobutton A6-Ext6 (2449x841mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA0Ext6 met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A0-Ext6 (2449x841mm) Code: Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A0-Ext6 (2449x841mm). Code: Omschrijving: Pagina 43 van 100

Code: - De radiobutton A1-STD (841x594mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA1STD met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A1-STD (841x594mm) Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A1-STD (841x594mm). Code: Omschrijving: - De radiobutton A1-Ext1 (1051x594mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA1Ext1 met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A1-Ext1 (1051x594mm) Code: Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A1-Ext1 (1051x594mm). Code: Omschrijving: - De radiobutton A2-STD (594x420mm) is geselecteerd. Pagina 44 van 100

Code: - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA2STD met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A2-STD (594x420mm) Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A2-STD (594x420mm). Code: Omschrijving: - De radiobutton A3-STD (420x297mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA3STD met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A3-STD (420x297mm) Code: Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A3-STD (420x297mm). Code: Omschrijving: - De radiobutton A4-STD (297x210mm) is geselecteerd. Pagina 45 van 100

Code: - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA4STD met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A4-STD (297x210mm) Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A4-STD (297x210mm). Code: Omschrijving: - De radiobutton A4v-STD (210x297mm) is geselecteerd. - Reserveer een geheugenplaats met de naam FilterResultaat met als eigenschap een nieuwe ObjectIdCollection - Uitvoeren van het filter FilterKadersNotA4vSTD met als teruggave van het filterresultaat (aangeduid als Filterresultaat) - Verwijderen van het filterresultaat van de bovenstaande filter. - Opschonen van de tekening (Database), dit wordt 2x uitgevoerd - Plaatsen van het kader A4v-STD (210x297mm) Code: Omschrijving: - Opvragen en wijzigen van de layoutnaam. De huidige naam wordt gewijzigd in A4v-STD (210x297mm). 9.2 Functie Plaats A0-stempel (Nederlands) De volgende programmacode is geprogrammeerd achter de button Plaats stempel die op palette 2 (Stempels Nederlands) is geprogrammeerd. Deze omschrijving is ook van toepassing op het 3de tabblad Stempels Engels met als afwijking de taalkeuze Engels in plaats van Nederlands. De programmeercode is bijna identiek aan de code van het 2de tabblad. Code: Pagina 46 van 100

Omschrijving: Overschakelen van Modelspace naar Paperspace ook wel Layout genoemd. Code: Omschrijving: De voorwaarde waaraan voldaan dient te worden is waar. Code: Omschrijving: - De radiobutton (voorwaarde) EindhovenA0_NL is geselecteerd - Reserveer geheugenplaats FilterResultaat als eigenschap een nieuwe ObjectIdCollection - Filteren op bloknaam A4-stemp1 met teruggave van resultaat genaamd FilterResultaat - Verwijderen van het filterresultaat - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Plaatsen van het A0-stempel met als tekst Nederlands en vestigingsadres Eindhoven Code: Omschrijving: - De radiobutton (voorwaarde) NijmegenA0_NL is geselecteerd - Reserveer geheugenplaats FilterResultaat als eigenschap een nieuwe ObjectIdCollection - Filteren op bloknaam A4-stemp1 met teruggave van resultaat genaamd FilterResultaat - Verwijderen van het filterresultaat - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Plaatsen van het A0-stempel met als tekst Nederlands en vestigingsadres Nijmegen Code: Pagina 47 van 100

Omschrijving: - De radiobutton (voorwaarde) RijswijkA0_NL is geselecteerd - Reserveer geheugenplaats FilterResultaat als eigenschap een nieuwe ObjectIdCollection - Filteren op bloknaam A4-stemp1 met teruggave van resultaat genaamd FilterResultaat - Verwijderen van het filterresultaat - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Plaatsen van het A0-stempel met als tekst Nederlands en vestigingsadres Rijswijk Code: Omschrijving: - De radiobutton (voorwaarde) EindhovenA4_NL is geselecteerd - Reserveer geheugenplaats FilterResultaat als eigenschap een nieuwe ObjectIdCollection - Filteren op bloknaam A0-stemp1 met teruggave van resultaat genaamd FilterResultaat - Verwijderen van het filterresultaat - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Plaatsen van het A4-stempel met als tekst Nederlands en vestigingsadres Eindhoven. Code: Omschrijving: - De radiobutton (voorwaarde) Maastricht_NL is geselecteerd - Reserveer geheugenplaats FilterResultaat als eigenschap een nieuwe ObjectIdCollection - Filteren op bloknaam A0-stemp1 met teruggave van resultaat genaamd FilterResultaat - Verwijderen van het filterresultaat Pagina 48 van 100

Code: - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Plaatsen van het A4-stempel met als tekst Nederlands en vestigingsadres Maastricht Omschrijving: - De radiobutton (voorwaarde) NijmegenA4_NL is geselecteerd - Reserveer geheugenplaats FilterResultaat als eigenschap een nieuwe ObjectIdCollection - Filteren op bloknaam A0-stemp1 met teruggave van resultaat genaamd FilterResultaat - Verwijderen van het filterresultaat - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Plaatsen van het A4-stempel met als tekst Nederlands en vestigingsadres Nijmegen Code: Omschrijving: - De radiobutton (voorwaarde) RijswijkA4_NL is geselecteerd - Reserveer geheugenplaats FilterResultaat als eigenschap een nieuwe ObjectIdCollection - Filteren op bloknaam A0-stemp1 met teruggave van resultaat genaamd FilterResultaat - Verwijderen van het filterresultaat - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Opschonen (verwijderen van niet gebruikte objecten) van de tekening - Plaatsen van het A4-stempel met als tekst Nederlands en vestigingsadres Rijswijk Code: Omschrijving: Einde van de lijst met (mogelijk) voorwaardenlijst Code: Pagina 49 van 100

Omschrijving: - Zoom Extends uitvoeren - Zoom Extends uitvoern - Aktief maken van het AutoCAD-scherm (Set focus to DWGView) - Updaten / verversen van het beeldscherm Code: Omschrijving: - Maak laag 0 current / aktief. 9.3 Functie FilterKadersNotA0Ext3 Deze functie is heeft als doel om de tekening (database) te filteren op alles wat niet kader A0-Ext3 is. En het resultaat terug te geven als een referentie. Om hier in een andere functie iets mee te kunnen doen. Code: Omschrijving: Openbare Functie met de naam FilterKadersNotA0Ext3 en referentie Col wordt als ObjectIdCollection terg gegeven as boolean Code: Omschrijving: Geheugenplaats reserveren voor doc, doc wordt verandert in application.documentmanager.mdiactivedocument Code: Omschrijving: Reserveer geheugenplaats genaamd Filter als een TypedValue (TypeValue is een combinatie van 2 argumenten). Deze regel is tevens de laatste regel van het filter. Code: Pagina 50 van 100

Omschrijving: - 1 e Regel: In deze regel worden de twee argumenten samengevoegd tot een New TypedValue. Het eerste argument is Dxfcode.start en als tweede argument wordt Insert gebruikt. Met andere woorden er wordt in deze regel een filter omschreven welk filtert op de argumenten DxfCode en Insert. - 2 e Regel: In deze regel worden de twee argumenten DxfCode.Operator en Insert worden samengevoegd. - 3 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A4v-STD_(210x297mm) worden samengevoegd. - 4 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A4-STD_(297x210mm) worden samengevoegd. - 5 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A3-STD_(420x297mm worden samengevoegd. - 6 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A2-STD_(594x420mm worden samengevoegd. - 7 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A1-STD_(841x594mm worden samengevoegd. - 8 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A1-Ext1_(1051x594mm worden samengevoegd. - 9 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A0-STD_(1189x841mm worden samengevoegd. - 10 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A0-Ext1_(1399x841mm worden samengevoegd. - 11 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A0-Ext2_(1609x841mm worden samengevoegd. Pagina 51 van 100

Code: - 12 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A0-Ext4_(2029x841mm worden samengevoegd. - 13 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A0-Ext5_(2239x841mm worden samengevoegd. - 14 e Regel: In deze regel worden de twee argumenten DxfCode.BlockName en A0-Ext6_(2449x841mm worden samengevoegd. Dit is de achtste regel van het filter waar in de argumenten DxfCode.BlockName en A1-Ext1_(1051x594mm worden samengevoegd. Omschrijving: Reserveer geheugenplaats genaamd selectiefilter als een nieuwe selectiefilter genaamd filter. Code: Omschrijving: Reserveer geheugenplaats genaamd Antwoord. Antwoord wordt verandert is doc.editor.selectall zijn (Selectiefilter) Code: Omschrijving: -1 e Regel: Als Antwoord.Status wordt verandert in PromptStatus zijn status van OK dan -2 e Regel: Reserveer een geheugenplaats genaamd SelectieSet. SelectieSet wordt verandert in Antwoord zijn waarde -3 e Regel: De geheugenplaats Col wordt verandert in een nieuwe objectidcollection (SelectieSet.GetobjectIds) -4 e Regel: FilterKaderNotA0Ext3 is waar -5 e Regel: Anders -6 e Regel: FilterKadersNotA0Ext3 is niet waar -7 e Regel: Einde als Code: Omschrijving: Pagina 52 van 100