"Als ik van de ene bergstroom naar de andere ga, zie ik steeds dezelfde stroom. Maar als ik van rots naar rots klim, verandert dezelfde stroom bij elke stap die ik zet." Alain
Voorwoord
Na de middelbare school ben ik Architectonische Vormgeving gaan studeren aan de Academie voor Beeldende Kunsten te ’s Gravenhage. Hier ben ik in aanraking gekomen met het programma AutoCAD (14). Na drie jaar Architectonische Vormgeving ben ik overgestapt naar de richting Grafische en Typografische Vormgeving. Deze studie heb ik een jaar gevolgd waarna ik ben gestopt met studeren en ben gaan werken. Ongeveer een jaar geleden heb ik besloten om mijn studie, hetzij op een andere manier, weer op te pakken en ben begonnen aan deze HBO opleiding. Mijn situatie is dus momenteel dat ik geen relevante werkervaring heb die zou kunnen dienen om hieruit een afstudeeropdracht af te leiden. Gelukkig waren er medestudenten en een docent die hebben geholpen met het aandragen van ideeën voor een passende en haalbare opdracht. Mede dankzij deze mensen, die mijn programmaontwerp regelmatig van commentaar voorzagen, is dit geheel (het programma en dit verslag) tot stand gekomen. Mijn dank gaat uit naar Ronald Boeklagen en Leonie Bergsma van het TEC CAD College voor hun ondersteuning en begeleiding. Naar Michael Slavenburg en Eric Boers (medestudenten) voor hun enthousiasme en commentaar. En naar Paul Arts (tevens van het TEC CAD College) voor het geven van de laatste tips.
IV 4
Inhoudsopgave Pagina Voorwoord
IV
Samenvatting
6
Inleiding
7
Hoofdstuk 1 Het Stroomschema
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11
Inleiding Definitie van een stroomschema Het gebruik van een stroomschema Het verschil tussen een stroomschema en een stroomdiagram Basissymbolen van een stroomschema en stroomdiagram 1.5.1 Basissymbolen van een stroomschema 1.5.2 Basissymbolen van een stroomdiagram Keuze tussen het stroomschema en het stroomdiagram 1.6.1 Voordelen en nadelen van een stroomschema 1.6.2 Voordelen en nadelen van een stroomdiagram De opbouw en het structuren van een stroomschema De opbouw van een stroomschema met een procedure Het geautomatiseerd tekenen van een stroomschema Vergelijking van verschillende programma’s Besluit
Hoofdstuk 2 Het Programma
2.1 2.2 2.3 2.4
2.5
Inleiding Het stroomschema als probleem Symbolen, pijlen en tekst 2.3.1 Beginfase en eindfase De Lay-out 2.4.1 Het beginontwerp 2.4.2 Het tussenontwerp 2.4.3 Het eindontwerp Het resultaat
Hoofdstuk 3 De werking van het programma
3.1 3.2 3.3 3.4
Inleiding Werken met het programma Het stroomschema Delen van de code 3.4.1 Algemene instellingen 3.4.2 Symbolen 3.4.3 Tekst 3.4.4 Pijlen
Conclusie Bijlagen A NEN Norm 3283 B Overige symbolen C Help procedure programma D Gebruiksaanwijzing installatie E Literatuurlijst
8 8 8 8 8 10 10 11 12 12 12 13 14 14 15 18 19 19 19 21 21 22 22 23 24 24 25 25 25 29 30 30 30 32 35 38 XXXIX XL XLII XLIV XLVI
V 5
Samenvatting
Dit verslag is nagenoeg een chronologische vertelling van het ontwerpproces. Hoofdstuk 1 begint met wat een stroomschema is en waarvoor een stroomschema wordt gebruikt. Hier wordt een verschil gemaakt tussen een Programma Stroom Schema en een Programma Stroom Diagram. Dit zijn twee verschillende manieren om een grafische beschrijving (schema) van een proces van een programma weer te geven. Deze twee schema’s verschillen van elkaar in de symbolen en de opbouw, en worden aan de hand van een voorbeeld uitgelegd. Beide manieren van tekenen hebben voor- en nadelen. Deze voor- en nadelen van het gebruik van deze schema’s wordt weergegeven in een tabel waarna er een keuze wordt gemaakt om door te gaan met één van deze twee grafische beschrijvingen. Vervolgens wordt er uitgelegd hoe een stroomschema theoretisch wordt opgebouwd tot een verwoording van een programma. De praktijk wordt uitgelegd aan de hand van een vergelijking van een aantal programma’s die op de markt zijn waarmee stroomschema’s getekend kunnen worden. Vanuit deze vergelijking wordt het idee aangedragen voor het nog te ontwikkelen programma. Hoofdstuk 2 begint met het opsplitsen van het probleem “stroomschema”, zodat elk deelprobleem apart benaderd en opgelost kan worden. Deze deelproblemen zijn; de algemene instellingen, de symbolen, de tekst en de pijlen. Vanuit deze deelproblemen wordt er gezocht naar oplossingen om deze om te zetten in een programma. Het proces om tot deze oplossingen te komen is in twee duidelijke fases gebeurd. Alle deelproblemen zijn in beide fases beschreven zodat er een duidelijk overzicht ontstaat over hoe het programma zich ontwikkeld heeft. Vervolgens wordt het proces beschreven van de lay-out van het programma, welke drie fases heeft doorgemaakt. Hier worden alle voor- en de nadelen van een lay-out benoemd om zo het goede van een lay-out te behouden en het minder goede te verbeteren, om tot het uiteindelijke resultaat te komen. Hoofdstuk 3 begint met het uitleggen aan de hand van een aantal afbeeldingen hoe het programma werkt en welke instellingen er in het programma zitten. Vervolgens wordt het stroomschema van het geschreven programma getoond en worden er delen van de code van het programma beschreven. Deze delen van de code zijn eveneens opgesplitst in de algemene instellingen, symbolen, tekst en pijlen om het overzicht te behouden. Tot slot wordt er in de conclusie gekeken naar het geheel van het programma. Welke punten voldoen aan de door mij gestelde eisen, en welke punten kunnen in de toekomst verbeterd worden.
6
Inleiding
Doordat ik mijn afstudeeropdracht niet vanuit mijn werkzaamheden kon afleiden, heb ik gekeken naar praktische problemen die naar voren kwamen tijdens deze opleiding om zo, in plaats van een werkgever, mijn toekomstige medestudenten tegemoet te komen. Tijdens deze opleiding behoor je een werkend programma te schrijven en een eindverslag met hierin opgenomen een stroomschema. Mij (en een aantal medestudenten) is al snel duidelijk geworden dat het lastig is om “even snel”een stroomschema te tekenen. Ten eerste zijn er een aantal verschillende symbolen met elk een andere betekenis en ten tweede zijn er verschillende programma’s waarmee stroomschema’s getekend kunnen worden. Door het bovengenoemde heb ik (niet helemaal alleen) gekozen voor het praktische probleem; het stroomschema. En doordat een stroomschema bij elke vorm van een programma ontwerpen duidelijkheid schept, is dit een onderwerp waar zowel beginnende (medestudenten) als gevorderde programmeurs hun voordeel mee kunnen doen. Met dit gekozen onderwerp ben ik mij eerst een aantal vragen gaan stellen welke men kan tegenkomen in de inleiding van de meeste hoofdstukken. Vervolgens ben ik aan de hand van de vragen verschillende opties gaan uitproberen om tot een gewenst resultaat te komen, namelijk een programma dat stroomschema’s “tekent”. Met als uitgangspunt dat mijn programma duidelijker, sneller, meer gestandaardiseerd maar vooral eenvoudig in gebruik moet zijn, is dit ontwerp tot stand gekomen.
7
Hoofdstuk 1 Het Stroomschema
1.1 Inleiding Om meer inzicht en duidelijkheid te krijgen wat een stroomschema is, wordt in dit hoofdstuk eerst dieper op het “probleem”stroomschema ingegaan. Dit is gebeurd aan de hand van de volgende vragen; Wat is een stroomschema en/of een stroomdiagram? Waarvoor dient een stroomschema/diagram? Wat doet een stroomschema/diagram? En hoe wordt deze opgebouwd? Wat betekenen de symbolen? Welke symbolen worden voor welke acties/bewerkingen gebruikt? Wat is het verschil tussen een stroomschema en een stroomdiagram? Wanneer wordt een stroomschema gebruikte en wanneer een stroomdiagram? Vervolgens worden er verschillende manieren vergeleken om een stroomschema te tekenen waaruit naar voren komt waar de knelpunten zitten, om van hieruit tot een besluit te komen hoe dit beter kan en hoe verder te gaan met dat gegeven. Hieruit komt de eerste opzet voor een ontwerp.
1.2 Definitie van een stroomschema Stroomschema – Stroomdiagram – Blokdiagram – Flowchart Een stroomschema is een hulpmiddel om de structuur en de werking van een computerprogramma voor te stellen en/of te verduidelijken. Het is een methode om een bepaald proces of beslissing op een logische beeldende manier in kaart te brengen. Een stroomschema bestaat uit hokjes met een symbolische vorm die systematisch, verbonden door een aantal lijnen of pijlen, de volgorde van handelingen en beslissingen een programma doorlopen en verduidelijken. Een goed stroomschema is onafhankelijk van gebruikte programmeer taal. En om netjes te programmeren wordt er begonnen met een stroomschema.
1.3 Het gebruik van een stroomschema Een stroomschema wordt altijd gebruikt voor het beschrijven van een proces. Dit kunnen processen zijn in de chemie, biologie, farmacie etc. Het proces wat hier beschreven gaat worden, is het programmeren. Programmeren is door analyseren een probleem oplossen. Het probleem wordt opgedeeld in zelfstandige deelproblemen. Van elk deelprobleem wordt een omschrijving gemaakt van de uit te voeren stappen om tot een oplossing te komen. Deze uit te voeren stappen worden in een grafisch schema omgezet; het Programma Stroom Schema (PSS) en/of het Programma Stroom Diagram (PSD).
1.4 Het verschil tussen een stroomschema en een stroomdiagram Een stroomschema en een stroomdiagram hebben beiden dezelfde functie, een grafische beschrijving (schema) van het proces van een programma. Maar om het verschil te visualiseren zijn op de volgende pagina in figuur 1A, een stroomschema en een stroomdiagram naast elkaar geplaatst. De procedure die als voorbeeld is genomen is het tekenen met pen op papier van een stoomschema. Het stroomschema (links) bevat het symbool subroutine met de tekst ‘Plaats symbolisch blok’. Deze subroutine is uitgewerkt in een stroomdiagram (rechts).
8
Figuur 1A Het verschil tussen een stroomschema en een stroomdiagram
9
1.5 Basissymbolen van een stroomschema en stroomdiagram 1.5.1 Basissymbolen van een stroomschema In een stroomschema worden een aantal verschillende standaard symbolen gebruikt. Hierdoor zijn de verschillende soorten opdrachten eenvoudig te herkennen. Deze symbolen zijn terug te vinden in de NEN Norm 3283:1967, zie bijlage A. In deze Norm zijn geen bindende aanwijzingen voor de verhoudingen van de hoogte en de breedte van de symbolen gegeven, de dusdanige verhouding tussen de hoogte en de breedte dient te worden aangehouden zodat het symbool direct herkenbaar is. De volgende symbolen worden het meest gebruikt;
Afsluiting, onderbreking (NEN 3283:1967-433), wordt gebruikt als beginpunt, eindpunt, pauze, uitstel of onderbreking.
Invoer (NEN 3283:1967-313), directe communicatie van mens naar machine. Tijdens de verwerking wordt er met de hand informatie ingevoerd door middel van het bedienen van schakelaars, toetsenborden of drukknoppen. Het programma zal verder werken met deze ingevoerde informatie en op deze manier het resultaat beïnvloeden.
Bewerking, proces, handeling (NEN 3283:1967-310/410), een uniek programma of deel van een programma. Elke bewerking kan afzonderlijk door het besturingssysteem worden afgehandeld. Het zijn aaneengeschakelde activiteiten om één of meer doelen te bereiken. Een bewerking omschrijft tevens de wijze waarop de activiteiten verlopen en hoe ze zich ontwikkelen.
Vooraf ingesteld proces (NEN 3283:1967-412), een programmadeel bestaande uit één of meerdere bewerkingen die ergens anders wordt beschreven zoals een functie of een subroutine.
Sturing, beslissing (NEN 3283:1967-411), handeling waarmee wordt bepaald welke van een aantal alternatieve wegen moet worden gevolgd naar een volgende bewerking. Alle overige symbolen van een stroomschema zijn te vinden op bijlage B
10
1.5.2 Basissymbolen van een stroomdiagram Een stroomdiagram bevat een klein aantal standaard symbolen. Een aantal van deze symbolen worden voor verschillende soorten opdrachten en zijn als dusdanig niet herkenbaar. Deze symbolen liggen niet vast in een Norm. Bij een stroomdiagram worden de volgende symbolen gebruikt;
Bewerking (Proces). Een uniek programma of deel van een programma. Elke bewerking kan afzonderlijk door het besturingssysteem worden afgehandeld. Het zijn aaneengeschakelde activiteiten om één of meer doelen te bereiken. Een bewerking omschrijft tevens de wijze waarop de activiteiten verlopen en hoe ze zich ontwikkelen.
Vooraf ingesteld proces. Een programmadeel bestaande uit één of meerdere bewerkingen die ergens anders wordt beschreven zoals een functie of een subroutine. A B
C
D
E
A.
Voorwaarde of beslissing. Handeling waarmee wordt bepaald welke van een aantal alternatieve wegen moet worden gevolgd naar een volgende bewerking. B. – C. Het “waar”en “niet waar”zijn van de voorwaarde of beslissing. D. – E. Handeling navolgend op “waar”en “niet waar”. A B
C
D
E
F
G
A.
Voorwaarde of beslissing. Handeling waarmee wordt bepaald welke van een aantal alternatieve wegen moet worden gevolgd naar een volgende bewerking. B.-C.-D. Waarden, behandel afhankelijk van de gekozen waarde een variabele E.-F.-G. Variabelen, handelingen navolgend op de waarden A
B
B
C
C
A
A. Zolang de voorwaarde “waar”is wordt deze bewerkingen herhaald B. – C. Bewerkingen
11
1.6 Keuze tussen het stroomschema en het stroomdiagram Het gebruik van een stroomschema of een stroomdiagram is zelf te bepalen. Het door elkaar gebruiken van een stroomschema en een stroomdiagram heeft geen bezwaar. Maar om fouten te voorkomen is het beter om één van de twee te gebruiken. Hierdoor zal ik niet beide schema’s uitwerken maar een keuze maken om verder te gaan met één soort schema. Deze keuze maak ik aan de hand van de voordelen en nadelen van beide schema’s. 1.6.1 Voordelen en nadelen van een stroomschema Voordelen Nadelen • Als men een grafische beschrijving van een • Een stroomschema neemt meer ruimte in proces tegenkomt is het meestal omschreven • Handelingen moeten in meer stappen in een stroomschema. omschreven worden. • Nagenoeg alle symbolen staan omschreven in de normen van het Nederlands Normalisatie-instituut (NEN) (zie bijlage A) • Computerprogramma’s zoals het Office pakket (Word, Excel, PowerPoint), AutoCAD (Symbolen A) etc. zijn voorzien van deze symbolen, ondersteunen deze manier van een schema tekenen. • Aan de symbolische vorm is te herkennen welke handeling zal plaatsvinden of verwacht wordt. • Een stroomschema is zeer overzichtelijk. 1.6.2 Voordelen en nadelen van een stroomdiagram Voordelen Nadelen • Deze vorm van schema is veel compacter • Een stroomdiagram wordt veel minder waardoor deze minder ruimte in beslag gebruikt neemt. • De symbolen voldoen niet aan een enkele • Er zijn minder stappen nodig om een vorm van een norm, dus iedereen deze naar handeling te omschrijven. eigen inzicht gebruiken. • Deze schemasymbolen staan niet standaard in software programma’s. • De symbolen zijn universeel en zal niet als een bepaalde handeling herkend worden. • Een stroomdiagram is minder overzichtelijk Naar aanleiding van de voordelen en nadelen beschreven in deze tabellen heb ik gekozen om het stroomschema verder uit te werken.
12
1.7 De opbouw en het structuren van een stroomschema Een stroomschema is de schematische weergave van de stappen die in programma worden doorlopen. In de volgende figuren wordt een voorbeeld van een stroomschema opgebouwd naar aanleiding van een simpel programma. Om de logische werking van het programma te verduidelijken is hier gebruik gemaakt van pijlen. De pijlen geven de volgorde weer waarin het stroomschema moet worden doorlopen. Figuur 1B hieronder, is de meest eenvoudige vorm van een programma, een beginblok en een eindblok welke nagenoeg altijd in een programma zitten. Het programma begint en een stap verder stopt het.
Figuur 1B De meest eenvoudige vorm van een programma
• Het eerste stroomschema hieronder, figuur 1C, is uitgebreid met 2 blokken, bewerkingen of procedures. • Het volgende stroomschema hieronder, figuur 1D, is uitgebreid met een nieuwe bewerking. Deze bevat een variabele en is geplaatst tussen de vorige twee bewerkingen. • Het derde stroomschema hieronder, figuur 1E, is uitgebreid met een blok voor de invoer van een waarde. De andere waarden zijn nu afhankelijk van wat de gebruiker invoert. • Het laatste stroomschema hieronder, figuur 1F, is uitgebreid met een sturingsblok. In dit blok wordt altijd een waarde vergeleken. In het eerste blok wordt dus een waarde ingegeven, in het tweede blok wordt deze opgehoogd. In het derde blok wordt de opgetelde waarde vergeleken met de op die plek ingevoerde waarde. Zolang de waarde niet gelijk is aan de ingevoerde waarde zal het programma de waarden blijven ophogen.
Figuur 1C
Figuur 1D
Figuur 1E
Figuur 1F
13
1.8 De opbouw van een stroomschema met een procedure Een procedure is een stukje programma of code dat zo is klaargemaakt dat hij meerdere keren gebruikt kan worden. Een procedure kan bestaan uit een Function (functie) dit zijn procedures die een resultaat teruggeven, of uit een Sub (subroutine) dit zijn procedures die geen resultaat teruggeven. Figuur 1G laat een stroomschema zien met 2 manieren om een function of een sub aan te geven in een stroomschema.
Figuur 1G 2 Manieren om een function of een sub aan te geven in een stroomschema
1.9 Het geautomatiseerd tekenen van een stroomschema Tot zover het theoretische gedeelte van het stroomschema. Nu de praktijk. Het tekenen van een stroomschema kan op 2 verschillende manieren gebeuren; met pen en papier of met een computerprogramma. Er zijn verschillende computerprogramma’s waar dit mee mogelijk is. Met de veel gebruikte programma’s zoals Word en Excel komt men al een heel eind, maar er zijn ook programma’s zoals Visio en Smartdraw die specifiek schema’s (vaak in de breedste zin van het woord) tekenen. Tekenprogramma’s zoals AutoCAD zijn zeer uitgebreid en hebben de mogelijkheid om bepaalde tekeningen en handelingen te standaardiseren. Elk programma heeft zijn voordelen en zijn nadelen en elk persoon die ermee moet tekenen heeft zijn eigen voorkeuren en vaardigheden.
14
1.10 Vergelijking van verschillende programma’s In de volgende tabellen worden 4 programma’s op een aantal punten vergeleken op het gemak van het tekenen van een stroomschema. De eerste 2 programma’s, Word en Excel, zijn in verhouding de meest gebruikte programma’s. De volgende 2 programma’s, AutoCAD en Smartdraw, zijn meer geavanceerde programma’s en daardoor bij een minder breed publiek bekend. Het tekenen van een stroomschema zonder programma is weggelaten, daar dit op nagenoeg alle punten matig tot slecht scoort. Het gemak van het gebruik van: Blokken Uitlijnen Verbindingslijnen (pijlen) Tekst in blok
Tekst bij pijl
F1 Help A4 formaat Precisie Standaardiseren Snelheid Bijzonderheden
Word (Figuur 1H)
Excel (Figuur 1I)
Goed (indien shifttoets voor de standaard verhoudingen ingedrukt gehouden wordt) Goed, ten opzichte van de objecten onderling Redelijk, pijlen bestaande uit meerdere lijnen worden vaak niet naar de wensen van de gebruiker getekend Redelijk, via menu onder rechter muisknop Tekst wordt linksboven uitgelijnd geplaatst binnen het blok en kan meerdere regels bevatten Tekst die niet binnen het blok valt (teveel regels) is niet zichtbaar Matig, voor elke tekst naast het schema dient een tekstvalk te worden aangemaakt
Goed (indien shifttoets voor de standaard verhoudingen ingedrukt gehouden wordt) Goed, ten opzichte van de objecten onderling Redelijk, pijlen bestaande uit meerdere lijnen worden vaak niet naar de wensen van de gebruiker getekend Redelijk, tekst kan direct ingetypt worden Tekst wordt linksboven uitgelijnd geplaatst binnen het blok en kan meerdere regels bevatten Tekst die niet binnen het blok valt (teveel regels) is niet zichtbaar Goed
Redelijk (beknopt, staat niets over uitlijning) Ja Niet (op het oog)
Matig
Redelijk Redelijk Er wordt getekend in een tekenveld Pijltoetsen werken Opties van het pulldown menu Tekenen en AutoVormen kunnen “losgescheurd”worden
Nee Nauwelijks (enig houvast aan de exceltabel op de achtergrond) Redelijk Redelijk Pijltoetsen werken Opties van het pulldown menu Tekenen en AutoVormen kunnen “losgescheurd”worden Het printveld kan vergroot of verkleind worden zodat het schema nagenoeg altijd op A4 past
15
Het gemak van het gebruik van:
AutoCAD (Figuur 1J)
Smartdraw (Figuur 1K)
Blokken
Slecht, alles dient zelf getekend te worden
Uitlijnen
Goed, indien er een raster gebruikt wordt Redelijk, de lijnen kunnen zoals de gebruiker wenst neergezet worden De pijlpunten vergen iets meer handigheid met het programma
Redelijk, er zijn geen standaard verhoudingen voor blokken (shifttoets werkt niet) Redelijk, op het oog
Verbindingslijnen
Tekst in blok
Tekst bij pijl F1 Help A4 formaat Precisie Standaardiseren Snelheid Bijzonderheden
Redelijk, pijlen worden bij de meeste blokken automatisch getekend Pijlen bestaande uit meerdere lijnen worden vaak niet naar de wensen van de gebruiker getekend Slecht, elke tekst moet opnieuw Redelijk, tekst kan direct ingetypt geactiveerd en uitgelijnd worden worden Als de tekst te groot is zal deze buiten Tekst wordt gecentreerd geplaatst het blok vallen binnen het blok en kan meerdere regels bevatten Het programma past zelf de letterhoogte aan beschikbare ruimte binnen het blok Goed Matig, elke tekst moet opnieuw geactiveerd en uitgelijnd worden Niet
Goed (uitgebreid, alleen in Engelse taal) Nee Ja Goed Niet (op het oog) Ja, kan door middel van blocks Redelijk Slecht Goed Het programma heeft de Van tevoren kan de lay-out gekozen mogelijkheden om stroomschema’s worden sneller en beter te kunnen tekenen Indien er een achtergrondkleur is Bij het printen kan de schaal vergroot gekozen hebben niet alle blokken of verkleind worden zodat het schema deze kleur nagenoeg altijd op A4 past
16
Figuur 1H Het tekenen van een stroomschema in Word
Figuur 1I Het tekenen van een stroomschema in Excel
Figuur 1J Het tekenen van een stroomschema in AutoCAD
Figuur 1K Het tekenen van een stroomschema in Smartdraw
17
1.11 Besluit De symbolen van een stroomschema liggen vast in de NEN norm 3283, maar komen in geen enkel programma op een dusdanige manier herkenbaar voor. Daarbij voldoet geen enkel programma aan alle wensen. Dus als men sporadisch een stroomschema tekent voldoen de programma’s Word en Excel. Als men presentaties met stroomschema’s maakt is een programma als Smartdraw een optie. Voor alle anderen, hier uitgaande van AutoCAD/VBA programmeurs (mijn medestudenten), die regelmatig functionele stroomschema’s volgens de norm willen tekenen is er weinig. En dit betekent dat AutoCAD/VBA programmeurs naast het programma AutoCAD altijd een ander programma moeten hebben openstaan om een stroomschema in te tekenen, wat niet wenselijk is. Naar aanleiding van de resultaten zoals af te lezen is in de tabel van de vorige paragraaf is het idee/de uitdaging ontstaan om een programma te ontwikkelen waarmee het tekenen van een stroomschema makkelijker en sneller gaat. Het programma moet duidelijk in gebruik zijn en het moet de symbolen van het stroomschema standaardiseren op de NEN Norm. Voor het ontwikkelen van een zoals hierboven beschreven programma is een geavanceerd tekenprogramma als AutoCAD in combinatie met de programmeermogelijkheden van VBA hier het meest geschikt voor. Ook omdat AutoCAD/VBA programmeurs hierdoor minder programma’s nodig hebben om eenvoudig een stroomschema te tekenen. Doordat er binnen AutoCAD tevens met blocks gewerkt kan worden kunnen de NEN symbolen in de tekening geladen worden (vanaf Internet of een symbolen CD) waardoor de tekening gestandaardiseerd zal worden zodat elk symbool een constante is. VBA bij uitstek geschikt voor om de pijlen te definiëren en alle symbolen op een eenvoudige manier op te roepen via formulier met een makkelijk werkbare lay-out. Dit formulier moet het programma gaan verwoorden aan alle bovenstaande ideeën voldoet.
18
Hoofdstuk 2 Het Programma
2.1 Inleiding Nu bekend is wat het idee voor het te schrijven programma is kwamen de volgende vragen naar voren; Wat maakt een programma duidelijk en overzichtelijk? Wat maakt een programma gebruiksvriendelijk? Wat maakt een programma eenvoudig te gebruiken? Hoe wordt het programma verwoordt in de lay-out? Hoe ontwerp ik een lay-out die aanspreekt? De symbolen zijn bekend maar hoe gaan deze geplaatst worden? Hoe worden de veel gebruikte en de minder gebruikte symbolen verdeeld? Hoe worden de pijlen gedefinieerd? Hoe wordt een “Help”gebruikt als men er zelf niet uit komt? Een heleboel vragen waar in dit hoofdstuk op in gegaan wordt aan de hand van het proces wat mijn uiteindelijke programma heeft doorgemaakt tijdens het ontwerpen van het programma met bijbehorende lay-out
2.2 Het stroomschema als probleem Zoals in het vorige hoofdstuk al geschreven stond; om een probleem op te lossen dient deze verdeeld te worden in deelproblemen. Als het probleem “Stroomschema”grof opgesplitst wordt, blijven er 4 deelproblemen over, te weten; de algemene instellingen, de symbolen, de tekst die hier eventueel in geplaatst gaat worden en de pijlen. De algemene instellingen zorgen ervoor dat binnen het programma bepaalde instellingen aangepast worden om het programma te vereenvoudigen en om het resultaat te standaardiseren, denk hierbij aan tekstfont, tekenlimiet etc. De gebruiker kan eenvoudig alle verdere handelingen verrichten zonder dat deze merkt dat deze instellingen aangepast zijn of dat de gebruiker deze zelf eerst heeft moeten aanpassen. Om een stroomschema logisch te tekenen moet dit overzichtelijk gebeuren. Eerst wordt het grootste gedeelte van de symbolen geplaatst met daarin direct de tekst, vervolgens de pijlen, waarna het stroomschema met nog ontbrekende symbolen, teksten en pijlen wordt aangevuld. Dit gegeven is omgezet in een stroomschema over hoe “het stroomschema”met het programma getekend zou moeten worden, zie figuur 2A op de volgende pagina.
19
Figuur 2A Het geautomatiseerd tekenen van een stroomschema
20
2.3 Symbolen, pijlen en tekst Het omzetten van de deelproblemen naar een gebruiksvriendelijk programma is een proces geweest met 2 duidelijke fases; de beginfase en de eindfase. 2.3.1 Beginfase en eindfase Beginfase Algemene De instellingen werden vanuit het instellingen programma geactiveerd. Raster, grit en tekstfont werden met VBA aangepast binnen de actieve tekening zodra het programma gestart werd of een functie van het programma werd gebruikt Resultaat Geen flexibiliteit. Bovenstaande instellingen waren niet aan te passen tijdens het tekenen van een stroomschema doordat tijdens het gebruik het programma deze instellingen telkens activeerde
Eindfase De instellingen zijn opgeslagen in een tekening. Het tekenlimiet staat ingesteld op formaat A4. Het raster, en het zichtbare A4 kader zijn blocks die in een niet te printen laag staan. Het tekstfont is gewoon onder Format aangepast Zeer flexibel. De gebruiker heeft alle vrijheid om de instellingen naar eigen wens aan te passen zonder dat deze elke keer opnieuw wordt aangepast door het programma
Symbolen
Elke lijn van een symbolisch blok werd los getekend met in een sub gedefinieerde lijnen in VBA
Resultaat
Door alle losse lijnen werd de code zeer lang en onoverzichtelijk waardoor de kans op foutmeldingen toeneemt, en het blok was lastig te verplaatsen doordat alle losse lijnen geselecteerd moest worden
Tekst
De tekst bevatte 1 regel die op een vast punt binnen de getekende lijnen stond
De tekst kan uit meerdere regels bestaan die op het block geplaatst wordt
Resultaat
De tekst was niet flexibel en net als de rest een los onderdeel en moest dus ook geselecteerd worden als het blok verplaatst werd
De tekst is flexibeler, maar is nog steeds een los onderdeel die apart geselecteerd moet worden om samen met het block te verplaatsen.
Pijlen
Elke pijl werd los gedefinieerd, wat inhield dat er een behoorlijk aantal verschillende pijlen was met een vast aantal bochten en een vaste richting van de pijlpunt. Geen flexibiliteit, men moest van te voren weten welke pijl er nodig was (hoeveel bochten en de stand van de pijlpunt) en door alle losse pijlen werd de code zeer lang en onoverzichtelijk waardoor de kans op foutmeldingen toeneemt. Pijlen met meer dan drie bochten moesten worden aangevuld met de normale lijn vanuit AutoCAD zelf
Er zijn 2 pijlen gedefinieerd; de enkele pijl, waar maar 2 punten voor nodig zijn, en de oneindige pijl, waar de lijn zoveel lengtes en bochten kan bevatten tot dat de gebruiker de lijn afsluit met Enter Zeer flexibel. Er hoeft alleen een keuze gemaakt te worden of de pijl uit 1 lijn bestaat of uit meerdere lijnen. De richting van de pijlpunt wordt geplaatst in de laatst gekozen richting
Resultaat
De symbolische blokken staan opgeslagen als blocks (volgens de NEN norm) binnen de tekening. Het programma roept de betreffende blocks op Doordat er gewerkt wordt met blocks die opgeroepen worden kunnen de NEN blocks van internet of de symbolen-CD gebruikt worden
21
2.4 De Lay-out Ook de lay-out van het programma heeft een proces doorgemaakt. Dit omdat het gebruiksvriendelijke programma ook een gebruiksvriendelijke lay-out nodig heeft. De lay-out moet voor zichzelf spreken zodat elke gebruiker zonder enige voorkennis het programma kan gebruiken. De lay-out heeft 3 ontwerpfases doorgemaakt; het beginontwerp, het tussenontwerp en het eindontwerp. 2.4.1 Het beginontwerp Ontwerp 1 (figuur 2B) Grootte
+ … -
Het programma is in verhouding tot het tekenscherm erg ruimtevullend Duidelijkheid + Het is duidelijk welke knop voor welk symbool of pijl gebruikt moet worden - Door de hoeveelheid informatie kan de verkeerde knop ingedrukt worden Gebruik
+ Het tekenen van een stroomschema gaat al een stuk eenvoudiger - Het merendeel van de symbolen staan er niet op
Ontwerp 2 (figuur 2B) Het programma neemt in het tekenveld nauwelijks ruimte in beslag … … Doordat er geen illustraties gebruikt worden moet er vanuit de omschrijving begrepen worden om welke symbolen en pijlen het gaat Als men alle omschrijvingen weet is er met het programma te werken Zeer onhandig.
Figuur 2B Het beginontwerp van de lay-out
22
2.4.2 Het tussenontwerp Grootte
Ontwerp 3 (figuur 2C) + Doordat het programma uit tabbladeren bestaat neemt het programma niet veel ruimte in beslag
- … Duidelijkheid + Het is duidelijk welke knop voor welk symbool of pijl gebruikt moet worden Gebruik
De pijlen moeten nog steeds goed vooraf geschat worden om de juiste pijl aan te klikken + Door de overzichtelijkheid goed
-
Het merendeel van de symbolen staan er niet op
Ontwerp 4 (figuur 2C) Doordat het programma uit tabbladeren bestaat neemt het programma niet veel ruimte in beslag, al wordt het programma breder bij het tabblad “Blokken”en langer bij het tabblad “Help” … Het is duidelijk welke knop voor welk symbool of pijl gebruikt moet worden en doordat er nog maar 2 pijlen zijn hier minder vergissingen in mogelijk Bij de pijlen komt er na het afsluiten van de lijn nog een pijlpunt van 5 mm aan Het programma uitgebreid is met een “Help”en kunnen problemen direct worden opgelost. De meer specifieke (minder gebruikte) symbolen staan onder de uitbreiding van het tabblad “blokken”en is dus compleet. …
Figuur 2C Het tussenontwerp van de lay-out
23
2.4.3 Het eindontwerp Het eindontwerp, figuur 2D, lijkt erg veel op het 4de ontwerp van de vorige paragraaf, alleen de volgende onderdelen zijn aangepast/geoptimaliseerd; • De lay-out is meer met kleur omdat de vormen van de symbolen hierdoor nog beter naar voren komen en het oogt in zijn totaliteit vriendelijker dan een programma dat bestaat uit een grijze achtergrond met zwarte lijntjes en letters. Een grafische lay-out voor een grafische beschrijving van een proces (programma). • De pijlen zijn geoptimaliseerd zodat waar de lijn wordt afgesloten ook direct de punt van de pijlpunt daar geplaatst wordt. • In plaats van dat het tabblad “Help”langer wordt, wordt deze breder net als de verbreding van het tabblad “Blokken”zodat ook in het formulier een bepaalde standaard ontstaat. • Het tabblad “Blokken”kan nog verbreed worden maar niet meer versmald, het programma versmald zichzelf als een ander tabblad of een standaard symbool/blok geactiveerd wordt. • Het tabblad “Help”verbreed zich automatisch als een van de Help-tabs geactiveerd wordt en het programma versmald zichzelf als een ander tabblad (Blokken of Pijlen)geactiveerd wordt.
Figuur 2D Het eindontwerp van de lay-out
2.5 Het resultaat Doordat er in verschillende fases is gewerkt ontstaat er een proces waar het positieve van een ontwerp, zowel programma als lay-out, wordt behouden of eventueel wordt verbeterd. Het minder goede van het ontwerp wordt dusdanig verbeterd en aangepast dat hier een duidelijk verschil ontstaat om het programma en de lay-out te perfectioneren. Het resultaat is een eenvoudig geschreven programma dat net zo eenvoudig werkt met een aansprekende lay-out.
24
Hoofdstuk 3 De werking van het programma
3.1 Inleiding In dit hoofdstuk wordt beschreven hoe het programma werkt in combinatie met AutoCAD. Vervolgens wordt het geschreven programma visueel uitgebeeld in een stroomschema waarna er delen van de code worden uitgelegd waaruit het programma is opgebouwd.
3.2 Werken met het programma Het resultaat is een programma naast dat duidelijk en simpel is geschreven, een duidelijke gebruiksvriendelijke lay-out heeft en voor de gebruiker eenvoudig werkt. De werking van het programma wordt getoond aan de hand van een aantal figuren; Figuur 3A Zodra de template met het programma geopend/gestart wordt zijn de verschillende instellingen actief welke zijn opgeslagen in de tekening terug te vinden volgens de normale methode van AutoCAD. Deze instellingen zijn op de blocks na te wijzigen zonder dat dit nadelig werkt voor het programma. Als de blocks gewijzigd worden kan AutoCAD deze niet meer oproepen en zal er niets getekend worden of er komen minder fraaie tekeningen te voorschijn. De instellingen die zich in de tekening bevinden zijn; • Het tekstfont is aangepast naar Arial • Het tekenlimiet heeft het formaat van een A4 • Er zijn een aantal lagen ingesteld waarin zich blocks bevinden; • Een block van een 5 millimeter raster welke op slot staat en niet wordt geprint • Een block van een 10 millimeter raster welke op slot staat en niet wordt geprint • Een block van een kader op het A4 formaat welke op slot staat en niet wordt geprint • Een lege laag “Blokken”waarin het schema wordt getekend en wel wordt geprint • De tekening is geladen met alle blocks die worden gebruikt door het programma • Deze blocks bevatten attributen • Het programma is embedded in de tekening
25
Figuur 3A De actieve instellingen binnen de template
Figuur 3B Dit is de template die het hele programma bevat. Het programma is embedded (ingeladen) in de tekening. Het programma wordt als deze template aangeleverd om vervolgens door de gebruiker deze ook als template op de harde schijf op te slaan. Dus om het programma te gebruiken hoeft de gebruiker alleen de opgeslagen template te openen. Figuur 3C De symbolen worden geplaatst door de betreffende knop van het programma te activeren waarna in de commandoregel gelezen kan worden waar het symbool geplaatst moet worden. Nadat het symbool geplaatst is wordt er een nieuw programma actief waarmee de tekst kan worden geplaatst. Figuur 3D Het tekenen van pijlen is een kwestie van de juiste pijl kiezen. De enkele pijl bestaat uit een enkele lijn met daaraan de pijlpunt. De oneindige pijl bestaat uit meerdere lijnen, de pijlpunt wordt geplaatst nadat er is afgesloten met Enter of dat er op Escape is gedrukt. De punt van de pijl wordt geplaatst op de laatste muisklik van de geplaatste lijn. De pijlpunt heeft dezelfde richting als de laatst getekende lijn. Figuur 3E Mocht men er toch niet uitkomen, graag willen weten wat de betekenis is van bepaalde symbolen zijn of de NEN norm willen bekijken kan dit op het tabblad Help. De teksten van dit tabblad zijn terug te vinden op bijlage C
26
Figuur 3B De programma bevattende template
Figuur 3C Het plaatsen van de symbolen en tekst met het programma
27
Figuur 3D Het plaatsen van de pijlen met het programma
Figuur 3E Het gebruik van het tabblad Help van het programma
28
3.3 Het stroomschema
Figuur 3F Het stoomschema van het geschreven programma
29
3.4 Delen van de code Doordat het programma uit meerdere onderdelen bestaat, wordt de code per onderdeel behandeld; 3.4.1 Algemene instellingen Instelling voor het tonen/activeren van het programma zodra de template geopend wordt Private Sub AcadDocument_Activate() frmStroomschema.Show End Sub Instelling voor de breedte van het formulier/lay-out zodra deze gestart wordt Private Sub UserForm_Activate() Me.Width = 125 End Sub Instelling voor de standaard breedte van de tabbladen “Blokken”, “Pijlen”en “Help” Private Sub MultiPage1_Change() Me.Width = 125 End Sub Instelling voor het verbreden van tabblad “Blokken”om de Specifiek Symbolische Blokken te openen Private Sub ImVerbreden_Click() Me.Width = 310 End Sub Instelling voor het verbreden van de tabbladen welke zich bevinden op het tabblad “Help” Private Sub MultiPage2_Change() Me.Width = 310 End Sub 3.4.2 Symbolen De symbolen worden aangemaakt in de module Tekenen. Zodra een functie van het programma geactiveerd wordt zal de code achter het formulier deze module oproepen Een block oproepen vanuit module Tekenen Sub NEN_Blokken(ByVal Naam As String, ByVal x As Double, ByVal y As Double, ByVal h As Double) Dim punt(0 To 2) As Double Dim NENBlokObject As AcadBlockReference punt(0) = x punt(1) = y punt(2) = 0 On Error Resume Next Eerst wordt er gezocht of de op te roepen block in de tekening staat Set NENBlokObject = ThisDrawing.ModelSpace.InsertBlock(punt, Naam, 1, 1, 1, h) Als dit niet zo is wordt de harde schijf doorzocht of de blocks zich daar bevinden If Err Then Set NENBlokObject = ThisDrawing.ModelSpace.InsertBlock(punt, Naam & ".dwg", 1, 1, 1, h) Err.Clear End If NENBlokObject.Update End Sub 'Einde NEN_Blokken
30
Achter de knoppen van het programma bevinden zich deze codes. Doordat er voor nagenoeg elk symbool dezelfde code wordt gebruikt staan hier enkele voorbeelden om een indruk te krijgen. Het oproepen van block NEN 433; Begin of Einde, vanuit het programma Private Sub LbBegin_Click() Definiëren van het punt dat de gebruiker plaatst in het tekenveld p = ThisDrawing.Utility.GetPoint(, "Waar") x = p(0) y = p(1) Het oproepen van het aangemaakte/opgeroepen block vanuit de module Tekenen Tekenen.NEN_Blokken "NEN 433", x, y, h Het oproepen van een nieuw formulier/programma om de tekst te plaatsen frmAttribuutBeginEinde.Show End Sub Om aan te tonen dat de code nauwelijks veranderd bij verschillende te plaatsen symbolen volgen hier de codes van de symbolen NEN 313 Invoer, NEN 310 Bewerking en NEN 411 Sturing Private Sub LbInvoer_Click() p = ThisDrawing.Utility.GetPoint(, "Waar") x = p(0) y = p(1) Tekenen.NEN_Blokken "NEN 313", x, y, h frmAttributenAlgemeen.Show End Sub Private Sub LbBewerking_Click() p = ThisDrawing.Utility.GetPoint(, "Waar") x = p(0) y = p(1) Tekenen.NEN_Blokken "NEN 310", x, y, h frmAttributenAlgemeen.Show End Sub Private Sub LbSturing_Click() p = ThisDrawing.Utility.GetPoint(, "Waar") x = p(0) y = p(1) Tekenen.NEN_Blokken "NEN 411", x, y, h frmAttributenSturing.Show End Sub
31
3.4.3 Tekst Er worden verschillende tekstsoorten aangemaakt in de module Tekenen. Deze tekstsoorten worden opgeroepen vanuit de verschillende formulieren die gekoppeld staan aan de symbolen van het programma. Vanuit deze formulieren kan de gebruiker de gewenste tekst invoeren waarna deze in het symbool geplaatst wordt. Het aanmaken van links uitlijnende tekst in de module Tekenen Sub Tekst(ByVal regel As String, ByVal x As Double, ByVal y As Double, ByVal h As Double) Dim punt(0 To 2) As Double Het aanmaken van een tekst in AutoCAD Dim objTekst As AcadText punt(0) = x punt(1) = y On Error Resume Next De net aangemaakte tekst toevoegen Set objTekst = ThisDrawing.ModelSpace.AddText(regel, punt, h) objTekst.Update End Sub 'Einde Tekst Het aanmaken van gecentreerde tekst in de module Tekenen Sub TekstGecentreerd(ByVal regel As String, ByVal x As Double, ByVal y As Double, ByVal h As Double) Dim punt(0 To 2) As Double Dim oorsprong(0 To 2) As Double Het aanmaken van een tekst in AutoCAD Dim objTekst As AcadText punt(0) = x punt(1) = y On Error Resume Next De net aangemaakte tekst toevoegen Set objTekst = ThisDrawing.ModelSpace.AddText(regel, punt, h) De tekst centreren op het aangegeven punt objTekst.Alignment = acAlignmentMiddleCenter Call objTekst.Move(oorsprong, punt) objTekst.Update End Sub 'Einde TekstGecentreerd Het aanmaken van rechts uitlijnende tekst in de module Tekenen Sub TekstRechts(ByVal regel As String, ByVal x As Double, ByVal y As Double, ByVal h As Double) Dim punt(0 To 2) As Double Dim oorsprong(0 To 2) As Double Het aanmaken van een tekst in AutoCAD Dim objTekst As AcadText punt(0) = x punt(1) = y On Error Resume Next De net aangemaakte tekst toevoegen Set objTekst = ThisDrawing.ModelSpace.AddText(regel, punt, h) De tekst rechts uitlijnen vanaf het aangegeven punt objTekst.Alignment = acAlignmentMiddleRight Call objTekst.Move(oorsprong, punt) objTekst.Update End Sub 'Einde TekstRechts
32
Achter de knoppen van de tekstprogramma’s bevinden zich deze codes. Doordat er voor nagenoeg elk tekstprogramma dezelfde code wordt gebruikt staan hier enkele voorbeelden om een indruk te krijgen. Het plaatsen van een tekst door middel van het tekstprogramma “Begin of Einde”figuur 3G Private Sub ImAttributenStartEinde_Click() Het formulier van het programma moet verdwijnen zodra de tekst geplaatst is Me.Hide p = ThisDrawing.Utility.GetPoint(, "Klik het plaatspunt van het blok aan") x = p(0) y = p(1) De tekst die geplaatst moet worden is de tekst uit de tekstbox van het programma GetoondeTekst = Me.TxtRegel1 Tekenen.TekstGecentreerd GetoondeTekst, x, y - 5, 2.5 End Sub Het plaatsen van een tekst door middel van het tekstprogramma “Sturing”figuur 3H Private Sub ImAttributenAlgemeen_Click() Het formulier van het programma moet verdwijnen zodra de tekst geplaatst is Me.Hide p = ThisDrawing.Utility.GetPoint(, "Klik het plaatspunt van het blok aan") x = p(0) y = p(1) De gecentreerde tekst die geplaatst moet worden vanuit de tekstbox van het programma GetoondeTekst = Me.TxtRegel1 Tekenen.TekstGecentreerd GetoondeTekst, x, y - 20 / 4, 2.5 GetoondeTekst = Me.TxtRegel2 Tekenen.TekstGecentreerd GetoondeTekst, x, y - 20 / 2, 2.5 GetoondeTekst = Me.TxtRegel3 Tekenen.TekstGecentreerd GetoondeTekst, x, y - 20 / 4 * 3, 2.5 De links uitlijnende tekst die geplaatst moet worden vanuit de tekstbox van het programma GetoondeTekst = Me.TxtWaarNietWaar Tekenen.Tekst GetoondeTekst, x + 16, y - 20 / 4 - 1.25, 2.5 GetoondeTekst = Me.TxtNietWaarWaar Tekenen.Tekst GetoondeTekst, x + 1, y - 25 - 1.25, 2.5 De rechts uitlijnende tekst die geplaatst moet worden vanuit de tekstbox van het programma GetoondeTekst = Me.TxtWaarrNietWaar Tekenen.TekstRechts GetoondeTekst, x - 16, y - 20 / 4, 2.5 GetoondeTekst = Me.TxtNietWaarWaar Tekenen.TekstRechts GetoondeTekst, x - 1, y - 25, 2.5 End Sub
33
Het plaatsen van een tekst door middel van het tekstprogramma “Blokken algemeen”met 3 links uitlijnende tekstregels, figuur 3I Private Sub ImAttributenAlgemeen_Click() Het formulier van het programma moet verdwijnen zodra de tekst geplaatst is Me.Hide p = ThisDrawing.Utility.GetPoint(, "Klik het plaatspunt van het blok aan") x = p(0) y = p(1) De links uitlijnende tekst die geplaatst moet worden vanuit de tekstbox van het programma GetoondeTekst = Me.TxtRegel1 Tekenen.Tekst GetoondeTekst, x - 12.5, y - 20 / 4 - 1.25, 2.5 GetoondeTekst = Me.TxtRegel2 Tekenen.Tekst GetoondeTekst, x - 12.5, y - 20 / 2 - 1.25, 2.5 GetoondeTekst = Me.TxtRegel3 Tekenen.Tekst GetoondeTekst, x - 12.5, y - 20 / 4 * 3 - 1.25, 2.5 End Sub Het plaatsen van een tekst door middel van het tekstprogramma “Blokken algemeen”met gecentreerde tekstregels, figuur 3J Private Sub ImAttributenAlgemeen_Click() Het formulier van het programma moet verdwijnen zodra de tekst geplaatst is Me.Hide p = ThisDrawing.Utility.GetPoint(, "Klik het plaatspunt van het blok aan") x = p(0) y = p(1) De gecentreerde tekst die geplaatst moet worden vanuit de tekstbox van het programma GetoondeTekst = Me.TxtRegel1 Tekenen.TekstGecentreerd GetoondeTekst, x, y - 20 / 4, 2.5 GetoondeTekst = Me.TxtRegel2 Tekenen.TekstGecentreerd GetoondeTekst, x, y - 20 / 2, 2.5 End Sub
Figuur 3G
Figuur 3H
Figuur 3I
Figuur 3J
34
3.4.4 Pijlen De pijlpunt wordt als block aangemaakt in de module Tekenen. De lijnen worden aangemaakt in de module Pijlen. De enkele lijn en de laatst getekende lijn van de meervoudige lijn worden 5 mm verkort waarna de pijlpunt, die 5 mm lang is, wordt opgeroepen uit de module Tekenen en geplaatst in de zelfde richting als de enkele lijn en de laatst getekende lijn van de meervoudige lijn. Zodra de functie enkele pijl of oneindige lijn van het programma geactiveerd wordt zal de code achter het formulier de module Pijlen oproepen. Het aanmaken van het block pijlpunt in de module Tekenen Sub Blok_Punt(x, y, h) De punten definiëren die worden gebruikt om de pijlpunt te tekenen Dim p0(0 To 2) As Double Dim p1(0 To 2) As Double Dim p2(0 To 2) As Double Dim p3(0 To 2) As Double Dim oorsprong(0 To 2) As Double Dim punt(0 To 2) As Double punt(0) = x punt(1) = y On Error Resume Next Eerst wordt er gezocht of het nog aan te maken block al in de tekening staat Set BlokPuntObject = ThisDrawing.Blocks.Item("BlokPunt") If Err Then Zoniet dan wordt het block aangemaakt Set BlokPuntObject = ThisDrawing.Blocks.Add(oorsprong, "BlokPunt") Pijlgrootte = 5 p0(0) = 0: p0(1) = -Pijlgrootte / 4 p1(0) = Pijlgrootte: p1(1) = 0 p2(0) = 0: p2(1) = Pijlgrootte / 4 p3(0) = 0: p3(1) = Pijlgrootte / 4 Van het block een solid maken zodat de punt niet uit losse lijnen bestaat Dim SolidObj As AcadSolid Set SolidObj = BlokPuntObject.AddSolid(p0, p1, p2, p3) SolidObj.Update End If Het oproepen van een block referentie (welke of al in de tekening staat of net is aangemaakt) Dim pijl As AcadBlockReference Set pijl = ThisDrawing.ModelSpace.InsertBlock(punt, "BlokPunt", 1, 1, 1, h) pijl.Update End Sub 'Einde Blok Punt
35
Het aanmaken van een oneindige pijl in de module Pijlen Sub Oneidige_Pijl() Definiëren van het beginpunt en het volgende punt dat de gebruiker plaatst in het tekenveld Dim p(0 To 2) As Double p0 = ThisDrawing.Utility.GetPoint(, "Beginpunt") x0 = p0(0) y0 = p0(1) p1 = ThisDrawing.Utility.GetPoint(p0, "Volgend punt") x1 = p1(0) y1 = p1(1) Het aanmaken van een lijn Dim LijnObject As AcadLine Set LijnObject = ThisDrawing.ModelSpace.AddLine(p0, p1) On Error Resume Next Het aanmaken vanaf het derde en de daarop volgende punten totdat de lijn wordt afgesloten met Enter Do p(0) = p0(0): p(1) = p0(1) p0(0) = x1: p0(1) = y1 x0 = p0(0): y0 = p0(1) Call ThisDrawing.Utility.InitializeUserInput(0, "Enter") p1 = ThisDrawing.Utility.GetPoint(p0, "Volgend punt of [Enter]") x1 = p1(0) y1 = p1(1) If Not (x0 = x1 And y0 = y1) Then Set LijnObject = ThisDrawing.ModelSpace.AddLine(p0, p1) Else Het definiëren van de variabelen hoek en de lengte van de laatst getekende lijn van de pijl Dim hoek As Variant hoek = LijnObject.Angle Dim oude_lengte As Variant Dim nieuwe_lengte As Variant oude_lengte = LijnObject.Length nieuwe_lengte = oude_lengte - 5 Het uitwissen van de laatst getekende lijn, zodat de nieuwe laatste lijn – 5 mm met daaraan direct de pijlpunt, geplaatst kan worden LijnObject.Delete Het tekenen van de nieuwe laatste lijn Dim punt(0 To 2) As Double Dim PolarPunt As Variant PolarPunt = ThisDrawing.Utility.PolarPoint(p, hoek, nieuwe_lengte) Set LijnObject = ThisDrawing.ModelSpace.AddLine(p, PolarPunt) x3 = PolarPunt(0) y3 = PolarPunt(1) Het plaatsen van het aangemaakte/opgeroepen block vanuit de module Tekenen Call Tekenen.Blok_Punt(x3, y3, hoek) GoTo stoppen End If Loop stoppen: End Sub 'Einde Oneindige Pijl
36
Het aanmaken van een enkele pijl in de module Pijlen Sub Enkele_Pijl() Definiëren van het beginpunt en het eindpunt dat de gebruiker plaatst in het tekenveld p0 = ThisDrawing.Utility.GetPoint(, "Beginpunt") p1 = ThisDrawing.Utility.GetPoint(p0, "Eindpunt") Het aanmaken van een lijn Dim LijnObject As AcadLine Set LijnObject = ThisDrawing.ModelSpace.AddLine(p0, p1) Het definiëren van de variabelen hoek en de lengte van de pijl Dim hoek As Variant hoek = LijnObject.Angle Dim oude_lengte As Variant Dim nieuwe_lengte As Variant oude_lengte = LijnObject.Length nieuwe_lengte = oude_lengte - 5 Het uitwissen van de als eerst getekende lijn, zodat de nieuwe lijn – 5 mm met daaraan direct de pijlpunt, geplaatst kan worden LijnObject.Delete Het tekenen van de nieuwe lijn Dim punt(0 To 2) As Double Dim PolarPunt As Variant PolarPunt = ThisDrawing.Utility.PolarPoint(p0, hoek, nieuwe_lengte) Set LijnObject = ThisDrawing.ModelSpace.AddLine(p0, PolarPunt) x = PolarPunt(0) y = PolarPunt(1) Het plaatsen van het aangemaakte/opgeroepen block vanuit de module Tekenen Call Tekenen.Blok_Punt(x, y, hoek) End Sub 'Einde Enkele Pijl Het oproepen van de enkele pijl, vanuit het programma Private Sub LbEnkelePijl_Click() Het oproepen van de aangemaakte pijl vanuit de module Pijlen Call Pijlen.Enkele_Pijl End Sub Het oproepen van de oneindige pijl, vanuit het programma Private Sub LbOneindigePijl_Click() Het oproepen van de aangemaakte pijl vanuit de module Pijlen Call Pijlen.Oneidige_Pijl End Sub
37
Conclusie
In de opzet om een duidelijker, sneller, meer gestandaardiseerd maar vooral eenvoudig programma te ontwerpen ben ik naar mijn idee aardig geslaagd. Persoonlijk vind ik het programma prettig werken en heb het programma veelvuldig gebruikt bij het tekenen van de stroomschema’s in dit verslag. De personen aan wie dit programma getoond is en de personen die dit programma getest hebben zijn er al even positief over. Maar doordat er tot op heden maar een klein aantal personen (die nu ondertussen weten hoe het programma werkt) het programma hebben getest zullen er ongetwijfeld nog kinderziekten naar boven komen. Maar problemen zijn er om opgelost te worden en zijn dus een onderdeel van het totale proces om tot een goed ontwerp/product te komen. Het plaatsen van de tekst is naar mijn idee een punt wat de toekomst nog te verbeteren is. En mocht bij de gebruiker het programma desondanks toch niet aan alle wensen voldoen, staan alle blocks met attributen opgeslagen in de tekening en zijn deze op de manieren binnen AutoCAD te gebruiken. De blocks kunnen ook makkelijk omgezet worden in een Toolpallete waardoor ze ook simpel te gebruiken zijn. Alleen op deze manier van werken vergt het tekenen van de pijlen weer enige tijd.
38
Bijlage A NEN Norm 3283
NEN 3283:1967 nl Documentnummer
NEN 3283:1967 nl
Publicatiedatum
01-12-1967
Registratiedatum
01-01-1980
Taal
nl
Nederlandse titel
Automatische informatieverwerking - Symbolen voor schema's
Engelse titel
Flowchart symbols for information processing
Vervangt Vervangen door Wijzigt Gewijzigd door ICS code(s)
35.080
Intrekkingdatum Uitgever
NEN
Aantal pagina's
4
Nationale samenvatting
Deze norm geeft symbolen voor schema's voor automatische informatieverwerking.
Engelse samenvatting
Relaties
ISO/DP 1299
Opmerking Commissienummer
381007
Commissie Bundels Vertaling Commissie Europees Commissie Internationaal Richtlijnen Regelgeving
NEN 3283:1967 nl
39
XXXIX
40
Bijlage B Overige symbolen Gegevens invoer, uitvoer (NEN 3283:1967-320/420), algemeen voor het gebruik van invoer/uitvoer handelingen. Voorbereiding (NEN 3283:1967-413), het klaarmaken van een instructie of een groep van instructies; het zetten van een wissel, het initialiseren van een routine etc. Handmatige bewerking (NEN 3283:1967-312/414), hierbij wordt geen gebruik gemaakt van mechanische hulpmiddelen. Document (NEN 3283:1967-323), de overdracht van informatie waarbij de drager een document is. Meerdere documenten.
Interne opslag (NEN 3283:1967-329), het vastleggen of overdragen van informatie waarbij de drager een kernengeheugen is.
Kaart (NEN 3283:1967-324), de overdracht van informatie waarbij de drager een kaart (in alle specialistische vormen) is. Ponsband (NEN 3283:1967-325), de overdracht van informatie waarbij de drager een ponsband is. Scheidingslijn Connector (NEN 3283:1967-333/432), het afbreken van een lijn die onder verwijzing naar een andere connector met een corresponderende aanduiding ergens anders wordt voortgezet Connector naar andere pagina
Samenvoeging
Of
XL 41
Samenvoegen met selectie (NEN 3283:1967-316), samenvoegen met gelijktijdige uitsplitsing; het vormen van twee of meer rijen informatie-eenheden uit twee of meer andere rijen.
Sorteren (NEN 3283:1967-317), het ordenen van een serie informatie-eenheden in een speciale volgorde.
Uitsplitsen - Extract - (NEN 3283:1967-315), het volgens bepaalde criteria scheiden van een rij informatie-eenheden in twee of meer rijen. Samenvoegen - Merge - (NEN 3283:1967-314), het in elkaar voegen van twee of meerdere rijen in één enkele rij.
Uitstel Gekoppeld geheugen (NEN 3283:1967-321), algemeen symbool voor een handeling waarbij gebruikt wordt gemaakt van een gekoppeld geheugen zoals magneetband, magneetschijf etc. Magneetband (NEN 3283:1967-326), de vastlegging of overdracht van informatie waarbij de drager een magneetband is.
Magneetschijf (NEN 3283:1967-328), de vastlegging of overdracht van informatie waarbij de drager een magneetschijf is. Magneettrommel (NEN 3283:1967-327), de vastlegging of overdracht van informatie waarbij de drager een magneettrommel is. Weergave (NEN 3283:1967-3210), directe communicatie van machine naar mens. Overdracht waarbij de informatie gedurende het proces direct toegankelijk wordt.
XLI 42
Bijlage C Help procedure programma Algemeen
Tekst
Zodra de template wordt geopend zijn de volgende instellingen actief;
De symbolen welke ingeladen zijn in de tekening bevatten tekst, uitgezonderd de symbolen NEN 314 Samenvoegen, NEN 315 Ophalen, NEN 316 Samenvoeging, NEN 317 Sorteren, Samenvoeging en Of.
De tekenlimiet is ingesteld op A4 formaat. Binnen deze limiet bevinden zich een zichtbaar raster en kader. Het raster en het kader zijn blokken en staan in de betreffende laag op slot. Deze lagen worden niet geprint. Alle blokken die gebruikt worden door het stroomschemaprogramma zijn in de template ingeladen. Deze worden geplaatst in de laag Blokken welke geactiveerd wordt door het programma. Deze laag staat niet op slot en zal worden geprint. Het tekstfont staat ingesteld op Arial. Het stroomschemaprogramma start automatisch zodra de template wordt geopend. Mocht het programma afgesloten worden, dan is deze te herstarten door een nieuwe tekening te openen en vervolgens op Annuleren te drukken. Blokken Op het direct zichtbare gedeelte op de tab “Blokken”staan de standaard (veel gebruikte) stroomschemasymbolen. Dit gedeelte kan verbreed worden (>) waardoor de specifiek symbolische (minder voorkomende) stroom schemasymbolen zichtbaar worden. Het plaatsen van de symbolen; Activeer na het maken van een keuze het symbool door er met de linker muis knop op te klikken. Op de commando regel komt de tekst “Waar?”waarna er op een willekeurige plek in het tekenveld geklikt kan worden. Het symbool wordt geplaatst. LET OP: Het plaatspunt van alle stroomschemasymbolen zit bovenin het midden van het symbool
Nadat een symbool geplaatst is, verschijnt er een invulbox waarin de omschrijving (tekst) ingevoerd kan worden. Dit kan in 1,2 of 3 regels (naargelang de grootte van het symbool) zijn en op elke regel past ongeveer 15 tekens. De grootte van de tekst bepaalt welke regels nodig zijn om deze goed te verdelen binnen het symbool. Een tekst < 15 tekens wordt geplaatst op de middelste regel. Een tekst < 30 tekens wordt op de eerste en de derde regel geplaatst. Met een tekst > 30 tekens worden alle 3 de regels gebruikt. Hierdoor zal de tekst op de juiste plaats in het symbool komen te staan. LET OP: De tekst wordt los geplaatst en het plaatspunt van de tekst zit bovenin het midden van het laatst geplaatste symbool. Betekenis symbolen Gegevens invoer, uitvoer Voorbereiding Handmatige bewerking Document Meerdere documenten Interne opslag Kaart Ponsband Scheidingslijn Connector Connector naar andere pagina Samenvoeging Of Samenvoegen met selectie Sorteren Uitsplitsen Samenvoegen Gekoppeld geheugen Uitstel Magneetband Magneetschijf Magneettrommel Weergave
43 XLII
Het plaatsen van de pijlen
NEN Norm 3283
Activeer na het maken van een keuze de pijl door er met de linker muis knop op te klikken. Op de commando regel komt de tekst “Beginpunt” waarna er op een willekeurige plek in het tekenveld geklikt kan worden. Hierna wordt er afhankelijk van de gekozen pijl gevraagd om het “Eindpunt”of om een “Volgend punt of [Enter]” LET OP: De pijl wordt geplaatst vanaf de staart (Xà ) en de pijlpunt wordt geplaatst op het “Eindpunt” of de met [Enter] afgesloten lijn (à X). De enkele pijl Pijl bestaande uit één enkele rechte lijn. Na het “Beginpunt” wordt er direct gevraagd om het “Eindpunt”. De oneindige pijl Pijl bestaande uit meerdere rechte lijnen. Na het “Beginpunt” wordt er gevraagd naar een “Volgend punt of [Enter]”.De punt wordt dus pas geplaatst nadat de lijn is afgesloten met Enter.
Copyright© Copyright© W.H.C. Oskam 2005. Alle rechten voorbehouden. Waarschuwing: dit computerprogramma is auteursrechtelijk beschermd. Onrechtmatige verveelvoudiging of distributie van dit programma, of een gedeelte ervan is verboden en strafbaar.
44 XLIII
Bijlage D Gebruiksaanwijzing installatie
LET OP: Het programma is een AutoCAD bestand en kan alleen worden gebruikt indien dit programma reeds is geïnstalleerd op de te gebruiken computer! De programmahoudende template kan op verschillende manieren aangeleverd worden; via de e-mail, zie figuur D1 of via een externe opslag (hiermee wordt bedoeld een diskette, CD of via een USB-stick), zie figuur D2.
Figuur D1 De template aangeleverd via de e-mail
Figuur D2 De template aangeleverd via een externe opslag
Het is de bedoeling dat de template wordt geopend. Als de template via de e-mail aangeleverd wordt kan deze geopend worden door erop te dubbelklikken. Als de template via een externe opslag wordt aangeleverd kan deze worden geopend door AutoCAD te activeren, en Bestand – Openen te activeren. Deze externe bron te dient geselecteerd te worden. Alle bestanden welke zijn opgeslagen op de externe opslag worden getoond, activeer het juiste bestand door er op de klikken en vervolgens op openen te klikken. De template wordt geopend. Het volgende beeld, figuur D3, wordt getoond. Er verschijnt de achtergrondtekening waarin het stroomschema getekend dient te worden en een melding dat dit bestand macro’s bevat. Deze macro’s vormen het programma. Klik op “Enable Macros”om het programma te activeren, figuur D4.
Figuur D3 Macro’s toestaan om het programma te activeren
Figuur D4 Het programma
XLIV 45
Vervolgens wordt de geopende template opgeslagen als template op de harde schijf of een netwerk, naargelang de wensen van de gebruiker of bedrijf. Activeer Bestand – Opslaan als … Selecteer bij bestandtype AutoCAD Drawing Template [*dwt], figuur D5. Sla de template vervolgens op in de map “Template”of een andere map welke snel en eenvoudig terug te vinden is. De map “Template”heeft een voordeel dat er reeds een snelkoppeling is, waardoor deze map snel en eenvoudig terug te vinden is.
Figuur D5 Bestandtype aanpassen naar AutoCAD Drawing Template [*dwt]
Figuur D6 Opslaan in een eenvoudig terug te vinden map
Mocht het programma per ongeluk weg gedrukt worden is deze eenvoudig op te roepen door Bestand – Openen te activeren om vervolgens op annuleren te klikken. Het programma herstart dan automatisch. Voor alle andere vragen betreffende het gebruik van het programma kan het tabblad Help van het programma zelf worden geraadpleegd.
Veel plezier met het programma!
46 XLV
Bijlage E Literatuurlijst
Boeken ter ondersteuning van het onderzoek naar stroomschema’s • Boeklagen, R. AutoCAD 2005 Computer ondersteunend ontwerpen TEC CAD College B.V. Nijmegen 2004 • Boeklagen, R. BCAD 5 TEC CAD College B.V. Nijmegen 2003 • Albada Jelgersma, H.E. Informatica BBO Websites ter ondersteuning van het onderzoek naar stroomschema’s • Microsoft ® Encarta ® Encyclopedie Winkler Prins. © 1993-2002 • http://www.pzzl.com. Pzzl.com Amsterdam 2001 • Bos, G. Nederlands Computerwoordenboek 1998 • http://www.vandale.nl. Van Dale Taalweb NEN Norm ter ondersteuning van het onderzoek naar stroomschema’s • Nederlands Normalisatie Instituut NEN 3283 Automatische Informatieverwerking Tweede druk, Delft, 1967 Boeken ter ondersteuning van het schrijven van het verslag • Taalfonds, Het. Spellingswijzer onze taal Elfde druk, Amsterdam/Antwerpen 2005
XLVI 47