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
Nijmegen
Amsterdam
Groningen
Rijswijk
Pagina 10 van 100
Maastricht
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 A0-STD A0-Ext1 A0-Ext2 A0-Ext3 A0-Ext4 A1-STD A2-STD A3-STD A4h A4v Z3 Z4 Z5
Afmeting (mm)
Bestandsnaam (DWG)
Bestandsnaam (DWT)
1189x841 1399x841 1609x841 1819x841 2029x841 841x594 594x420 420x297 297x210 210x297 630x297 840x297 1050x297
A0-kader.dwg A0-Ext1-kader.dwg A0-Ext2-kader.dwg A0-Ext3-kader.dwg A0-Ext4-kader.dwg A1-kader.dwg A2-kader.dwg A3-kader.dwg A4h-kader.dwg A4v-kader.dwg Z3-kader.dwg Z4-kader.dwg Z5-kader.dwg
A0-dri.dwt A0-Ext1-dr.dwt A0-Ext2-dri.dwt A0-Ext3-dri.dwt A0-Ext4-dri.dwt A1-dri.dwt A2-dri.dwt A3-dri.dwt A4h-dri.dwt A4v-dri.dwt Z3-dri.dwt Z4-dri.dwt Z5-dri.dwt
Stempels Nederlands: Omschrijving A0-stemp1 A4-stemp1
Taal Nederlands Nederlands
Toepassen bij kader A0, A1 A4, A3, A2, Z3, Z4, Z5
Bestandsnaam (DWG) A0-stemp1.dwg A4-stemp1.dwg
Taal Engels Engels
Toepassen bij kader A0, A1 A4, A3, A2, Z3, Z4, Z5
Bestandsnaam (DWG) A0-stemp1-eng.dwg A4-stemp1-eng.dwg
Stempels Engels: Omschrijving A0-stemp1 A4-stemp1
Overige bestanden die benodigd worden bij de stempels Omschrijving Deerns-RI Nederlands Deerns-RI Engels
Taal Nederlands Engels
Toepassen bij Nederlandse stempels Engelse stempels
Bestandsnaam (DWG) A0-stemp1-eng.dwg A4-stemp1-eng.dwg
Daarnaast zijn er nog een aantal DWG-bestanden die worden gebruikt bij de huidige standaard. Deze bestanden zijn: Naam acadiso A0-arch A0-inst A0-opdr
Omschrijving Template-bestand met standaard instellingen Block gegevens architect Block gegevens installateur Block gegevens opdrachtgever
Pagina 18 van 100
Bestandsnaam (DWG) Acadiso.dwg A0-arch.dwg A0-insti.dwg A0-opdr.dwg
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 Rijswijk NL Rijswijk ENG Eindhoven NL Eindhoven ENG Maastricht NL Maastricht ENG Nijmegen NL Nijmegen ENG Groningen NL Groningen ENG Amsterdam NL Amsterdam ENG
Vestiging Rijswijk Rijswijk Eindhoven Eindhoven Maastricht Maastricht Nijmegen Nijmegen Groningen Groningen Amsterdam Amsterdam
Taal Nederlands Engels Nederlands Engels Nederlands Engels Nederlands Engels Nederlands Engels Nederlands 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 A4h A4-STD A3-STD A2-STD A1-STD A0-STD A0-Ext1 A0-Ext2 A0-Ext3 A0-Ext4 A0-Ext5 A0-Ext6
Naam A4 A4 A3 A2 A1 A0 A0 A0 A0 A0 A0 A0
Lengte (mm) 210 297 420 594 841 1189 1399 1609 1819 2029 2239 2449
Hoogte (mm) 297 210 297 420 594 841 841 841 841 841 841 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 (A0standaard 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 Bedrijfslogo opgebouwd als DWG-bestand of is het een afbeelding? o Indien het bedrijfslogo als DWG-bestand is opgebouwd nagaan of hoe het is opgebouwd zodat het kan worden geprogrammeerd in VB.net-code. Enzovoort
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
- 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)” Code:
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
- 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)” Code:
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
- 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)” Code: 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
- 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 Code:
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: - 1e 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”. - 2e Regel: In deze regel worden de twee argumenten “DxfCode.Operator” en “Insert” worden samengevoegd. - 3e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A4v-STD_(210x297mm)” worden samengevoegd. - 4e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A4-STD_(297x210mm)” worden samengevoegd. - 5e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A3-STD_(420x297mm” worden samengevoegd. - 6e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A2-STD_(594x420mm” worden samengevoegd. - 7e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A1-STD_(841x594mm” worden samengevoegd. - 8e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A1-Ext1_(1051x594mm” worden samengevoegd. - 9e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A0-STD_(1189x841mm” worden samengevoegd. - 10e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A0-Ext1_(1399x841mm” worden samengevoegd. - 11e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A0-Ext2_(1609x841mm” worden samengevoegd.
Pagina 51 van 100
- 12e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A0-Ext4_(2029x841mm” worden samengevoegd. - 13e Regel: In deze regel worden de twee argumenten “DxfCode.BlockName” en “A0-Ext5_(2239x841mm” worden samengevoegd. - 14e 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. Code:
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: -1e Regel: Als Antwoord.Status wordt verandert in PromptStatus zijn status van OK dan -2e Regel: Reserveer een geheugenplaats genaamd SelectieSet. SelectieSet wordt verandert in Antwoord zijn waarde -3e Regel: De geheugenplaats Col wordt verandert in een nieuwe objectIdCollection (SelectieSet.GetobjectIds) -4e Regel: FilterKaderNotA0Ext3 is waar -5e Regel: Anders -6e Regel: FilterKadersNotA0Ext3 is niet waar -7e Regel: Einde als Code:
Omschrijving: Pagina 52 van 100
Einde van de functie.
9.4 Functie “MaakLayerVports” Deze functie heeft als doel om de layer Vport aan te maken en vervolgens deze current maken. Code:
Omschrijving: Openbaar subroutine MaakLayerVports() Code:
Omschrijving: Module Layers zijn routine NieuweLaagMaken maakt de laag aan de volgende instellingen: - Laagnaam "BL$3A--_VPORTS" - Kleur: Magenta - Current of niet current: Current (True) - Plot of no plot: No Plot (False) Code:
Omschrijving: -1e Regel: Reserveer een geheugenplaats voor LaagNaam als tekst. LaagNaam wordt verandert in 0 (Nul) -2e Regel: Module Layers zijn routine MaakLaagCurrent wordt maakt LaagNaam current Code: Omschrijving: Einde subroutine
Pagina 53 van 100
Pagina 54 van 100
Hoofdstuk 10: Conclusies (Voor- & nadelen) In dit hoofdstuk worden de voordelen en nadelen van de drie omschreven opties omschrijven. Deze voor- en nadelen zijn verdeeld in twee groepen, namelijk: - Voor- en nadelen per optie - Voor- en nadelen tussen twee opties. 10.1 - Voor- en nadelen huidige DWG’s updaten (Optie 1) Voordelen: - Huidige standaard is werkzaam en hoeft niet op nieuw te worden gemaakt. - Gebruiker met beperkte kennis van het programma AutoCAD kan de blocken wijzigen. Nadelen: - Veel bestanden. - Meer ruimte op de server benodigd voor het opslaan van de bestanden. - Wijzigen / updaten / onderhouden van de bestanden vergt veel tijd. - Mogelijkheid tot verschillen, omdat op meerdere locaties dezelfde bestanden vermeld staan. 10.2 - Voor- en nadelen dynamische blocken (Optie 2) Voordelen: - Aantal bestanden beperkt tot 3 (“A0-stemp.dwg”, “A4-stemp1.dwg” en “Kaders.dwg”) - Alle opties in block verwerkt. ( Alle kaders bij elkaar in 1 block, Alle mogelijkheden van stempels bij elkaar in 1 block). - Bedrijfstemplate bestaat uit 2 bestanden. - Makkelijk te keuze te maken tussen de mogelijkheden / opties. Nadelen: - Moeilijker aan te passen door de gebruiker. Gebruiker dient kennis te hebben van het maken / wijzigen van een dynamisch block. - Het maken van een dynamisch block duurt langer dan het maken van een standaard block. Dit is uiteraard afhankelijk van het aantal opties.
10.3 - Voor- en nadelen van VB.net-code (Optie 3) Voordelen: - Bedrijfstemplate bestaat uit 1 bestand. Pagina 55 van 100
-
Bestand klein van formaat (bestandgrootte), dus weinig ruimte benodigd op een server. Programma is te gebruiken vanaf USB-stick (Verwisselbare schijf). Makkelijk uit te breiden / aan te passen als je goede kennis hebt van deze programmeertaal. Mogelijk om functies / routines die vaak worden gebruikt te gaan “schrijven” in VB.net-taal. Bedrijfstemplate is makkelijk uit te wisselen met derden, omdat het maar 1 bestand is dat programmeertechnisch niet te wijzigen is door derden.
Nadelen: - Om de programmacode te wijzigen dient men goede kennis te hebben van het deze computertaal. 10.4 - Voor- en nadelen tussen optie 1 en optie 2: De voor- en nadelen tussen de opties 1 en 2 zijn hieronder weergegeven: Voordelen: - Optie 1 is makkelijker aan te passen door elke gebruiker met de basiskennis van het programma AutoCAD. - Optie 2 heeft minder bestanden dan optie 1, dus ook minder schijfruimte op de server nodig. - Bij optie 2 is het stempel sneller en gemakkelijker te wisselen als een ander vestigingsadres of taal wilt hebben. Bij optie 1 moeten er meerdere stappen worden doorgelopen voordat het gewenste resultaat wordt bereikt. Daarom is optie 2 tijdbesparend Nadelen: - Optie 1 heeft te veel bestanden ten opzichte van optie 2, dus minder schijfruimte benodigd op de server. - Optie 2 is moeilijker aan te passen indien de gebruiker geen kennis heeft van dynamische blocken. 10.5 - Voor- en nadelen tussen optie 2 en optie 3: De voor- en nadelen tussen de opties 2 en 3 zijn hieronder weergegeven: Voordelen: - Optie 3 is makkelijk uitwisselbaar met derden. - Optie 2 is te wijzigen in het programma AutoCAD zonder gebruik te maken van andere programma’s. Wel dient de gebruiker kennis te hebben van dynamische blocken. - Optie 3 bestaat uit 1 bestand van zeer kleine bestandsgrootte. - Optie 3 is te “runnen” vanaf een USB-stick. Nadelen: - Optie 2 heeft meer schijfruimte op de server nodig dan optie 3. Het verschil is minder dan optie 1 ten op zichtte van optie 3. Pagina 56 van 100
-
Om optie 2 te wijzigen dient men kennis te hebben van het programmeren van de programmataal VB.net (Visual Studio Express (Gratis) of Visual Studio Professional).
10.6 - Voor- en nadelen tussen optie 1 en optie 3: De voor- en nadelen tussen de opties 1 en 3 zijn hieronder weergegeven: Voordelen: - Optie 1 is te wijzigen in het programma AutoCAD zonder gebruik te maken van andere programma’s. De gebruiker hoeft niet meer dan de basiskennis van het programma AutoCAD te hebben voor het doorvoeren van de wijzigingen. - Optie 1 hoeft niet meer te worden gemaakt deze is al reeds voorhanden. Optie 3 moest wel worden gemaakt en heeft dus tijd en geld gekost. Deze kosten dienen door gebruik terug verdiend te worden, terwijl er met optie 1 gewoon doorgewerkt kan worden. - Optie 3 is makkelijk uitwisselbaar met derden. - Optie 3 bestaat uit 1 bestand (Na een built van het project) van zeer kleine bestandsgrootte. - Optie 3 is te “runnen” vanaf een USB-stick. - Optie 3 kan helemaal worden geprogrammeerd na wens van de gebruiker(s). Nadelen: - Optie 1 benodigd veel meer schijfruimte op de server dan optie 3. - Bij optie 1 moeten er “knoppen” worden gemaakt om functies en routines achter te plaatsen. - Om optie 3 te wijzigen dient men kennis te hebben van de programmeertaal VB.net.
Pagina 57 van 100
Pagina 58 van 100
Hoofdstuk 11: Aanbevelingen & wensen Het programma dat in deze eindopdracht is gemaakt is van beperkte omvang (bestandsgrootte, functies), omdat het de nadruk van de opdracht ligt in het onderzoeken (kijken wat de beste keuze is voor de toekomst van de bedrijfstemplate) van drie opties. Daarom zijn er verder geen extra wensen in het programma verwerkt, maar zijn deze weergegeven in de onderstaande lijst, zodat deze kunnen worden verwerkt in de volgende versie van het programma.
11.1 - Aanvullingen huidige programma:
Wijzigen van het stempel met behoud van de attributewaardes (Attribuutwaardes niet opnieuw te hoeven in te vullen) Bij het wijzigen van het vestigingsadres de waardes van de attributen lezen en tijdelijk opslaan in een “geheugenbuffer”. Om deze vervolgens in het nieuwe stempel te verwerken.
11.2 - Aanvullingen toekomstige programma-update’s
Toolpalette “Kaders”: Een aanvulling op de functie van het tekeningen van de kaders. De aanpassing is te omschrijven als volgt: Het verplaatsen (Move) van het stempel (indien aanwezig in de tekening) naar de juist positie rechtsonder in het kader. De reden voor deze verplaatsing is een handeling weghalen bij de gebruiker.
Toolpalette “Layout”: Een toolpalette met als naam “Layout” voorzien van functies betreffende pagesetup, plot en publish. Functies zoals: Batchplot (Automatisch printen van een batch tekeningen naar PDFbestandsformaat). Layoutnaam aanpassen aan het toegepaste kader. Het plaatsen van de tekst “CONCEPT” over het tekeningstempel.
Toolpalette “Rekentools”: Een toolpalette met als naam “Rekentools”, die voorzien wordt van een aantal berekeningshulpmiddelen. Een paar berekeningstools zijn: Berekenen van verdelingen (a/2a-methode) van een lijnstuk (Divide) Berekenen van aantal armaturen in een ruimte (Snelle berekening verlichting)
Pagina 59 van 100
Berekenen van het kaderformaat en schaalfactor aan de hand van de lengte / breedte van een gebouw.
Toolpalette “Layers”: Een toolpalette met als naam “Layers” , die voorzien wordt van functies betreffende layers. Een aantal gewenste functies zijn: Automatisch aanmaken van standaardlayers die veel gebruikt worden, bijvoorbeeld: - DRI_Hulplijnen - DRI_Insertionpoint - DRI_Opmerkingen - Xref_B_Opmerkingen - Xref_B_Situatieschets - Xref_xxxx_Opmerkingen Wijzigen bylayer linetype van een bepaalde layer. Wijzigen van Color bylayer naar de gewenste kleur.
Pagina 60 van 100
Hoofdstuk 12: Zelfreflectie In dit hoofdstuk wordt een de zelfreflectie omschreven hoe ik, Joop van Wijlick, deze eindopdracht heb ervaren.
12.1 - Cursussen Bij TEC CAD-College te Nijmegen heb ik gedurende deze opleiding vier cursussen gevolgd die bij deze opleiding behoren. Deze cursussen zijn: -
AutoCAD Gevorderen. Het doel van deze cursus was om nog efficiënter om te gaan met het programma AutoCAD.
-
AutoCAD Optimalisatie (Customization) Het doel van deze cursus was het steeds verder automatiseren van het tekenwerk, maar daarnaast ook steeds meer instellingen maken waardoor het tekenwerk steeds sneller verwerkt kan worden. Denk aan het maken van templates, instellen van pagesetups, enzovoort.
-
AutoCAD en VB.net In deze cursus werd nog dieper ingegaan op het naar de hand zetten van het programma AutoCAD door gebruik te maken de computertaal Visual Basic.net, ook wel VB.net genoemd. Hierdoor is het mogelijk om doormiddel van programmeercodes het programma AutoCAD onderwerpen te laten: o Tekenen, o Wijzigen / aanpassen, o Maken van toolpalettes o Creëren van rekenfuncties o Enzovoort. In deze cursus heb ik nog veel meer geleerd maar dit waren de meest belangrijke functies.
De cursussen AutoCAD Optimalisatie en AutoCAD & VB.net waren twee zeer goede cursussen die mij erg veel geleerd hebben.
12.2 - Eindopdracht Bij de opleiding behoort ook het maken van een eindopdracht. Deze eindopdracht moest van toepassing zijn bij mijn werkgever zodat deze opdracht naast een soort van afstudeerproject is ook nog toepasbaar zou zijn in mijn dagelijkse werkzaamheden bij de werkgever (Deerns) waar ik werkzaam ben. Maar niet alleen zou het eindresultaat van deze opdracht nuttig moeten zijn in mijn dagelijkse werkzaamheden maar daarnaast zou deze voor mij moeten worden gerealiseerd met de onderwerpen die ik in de cursussen van de opleidingen geleerd heb. Denk Pagina 61 van 100
dan aan de dynamische blocken en het programmeren in de programmeercode Visual Basic.net. Tijdens het werken aan deze opdracht heb ik diverse nieuwe onderwerpen leren toepassen zoals het programmeren in Visual Basic.net maar ook het nog efficiënter gebruiken van het programma AutoCAD dan dat ik al deed. Maar ook heb ik een veel dingen over mijzelf geleerd tijdens deze opdracht. Deze zijn te omschrijven in de onderstaande woorden: - Het goed en gedetailleerd omschrijven van het idee van deze opdracht. - Het Plan van Aanpak volgen en niet hier van afwijken (indien afwijking dan zorgen dat deze afwijking minimaal is en geen (grote) gevolgen heeft voor het Plan van Aanpak. - Doorgaan tot ik dat bereikt eb wat ik wilde bereiken. - Soms te veel in detail treden.
12.3 - Resumé Als slot van deze opdracht wil ik in mijn eigen woorden omschrijven hoe deze opdracht is geworden, namelijk: “Het eindresultaat / eindopdracht is precies geworden zoals ik het voor ogen had toen ik aan deze opdracht ben begonnen”. Na deze woorden wil ik ook nog iedereen willen bedanken die mij gesteund hebben tijdens deze maken van deze opdracht. Het was vaak veel vallen en veel opstaan maar het resultaat van deze opdracht is voor mij een erg mooi resultaat geworden.
Pagina 62 van 100
Bijlage:
A Pagina 63 van 100
Pagina 64 van 100
Bijlage A: Plan van aanpak Onderwerp: Gemaakt door: Datum: Fase:
Afstudeeropdracht opleiding AutoCAD System Manager Joop van Wijlick 06 juli 2012. Definitief
Dit plan van aanpak is onderverdeeld in 4 punten, namelijk Punt 1: De omgevingsfactoren (korte omschrijving van de omgevingsfactoren) Punt 2: De probleemstelling en het onderwerp Punt 3: Globale indeling van de afstudeeropdracht Punt 4: De tijdsplanning van het project Deze vier punten zijn hieronder punt voor punt uitgewerkt.
1. De omgevingsfactoren: Mijn naam is Joop van Wijlick, 39 jaar, woonachtig in Eindhoven en ben werkzaam als project technicus (CAD-engineer) bij Deerns Raadgevende ingenieurs te Eindhoven. Mijn dagelijkse werkzaamheden zijn het vervaardigen van technische tekeningen (installatietekeningen, principeschema’s, details, enzovoort) voor de diverse projecten die we maken. Deze installaties zijn onder te verdelen in de twee groepen, namelijk: Elektrotechnische installaties Werktuigkundige installaties Het bedrijf waar ik werkzaam ben is Deerns Raadgevende ingenieurs. Dit is een technische adviesbureau met vestigingen in Nederland, maar ook een aantal internationale vestigingen. In Nederland zijn deze vestingen in: Rijswijk (Hoofdvestiging) Amsterdam Eindhoven Groningen Nijmegen Maastricht De internationale vestigingen zijn in de landen: Duitsland (Berlijn, Koln, Stuttgart) Frankrijk (Parijs) Groot-Brittannië (London) Spanje (Barcelona) Italië (Milaan) Verenigde Arabische Emiraten (Dubai) Verenigde Staten (Phoenix) De reden dat ik deze opleiding ben gaan volgen is: Verdere kennis en kunde op doen van het programma AutoCAD Leren om te programmeren met Visual Basic.NET Om meer handelingen te automatiseren en te standaardiseren Collega’s sneller en duidelijker te kunnen helpen bij hun vragen. Een mooie standaard maken die we kunnen gebruiken op het werk, waar door bepaalde handelingen sneller, gemakkelijk en duidelijk zijn.
Pagina 65 van 100
2. De probleemstelling en het onderwerp: De laatste paar weken / maanden heb ik goed nagedacht over het onderwerp van de eindopdracht. Met de heer R. Boeklagen van het CAD-college te Nijmegen heb ik tevens een gesprek gehad over het onderwerp van de eindopdracht. Tijdens dit gesprek werd duidelijk dat ik teveel onderwerpen had om uit te werken, maar gedurende dit gesprek werd duidelijk dat ik beter kan 1 of 2 onderwerpen er uit kon halen om vervolgens helemaal uit te werken en zo ook de gewenste diepgang in het project te creëren. Deze manieren ga ik uitwerken met 2 verschillen de programma’s. Deze programma’s zijn Visual Studio en AutoCAD. Op deze manier hoop een bepaalde diepgang te creëren, maar ook om veel te leren van deze 2 manieren van aanpak. Deze onderwerpen die ik wil gaan uitlichten zijn hieronder in weergegeven. In punt 2 “De probleemstelling en het ontwerp” worden deze onderwerpen uitgebreider omschreven. Deze onderdelen zijn te verdelen in twee groepen, namelijk: De huidige blocken (stempels en kaders) om te bouwen tot dynamische blocken. Dynamisch stempel Dynamisch Kader De huidige blocken (stempels en kaders) helemaal te programmeren in de computertaal VB.Net Stempels geprogrammeerd in VB.net Kaders geprogrammeerd in VB.net
Dynamische blocken Het dynamisch stempel Deerns heeft binnen Nederland 6 kantoren, elk kantoor heeft in het tekeningstempel de adresgegevens van de betreffende vestiging verwerkt. Daarnaast zijn de stempels onderverdeeld in twee typen namelijk: Nederlandse tekst Engelse tekst Voor de diverse tekeningformaten zijn er twee typen stempels per kantoor beschikbaar, namelijk: A0-stemp1.dwg voor tekeningformaten: A1, A0 A4-stemp1.dwg voor tekeningformaten: A4, A3, A2 Dit betekend dat om de template, per vestiging, te updaten dat er ruim 5 tot 6 bestanden gewijzigd / onderhouden moeten worden bij wijzigingen. Daarnaast worden er mensen tussen de vestigingen uitgeleend om bij te springen / te helpen met tekenwerkzaamheden op een andere vestiging, dan is het wel zo fijn deze op “hun” vestiging ook de bestanden kunnen gebruiken met de juiste adresgegevens. Op dit moment dient men steeds het block “A0-stemp1”of “A4-stemp1” te verwijderen, vervolgens purgen van de tekening en dan het nieuwe stempel te plaatsen. Een van onderdelen waar deze eindopdracht over gaat is het vervaardigen van een dynamisch block waar de tekenaar door middel van een simpele actie kan wijzigen van adresgegevens van het stempel. Natuurlijk is ook nagedacht om de twee stempels samen te voegen in één dynamisch block, helaas is dit niet mogelijk daar we gebruik maken van de AutoCAD-applicatie StabiCAD. In StabiCAD zit een database (StabiBase) verwerkt waar de gebruiker het stempel kan invullen en vervolgens door middel van een klik het stempel kan invullen. De tekenaar / gebruiker kan uit de volgende keuzes (per stempel) kiezen, namelijk: Groningen, Nederlands Groningen, Engels Eindhoven, Nederlands Eindhoven, Engels Maastricht, Nederlands Maastricht, Engels Pagina 66 van 100
Nijmegen, Nederlands Nijmegen, Engels Rijswijk, Nederlands Rijswijk, Engels
Het dynamisch kader Naast deze tekeningstempels worden er ook een aantal kaders toegepast bij Deerns. Door eigen ervaring heb ik gemerkt dat het wijzigen van kaderformaat (bijvoorbeeld van A2 naar A0) een behoorlijk aantal handelingen mee brengt om het kaderformaat van de tekening te wijzigen. Deze tijd is beter te gebruiken voor het maken van de tekeningen en dus ook tijds- & kostenbesparend. Alleen het tijds- & kostenbesparend is een goede reden om de kaders te gaan samenvoegen in een dynamisch block, zodat de gebruiker / tekenaar met een snelle handeling het formaat van het kader kan wijzigen. Het dynamische block van de kaders dient de onderstaande keuzemogelijkheden te hebben: A4v, A4h, A3-STD, A2-STD, A1-STD, A1-Ext1, A0-STD, A0-Ext1, A0-Ext2, A0-Ext3, A0-Ext4, A0-Ext5, A0-Ext6 De dynamische blocken “Stempels” en “Kaders” dienen te worden verwerkt in de Deerns AutoCADtemplate, ook de wel “acadiso.dwt” genoemd.
VB.net Het tweede onderdeel van de eindopdracht is het vervaardigen van een toolpalette met daar op de functies: Creëren van het gekozen stempel ( vestiging en formaat) Creëren van het gekozen kaderformaat Wijzingen van de adresgegevens of tekst (NL / ENG) van een reeds aanwezig stempel in het DWG-bestand Wijzingen van een reeds aanwezig kader in het DWG-bestand Door deze onderdelen te gaan schrijven in VB.net zijn er geen DWG-bestanden van de kaders en stempels meer te onderhouden of aan te passen, alleen hoeft men de programmacode aan te passen. Tevens is de programmeercode een behoorlijke ruimte besparing op de diverse servers die op de vestigingen geplaatst zijn.
Stempels geprogrammeerd in VB.NET In dit deel van de eindopdracht wordt in programmacode een programma geschreven dat na keuze van de gebruiker het gewenste stempel tekent en dit vervolgens in de tekening als block insert. Dit programma zal voor de stempels als volgt gaan uitzien: 1x toolpalette voor Stempels, tekst: Nederlands 1x toolpalette voor stempels, tekst: Engels De toolpalettes zijn identiek met als enigste uitzondering de tekst in het stempel (Nederlands of engels). De keuze mogelijkheden worden gecreëerd door een aantal “radiobuttons”. Daarnaast zullen er een aantal textlabels, commandbuttons worden toegepast. De keuzes waar de gebruiker uit zal kunnen kiezen zijn: Vestiging (adres) Formaat stempel (“A0-stemp1” of “A4-stemp1”) Tekst (NL / ENG)
Pagina 67 van 100
Kaders geprogrammeerd in VB.NET Ook de toegepaste kaders worden geprogrammeerd in VB.net en worden verwerkt op 1 toolpalette. De gebruiker kan dan het gewenst kaderformaat kiezen op de toolpalette kiezen en deze vervolgens te plaatsen in de tekening. Na het bevestingen (plaatsen op tekening) zal de programmeertaal de “besturing” overnemen van de gebruiker en beginnen van het doorlopen van de diverse functies, subs en andere routines om zo het gekozen kaderformaat te tekenen en op te slaan als block in de tekening. De keuze van kaderformaten waar uit kan worden gekozen zijn: A4v (210x297mm) A4-STD (297x210mm) A3-STD (420x297mm) A2-STD (594x420mm) A1-STD (841x594mm) A1-Ext1 (1051x594mm) A0-STD (1189x841mm) A0-Ext1 (1399x841mm) A0-Ext2 (1609x841mm) A0-Ext3 (1819x841mm) A0-Ext4 (2029x841mm) A0-Ext5 (2239x841mm) A0-Ext6 (2449x841mm) Het programmeren zal een mooie uitdaging en ervaring worden, om je idee om te zetten in een goed en werkzaam programma. En om dit in Visual Basic.NET te maken, vervolgens om te zetten (Build) naar een DLL-bestand creëer je een super intelligente bedrijfsstandaard die maar een klein bestandsgrootte heeft. Hierdoor beveilig je ook een standaard voor derden, en is de bedrijfsstandaard gewoon per mail te versturen, wat met de huidige standaard niet kan vanwege de hoeveelheden bestanden die hiervoor benodigd zijn. Als de programma’s van de stempels en de kaders gereed zijn zullen deze worden omgezet worden naar een DLL-bestand. Een DLL-bestand is een behoorlijk klein bestand (kilobyte in plaats van MegaByte) waar je een grootte hoeveelheid gegevens kunt verwerken en dus ook een bedrijfstemplate. Daarnaast is een DLL-bestand ook gemakkelijk als bijvoorbeeld een derde partij tekenwerkzaamheden voor Deerns gaan doe nis het alleen maar even een DLL-file naar deze partij door te mailen en ze hebben de bedrijfstemplate van Deerns en kunnen dus beschikken over de juiste stempels, formaten, enzovoort. Maar een DLL-bestand is tevens een soort van beveiliging van de bedrijfsstandaard. Het enige nadeel is dat als stempels of kaders getekend zijn in de tekening deze wel te wijzigen zijn. Waarom een Dynamisch block? Dit is een hele andere manier van het produceren / maken van een block, dit is ook wel parametrisch tekenen. Dit is ook een onderwerp waar ik graag meer van zou willen leren. Want dit is ideaal voor standaard blocken. Beide mogelijkheden zijn voor mij een mooi uitdaging om de hier boven genoemde onderwerpen uit te werpen en er ook nog veel van op te steken.
Het maken van dit dynamisch blocken heeft ook een aantal uitdagingen die voor te overwinnen zijn. Denk dan aan de hier boven omschreven mogelijkheden en de mogelijke combinaties die ik hier mee moet kunnen maken. Ik zou mijn opleiding dan ook graag willen afronden met de opdracht voor het maken / optimaliseren van de bedrijfstemplate.
Pagina 68 van 100
Door deze template zouden tekenaars gemakkelijker en sneller / slimmer kunnen werken, maar het zou tevens een tijdsbesparing opleveren.
3. Globale indeling van de afstudeeropdracht: Optimalisatie: Optimaliseren van de bedrijfstemplate. Deze optimalisatie bestaat uit: a) Het onderzoeken welke optie Huidige DWG-bestanden updaten naar nieuwe situatie Huidige DWG-bestanden ombouwen naar dynamische blocken Huidige DWG-bestanden gaan programmeren ib VB.net b) Keuze mogelijkheid van vestigingsadres c) Keuze van stempeltekst Engels of Nederlands d) Keuze van kaderformaat Deze optimalisatie dient zo te worden uitgevoerd dat deze: Sneller en gemakkelijker wijzigen / wisselen van kader. Geen problemen meer met layout als deze op een andere vestiging wordt gebruikt. Een standaard layout voor Deerns wordt. Uitwisselbaar met derden (tekenbureau’s, installateurs, ZZP-er’s) als deze voor ons werken.
Onderzoeken / Research: Onderzoeken wat de beste optie is voor het vermelden van de adresgegevens, taal (NL of Eng), namelijk via: a) Huidige situatie in kaart brengen, wat er allemaal dient te gebeuren b) Verdiepen (lezen) in het onderwerp “Dynamische blocken” c) Verdiepen in de programmeertaal Visual Basic.NET d) Alle benodigdheden bij elkaar zoeken e) Text wijzigen via VB.net (Visual Studio.NET) f) Text wijzigen via Visual styles (Dynamische block) g) Hoe kaders met een keuzemenu te implementeren in de template. h) Wat is de meest werkbare resultaat, dynamissche blocken of VB.net-code
Uitvoeren & testen: De bevindingen die bij het onderzoeken zijn opgedaan deze verwerken in de template. Vervolgens zal deze aangepaste template getest moeten worden of gebruik en functionaliteit, maar ook of de fouten verwijderd zijn uit de templatemoet vervolgens worden getest, zodat alle fouten uit de template zijn verwijderd voordat deze aangepaste template bedrijf breed wordt ingevoerd. Daar naast dient het testen ook om de template aan te passen en meer af te stemmen op de wensen van de gebruikers (tekenaars), maar daarnaast ook beveiligd is tegen bijvoorbeeld aanpassingen die niet conform bedrijfsstandaard zijn. Het testen zal door een paar collega’s gebeuren, deze collega’s zijn te verdelen in twee hoofdgroepen, de twee groepen zijn op basis van kennis van het AutoCAD-programma opgesteld namelijk: Collega met weinig tot geen ervaring van AutoCAD. Collega met ruime tot zeer ruime ervaring van AutoCAD. De opmerkingen, aanvullingen en verbeteringen die uit de testen volgen dienen vervolgens te worden verwerkt in de template. Voor de testfase dient er een handleiding te worden opgesteld voor met als doel het duidelijk maken hoe de toolpalettes gebruikt dienen te worden. Maar hierin wil ik ook vastleggen hoe men deze moet gaan testen, te weten: Opstellen van een nieuwe tekening, Pagina 69 van 100
Aanpassen van een bestaande tekening (wijzigingen van tekeningformaat) Hoe gebruiksvriendelijk is de template? Wat zou je nog veranderd willen hebben?
Als de handleiding dient na het testen te worden gecontroleerd en de opmerkingen en aanvullingen zijn verwerkt, zal deze handleiding bij het CAD-handboek van ons bedrijf worden ingevoegd.
4. De planning: De werkzaamheden die ik moet verrichten om het beoogde doel te halen heb ik samengevat in een planning. De werkzaamheden (onderdelen) die ik stap-voor-stap zal doorlopen zijn hieronder kort omschreven. a) Indienen van dit CONCEPT projectplan bij de heer Boeklagen (CAD-college te Nijmegen) b) Wijzigingen / opmerkingen van mijn projectbegeleider verwerken. (1 week) c) Projectplan ter controle indienen bij projectbegeleider. d) Projectplan na goedkeuring definitief maken en op mijn kaart verwerken. e) Starten met het uitwerken en duidelijk omschrijven van de stappen die ik moet gaan doorlopen. f) Doorlezen van de benodigde onderwerpen (indien deze nog niet bij mij bekend zijn). Dynamische blocken, parametrisch tekenen, Sheet-sets zijn een drietal voorbeelden voor door te lezen daar deze belangrijk zijn voor mijn opdracht. g) Goed omschrijven en vastleggen wat mijn uitgangspunten zijn voor het onderzoek naar de juiste mogelijkheden. h) Uitwerken van de bevindingen in het tekeningstempel, beginnen met bouwen van de template. i) Handleiding gaan opstellen ten behoeve van de gebruiker. j) Na controle de template in testfase laten testen door een aantal collega's. k) Opmerkingen / aanvullingen komende uit de testfase verwerken / aanpassen in het dynamisch block verwerken. l) Opmerkingen uitwerken / aanpassen in de handleiding voor de gebruiker. m) Opdracht ter controle bij begeleider aanbieden. n) Opmerkingen / aanvullingen begeleider verwerken. o) Definitief dynamisch block (Template) aanbieden aan begeleider p) Na goedkeuring starten met schrijven van het projectverslag. q) Concept projectverslag ter controle indienen bij begeleider. r) Opmerkingen van begeleider verwerken in projectverslag. s) Na akkoord voor projectverslag starten met voorbereiden van het mondeling deel van de afstudeeropdracht. t) Mondelinge presentatie. u) Afronding opleiding. Het plan van aanpak heeft tevens als doel om controleerbaar en meetbaar te houden van de doorgang van de afstudeeropdracht.
Pagina 70 van 100
Bijlage:
B Pagina 71 van 100
Pagina 72 van 100
Bijlage B: Woordenlijst en definities Woord / definitie A Actions Alignment AutoCAD
Omschrijving / betekenis Handeling(en) / actie(s) Uitlijning Tekenprogramma
B Basepoint Block Blockeditor Block Table Block Table Record Bylayer
Basispunt Verzameling van objecten in een tekening Editor ten behoeven van het wijzigen van een block Tabel waar alle blocks van de tekening zijn opgeslagen Tabel bevat alle entiteiten van de specifieke block definitie Ingestelde waarde voor de desbetreffende laag
C Color Color bylayer Constrains
Kleur Kleur ingesteld voor betreffende laag Voorwaarde(n) / begrenzingswaarde(n)
D Dim Dimension Dimension Style Tabel
Reserveren van een geheugenplaats Maatvoering Tabel waar alle dimensions (maatvoeringen) van de tekening zijn opgeslagen
D DLL Doc Document Collection DWG
Dynamic Link Library Document Bevat alle openstaande tekeningen in de actieve AutoCAD-sessie Database / Tekening
E Erase
Verwijderen
F Font Function
Tekststyle Functie (Geeft wel een waarde / uitkomst terug naar het programma)
G Grips Group Dictionary
“Handvatjes” op een AutoCAD-object Bevat alle groups (groepen) van de tekening
H Hatch
Arcering
Pagina 73 van 100
I Insertionpoint
Insertionpoint, invoegpunt
J Join
samenvoegen
L Layer Layer Table Layer Table Record Lay-out Layout Dictionary Linetype Bylayer Linetype Table M MenuBar Collection Menugroup Collection
Laag (waarop getekend wordt) Tabel waar alle layers van de tekening zijn opgeslagen
Bevat alle lay-out van de tekening Ingesteld lijntype voor de desbetreffende laag Tabel waar alle lijntypes van de tekening zijn opgeslagen
Bevat alle menu’s actief zichtbaar in AutoCAD Bevat alle customized groups actief geladen in AutoCAD. Een customization group vertegenwoordigd de geladen CUIx-file welke menu’s, toolbars en Ribbon-tabs kan bevatten naast andere elementen die de user interface definiëren
N
O Open P Pagesetup Paperspace Plot Parameter Plot Configuration Dictionary Private Properties Public
Openen van een item (Bestand, tekening)
“Papierformaat”, oftwel afmetingen (werkelijk gebied) van de witdruk Print, afdrukken Veranderlijke grootheid waarvan de constante van een vergelijking als functie worden beschouwd Bevat alle met naam benoemde plotinstellingen van de tekening Alleen aan te roepen binnen het project Eigenschappen Openbaar (altijd aan te roepen binnen of buiten het actieve project)
Q
R Reddick-methode
Gestandaardiseerde manier van benamingen en coderingen
S StabiCAD Sub
Applicatie die werkt met AutoCAD Sub (Geeft wel een waarde / uitkomst terug naar het programma)
T Text Style Table
Tabel met alle aanwezige tekst-styles in de tekening
Pagina 74 van 100
U UCS Table UCS
Tabel met alle aanwezige User Coordinate Systems van de tekening User Coordinate System
V VB.net View Table Viewport Table Visibillity state
Visual Basic.net (programmeertaal) Tabel met alle aanwezige views in de tekening Tabel met alle aanwezige viewports in de tekening Zichtbaarheidsinstelling
W Wblock
Werkblock, oftewel externe block.
X Xplode
Xplode
Y
Z Zoom
Pagina 75 van 100
Pagina 76 van 100
Bijlage:
C Pagina 77 van 100
Pagina 78 van 100
Bijlage C: Handleiding toolpalette Deze handleiding is een beknopte omschrijving voor de gebruikers hoe ze de gemaakte toolpalettes (Kaders, Stempels Nederlands, Stempels Engels) te gebruiken op de correcte manier bij met maken van de (eerste) setup van de tekening. Opstarten programma: 1. Start het programma AutoCAD op (indien het niet reeds gestart is) Laden en starten van de .dll-file (indien dit niet automatisch wordt geladen): 2. Type het commando NETLOAD in, en selecteer de “VB-projecten_Joop.ddl”file, gevolgd door een ENTER. 3. Type vervolgens de naam van het programma “VBPALETTE” , gevolgd door ENTER. 4. De toolpalettes verschijnen nu op het beeldscherm. Plaatsen van een kader: 5. Ga naar de toolpalette “Kaders” en selecteer het gewenste kaderformaat, en plaatst vervolgens het kader door op de knop “Plaat kader” te drukken. Het kader wordt nu geplaatst, en gevolgd door een zoom extends (het gehele kader is nu zichtbaar op het scherm). Plaatsen van een stempel / tekeninghoofd: 6. Voordat het stempel geplaatst wordt is het wel belangrijk / handig om te weten welke taal gewenst is. Want er is keuze uit twee talen, namelijk Nederlands of Engels. De keuze van taal bepaald welk tabblad je van de toolpalettes er gebruikt dient te worden. Voor de Nederlandstalig stempels selecteer het tabblad “Stempels Nederlands”, indien een Engelstalige stempel nodig hebt selecteer dan het tabblad “Stempels Engels”. 7. Als de keuze van de taal is bepaald en vervolgens het juiste tabblad is geselecteerd kan het gewenste formaat stempel worden geselecteerd. Op de toolpalette is aangegeven welk stempel toe te passen bij welk kaderformaat. Selecteer vervolgens de juiste vestiging die op de tekening vermeld dient te worden. Druk vervolgens op de knop “Plaats stempel”. Het stempel “plakt” aan de crosshair (en dient door de gebruiker) op de snijpunten van de twee cyaan-kleurige lijnen rechtsonder in het kader te worden geplaatst. 8. Het stempel is nu gereed om te worden voorzien van de informatie / gegevens van de tekening. Viewport plaatsen op de layout: 9. Ga naar het tabblad “Viewport”. 10. Selecteer het viewport waar achter het kaderformaat vermeld staat dat je in stap 5 op de layout hebt geplaatst en plaatst vervolgens het viewport door op de knop “Plaats viewport” te drukken.
Pagina 79 van 100
Pagina 80 van 100
Bijlage:
D Pagina 81 van 100
Pagina 82 van 100
Bijlage D-1: Afmetingen kaders A0 In deze bijlage zijn per kadertype van de toegepaste objecten de onderstaande gegevens weergeven zoals: - Kleur, - Begincoordinaten, - Eindcoordinaten, - Lijntype - Soort object
Kader: A0-STD (1189x841mm) Soort object Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line
X,Y Start 0,0 1189,0 1189,841 0,841 10,10 1179,10 1179,831 10,831 139,0 349,0 559,0 769,0 979,0 139,831 349,831 559,831 769,831 979,831 0,279 0,594 1179,279 1179,594
X,Y Einde 1189,0 1189,841 0,841 0,0 1179,10 1179,831 10,831 10,10 139,10 349,10 559,10 769,10 979,10 139,841 349,841 559,841 769,841 979,841 10,279 10,594 1189,841 1189,841
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130)
Kader: A0-Ext1 (1399x841mm) Soort object Line Line Line Line Line Line Line Line
X,Y Start 0,0 1399,0 1399,841 0,841 10,10 1389,10 1389,831 10,831
X,Y Einde 1399,0 1399,841 0,841 0,0 1389,10 1389,831 10,831 10,10
Pagina 83 van 100
Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line
139,0 349,0 559,0 769,0 979,0 1189,0 139,831 349,831 559,831 769,831 979,831 1189,831 0,279 0,594 1389,279 1389,594
139,10 349,10 559,10 769,10 979,10 1189,10 139,841 349,841 559,841 769,841 979,841 1189,841 10,279 10,594 1399,841 1399,841
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Lijntype
Kleur
Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050)
Kader: A0-Ext2 (1609x841mm) Soort object Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line
X,Y Start 0,0 1609,0 1609,841 0,841 10,10 1599,10 1599,831 10,831 139,0 349,0 559,0 769,0 979,0 1189,0 139,831 349,831 559,831 769,831 979,831 1189,831 1399,831 0,279 0,594 1599,279 1599,594
X,Y Einde 1609,0 1609,841 0,841 0,0 1599,10 1599,831 10,831 10,10 139,10 349,10 559,10 769,10 979,10 1189,10 139,841 349,841 559,841 769,841 979,841 1189,841 1399,841 10,279 10,594 1609,279 1609,594
Kader: A0-Ext3 (1819x841mm) Soort object Line Line
X,Y Start 0,0 1819,0
X,Y Einde 1819,0 1819,841
Pagina 84 van 100
Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line
1819,841 0,841 10,10 1809,10 1809,831 10,831 139,0 349,0 559,0 769,0 979,0 1189,0 1399,0 1609,0 139,831 349,831 559,831 769,831 979,831 1189,831 1399,831 1609,831 0,279 0,594 1809,279 1809,594
0,841 0,0 1809,10 1809,831 10,831 10,10 139,10 349,10 559,10 769,10 979,10 1189,10 1399,10 1609,10 139,841 349,841 559,841 769,841 979,841 1189,841 1399,841 1609,841 10,279 10,594 1819,841 1819,841
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Kader: A0-Ext4 (2029x841mm) Soort object Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line
X,Y Start 0,0 2029,0 2029,841 0,841 10,10 2019,10 2019,831 10,831 139,0 349,0 559,0 769,0 979,0 1189,0 1399,0 1609,0 1819,0 139,831 349,831 559,831 769,831 979,831 1189,831 1399,831
X,Y Einde 2029,0 2029,841 0,841 0,0 2019,10 2019,831 10,831 10,10 139,10 349,10 559,10 769,10 979,10 1189,10 1399,10 1609,10 1819,10 139,841 349,841 559,841 769,841 979,841 1189,841 1399,841
Pagina 85 van 100
Line Line Line Line Line Line
1609,831 1819,831 0,279 0,594 2019,279 2019,594
1609,841 1819,841 10,279 10,594 2029,841 2029,841
Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130)
Kader: A0-Ext5 (2239x841mm) Soort object Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line
X,Y Start 0,0 2239,0 2239,841 0,841 10,10 2229,10 2229,831 10,831 139,0 349,0 559,0 769,0 979,0 1189,0 1399,0 1609,0 1819,0 2029,0 139,831 349,831 559,831 769,831 979,831 1189,831 1399,831 1609,831 1819,831 2029,831 0,279 0,594 2129,279 2129,594
X,Y Einde 2239,0 2239,841 0,841 0,0 2229,10 2229,831 10,831 10,10 139,10 349,10 559,10 769,10 979,10 1189,10 1399,10 1609,10 1819,10 2029,10 139,841 349,841 559,841 769,841 979,841 1189,841 1399,841 1609,841 1819,841 2029,841 10,279 10,594 2239,841 2239,841
Kader: A0-Ext6 (2449x841mm) Soort object Line Line Line Line Line
X,Y Start 0,0 1399,0 1399,841 0,841 10,10
X,Y Einde 1399,0 1399,841 0,841 0,0 1299,10
Pagina 86 van 100
Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line
1299,10 1299,831 10,831 139,0 349,0 559,0 769,0 979,0 1189,0 1399,0 1609,0 1819,0 2029,0 2239,0 139,831 349,831 559,831 769,831 979,831 1189,831 1399,831 1609,831 1819,831 2029,831 2239,831 0,279 0,594 2239,279 2239,594
1299,831 10,831 10,10 139,10 349,10 559,10 769,10 979,10 1189,10 1399,10 1609,10 1819,10 2029,10 2239,10 139,841 349,841 559,841 769,841 979,841 1189,841 1399,841 1609,841 1819,841 2029,841 2239,841 10,279 10,594 2249,841 2249,841
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Pagina 87 van 100
Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Bijlage D-2: Afmetingen kaders A1 In deze bijlage zijn per kadertype van de toegepaste objecten de onderstaande gegevens weergeven zoals: - Kleur, - Begincoordinaten, - Eindcoordinaten, - Lijntype - Soort object
Kader: A1-STD (841x594mm) Soort object Line Line Line Line Line Line Line Line Line Line Line Line Line Line
X,Y Start 0,0 841,0 841,594 0,594 10,10 831,10 831,584 10,584 211,0 421,0 631,0 0,279 0,594 831,594
X,Y Einde 841,0 841,594 0,594 0,0 831,10 831,584 10,584 10,10 211,10 421,10 631,10 10,279 10,594 841,594
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Kader: A1-Ext1 (1051x594mm) Soort object Line Line Line Line Line Line Line Line Line Line Line Line Line Line
X,Y Start 0,0 1051,0 1051,594 0,594 10,10 1041,10 1041,584 10,584 211,0 421,0 631,0 841,0 211,584 421,584
X,Y Einde 1051,0 1051,594 0,594 0,0 1041,10 1041,584 10,584 10,10 211,10 421,10 631,10 841,10 211,584 421,584
Pagina 88 van 100
Line Line Line Line
631,584 841,831 0,279 1041,279
631,584 841,584 10,279 1051,297
Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Bijlage D-3: Afmetingen kaders A2 In deze bijlage zijn per kadertype van de toegepaste objecten de onderstaande gegevens weergeven zoals: - Kleur, - Begincoordinaten, - Eindcoordinaten, - Lijntype - Soort object
Kader: A2-STD (594x420mm) Soort object Line Line Line Line Line Line Line Line Line Line Line Line Line Line
X,Y Start 0,0 594,0 594,420 0,420 10,10 584,10 584,410 10,584 174,0 384,0 174,584 384,584 0,297 584,297
X,Y Einde 594,0 594,420 0,420 0,0 584,10 584,410 10,410 10,10 174,10 384,10 174,594 384,594 10,297 594,297
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
Pagina 89 van 100
Bijlage D-4: Afmetingen kaders A3 In deze bijlage zijn per kadertype van de toegepaste objecten de onderstaande gegevens weergeven zoals: - Kleur, - Begincoordinaten, - Eindcoordinaten, - Lijntype - Soort object
Kader: A3-STD (420x297mm) Soort object Line Line Line Line Line Line Line Line Line
X,Y Start 0,0 420,0 420,297 10,10 410,10 410,287 10,287 210,0 210,287
X,Y Einde 420,0 420,297 0,297 410,10 410,287 10,287 10,10 210,10 210,297
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Yellow (Pen 050) Yellow (Pen 050)
Pagina 90 van 100
Bijlage D-5: Afmetingen kaders A4 & A4v In deze bijlage zijn per kadertype van de toegepaste objecten de onderstaande gegevens weergeven zoals: - Kleur, - Begincoordinaten, - Eindcoordinaten, - Lijntype - Soort object
Kader: A4-STD (297x210mm) Soort object Line Line Line Line Line Line Line Line
X,Y Start 0,0 297,0 297,210 0,210 10,10 287,10 287,200 200,10
X,Y Einde 297,0 297,210 0,210 0,0 287,10 287,200 10,200 210,10
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130)
Lijntype
Kleur
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen050) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130) Cyan (Pen 130)
Kader: A4v-STD (210x297mm) Soort object Line Line Line Line Line Line Line Line
X,Y Start 0,0 210,0 210,297 0,297 10,10 200,10 200,287 10,287
X,Y Einde 210,0 210,297 0,297 0,0 200,10 200,287 10,287 10,10
Pagina 91 van 100
Pagina 92 van 100
Bijlage:
E Pagina 93 van 100
Pagina 94 van 100
Objecten: Lijnen Soort object
X;Y Einde -182,36
Lijntype
Kleur
Line
X;Y Start -182,0
Continuous
Green (Pen 070)
Line Line Line Polyline (Start) Polyline Polyline Polyline (End) Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line Line
-182,36 -81.173, -181,22.281 -181,7.76 -181,14.52 -84.173,14.52 -84,173 78.406,33.36 -24.094,33.36 -24.094,28.86 -24.094,24.36 -24.094,19.86 -24.094,14.809 -24.094,5.358 -81.435,5.358 -81.4350,14.809 -78.406,24.9657 -78.406,33.36 -51.444,30.46 -49.891,31.11 -51.444,31.76 -51.444,25.96 -49.891,26.61 -51.444,27.26 -51.444,21.46 -49.891,22.11 -51.444,22.76
0,36 -83.1730,36 -84.173,22.281 -181,14.52 -84.173,14.52 -84,173 -181,7.76 -68.118,33.36 -2.094,33.36 -2.094,28.86 -2.094,24.36 -2.094, 19.86 -2.094,14.809 -2.094,5.358 -27.7507,5.358 -27.7507,14.809 -68.118,24.9617 -68.118,33.36 -49.891,31.11 -51.444,31.76 -51.444,30.46 -49.891,26.61 -51.444,27.26 -51.444,25.96 -49.891,22.11 -51.444,22.76 -51.444,21.46
Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous Continuous
Green (Pen 070) Green (Pen 070) Green (Pen 070) Green (Pen 070) Green (Pen 070) Green (Pen 070) Green (Pen 070) Red (Pen 010) Red (Pen 010) Red (Pen 010) Red (Pen 010) Red (Pen 010) Red (Pen 010) Red (Pen 010) Red (Pen 010) Red (Pen 010) Red (Pen 010) Red (Pen 010) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050) Yellow (Pen 050)
X;Y Einde
Lijntype
Objecten: Teksten Soort object
X;Y Start
Content / tekst Line Line Line Polyline (Start) Polyline Polyline
Kleur
Green (Pen 070)
Pagina 95 van 100
Pagina 96 van 100
Bijlage:
F Pagina 97 van 100
Pagina 98 van 100
Bijlage F: Stappenplan “Kader plaatsen” In dit hoofdstuk van het verslag worden een aantal fragmenten uit de totale programmeercode gekozen en uitschreven in een stappenplan en de bijbehorende actielijst zodat iedereen (de lezers van dit eindverslag) begrijpen wat er eigenlijk “onderwater” gebeurt. Na het selecteren en plaatsen van het gewenste object.
Start
Selecteer toolpalette “Kader”
Selecteer het gewenste kader
Klik op knop “Plaats kader”
Start AutoCAD
Klik op het tabblad “Kader”
Selecteer het gewenste kader
-
Klik op de knop “Plaats kader” Switch to Paperspace Create layers Set layer “BL$2A--_Kader025” current
Einde
Pagina 99 van 100
De tekstomschrijving, uitgeschreven in stappen, ziet er als volgt uit. Acties plaatsen kader 1. Switch to paperspace 2. Create layers 3. Maak layer “BL$2a--_KADER025”actief 4. Ga naar module mdlkader.kaderA0STD 5. Start met doorlopen van de subroutine “KaderA0STD” 6. Reserveer geheugenplaats voor polyline “PlineKader025” 7. Reserveer geheugenplaats voor polyline “PlineKader050” 8. Reserveer geheugenplaats voor objectcollection “coll” 9. Teken het gele kader (Plinekader025) met een polyline, na de 4 de set coordinaten wordt gesloten. 10. Voeg PlineKader025 toe aan de collectie 11. Teken de 5 verbindingslijnen (Onder) 12. Voeg deze verbindingslijnen toe aan de objectcollection “coll” 13. Teken de 5 verbindingslijnen (Boven) 14. Voeg deze verbindingslijnen toe aan de objectcollection “coll” 15. Teken de 5 verbindingslijnen (Links) 16. Voeg deze verbindingslijnen toe aan de objectcollection “coll” 17. Teken de 5 verbindingslijnen (Rechts) 18. Voeg deze verbindingslijnen toe aan de objectcollection “coll” 19. Maak layer “BL$2a--_KADER050” actief 20. Teken het cyaankleurige kader (Plinekader025) met een polyline, na de 4de set coordinaten wordt gesloten. 21. Voeg PlineKader050 toe aan de collectie 22. Maak / creëer de blokdefintie aan 23. Maak layer “0” actief 24. Maak / creëer de blokreferentie aan (Het kader is nu als block getekend in de AutoCAD-tekening). 25. De subroutine mdlKaders.KaderA0STD is nu afgerond. 26. Er zit ook een vangnet in geprogrammeerd indien de gebruiker geen keuze maakt welk kader geplaatst dient te worden. Dit is geprogrammeerd als “Case else”. Als er geen keuze is gemaakt en er toch op de knop “Plaats kader”is gedrukt verschijnt er een popscreen met de melding “Je hebt geen kader geselecteerd!”. 27. Vervolgens wordt het beeldscherm geupdate 28. Vervolgens wordt de tekening volledig ingezoomd op beeldschermbreedte. 29. Als laatste wordt layer “0” aktief gemaakt.
Pagina 100 van 100