Constructeurs programmeren

Gepubliceerd op 3 februari 2020 om 15:46

“Iedereen in dit land moet programmeren van een computer leren, omdat dit je leert te denken”. Deze uitspraak van Steve Jobs is een van de vele quotes van grote tech mensen met dezelfde gedachte: “Iedereen moet leren programmeren”. Dus ook constructeurs. In dit artikel wordt gekeken wat zelf programmeren constructeurs kan opleveren.

Programmeren geeft meer gebruiksgemak, tijdwinst, geld én kwaliteitsverbetering.

 

Aan de hand van enkele voorbeelden wordt een onderbouwing gegeven voor deze stelling.

Formulier in Excel met VBA
VBA code voor bepaling materiaaleigenschappen
VBA voor prefab beton

Gebruiksgemak

Heel primair gedacht is programmeren hetzelfde als het opstellen van een lijst met handelingen die de computer één voor één, achterelkaar moet uitvoeren. Dé grote kracht van een computer is dat hij deze lijst zo vaak kan herhalen als gewenst. De computer wordt nooit moe en nooit ziek. Hij zal altijd deze handelingen voor de volle 100% identiek verrichten.

Zelf programma’s schrijven staat gelijk aan het formuleren van een eigen lijst van handelingen die de computer moet uitvoeren. Deze handelingen zijn er op gericht om acties die regelmatig worden herhaald te automatiseren. De computer zal deze handelingen / acties uit handen nemen en sneller en met een vaste kwaliteit uitvoeren, waardoor je tijd overhebt om zelf andere dingen te doen.

Eén van de belangrijkste handelingen die op deze wijze worden geautomatiseerd zijn vaak vervelende klusjes. Dit zijn die handelingen die elke dag opnieuw voorkomen en altijd hetzelfde zijn. Door deze repetitie te automatiseren wordt je werkplezier altijd verhoogd.

 

De voorbeelden voor gebruiksgemak zijn eindeloos, maar laten we het dicht bij huis houden en ons richten op werkzaamheden die met Microsoft Office software mogelijk zijn. Deze genieten immers de meeste bekendheid.

  • Een programma voor het automatisch downloaden en opslaan van alle bijlagen in een willekeurige Email. Daarbij worden deze automatisch in de gewenste projectdirectory opgeslagen en voorzien van (project gebonden) info.
  • Een programma voor het invoegen van een (complexe) tabel in Word, inclusief lay-out en inhoud, waarbij de inhoud afhankelijk is van verschillende basis parameters.
  • Programmeer je eigen formules in Excel, zoals som(), cos(), sin(), gemiddelde() enz. Schrijf eigen formules voor de bepaling van de omtrek van een profiel, het oppervlak, het zwaartepunt, het weerstandsmoment, of bereken de wapening, of de controle van dwarskracht enz.
  • Een programma voor het verwerken van een berekening uit Excel direct in Word conform een eigen opgesteld lay-out, bijvoorbeeld in een tabel enz.
  • Een programma voor het verwerken van grote hoeveelheden data afkomstig uit rekensoftware. Data kan automatisch worden overgenomen in Excel en eigen berekeningen kunnen worden uitgevoerd op deze data of onderdelen daarvan.
  • Een programma voor het “vertalen” van rekenresultaten naar grafische modellen, zoals productie- tekeningen van constructieve onderdelen.

 

Tijdwinst

Zoals aangegeven zijn programma’s een soort lijsten met handelingen die de computer gebruikt om deze handelingen eindeloos vaak uit te voeren. Deze handelingen hoef je niet zelf meer uit te voeren, dus hou je tijd over voor andere leuke werkzaamheden.

 

Een voorbeeld hiervan is het opstellen van een Excel rekensheet, iets wat veel constructeurs met enige regelmaat doen. De berekeningen in deze spreadsheet wordt eenmalig opgesteld en eindeloos vaak gebruikt, door de constructeur zelf en collega’s. Zo gaat het ook met het schrijven van eigen programma’s, je gebruikt ze zelf en collega’s. Dus ook voor je collega’s levert het tijdwinst op.

 

Kwaliteitsverbetering

