15/1/2011
VOSHOL ENERGY BV
RENEWABLE ENERGY TOOL
Afstudeeropdracht in het kader van de studie ACE System Manager aan het CAD College te Nijmegen | Patrice Portielje
2
RENEWABLE ENERGY TOOL
Energy it’s our business!
Gemaakt door:
Patrice Portielje
Bedrijf:
Voshol Warmte en Elektrotechniek BV
Opleiding:
HBO Traject “ACE System Manager”
Docent:
ir. Ronald Boeklagen
Afstudeerdatum:
28-01-2011
Plaats:
Nijmegen
3
RENEWABLE ENERGY TOOL
Voorwoord
Beste lezer, Mijn naam is Patrice Portielje, ik ben 29 jaar oud en sinds augustus 2009 woonachtig in de gemeente Pijnacker (ZH). Na mijn middelbare school ben ik naar de MTS gegaan waar ik de opleiding werktuigbouwkunde heb gevolgd. Tevens heb ik naast deze opleiding als extra keuzevak ook luchtvaarttechniek gevolgd. Na de MTS ben ik een aantal jaren werkzaam geweest bij het bedrijf “Hawé Systems Europe B.V.” wat gespecialiseerd is in het fabriceren van interne transportsystemen voor in de glastuinbouw. Hier heb ik destijds ook mijn eindstage van de MTS kunnen doen en ben toen gevraagd om in dienst te komen. Mijn werkzaamheden bestonden voornamelijk uit het assembleren van interne transportsystemen voor in de glastuinbouw. In juni 2005 ben ik bij mijn huidige werkgever “Voshol Warmte en Elektrotechniek B.V.” terecht gekomen als tekenaar/werkvoorbereider van warmte- technische installaties. In deze voor mij totaal nieuwe functie ben ik voor het eerst weer met AutoCad in aanraking gekomen sinds de MTS. Dit betekende voor mij wel dat ik het één en ander weer een beetje moest opfrissen aangezien de ontwikkelingen op dit gebied ook niet stil hebben gestaan. Gelukkig kreeg ik de mogelijkheid om via mijn werkgever een AutoCad training te volgen. Ik merkte daarna al snel dat mijn interesse bij het AutoCad tekenen lag en wilde me hier dan ook graag verder in ontwikkelen. Alleen stuitte ik op een probleem, ik ben de enige tekenaar binnen de organisatie en kan dus geen ervaring en kennis opdoen van mijn collega’s. Het gemis aan verdere ontwikkeling heeft uiteindelijk geresulteerd in het volgen van de opleiding “ACE System Manager”. Het volgen van deze opleiding heb ik als zeer boeiend en leerzaam ervaren, net als het schrijven van dit afstudeerverslag. De opgedane kennis geeft je weer zoveel nieuwe mogelijkheden en uitdagingen binnen AutoCad waardoor je nog meer plezier krijgt in je dagelijkse tekenwerkzaamheden! Voor de benodigde informatie met betrekking tot de zonnepanelen bedank ik mijn collega Lennert Bredemeijer en uiteraard mijn werkgever Jan Voshol die mij de mogelijkheid heeft gegeven deze studie te kunnen realiseren! Tot slot wil ik graag de mensen van het TEC Cadcollege, dhr. R. Boeklagen, dhr. P. Arts en mevr. L. Bergsma bedanken voor hun kennisoverdracht en prettige begeleiding van mijn studieopdracht!
Patrice Portielje Pijnacker 15 januari 2011
4
RENEWABLE ENERGY TOOL
Inhoudsopgave
Inleiding .................................................................................................................................................................................5 1. Het bedrijf.........................................................................................................................................................................6 1.1 Het bedrijf en mijn werkomgeving .................................................................................................................6 1.2 De bedrijfsstructuur .............................................................................................................................................7 1.3 De organisatie..........................................................................................................................................................8 2. Werkwijze.........................................................................................................................................................................9 2.1 Huidige werkwijze.................................................................................................................................................9 2.2 Nieuwe tak: “Renewable Energy” ................................................................................................................ 10 2.2.1 Korte inleiding werking zonnepanelen ............................................................................................. 11 2.2.2 Assortiment zonnepanelen .................................................................................................................... 12 2.3 Nieuwe werkwijze .............................................................................................................................................. 12 3. Het programma ........................................................................................................................................................... 16 3.1 Het programma “Renewable Energy Tool” geschreven in VB.net .................................................. 16 3.1.1 Stroomschema “Zonnepanelen Tool” ................................................................................................. 17 3.1.2 Programmacode.......................................................................................................................................... 18 4. Conclusie ........................................................................................................................................................................ 21 5. Bijlagen ........................................................................................................................................................................... 22 Bijlage I. Beschrijving tekenen zonnepaneel als dynamisch blok .......................................................... 22 Bijlage II Beschrijving gebruik blok tabel ........................................................................................................ 25 Bijlage III De volledige code “Renewable Energy Tool” ............................................................................. 26
5
RENEWABLE ENERGY TOOL
Inleiding Sinds januari 2010 houd Voshol Warmte en Elektrotechniek zich bezig met de verkoop en installatie van zonnepanelen. Wij hebben hier een aparte B.V. voor opgericht genaamd “Voshol Energy”. De keuze om ons te gaan richtten op duurzame energie is een vrij logische stap gezien de steeds groter wordende vraag onder andere vanuit de overheid om klimaat neutraal bezig te zijn. Deze ontwikkelingen hebben echter ook gevolgen voor onze dagelijkse tekenwerkzaamheden. Tekende we voorheen nog voornamelijk verwarmingsinstallaties voor in de tuinbouw, dan zullen we ons nu ook moeten gaan richtten op het tekenen van zonnepaneel installaties. Veel klanten vinden het namelijk prettig om te zien hoe hun woning of bedrijfspand eruit komt te zien met zonnepanelen op het dak. We kunnen tegenwoordig een foto van de woning of bedrijfspand inladen in AutoCad en hier de gewenste zonnepanelen op “plakken”, realistischer kan bijna niet. Echter hebben we continue te maken met verschillende dakhellingen. Dit resulteert bij een vooraanzicht van de woning of bedrijfspand in een kleinere optische hoogte van het zonnepaneel dan de werkelijke hoogte. Deze optische hoogte is middels een formule uit te rekenen. Het iedere keer weer tekenen en uitrekenen van deze hoogte kost tijd en zette mij aan het denken. Hoe kan ik dit stukje tekenwerk automatiseren? Dit verslag beschrijft een programma dat geschreven is in VB.net waarmee de gebruiker het gewenste zonnepaneel kan selecteren, de keuze kan maken tussen een horizontale of een verticale montage en tevens iedere gewenste dakhelling kan opgeven. Nadat deze keuzes zijn gemaakt kan het zonnepaneel direct in de tekening worden geplaatst. Doordat het zonnepaneel als “Wipe Out” is getekend kan hij perfect op een foto worden geplaatst. Na plaatsing kan men door middel van een handige kopieer functie aangeven of er horizontaal of verticaal gekopieerd moet worden. De gebruikelijke onderlinge afstand van 20mm voor de benodigde tussenklemmen wordt hierbij gehandhaafd.
6
RENEWABLE ENERGY TOOL
1. Het bedrijf 1.1 Het bedrijf en mijn werkomgeving De besloten vennootschap is op 1 juli 1932 opgericht. De huidige directeur Jan Voshol is reeds vanaf 1990 in dienst van deze vennootschap. Hij is begonnen als monteur maar heeft in 1996 50% van de aandelen aangekocht. Na een aantal jaren van gezamenlijke bedrijfsvoering heeft hij het resterende aandelenpakket in 2003 overgenomen. Na deze overname wijzigde hij de bedrijfsnaam van , van Wijk warmtetechniek in de huidige naam, Voshol Warmte en Elektrotechniek B.V. Nadat Jan Voshol 100% aandeelhouder van de vennootschap is geworden, is de groei van de onderneming in een stroomversnelling gekomen. Het aantal vaste medewerkers is in 10 jaar tijd gestegen van 12 naar 50 medewerkers. Ook hebben wij nog een groot aantal onderaannemers en zelfstandige het gehele jaar door voor ons bezig. Ons bedrijf is voornamelijk actief in de tuinbouwsector maar ook in de utiliteitsbouw en woningbouw. Wij ontwerpen, installeren, onderhouden en repareren onder andere verwarmingsketels, Co2 doseersystemen, zwak- en sterkstroominstallaties, schakelpanelen en klimaatcomputers. Ook sluiten wij jaarlijks grote aantallen WarmteKrachtKoppelingsinstallaties aan. De werkzaamheden vinden voornamelijk plaats in Nederland en België. Maar ook hebben wij geregeld projecten in Duitsland, Oostenrijk, Portugal, Wit-Rusland, Amerika en Canada. Eind 2009 start Voshol met Voshol Energy, een besloten vennootschap die zich richt op duurzame energie. Dit is energie die niet wordt opgewekt door aardolie, aardgas of steenkolen te verbranden maar door schone, onuitputtelijke natuurlijke bronnen te gebruiken. Hierbij moet men onder andere denken aan windenergie, waterkacht en zonne-energie. Mijn werkzaamheden binnen de organisatie bestaan voornamelijk uit het tekenen van complete verwarming en koel installaties voor in de tuinbouw, utiliteitsbouw en woningbouw. Sinds dit jaar heb ik door onze nieuwe tak van sport (duurzame energie) ook al menig zonnepaneel getekend. Hierbij moet men onder anderen denken aan het tekenen van de gewenste indelingen met zonnepanelen en de manier van monteren. In het geval van een landopstelling moet er ook een complete constructie worden getekend waar de zonnepanelen op gemonteerd kunnen worden. Ook hier heb ik er al meerdere van moeten maken. Onder andere voor een project in Canada waar men ook nog eens de wens had om de zonnepanelen mee te kunnen laten draaien met de stand van de zon. Buiten deze tekenwerkzaamheden houd ik mij ook dagelijks bezig met de inkoop van materialen, nakijken van inkoopfacturen, controleren werkbriefjes servicemonteurs, samenstellen van paklijsten voor onze magazijnman en het maken van calculaties / offertes. Sinds januari van dit jaar ben ik tevens aangesteld tot servicecoördinator van ons serviceteam bestaande uit 4 servicemonteurs. Hier wilde het bedrijf iemand voor aannemen maar gezien de economische ontwikkelingen en de terugloop van onze werkzaamheden is besloten hier intern iemand voor aan te stellen en dat ben ik uiteindelijk geworden. Dit is tot op heden goed te combineren met mijn overige werkzaamheden aangezien de hoeveelheid tekenwerk als logisch gevolg van de economische crisis ook iets is terug gelopen.
7
RENEWABLE ENERGY TOOL
1.2 De bedrijfsstructuur
Algemeen directeur
Administatie
Hoofd elektra
Hoofd verwarming
Magazijn
Service coördinator
Service monteurs
Bedrijfsbureau
Magazijn
Uitvoerders
Monteurs
Werkvoorbereider/ Tekenaar
Uitvoerders
Werkvoorbereider/ Tekenaar
Monteurs
Afbeelding 1.1 Organigram
Organigram In het bovenstaande organigram wordt er weergegeven hoe het bedrijf “Voshol Warmte en Elektrotechniek BV” intern is opgedeeld. Iedere functie binnen dit organigram heeft zijn eigen verantwoordelijkheden c.q. werkzaamheden. Door alle functies binnen dit organigram met elkaar af te stemmen is het mogelijk een bedrijfsvoering te vormen.
8
RENEWABLE ENERGY TOOL
1.3 De organisatie
Jan Voshol Directeur
Stichting admin. kantoor Voshol Beheer 100%
J. Voshol Beheer B.V. 100%
Voshol WarmteElektrotechniek B.V. 100%
Sunfos 55%
J.V. Energy Solutions Inc. 49,90%
Voshol Management B.V. 100%
Voshol Energy B.V. 100%
Voshol projecten B.V. 100%
Afbeelding 1.2 Organigram
Onze bedrijfstakken gericht op duurzame energie: Voshol Energy B.V. -De B.V. die in januari 2010 is opgericht voor de verkoop en installatie van zonnepanelen. Sunfos -Jan Voshol is mede eigenaar van dit bedrijf wat ook zonnepanelen verkoopt en tevens is gevestigd in ons pand. De installatie van de zonnepanelen wordt overigens weer uitgevoerd door Voshol Energy B.V. J.V. Energy Solutions Inc. -Onze Canadese B.V. welke medio 2010 is opgericht en zich sterk maakt voor de verkoop en installatie van onder andere duurzame energiesystemen in heel Canada.
9
RENEWABLE ENERGY TOOL
2. Werkwijze 2.1 Huidige werkwijze Voordat ik in juni 2005 bij de organisatie trad had ons bedrijf geen eigen “echte” tekenaar in dienst. Eén collega kende wel de basisprincipes maar had door eigen drukke werkzaamheden te weinig tijd om dit goed onder de knie te kunnen krijgen. Dus een simpele tekening lukte wel maar zodra het allemaal wat complexer werd moest men vaak toch opgeven. Dit betekende dat bijna al het tekenwerk werd uitbesteed aan een extern tekenbureau. Het geleverde tekenwerk zag er op zich goed uit maar barstte vaak van de fouten. Dit omdat de tekenaars absoluut geen affiniteit hadden met de technische installaties die wij leveren en installeren. Het gebeurde regelmatig dat onze directeur ernaar toe moest om naast de tekenaar te gaan zitten en te zeggen wat er precies getekend moest worden. Je begrijpt dat deze manier van werken geen stand kan houden en de behoefte was er dan ook sterk om iemand hier voor aan te stellen. Uiteindelijk werd dit mijn taak. Alleen hoe pak je dit handig en snel aan binnen een bedrijf waar nog geen tekenstandaarden zijn, geen “templates”, geen bibliotheken enz. enz. We beginnen dus eigenlijk helemaal op nul maar de opdrachten stroomden op dat moment binnen en er lag dus ook in korte tijd erg veel tekenwerk op mijn bureau. Veel appendages, symbolen en apparaten komen geregeld terug in onze installatie ontwerpen maar deze moesten nog wel eerst aangemaakt worden. Dit is een tijdrovend karwei en die tijd was er nou juist net niet op dat moment. Ik had wel eens gehoord van AutoCad softwarepakketten voor verschillende branches, zo ook voor de installatiebranche. Samen met een collega hebben wij hier ons toen in verdiept en al vrij snel kwamen wij bij StabiCad uit. Een software applicatie welke draait op AutoCad speciaal gericht op de installatiebranche. Met dit pakket is het mogelijk om zeer snel een “template” aan te maken met de juiste schaal, het bevat bovendien een groot aantal hulpstukken en bibliotheken met veel voorkomende appendages en apparaten. In StabiCad kunnen wij op een duidelijke en overzichtelijke manier onze projecten beheren, tekeningen en anderen documenten aanmaken, verwijderen kopiëren en wijzigen.
Afbeelding 2.1 Database tekenprojecten in Stabibase.
10
RENEWABLE ENERGY TOOL
Afbeelding 2.2 Hulpmiddel bij bepalen papierformaat en schaal.
Met bovenstaand hulpmiddel (afbeelding 2.2) bepaalt men het papierformaat en de schaal. Nadat het project is aangemaakt kun je zeer snel en gemakkelijk bepalen wat voor schaal er moet worden toegepast in combinatie met het gewenste papierformaat. Werkwijze: Je voert de globale afmetingen in van je gebouw zoals in dit voorbeeld 50x20mtr. Het gewenste papierformaat is A1 en bij een schaal van 1:100 zie je dat het tekenobject mooi binnen het kader valt. Zou je in dit geval voor een schaal van 1:50 kiezen dan zie je in het voorbeeld dat het tekenobject buiten het kader valt en dus niet geschikt is voor dit papierformaat.
2.2 Nieuwe tak: “Renewable Energy” Gezien de laatste ontwikkelingen binnen ons bedrijf op duurzaam energie gebied breidden ook onze tekenwerkzaamheden zich uit. Ik doel dan met name op de verkoop en installatie van zonnepanelen. Voor de offerte naar de klant en voor de montage van de panelen zijn er tekeningen nodig. Veel type zonnepanelen en montagematerialen komen ook hier weer geregeld terug in de installatietekeningen. Echter hebben wij in dit geval niks aan onze bibliotheken binnen StabiCad aangezien zij hier geen module voor hebben opgenomen en er ook een zeer groot scala is aan panelen en montagemateriaal. Voor het handig en snel kunnen tekenen van zonnepanelen en de bijbehorende montage materialen zal ik dus in dit geval zelf naar handige oplossing moeten gaan zoeken.
11
RENEWABLE ENERGY TOOL
2.2.1 Korte inleiding werking zonnepanelen Zonnepanelen zetten zonlicht direct om in elektriciteit (“zonnestroom”). Dit proces heet het fotovoltaïsch effect. De officiële benaming voor zonnestroom technologie is kortweg PV, van het Engelse photovoltaic. Zonnestroom wordt opgewekt door zonnecellen, die tezamen een zonnepaneel vormen. Elke zonnecel is opgebouwd uit flinterdunne laagjes halfgeleidend materiaal waartussen (onder invloed van zonlicht) een spanningsverschil ontstaat. Een zonnestroom systeem bestaat vaak uit meerdere zonnepanelen, deze zijn met behulp van kabels aan elkaar gekoppeld. De kabels worden aangesloten op een omvormer, welke vervolgens zit aangesloten op het elektriciteitsnet.
Afbeelding 2.2 Werking zonnepanelen
Afbeelding 2.3 werking zonnepaneelinstallatie
12
RENEWABLE ENERGY TOOL
2.2.2 Assortiment zonnepanelen De zonnepanelen die Voshol Energy BV over het algemeen levert zijn van de merken “Sunpower” en “Upsolar”. Sunpower varianten: Sunpower 220 (220 Watt Piek) - Sunpower 225 (225 Watt Piek) - Sunpower 300 (300 Watt Piek) Upsolar varianten: - Upsolar 180 (180 Watt Piek) - Upsolar 200 (200 Watt Piek) - Upsolar 220 (220 Watt Piek)
2.3 Nieuwe werkwijze De range aan varianten is niet erg groot, wel heb je bij een hellend dak te maken met verschillende hellingshoeken bijv. 48 graden, 53 graden etc. Niet ieder dak heeft immers dezelfde hellingshoek. Dit heeft tot gevolg dat je bij het tekenen van een vooraanzicht van een woning met een hellend dak een andere projectie hoogte krijgt van het dak en de zonnepanelen dan de werkelijke hoogte. Het zou dus handig zijn dat wanneer je het zonnepaneel in de tekening plaatst, je de hellingshoek apart op kunt geven. Op deze manier hoeft er maar één keer het gewenste zonnepaneel te worden getekend en kan deze keer op keer worden gebruikt bij elke denkbare dakhelling. Wat voor handige mogelijkheden zijn er voor het snel kunnen tekenen van de gewenste zonnepanelen met de bijbehorende hoogte afhankelijk van de dakhelling? Hier zijn verschillende oplossingen voor te bedenken zoals bijvoorbeeld het paneel tekenen als dynamisch blok of het schrijven van een programma in VB.NET. Voordelen dynamisch blok: -Vaak makkelijker en sneller te maken dan het schrijven van een programma in VB.net. -Het dynamisch blok is gewoon in de tekening aan te passen. -We kunnen één blok aanmaken die we meerdere eigenschappen meegeven. De gebruiker kan dan zijn de selectie maken via een keuzemenu door op de grip te klikken. -Uitbreidingen van de selectiemogelijkheden kunnen snel en eenvoudig worden uitgevoerd door het aanvullen van de BTABLE. Nadelen dynamisch blok: -Blok moet twee keer worden geplaatst, de eerste keer alleen invoegen om daarna de juiste selectie te maken en hem vervolgens te plaatsen Voordelen programma VB.NET: -Eenvoudige selectie door duidelijke menu structuur. -Na invoer/selectie van gegevens wordt de tekening direct goed ingevoegd. -De toch vaak “zware” Toolpalettes kunnen gesloten blijven. Het programma kan gewoon onder een icoontje op het scherm worden geplaatst. Nadelen programma VB.NET: -Enige kennis van programmeren is vereist. -Aanpassingen zijn lastiger uit te voeren dan bijv. bij blokken uit een toolpalette. -Het kost over het algemeen erg veel tijd om een goedwerkend programma te schrijven.
13
RENEWABLE ENERGY TOOL
Zoals het er nu naar uitziet lijkt het paneel tekenen als de dynamisch blok de beste en snelste oplossing. Dit omdat alle eigenschappen die ik het blok mee wil geven kan realiseren met behulp van een dynamisch blok. Zolang dat kan moet er altijd de afweging worden gemaakt of het zinvol is om een programma te gaan schrijven aangezien dit vaak een hoop tijd kost wat dan eigenlijk overbodig is.
Afbeelding 2.4 Upsolar 180, horizontale montage 90gr.
De verwerking voor gemakkelijk gebruik Ik heb voor alle panelen die wij gebruiken een dynamisch blok aangemaakt met daarin de keuze, horizontale of verticale montage en de hellingshoek waaronder het paneel gemonteerd wordt. De hellingshoeken zijn standaard dakhellingen die veelvuldig voorkomen, via de blok tabel kunnen deze eenvoudig worden uitgebreid. Ook voor de materialen die benodigd zijn voor de montage van de zonnepanelen heb ik blokken aangemaakt. Voor het gemak heb ik al deze blokken ingevoegd in een “Tool Palette” (afbeelding 2.5), dit om op een handige en snelle manier de blokken te kunnen invoegen in de tekening. Dit werk erg handig, alles is te sorteren op merk of type door middel van zogenoemde “seperators”. Je kan zelfs fotootjes inladen als icoon zodat de knoppen nog herkenbaarder zijn. Ook staat het blok na het invoegen in de tekening direct in de juiste laag waardoor een hoop fouten in het lagengebruik worden voorkomen. Een ander handigheidje van de “Toolpalette” is dat er zelfs elementen zoals bijvoorbeeld lijnen met hun bijbehorende eigenschappen als kleur en laag kunnen worden opgenomen. Maar ook tekststijlen, maatstijlen en arceringen kunnen worden opgenomen. Altijd dus de gewenste tekststijlen, maatstijlen en arceringen in de juiste laag met één klik! Daarnaast heb ik ook het commando “Data Extraction” aan de “Toolpalette” toegevoegd. Met dit commando is het mogelijk om bepaalde data uit de tekening te verwerken in een tabel. Ik gebruik het commando om het aantal blokken te tellen in mijn tekening zodat ik een overzichtelijke weergave heb van de benodigde materialen. Dit is weer een stukje automatisering, dus tijdswinst en voorkomt bijvoorbeeld een tekort of overschot aan materialen door menselijke telfouten!
14
RENEWABLE ENERGY TOOL
Afbeelding 2.5 Toolpalette Zonnepanelen
Tijdens het experimenteren met mijn dynamische blokken stuitte ik geheel onverwachts toch nog op een probleem. We kregen een aanvraag binnen van een klant voor het leveren en monteren van zonnepanelen op het dak van zijn woning. Tijdens het eerste bezoek bij de klant hebben we de woning grondig bekeken en één en ander opgemeten. Ook hebben we foto’s van de woning genomen, ik vond het namelijk een leuk idee om de foto’s in te voegen in de tekening en hier dan de getekende zonnepanelen op te “plakken”. De klant krijgt dan een realistisch beeld van hoe zijn woning er daadwerkelijk uit zal komen te zien met zonnepanelen. Om dit te realiseren wilde ik het commando “Wipe Out” gebruiken en dit element toevoegen aan mijn dynamisch blok. Wanneer je het “Wipe Out” element toevoegt aan je dynamisch blok zal het zonnepaneel na plaatsing op het dak de foto overlappen. De dakpannen onder je zonnepaneel zal je dus niet meer zien. Maar wat blijkt, op het moment dat ik de hoek verander van 90 graden naar een andere hoek zal ook de hoogte mee moeten veranderen, echter gebeurt dit niet! Zie afbeelding.
15
RENEWABLE ENERGY TOOL
Afbeelding 2.6 Dynamisch blok met “Wipe Out” element
Zoals te zien is in afbeelding 2.6 wordt bij montage onder een hellingshoek van 53 graden de hoogte (optisch) kleiner. Echter gebeurt dit niet met het “Wipe Out” element wat aan het blok is toegevoegd. Deze houdt gewoon de werkelijke hoogte van 90 graden aan en heb in dit geval dus niks aan het dynamisch blok. Door deze ontdekking ben ik toch genoodzaakt een programma te gaan schrijven in VB.net. Zo zie je maar weer dat je er in sommige gevallen toch niet aan ontkomt een programma te moeten schrijven. Dit bevestigd ook meteen weer de kracht van de mogelijkheden die er zijn met Visual Basic dot Net.
16
RENEWABLE ENERGY TOOL
3. Het programma 3.1 Het programma “Renewable Energy Tool” geschreven in VB.net In VB.net heb ik het volgende programma geschreven; Afbeelding 3.1 Tabblad 1
Afbeelding 3.2 Tabblad 2
Dit programma stelt de gebruiker in staat om in één oogopslag het gewenste zonnepaneel te selecteren. Hierin is een duidelijk onderscheid gemaakt tussen de montagevormen “Landscape” (horizontale montage) en “Portrait” (verticale montage). In het tekstvak onder de naam dakhelling kan men de gewenste dakhelling in graden invoeren. Nadat deze is ingevoerd selecteert men het gewenste zonnepaneel en kan deze direct in de tekening worden geplaatst. De reden dat de dakhelling van de woning kan worden ingevoerd is zoals al eerder aangegeven in dit verslag dat bij een vooraanzicht van een woning de optische hoogte van het paneel kleiner is dan de werkelijke hoogte. Na het invoeren van de dakhelling word direct de juiste hoogte weergegeven van het zonnepaneel bij die dakhelling wat dus een zeer realistisch beeld geeft! Als men het zonnepaneel na het plaatsen in de tekening wilt kopiëren in horizontale of verticale richting is daar ook een functie voor aangemaakt, namelijk de checkbox i.c.m. de “Maak kopie” knop.
17
RENEWABLE ENERGY TOOL
Nadat kopie (h) van horizontale richting of kopie (v) van verticale richting is aangevinkt en het juiste zonnepaneel is geselecteerd zal deze nadat men op de knop “Maak kopie” klikt zich desgewenst in horizontale of verticale richting vermenigvuldigen. De gebruikelijke tussenafstand van 20mm zal hierbij worden gehandhaafd, ook bij vermenigvuldigen in verticale richting waarbij we te maken hebben met een hoogte variabele. Voshol Energy BV levert en installeert alleen zonnepanelen van de merken “Sunpower” en “Upsolar” dus zijn hier twee tabbladen voor aangemaakt zodat men met één klik alle panelen voor zich heeft van het gewenste merk. Door duidelijk aan te geven in welk tabblad men zich bevindt is dit aangeven middels verschillende kleuren.
3.1.1 Stroomschema “Zonnepanelen Tool”
18
RENEWABLE ENERGY TOOL
3.1.2 Programmacode In de hierna volgende tekst zullen er wat korte stukjes van de programmacode nader worden omschreven. De volledige programmacode met uitleg bevind zich in de bijlage van dit verslag.
Met deze code krijgt het zonnepaneel zijn vorm en bepalen we de opbouw.
Code voor het meegeven van de eigenschappen van het zonnepaneel zoals lengte, breedte, hoogte rotatiehoek en bloknaam.
19
RENEWABLE ENERGY TOOL
Deze code omvat de kopieerfunctie voor het kopiëren van zonnepanelen in zowel horizontale als verticale richting.
Met deze code geven we aan dat we in textbox 1 de gewenste hoek (dakhelling) in dienen te vullen. Wanneer we niks invullen kleurt de textbox rood en anders is hij gewoon wit.
20
RENEWABLE ENERGY TOOL
De code voor het bepalen van de commandonaam in AutoCad en aanmaken van de “palette” en bepalen van de vormgeving van de palette.
21
RENEWABLE ENERGY TOOL
4. Conclusie Door uitbreiding werkzaamheden van “Voshol Warmte en Elektrotechniek BV” op het gebied van de duurzame energiemarkt bestond er de behoefte aan een tekenpakket toepasbaar voor het tekenen van zonnepanelen. Aangezien wij hier een nieuwe markt betreden wat de nodige risico’s met zich meebrengt wilde wij niet direct investeren in een duur software pakket. Overigens is er ook nog maar weinig AutoCad software te krijgen voor deze markt. Hierdoor is de keuze gevallen voor het schrijven van een eigen applicatie gebaseerd op ons assortiment aan zonnepanelen. Door het schrijven van het programma “Renewable Energy Tool” is het mogelijk gebleken om binnen luttele seconden een zonnepaneel te tekenen. Hierbij kan men zelf de gewenste dakhelling opgeven waarbij de hoogte van het paneel automatisch wordt aangepast aan de optische hoogte. Door de ingebouwde kopieerfunctie kan er snel en eenvoudig worden gekopieerd. De zonnepanelen kunnen op een foto geplaatst worden aangezien zij het “wipe out element” bevatten. Tijdsbesparing tekenaar; De nieuwe tekentool voor het tekenen van zonnepanelen heeft zicht voor mij nu al bewezen. Voor een project in Canada heb ik er voor het eerst mee gewerkt. Hier moesten wij op een “Fish Farm” een grote hoeveelheid zonnepanelen plaatsen. Door gebruik te maken van mijn programma is dit slechts een kwestie van selecteren en plaatsen geworden. Voor dit project leverde het ons direct al een tijdsbesparing op van zeker een half uur. Deze tijdsbesparing zal alleen maar groter worden naarmate we te maken hebben met meerdere dakhellingen binnen één tekening. De tijd die benodigd was voor het berekenen van de juiste (optische) hoogte van het zonnepaneel bij een bepaalde dakhelling behoort tot het verleden. Dankzij de ingebouwde kopieer functie kunnen we razendsnel grote hoeveelheden zonnepanelen kopiëren. Hulpmiddel verkoop; Mijn collega Lennert Bredemeijer doet de verkoop van zonnepanelen, regelmatig krijgt hij de vraag van klanten hoe zijn of haar woning eruit zal komen te zien met zonnepanelen op het dak. Deze vraag kon hij tot op heden lastig beantwoorden maar daar is nu verandering in gekomen. Hij maakt een foto van het vooraanzicht van de woning en laad deze direct in, in AutoCad op zijn laptop. Hierna start hij het programma “Renewable Energy Tool” op en voert de juiste dakhelling in, nadat hij dit gedaan heeft kan hij met één klik de gewenste zonnepanelen selecteren en plaatsen op het dak van de woning. De klant kan live meekijken en heeft direct een beeld van hoe zijn woning eruit zal komen te zien met de zonnepanelen. Mensen zonder tekenervaring kunnen er dus ook prima mee werken wat onder andere ook een wens was van mij. Toekomst; Programma is eenvoudig, effectief en zeer gebruiksvriendelijk gebleken. In de toekomst zou ik het programma nog verder uit kunnen uitbreiden met bijvoorbeeld montagematerialen. Ook een uitbreiding van het assortiment aan panelen zal geen probleem zijn. Maar voor nu voldoet het programma uitstekend!
22
RENEWABLE ENERGY TOOL
5. Bijlagen Bijlage I. Beschrijving tekenen zonnepaneel als dynamisch blok Na het zonnepaneel getekend te hebben gaan we er een blok van maken, ik heb hem zowel horizontaal als verticaal getekend en maak hier één blok van. Ik kan dan later wanneer het een dynamisch blok is geworden met hetzelfde blok via een selectiemenu kiezen voor een horizontale of een verticale montage. Nadat het “Pick point” (invoegpunt) is aangeklikt op het blok en daarna alle elementen via “Select objects” van het blok zijn geselecteerd zet je “Convert to Block” aan om de elementen om te zetten naar een blokreferentie. Hierna vink je “Open in block editor” aan om een dynamisch blok te maken.
23
RENEWABLE ENERGY TOOL
We komen in de “blokeditor” terecht:
Via het tabblad parameters klik je op de zichtbaarheidsparameter “Visiblity”. Ik ga nu deze parameter koppelen aan een actie. Zolang dat niet gebeurt is verschijnt er een uitroepteken in de linker onderhoek van het zonnepaneel. In het eigenschappen venster veranderen we de naam “Visibility Label” naar “Montage wijze”. In de stuklijst komt dan de term “Montage wijze” te staan. Nu dubbelklik je op het woord “Montage wijze” en kom je in het volgende venster terecht, zie onderstaande afbeelding Visibility States.
Hier geef je de vormvarianten op waar we uit kunnen kiezen, “Horizontale montage” of “Verticale montage”. Hierna verschijnt in de groep “Visibility” een keuzelijst met twee varianten “Horizontale montage” en “Verticale montage”.
24
RENEWABLE ENERGY TOOL
De variant “Horizontale montage” is in dit geval actief. Daarboven staan een aantal knoppen die betrekking hebben op de zichtbaarheid van deze varianten. Je klikt op “BVHIDE” en klikt daarna alle elementen aan die je niet wilt zien in de vormvariant “Horizontale montage”. Daarna doe je hetzelfde voor de vormvariant “Verticale montage”. Hierna test ik het blok in de testmodus, zie afbeelding.
Nu moet je nog vorm- en maatvoorwaarden aanbrengen. Vormvoorwaarden zorgen ervoor dat de vorm van het zonnepaneel behouden blijft. Als je dit niet zou doen dan zou de vorm veranderen als de maatvoorwaarde wordt gewijzigd. Via de knop “Constraint Status” onder de groep “Manage” kun je middels kleuren aangeven of een parametrisch model voorwaarden bevat of volledig bepaald is. De standaard instelling is zwart voor elementen zonder voorwaarde, blauw voor elementen met voorwaarde, paars voor een volledig bepaald model, rood wordt gebruikt als foutmelding. Uiteindelijk is het de bedoeling dat alle voorwaarden zijn bepaald en het gehele blok paars is. Via de knop “Fix” (slotje) leg je de plaats van een element of punt vast, in dit geval klik je op het punt linksonder. Nadat je dit gedaan hebt wordt er minimaal één lijn blauw. Via de knop “Auto Constrain” breng je automatisch de vormvoorwaarden aan en selecteer je alle elementen. Alle lijnen zijn nu blauw geworden en bij iedere lijn staat een voorwaarde. Nu ligt de vorm vast en gaan we de maatvoorwaarden aanbrengen. Dit doe je door op de knop “Linear” te klikken en dan een punt aan te klikken linksonder het paneel, daarna rechtsonder het paneel en dan een punt midden onder het paneel. Door deze volgorde komt het eerste grip links te liggen en de tweede rechts. De tekst verander je in “Breedte=1500” en bij het aantal “grips” kies je voor één welke wordt geplaatst op het tweede punt. Nu klik je onder de groep parameters op de knop “Make Visible”, nu wordt ook het verticale paneel zichtbaar en doen we hetzelfde bij dit paneel. Ik kwam er alleen achter dat je niet twee keer dezelfde naam kunt gebruiken in één blok dus toen heb ik de namen verandert in “BreedteVM” (Verticale Montage) en “BreedteHM” (Horizontale Montage). De horizontale maatvoorwaarde ofwel de breedte is nu bepaald. Nu moet je ook de verticale maatvoorwaarde, de hoogte nog bepalen. Dit doen we op dezelfde manier, dus ook weer via de knop “Linear”. Wel moeten je er nu rekening mee houden dat de hoogte van het paneel afhankelijk is van de hoek waaronder hij gemonteerd wordt. Als het zonnepaneel een werkelijke hoogte heeft van 808mm, zal deze hoogte kleiner worden wanneer het zonnepaneel onder een hoek van bijvoorbeeld 48gr. word gemonteerd.
25
RENEWABLE ENERGY TOOL
De werkelijke hoogte blijft uiteraard wel hetzelfde alleen de optische hoogte zal veranderen. Om deze te bepalen heb je een formule nodig en deze zal ik invoeren bij mijn verticale maatvoorwaarde, zie afbeelding.
Bijlage II Beschrijving gebruik blok tabel Nu heb je ook nog de mogelijkheid om een familie van varianten aan te maken. Dit doe je via de knop “Block Table”. De bloktabel is een tabel waarin verschillende waarden van de parameters staan. De tabel beschrijft alle familieleden. Een regel uit de tabel beschrijft één van de familieleden. Je kan nu met één klik een variant kiezen in plaats van dat je meerdere parameters moet opgeven. Je ziet nu in de blok tabel dat hij bij de verschillende montagehoeken de juiste hoogtes van de panelen berekend.
26
RENEWABLE ENERGY TOOL
De blok krijgt een grip en door op de grip te klikken verschijnt een menu met alle varianten. Het menu wordt aangemaakt vanuit de eerste kolom van tabel. Je ziet dat je de keuze hebt tussen een horizontale montage of een verticale montage, hierna kun je de gewenste dakhelling kiezen in graden.
Bijlage III De volledige code “Renewable Energy Tool” Met uitzondering van de codes voor toevoegen, wijzigen en opvragen. Deze zijn te kopieeren van de website van CadCollege. (www.cadcollege.com) Code tabblad 1 Sunpower panelen Imports Autodesk.AutoCAD.Windows Voor het aanmaken van een Palette (Window).
Imports Autodesk.AutoCAD.Runtime Voor het eenvoudig aanmaken van een AutoCad commando.
Imports Autodesk.AutoCAD.ApplicationServices Voor het opvangen van een gebeurtenis, een event, van de options dialoogbox.
Imports Autodesk.AutoCAD.DatabaseServices Voor het openen en sluiten van tekeningen en voor alle bewerkingen op de database van de tekening.
Imports Autodesk.AutoCAD.Geometry Bevat klassen en typen voor geometrie in AutoCad, zoals de coördinaten.
Imports Autodesk.AutoCAD.EditorInput Voor het opvragen van informatie.
Public Class Panelen Naam van de klasse is panelen en door er Public voor te zetten zorg je ervoor dat hij beschikbaar is vanuit AutoCad.
Dim hoek As Double Reserveren van een geheugenplaats voor “hoek” en geven aan dat er op die geheugenplaats getallen worden opgeborgen.
27
RENEWABLE ENERGY TOOL
Sub RechthoekMetWipeOut(ByVal b As Double, ByVal ho As Double, ByVal Naam As String, ByVal Draaihoek As Double) Aanmaken subroutine “RechthoekMetWipeout” en geven aan dat er onder de “b” (breedte), de “h” (hoogte) en de “Draaihoek” getallen worden opgeborgen en onder de “Naam” letters.
Dim p1 = New Point3d(0, 0, 0) Dim p2 = New Point3d(b, 0, 0) Dim p3 = New Point3d(b, ho, 0) Dim p4 = New Point3d(0, ho, 0) Definieren van een collectie van punten voor het aanmaken van de rechthoek.
Dim lijnen = New DBObjectCollection Reserveren van een geheugenplaats voor lijnen en maken een collectie van lijnen aan.
Dim wp As New Wipeout Reserveren van een geheugenplaats voor de wipeout.
Dim pts = New Point2dCollection(5) Reserveren van een geheugenplaats voor pts (points) en definieren van een collectie van punten.
pts.Add(New Point2d(0.0, 0.0)) pts.Add(New Point2d(b, 0.0)) pts.Add(New Point2d(b, ho)) pts.Add(New Point2d(0.0, ho)) pts.Add(New Point2d(0.0, 0.0)) Punten worden toegevoegd om de wipeout zijn vorm te geven.
wp.SetFrom(pts, New Vector3d(0, 0, 1)) Hier wordt de 3D richting ingesteld.
lijnen.Add(wp) lijnen.Add(New Line(p1, p2)) lijnen.Add(New Line(p2, p3)) lijnen.Add(New Line(p3, p4)) lijnen.Add(New Line(p4, p1)) Hier worden de lijnen toegevoegd.
Dim Elementen = Toevoegen.Elementen(lijnen) Reserveren van een geheugenplaats voor elementen en toevoegen “wipeout” element.
Toevoegen.BlokDefinitie(Naam, Elementen) Toevoegen blokdefinitie .
Dim doc = Application.DocumentManager.MdiActiveDocument Huidige tekening wordt toegevoegd aan de huidige ruimte, modelruimte/papierruimte.
doc.LockDocument() Tekening wordt gesloten voor andere bewerkingen.
Autodesk.AutoCAD.Internal.Utils.SetFocusToDwgView() doc.SendStringToExecute("-Insert """ & Naam & """" & vbCr & "S 1 r " & draaihoek & vbCr, False, False, True) Hier zorgen we ervoor dat er een text wordt gestuurd naar de dialoogregels van AutoCad.
End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim h = hoek * 3.14 / 180 Reserveren van een geheugenplaats voor de hoek en geven aan dat deze omgerekend dient te worden van graden naar radialen.
28
RENEWABLE ENERGY TOOL
Dim b = 1559 Reserveren van een geheugenplaats voor de breedte en geven deze de waarde 1559.
Dim ho = 798 * Math.Cos(h) Reserveren van een geheugenplaats voor de hoogte en geven deze de waarde 798 afhankelijk van de ingevoerde hoek..
Call RechthoekMetWipeOut(b, ho, "Sunpower220" & h, 0) Hier wordt het blok aangeroepen.
End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim h = hoek * 3.14 / 180 Dim b = 1559 Dim ho = 798 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Sunpower225" & h, 0) End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim h = hoek * 3.14 / 180 Dim b = 1559 Dim ho = 1046 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Sunpower300" & h, 0) End Sub Vanaf hier beginnen de codes voor de zonnepanalen die als portrait worden geplaatst, enige wijziging in de code is de 90 die de draaihoek bepaalt.
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim h = hoek * 3.14 / 180 Dim b = 798 Dim ho = 1559 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Sunpower220" & h, 90) End Sub Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim h = hoek * 3.14 / 180 Dim b = 798 Dim ho = 1559 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Sunpower225" & h, 90) End Sub
29
RENEWABLE ENERGY TOOL
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Dim h = hoek * 3.14 / 180 Dim b = 1046 Dim ho = 1559 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Sunpower300" & h, 90) End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged End Sub Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged End Sub Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged End Sub Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged End Sub Private Sub CheckBox5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox5.CheckedChanged End Sub Private Sub CheckBox6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox6.CheckedChanged End Sub Private Sub CheckBox7_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox7.CheckedChanged End Sub Private Sub CheckBox8_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox8.CheckedChanged End Sub Private Sub CheckBox9_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox9.CheckedChanged End Sub Private Sub CheckBox10_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox10.CheckedChanged
30
RENEWABLE ENERGY TOOL
End Sub Private Sub CheckBox11_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox11.CheckedChanged End Sub Private Sub CheckBox12_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox12.CheckedChanged End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click Dim h = hoek * 3.14 / 180 Reserveren van een geheugenplaats voor de hoek en geven aan dat deze omgerekend dient te worden van graden naar radialen.
Dim Sunpower220 As New ObjectIdCollection() Reserveren van een geheugenplaats voor het zonnepaneel Sunpower 220 en maken hier een ObjectIdCollectie van. Zo zorg je ervoor dat de elementen als groep worden aangeboden aan de functie.
If CheckBox1.Checked Then Opvragen.Elementen(Sunpower220) Wijzigen.MaakKopie(Sunpower220) Wijzigen.Plaats(Sunpower220, 1579, 0) End If Aangeven dat als checkbox 1 aangevinkt staat we het zonnepaneel Sunpower 220 moeten selecteren, er dan een kopie van gemaakt wordt en deze wordt geplaatst op 1579mm rechts vanaf het oorspronkelijke invoegpunt. We kopieeren dus in horizontale richting.
Dim Sunpower220v As New ObjectIdCollection() If CheckBox2.Checked Then Opvragen.Elementen(Sunpower220) Wijzigen.MaakKopie(Sunpower220) Wijzigen.Plaats(Sunpower220, 0, -798 * Math.Cos(h) - 20) End If Hier doen we hetzelfde alleen heeft deze betrekking op checkbox 2 en zorgen we ervoor dat het paneel gekopieerd word in verticale richting. Echter kunnen we in dit geval geen vaste maat opgeven voor het verplaatsen aangezien we met een hoogtevariant te maken hebben afhankelijk van de ingevoerde hoek. Hier is dus een formule in verwerkt.
Dim Sunpower225 As New ObjectIdCollection() If CheckBox3.Checked Then Opvragen.Elementen(Sunpower225) Wijzigen.MaakKopie(Sunpower225) Wijzigen.Plaats(Sunpower225, 1579, 0) End If Dim Sunpower225v As New ObjectIdCollection() If CheckBox4.Checked Then Opvragen.Elementen(Sunpower225) Wijzigen.MaakKopie(Sunpower225) Wijzigen.Plaats(Sunpower225, 0, -798 * Math.Cos(h) - 20) End If
31
RENEWABLE ENERGY TOOL
Dim Sunpower300 As New ObjectIdCollection() If CheckBox5.Checked Then Opvragen.Elementen(Sunpower300) Wijzigen.MaakKopie(Sunpower300) Wijzigen.Plaats(Sunpower300, 1579, 0) End If Dim Sunpower300v As New ObjectIdCollection() If CheckBox6.Checked Then Opvragen.Elementen(Sunpower300) Wijzigen.MaakKopie(Sunpower300) Wijzigen.Plaats(Sunpower300, 0, -1046 * Math.Cos(h) - 20) End If Dim Sunpower220p As New ObjectIdCollection() If CheckBox7.Checked Then Opvragen.Elementen(Sunpower220) Wijzigen.MaakKopie(Sunpower220) Wijzigen.Plaats(Sunpower220, 818, 0) End If Dim Sunpower220pv As New ObjectIdCollection() If CheckBox8.Checked Then Opvragen.Elementen(Sunpower220) Wijzigen.MaakKopie(Sunpower220) Wijzigen.Plaats(Sunpower220, 0, -1559 * Math.Cos(h) - 20) End If Dim Sunpower225p As New ObjectIdCollection() If CheckBox9.Checked Then Opvragen.Elementen(Sunpower225) Wijzigen.MaakKopie(Sunpower225) Wijzigen.Plaats(Sunpower225, 818, 0) End If Dim Sunpower225pv As New ObjectIdCollection() If CheckBox10.Checked Then Opvragen.Elementen(Sunpower225) Wijzigen.MaakKopie(Sunpower225) Wijzigen.Plaats(Sunpower225, 818, 0) Wijzigen.Plaats(Sunpower225, 0, -1559 * Math.Cos(h) - 20) End If Dim Sunpower300p As New ObjectIdCollection() If CheckBox11.Checked Then Opvragen.Elementen(Sunpower300) Wijzigen.MaakKopie(Sunpower300) Wijzigen.Plaats(Sunpower300, 1066, 0) End If Dim Sunpower300pv As New ObjectIdCollection() If CheckBox12.Checked Then Opvragen.Elementen(Sunpower300) Wijzigen.MaakKopie(Sunpower300) Wijzigen.Plaats(Sunpower300, 0, -1559 * Math.Cos(h) - 20) End If End Sub
32
RENEWABLE ENERGY TOOL
Shared palettes As PaletteSet Met Shared geven we aan dat de paletteset voor iedereen aan te roepen is.
Sub zonnepaneel() Definieren commandonaam van AutoCad, "Zonnepaneel" en de procedurenaam voor Visual Basic, “Zonnepaneel”.
If palettes = Nothing Then palettes = New PaletteSet("Panelen") Aanmaken groep van palettes , een zogenaamde collectie.
Dim Sunpower = New Panelen palettes.Add("Sunpower panelen", Sunpower) Aanmaken object van het type control waar we nu mee werken, in dit geval “panelen”. De regel daarna wordt deze palette (Sunpower panelen) toegevoegd aan de collectie van palettes.
Dim Upsolar = New Panelen2 palettes.Add("Upsolar panelen", Upsolar) Aanmaken object van het type van de control waar we nu mee werken, in dit geval “panelen2”. De regel daarna wordt deze palette (Upsolar panelen) toegevoegd aan de collectie van palettes.
palettes.Dock = DockSides.Left Plaats op het scherm aangeven van de palette.
palettes.DockEnabled = DockSides.None Plaats palette wordt vastgelegd.
palettes.Size = New System.Drawing.Size(350, 400) Hier worden de afmetingen van de palette bepaald.
palettes.Visible = True Palette zichtbaar maken.
End If End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged On Error Resume Next Ervoor zorgen dat het programma verder gaat nadat een fout is opgetreden, in dit geval na de regel waar de fout is opgetreden.
hoek = Me.TextBox1.Text If Err.Number <> 0 Then Me.TextBox1.BackColor = Color.Red Else Me.TextBox1.BackColor = Color.White End If End Sub Hier geven we aan dat we in textbox 1 de hoek in dienen te voeren en als we niks invoeren kleurt de textbox rood en anders is hij gewoon wit.
End Class
33
RENEWABLE ENERGY TOOL
Code tabblad 2 Upsolar panelen Imports Autodesk.AutoCAD.Windows Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Geometry Imports Autodesk.AutoCAD.EditorInput Public Class Panelen2 Dim hoek As Double Dim aantal As Double
Sub RechthoekMetWipeOut(ByVal b As Double, ByVal ho As Double, ByVal Naam As String, ByVal Draaihoek As Double) Dim p1 = New Point3d(0, 0, 0) Dim p2 = New Point3d(b, 0, 0) Dim p3 = New Point3d(b, ho, 0) Dim p4 = New Point3d(0, ho, 0) Dim lijnen = New DBObjectCollection Dim wp As New Wipeout Dim pts = New Point2dCollection(5) pts.Add(New Point2d(0.0, 0.0)) pts.Add(New Point2d(b, 0.0)) pts.Add(New Point2d(b, ho)) pts.Add(New Point2d(0.0, ho)) pts.Add(New Point2d(0.0, 0.0)) wp.SetFrom(pts, New Vector3d(0, 0, 1)) lijnen.Add(wp) lijnen.Add(New Line(p1, p2)) lijnen.Add(New Line(p2, p3)) lijnen.Add(New Line(p3, p4)) lijnen.Add(New Line(p4, p1)) Dim Elementen = Toevoegen.Elementen(lijnen) Toevoegen.BlokDefinitie(Naam, Elementen) Dim doc = Application.DocumentManager.MdiActiveDocument doc.LockDocument() Autodesk.AutoCAD.Internal.Utils.SetFocusToDwgView() doc.SendStringToExecute("-Insert """ & Naam & """" & vbCr & "S 1 r " & Draaihoek & vbCr, False, False, True) End Sub
34
RENEWABLE ENERGY TOOL
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click Dim h = hoek * 3.14 / 180 Dim b = 1580 Dim ho = 808 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Upsolar180", 0) End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click Dim h = hoek * 3.14 / 180 Dim b = 1482 Dim ho = 992 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Upsolar200", 0) End Sub Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click Dim h = hoek * 3.14 / 180 Dim b = 1640 Dim ho = 992 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Upsolar220", 0) End Sub Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click Dim h = hoek * 3.14 / 180 Dim b = 808 Dim ho = 1580 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Upsolar180", 90) End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click Dim h = hoek * 3.14 / 180 Dim b = 992 Dim ho = 1482 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Upsolar200", 90) End Sub
35
RENEWABLE ENERGY TOOL
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click Dim h = hoek * 3.14 / 180 Dim b = 992 Dim ho = 1640 * Math.Cos(h) Call RechthoekMetWipeOut(b, ho, "Upsolar220", 90) End Sub
Private Sub CheckBox13_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox13.CheckedChanged End Sub Private Sub CheckBox14_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox14.CheckedChanged End Sub Private Sub CheckBox15_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox15.CheckedChanged End Sub Private Sub CheckBox16_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox16.CheckedChanged End Sub Private Sub CheckBox17_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox17.CheckedChanged End Sub Private Sub CheckBox18_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox18.CheckedChanged End Sub Private Sub CheckBox19_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox19.CheckedChanged End Sub Private Sub CheckBox20_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox20.CheckedChanged End Sub Private Sub CheckBox21_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox21.CheckedChanged End Sub
36
RENEWABLE ENERGY TOOL
Private Sub CheckBox22_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox22.CheckedChanged End Sub Private Sub CheckBox23_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox23.CheckedChanged End Sub Private Sub CheckBox24_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox24.CheckedChanged End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim h = hoek * 3.14 / 180 Dim Upsolar180 As New ObjectIdCollection() If CheckBox13.Checked Then Opvragen.Elementen(Upsolar180) Wijzigen.MaakKopie(Upsolar180) Wijzigen.Plaats(Upsolar180, 1600, 0) End If Dim Upsolar180v As New ObjectIdCollection() If CheckBox14.Checked Then Opvragen.Elementen(Upsolar180) Wijzigen.MaakKopie(Upsolar180) Wijzigen.Plaats(Upsolar180, 0, -808 * Math.Cos(h) - 20) End If Dim Upsolar200 As New ObjectIdCollection() If CheckBox15.Checked Then Opvragen.Elementen(Upsolar200) Wijzigen.MaakKopie(Upsolar200) Wijzigen.Plaats(Upsolar200, 1502, 0) End If Dim Upsolar200v As New ObjectIdCollection() If CheckBox16.Checked Then Opvragen.Elementen(Upsolar200) Wijzigen.MaakKopie(Upsolar200) Wijzigen.Plaats(Upsolar200, 818, 0) Wijzigen.Plaats(Upsolar200, 0, -992 * Math.Cos(h) - 20) End If Dim Upsolar220 As New ObjectIdCollection() If CheckBox17.Checked Then Opvragen.Elementen(Upsolar220) Wijzigen.MaakKopie(Upsolar220) Wijzigen.Plaats(Upsolar220, 1660, 0) End If
37
RENEWABLE ENERGY TOOL
Dim Upsolar220v As New ObjectIdCollection() If CheckBox18.Checked Then Opvragen.Elementen(Upsolar220) Wijzigen.MaakKopie(Upsolar220) Wijzigen.Plaats(Upsolar220, 0, -992 * Math.Cos(h) - 20) End If Dim Upsolar180p As New ObjectIdCollection() If CheckBox19.Checked Then Opvragen.Elementen(Upsolar180) Wijzigen.MaakKopie(Upsolar180) Wijzigen.Plaats(Upsolar180, 828, 0) End If Dim Upsolar180pv As New ObjectIdCollection() If CheckBox20.Checked Then Opvragen.Elementen(Upsolar180) Wijzigen.MaakKopie(Upsolar180) Wijzigen.Plaats(Upsolar180, 0, -1580 * Math.Cos(h) - 20) End If Dim Upsolar200p As New ObjectIdCollection() If CheckBox21.Checked Then Opvragen.Elementen(Upsolar200) Wijzigen.MaakKopie(Upsolar200) Wijzigen.Plaats(Upsolar200, 1012, 0) End If Dim Upsolar200pv As New ObjectIdCollection() If CheckBox22.Checked Then Opvragen.Elementen(Upsolar200) Wijzigen.MaakKopie(Upsolar200) Wijzigen.Plaats(Upsolar200, 0, -1482 * Math.Cos(h) - 20) End If Dim Upsolar220p As New ObjectIdCollection() If CheckBox23.Checked Then Opvragen.Elementen(Upsolar220) Wijzigen.MaakKopie(Upsolar220) Wijzigen.Plaats(Upsolar220, 1012, 0) End If Dim Upsolar220pv As New ObjectIdCollection() If CheckBox24.Checked Then Opvragen.Elementen(Upsolar220) Wijzigen.MaakKopie(Upsolar220) Wijzigen.Plaats(Upsolar220, 0, -1640 * Math.Cos(h) - 20) End If End Sub
38
RENEWABLE ENERGY TOOL
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged On Error Resume Next hoek = Me.TextBox1.Text If Err.Number <> 0 Then Me.TextBox1.BackColor = Color.Red Else Me.TextBox1.BackColor = Color.White End If End Sub End Class
39
RENEWABLE ENERGY TOOL