Programma’s voeren dezelfde handelingen keer op keer op 100% identieke wijze uit. Dit is de kracht van computers. Dit alleen al staat voor een flinke kwaliteitsverbetering, maar de eigen programma’s kunnen ook op andere wijze forse kwaliteitsverbeteringen teweeg brengen. Programma’s helpen bij het verwerken van grote hoeveelheden data en kunnen vervolgens een beperkte hoeveelheid resultaten late zien. Resultaten die belangrijk zijn voor de verdere uitwerking van constructies en op basis van eigen geschreven code zijn geselecteerd. Zo kan een programma naar specifieke elementen zoeken, bijvoorbeeld alle verticale staven met een lengte van 1 meter tussen de eerste en tiende verdieping en een negatieve normaalkracht. Het programma bekijkt alle elementen in alle situaties en stelt een selectie samen. Van deze selectie wordt vervolgens de maatgevende normaalspanningen weergegeven in de gevonden elementen, inclusief een grootste, kleinste en gemiddelde waarde. Op basis van deze gegevens wordt door de constructeur een profielkeuze gemaakt. Uit duizenden gegevens vindt het programma al die staven die van belang zijn. De constructeur weet ook dat hij/zij geen enkele staaf over het hoofd heeft gezien, want het programma doorloopt, zoals altijd, de volledige lijst met staven in alle situaties.

 

Eén voorbeeld van kwaliteitsverbetering die heel herkenbaar zal zijn voor elke constructeur is het gebruik van rekensheets in Excel (spreadsheets) en het grote gevaar op onjuiste celverwijzing in formules in de spreadsheet. Dit is een gevaar die altijd op de loer ligt. Door dezelfde formules niet in de spreadsheet te verwerken maar in dezelfde tijd te programmeren in VBA wordt de kans op fouten in de formules heel snel drastisch kleiner. Ook wordt het controleren van formules veel eenvoudiger als deze zijn geprogrammeerd in plaats van in een spreadsheet zijn verwerkt. Ook dit aspect geeft een grote kwaliteitsverbetering.

 

Geld

Tijdwinst staat binnen een organisatie ook gelijk aan geld, maar het is niet alleen een kwestie van tijdwinst. Programma’s helpen bij het maken van berekenen, beoordelen en maken van beslissingen in projecten. Zo worden betere en goedkopere constructies gemaakt.

 

Een goed voorbeeld hiervan is het opstellen van berekeningen voor een serie constructieve elementen, zoals de detailengineering van consoles / tandverbindingen in beton- en/of staalconstructies. Je kunt tijd investeren in het zoeken naar de maatgevende situatie en deze vervolgens met een spreadsheet uitwerken. De resultaten van de berekening worden vervolgens op alle consoles toegepast. Een programma kan heel eenvoudig dezelfde berekening uitvoeren (ook met dezelfde spreadsheet), maar dan voor alle aanwezige consoles en voor alle belastingsituaties apart. Het programma kan helpen bij het beoordelen van de resultaten en een aantal varianten toewijzen aan alle berekende consoles. Het programma wordt gebruikt bij een betere optimalisatie, geheel naar eigen inzichten en wensen. Dergelijke optimalisaties leveren niet alleen tijdwinst op voor de constructeur, maar resulteren ook in minder materiaalgebruik enz. Of extra tijd voor het onderzoeken van alternatieve constructie vormen.

Een ander voorbeeld is de hulp die programma’s bieden bij het “vertalen” van gegevens, zoals de rekenresultaten omzetten naar grafische data, constructieve tekeningen. Uiteraard kunnen grafische beelden helpen bij het snel beoordelen van constructies. 

Een programma kan ook een vertaling maken van gegevens die vervolgens gebruikt kunnen worden door ander software, zoals grafische software als Autocad, Tekla en Revit. Maar ook door machines en robots in fabrieken tijdens de productie van constructieve elementen. De programma's ondersteunen bij de fabricage van constructieve elementen. Dergelijke programma’s maken handelingen overbodig. Door rekenresultaten te vertalen naar een Autocad model of naar specifieke data kunnen weer direct machines worden aangestuurd. Dit maakt productietekeningen overbodig.

Naast tijdwinst levert ook kwaliteitsverbetering geld op. Het maken van minder fouten verlaagd faalkosten.

 

Kortom

De voorbeelden geven maar een beperkt beeld van de grote voordelen van zelf programmeren. Op alle aspecten in je werkproces, in je project is er winst te behalen met het gebruik van eigen programma’s.

Natuurlijk kun je je volledig richten op programma’s die commercieel beschikbaar zijn, maar eigen programma’s kunnen op relatief eenvoudige wijze en snel een extra dimensie geven aan je eigen werk, je eigen product, je eigen werkplezier en je eigen creativiteit.

 

Het is niet de bedoeling dat elke constructeur nu een volledig opleiding gaat volgen tot programmeur en wellicht een overstap maakt naar Google of Facebook. Nee, dit is zeker niet de bedoeling. Hele eenvoudige en kleine eigen programma’s kunnen al heel veel betekenen. Op de website www.VullingsAdvies.nl zijn verschillende voorbeelden gegeven hoe eenvoudige programma’s kunnen worden ingezet. Enkele belangrijke aandachtspunten bij het maken van je eigen programma’s zijn:

 

  • Alles kun je programmeren. Er zijn geen handelingen/acties/bewerkingen/berekeningen die je niet kunt programmeren. Als je deze stelling als uitgangspunt neemt en je maakt goed gebruik van je creativiteit kom je heel ver.
  • Keep it simple. Zeker in het begin is het heel erg belangrijk om kleine en eenvoudige programma’s te schrijven. Verdeel elk probleem in stukjes en werk dit stukje voor stukje uit. Wordt het stukje te groot, wordt het programma te groot, neemt ook de kans op falen heel snel toe.
  • Keep it simple. Een eigen programma hoeft niet elegant of mooi te zijn, maar moet doen wat je zelf wilt. Je hoeft geen gebruik te maken van hele geavanceerde programmeertechnieken om je resultaat te bereiken. Nee, gebruik vooral eenvoudige onderdelen. Dan maar iets meer programmatekst. Je bent een constructeur die een klein programma schrijft en geen software engineer die de volgende versie van Windows 10 in elkaar sleutelt. Het samenvoegen van verschillende losse onderdelen kan ook één groot programma opleveren.
  • Gebruik het internet. Op het internet is een gigantische bibliotheek aan kennis te vinden. Niet alleen (technische) achtergronden, maar ook voorbeelden van stukken programma’s. Je hoeft niet elke keer weer zelf het wiel uit te vinden. Heel veel problemen zijn al uitgewerkt, op 1001 verschillende manieren.
  • Beschouw het schrijven van een programma hetzelfde als het opstellen van een spreadsheet in Excel. De hoeveel tijd voor het schrijven van het gewenste programma moet in balans zijn met het gewenste resultaat, de vereenvoudiging die het moet opleveren en de tijdwinst die het uiteindelijk moet opleveren binnen het project waar je aan werkt. Zoek de juiste balans.

 

Een voordeel dat nog niet genoemd is, maar wel onderdeel is van de stelling van Steve Jobs is  “…, omdat dit je leert te denken”. Om programma’s te kunnen schrijven moet je die handelingen die je wilt automatiseren goed, gestructureerd en gedetailleerd kunnen formuleren en uitwerken. Eigenlijk zoals het construeren van een gebouw. Ga van groot naar klein en ga stap voor stap.  Dus het schrijven van programma’s versterkt en ontwikkeld deze manier van denken en werken.

Een gevolg van deze manier van denken en werken is dat je steeds meer dingen gaat zien die je kunt automatiseren. Je zult merken dat de stelling “Alles kun je programmeren” een soort tweede natuur wordt.

 

En nu zelf aan de slag

Nu de overtuiging er is dat iedereen moet kunnen programmeren, is het tijd om aan de slag te gaan. Daarvoor moet een basiskennis van een programmeertaal aanwezig zijn. Zie het als de basis kennis van een buitenlandse taal voor het bestellen van een menu tijdens een vakantie. Het is niet nodig om de taal zodanig te beheersen zodat je een buitenlandse krant van A tot Z kunt lezen én begrijpen.

Net als een taal zijn er in een programmeertaal een aantal principes en deze principes zijn in elke taal van toepassing. In een programmeertaal zijn dit o.a.: variabelen, een if-then-else-statement, een for-next-loop, een while-loop, strings, functies en procedures en een editor. Als je deze basiselementen beheerst in één programmeertaal, gaat het leren van een andere taal steeds eenvoudiger.

 

Er zijn veel verschillende programmeertalen. De verschillen zijn echter in beginsel beperkt. De verschillen worden pas echt duidelijk als je meer ervaring opdoet. Om kosten te besparen en direct en altijd toegang te hebben tot een editor is een goede taalkeuze Visual Basic for Applications (VBA). VBA is onderdeel van nagenoeg alle Microsoft Office applicaties, zoals Word, Excel, Access, Outlook, Powerpoint en ook van MS Project. Er zijn ook andere applicaties waar VBA een (vast) onderdeel is, zoals IntelliCad, Autocad van Autodesk (apart te downloaden, zie website Autodesk). Er zijn ook voor applicaties die een directe toegang hebben tot de applicatie via VBA, bijvoorbeeld rekensoftware AxisVM. Voor weer andere applicaties kun je toegang krijgen door middel van het genereren van speciale bestanden zoals o.a. txt-, dxf-, xml-, icf-bestanden. 

Visiual Basic is één van de eenvoudigste talen om te leren. Deze taal is overzichtelijk, voldoende omvangrijk en je kunt direct, zonder bijzondere voorzieningen, programma’s schrijven die samenwerken met Word, Excel, Outlook, Autocad enz. Het is zelfs eenvoudig om vanuit het ene applicatie (bijvoorbeeld Excel) een andere applicatie aan te sturen (bijvoorbeeld Outlook of Autocad). De vervolgstap naar bijvoorbeeld Visual Basic.net in Visual Studio is daarna ook relatief eenvoudig.

Visual Basic (for Application) is een taal ontwikkeld door Microsoft en is al vrij oud. Dit betekent dat er ook heel veel informatie op internet beschikbaar is. Er zijn ook veel technische boeken (in Nederlands) beschikbaar. 

 

Het leren van een programmeertaal werkt het beste door theorie en praktijk direct met elkaar te combineren. Ga met een aantal collega’s aan de slag en help elkaar bij het leren van de principes en het schrijven van programma’s.  Daarbij is het goed mogelijk om al vrij snel aan de slag te gaan met daadwerkelijke voorbeelden die in het dagelijkse werk van een constructeur toepasbaar zijn. Dit betekent dat de investering in het leren van een programmeertaal en het schrijven van programma’s beperkt kan blijven. Wellicht is er een collega aanwezig die al enige kennis en ervaring heeft.

 

En nu enkele voorbeelden

Als “iedereen moet programmeren” je nog steeds niet aanspreekt verwijs ik naar enkele voorbeelden uitgewerkt in VBA. De eerste voorbeelden laten zien hoe je beter gebruik maakt van Excel, zoals:

  • Het gebruik van eigen functies in Excel.
  • Het gebruik van invoerformulieren in Excel.
  • Het gebruik van grafische mogelijkheden in Excel.
  • Het uitspreken van resultaten in Excel.

 

Deze voorbeelden zijn/worden beschikbaar op de website www. VullingsAdvies.nl. Later zullen er nog meer voorbeelden volgen, ook in Word en combinaties van applicaties. Ook het genereren en lezen van externe data zal aan de orde komen.

 

De voorbeelden worden beschikbaar gesteld op www.VullingsAdvies.nl en zijn toegankelijk met Excel versie 2007 of nieuwer. Om toegang te hebben tot de VBA-code moeten macro’s worden toegelaten / geactiveerd. Dit wordt direct zichtbaar bij het openen van een van de voorbeelden.

De VBA-code is NIET beschermt met een password, de code is vrij toegankelijk en kan naar wens worden gebruikt. Alle code is zichtbaar en kan worden gecontroleerd op virussen.

De voorbeelden kunnen ook worden gebruikt voor eigen doeleinden. Er wordt echter geen enkele garantie gegeven op de juistheid van de code. De VBA-code wordt door www.VullingsAdvies.nl “as is” beschikbaar gesteld.

 

Dan rest mij alleen om iedereen succes te wensen en ik hoor graag of het is gelukt (info@VullingsAdvies.nl).