AutoCAD Plotroutine Emmtec Engineering Afdeling bouwkunde civiel
Plaats: Datum: Bewerker:
Emmen 7 februari 2014 R. Talens
Onderwerp: Afstudeerverslag School: CAD College Richting: AutoCAD System Manager
VOORWOORD Ik ben Roelof Talens, 40 jaar, en woon in Peize. Ik ben vrijgezel en naast mijn werk voetbal ik op zondag en heb een druk sociaal leven. Na mijn bouwkundige opleiding ben ik in 1998 aan het werk gegaan als bouwkundig en constructief tekenaar bij VIRO Engineering in Hengelo. Daarna bij Tebodin in Groningen om vervolgens sinds 2000 in dienst bij EMMTEC Engineering, als bouwkundig en constructief tekenaar, te komen waar ik nu nog steeds met plezier werk. Sinds drie jaar vervul ik nu ook de taak als Key-user voor de bouwkundige afdeling als aanspreekpunt voor AutoCAD gerelateerde vragen en problemen.
In 2006 had ik de intentie om mijn kennis van AutoCAD verder uit te breiden en vond toen deze opleiding. In overleg met mijn toenmalige afdeling manager ben ik toen aan de opleiding begonnen. Door omstandigheden heb ik de opleiding toen niet afgerond.
Begin 2013 heb ik in overleg met de huidige afdeling manager het plan weer opgevat om de opleiding nu af te ronden en de kennis straks toe te passen in onze organisatie. Mede dankzij de medewerking van Matthijs, mijn manager, en Ronald, van TEC CAD college, is het dan nu gelukt om het project af te ronden en dit verslag te schrijven.
Mijn dank hiervoor.
Roelof Talens, winter 2014
INHOUD INLEIDING
5
1.
8
Probleemstelling
1.1.
Analyse oude situatie
8
1.2.
Analyse beschikbare tools
9
1.2.1. 1.2.2. 1.2.3.
1.3.
2.
De standaard plotroutine van AutoCAD Afdrukken via Publish binnen AutoCAD Custom made Plotroutine
9 10 11
Conclusie analyses
11
Opdracht formulering
13
2.1.
Programma van eisen
13
2.2.
Analyse mogelijke oplossingen
16
2.2.1. 2.2.2. 2.2.3.
2.3.
3.
LISP routine VBA module VB.Net programma
Conclusie analyse
Ontwerp module
16 16 17
17
19
3.1.
Analyse mogelijkheden binnen de gekozen programmeertaal
19
3.2.
Uitwerking code
19
3.3.
Conclusie
23
4.
Implementatie module
24
4.1.
Uitdragen nieuwe module bij de gebruikers
24
4.2.
Ervaringen gebruikers
24
4.3.
Conclusie ervaringen gebruikers
25
5.
Conclusie
26
6.
Aanbevelingen
27
BIJLAGEN: VBA code
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
29
pagina 4 van 46
INLEIDING Dit verslag beschrijft het project waarin een plotroutine voor AutoCAD is gemaakt. Deze routine zal worden gebruikt door de afdeling Bouwkunde Civiel van EMMTEC Engineering. EMMTEC Engineering is een ingenieursbureau die zijn werkzaamheden vooral richt op de chemische industrie vanuit zijn onstaans historie uit AKZO Engineering. Doch de laatste jaren richten wij ons ook steeds meer in de energie gerelateerde projecten door de huidige innige relatie met onze moeder organisatie NUON.
EMMTEC Industry & Business Park in Emmen EMMTEC Engineering is gevestigd op het EMMTEC Industry & Business Park in Emmen. Het park met een rijke historie vindt zijn oorsprong in 1951. De Algemene Kunstzijde Unie (AKU) zag in Emmen een optimale vestigingslocatie voor de productie van de toenmalig innovatieve Nylongaren. Later is dit opgegaan in AKZO Nobel. In de jaren ’90 van de vorige eeuw heeft AKZO de verschillende onderdelen verkocht aan diverse bedrijven. En is het parkbeheer, engineering en overige onderdelen verder gegaan met behulp van een investeringsmaatschappij. In 2002 heeft deze investeringsmaatschappij het park met de de verschillende onderdelen aan NUON verkocht.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 5 van 46
Tot eind vorige eeuw bestond het werk vooral uit projecten op het terrein voor de diverse klanten die daar gevestigd zijn. In de laatste 10 jaar hebben we ons ook steeds meer gericht op projecten buiten het park en hebben we ook kunnen profiteren van de contacten binnen onze nieuwe moeder bedrijf NUON.
Bij EMMTEC Engineering zijn we dus werkzaam in de industriebouw. Hiervoor gebruiken we voornamelijk AutoDesk gerelateerde producten zoals AutoCAD. In 2010 is er besloten om onze AutoCAD versie 2006 te upgraden. Daarbij kwam naar voren dat ook de tools, die onder AutoCAD draaien, dienen mee te migreren. Uit een onderzoek kwam naar voren dat een volledige migratie niet nodig is en dat er intern naar oplossing zou kunnen worden gezocht. Hieruit is de vraag gekomen voor het maken van en plotroutine die werkt onder de nieuwste AutoCAD versie’s. In dit verslag zal ik een project beschrijven voor een plotroutine die de gebruikers kunnen gebruiken voor het correct afdrukken van de gemaakte tekeningen.
In de volgende hoofdstukken zal ik duidelijk maken waarom bepaalde keuzes zijn gemaakt en hoe ik tot het gekozen project ben gekomen. Voor degenen die niets van AutoCAD weten zal ik hier een korte beschrijving proberen te geven van hoe AutoCAD werkt met betrekking tot het plotten. Dan zullen de genoemde termen in het verslag ook voor u duidelijker zijn. Het plotten gebeurt net als bij andere Windows programma’s via de geinstalleerde plotdrivers op de computer, maar voor het correct afdrukken heeft AutoCAD een zogenaamde CTB files (Color-dependent Plot Style Table) nodig. In deze file staan de instellingen die AutoCAD nodig heeft om de lijndiktes van de tekening te bepalen om zo een duidelijke en leesbare tekening te krijgen. De module die in dit verslag wordt beschreven zal de keuze voor de gebruiker maken zodat elke afdruk er uitziet zoals is voorgeschreven in de bedrijfsspecificaties.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 6 van 46
In hoofdstuk 1 zal de probleemstelling worden geformuleerd met een analyse van de bestaande situatie en de gewenste situatie. Vervolgens zal in hoofdstuk 2 de opdracht worden geformuleerd d.m.v. een programma van eisen en een analyse van de mogelijke oplossingen. Hierna zal in hoofdstuk 3 zal het ontwerp van de module worden besproken en uitgewerkt. Daarna zal in hoofdstuk 4 de implementatie van de module bij de gebruikers worden beschreven met hun bevindingen. Om dan in hoofdstuk 5 de eindconclusie te geven van de module. En tenslotte zal in hoofdstuk 6 enige aanbevelingen worden gegeven voor een volgende versie van de plotmodule. In de bijlage vind u de gehele VBA code voor deze module.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 7 van 46
1. Probleemstelling In dit hoofdstuk wordt een analyse gemaakt van het probleem vanuit de oude situatie en de alternatieven voor een werkbare nieuwe situatie. Afsluitend wordt er een conclusie gegeven voor de gewenste nieuwe situatie. 1.1.
Analyse oude situatie
Tot 2010 werd bij EMMTEC Engineering nog gewerkt met AutoCAD 2006 met het BASE menu van Atos Origin. In 2010 is de ondersteuning van het AutoCAD beheer gewijzigd van de IT afdeling naar een combinatie van de IT afdeling met Key-Users op de afdelingen. Hieruit is een AutoCAD commisie opgericht. Daarbij hebben WTB, E&I en Bouw/Civiel elk één Key-User afvaardigd. Éénmaal per kwartaal wordt samen met IT de problemen en ontwikkelingen in het bedrijf en in de markt besproken.
Bij één van de eerste overleggen werd de vraag gesteld in hoevere het BASE menu nog van toepassing was en wat er voor nodig is om deze te updaten naar de nieuwere AutoCAD versies bij toekomstige upgrades. Bij nader onderzoek kwam naar voren dat het BASE menu nodig moet worden geupdate voor toekomstige AutoCAD versies. Aangezien het een pakket is onder Atos Origin licentie hebben wij zelf niet de mogelijkheden om het zelfstandig te updaten. Naast de hoge kosten voor een upgrade zijn er ook hoge jaarlijkse kosten voor de licenties wat de AutoCAD commisie deed besluiten om alternatieven te zoeken.
Aangezien de kennis aanwezig is om zelf een menu te maken per afdeling hebben de Key-Users een eerste opzet gemaakt om te zien of dit voldoet aan de wensen van de gebruikers. De commisie heeft voor losse menu’s per afdeling gekozen aangezien er toch grote verschillen zijn in werkwijze en structuur.
Na een eerste versie is de commisie tot de conclusie gekomen dat voor de afdelingen
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 8 van 46
WTB en Bouw/Civiel het BASE menu zou kunnen vervallen. Voor E&I is het een ander verhaal aangezien voor die afdeling het BASE menu helemaal is ingericht met betrekking tot het aanmaken van E&I tekeningen met symbolen en automatische uitdraaien. Om die routines zelf geheel uit te werken vergt veel tijd en dan is de vraag of dit voordeliger is dan het te laten updaten van BASE.
Één van de algemeen gebruikte routines binnen het BASE menu was de plotroutine. In deze routine kon met een druk op de knop een afdruk maken van de tekening zonder te veel instellingen te hoeven maken en de kans op het maken van verkeerde keuzes.
Bij het laten vervallen van het BASE menu voor de afdeling WTB & Bouw/Civiel is er een alternatief nodig voor het afdrukken van de tekeningen. In de 1.2 wordt een analyse gegeven van de beschikbare tools in AutoCAD. 1.2.
Analyse beschikbare tools
1.2.1. De standaard plotroutine van AutoCAD
In de standaard plotroutine maak je de benodigde keuzes om de tekening vervolgens conform de Emmtec standaard af te drukken.
Tevens kun je via page setup veel gebruikte standaard instellingen opslaan.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 9 van 46
Doch na een evaluatie kom ik tot de conclusie dat er toch nog veel mis gaat met het kiezen van de juiste instellingen.
Één van de problemen is dat voor Emmtec meerdere ctb instellingen zijn aangemaakt die afhankelijk zijn van de afdrukschaal. Ook heeft elke printer een meervoud aan keuzes wat betreft het papierformaat, waardoor de marges bij de afdruk wel eens wil verschillen. Door de vele keuzes, die moeten worden gemaakt, maakt het gebruik van de standaard plotroutine het gevoelig dat tekeningen niet goed worden afgedrukt. 1.2.2. Afdrukken via Publish binnen AutoCAD
Publish is een nieuwere toepassing in AutoCAD en is binnen de organisatie nogal onbekend en maakt het eigenlijk nodig dat de AutoCAD gebruikers een algemene updatecursus gaan volgen .
De laatste updatecursus van de gemiddelde gebruiker was AutoCAD 2002. Wel zijn er voor de gebruikers meerder ‘page setup’ instellingen aangemaakt met de EMMTEC instellingen.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 10 van 46
Zoals uit het voorgaande dialoogbox blijkt zijn ook hier een aantal instellingen nodig voordat een afdruk kunt gemaakt kan worden.
Ook deze tool maakt het dus gevoelig voor onjuist afgedrukte tekeningen. 1.2.3. Custom made Plotroutine
Er zal een plotroutine moeten worden aangemaakt naar de wensen van Emmtec voor het verkrijgen van een afdruk volgens de Emmtec voorschriften, waarbij een tekening bij elke gebruiker hetzelfde uit de plotter zal komen.
Als uitgangspunt zal dan de routine van het BASE menu moeten worden gebruikt, waarbij zo weinig mogelijk instellingen nodig zijn om de juiste afdruk te krijgen. Ook zou moeten worden gekeken naar nieuwe wensen die afwijken van het BASE menu.
Bij een custom plotroutine zullen elke tekening met de dezelfde instellingen worden afgedrukt en is het onmogelijk om een verkeerde keuze te maken. 1.3.
Conclusie analyses
Uit de analyses komt duidelijk naar voren dat het verkrijgen van een uniforme afdruk, binnen de organisatie, met de standaard plotroutines binnen AutoCAD moeilijk is te garanderen, omdat de gebruiker zelf de instellingen moet kiezen en het risico op onjuiste keuzes zeer groot is.
De standaard plotroutine is nog wel te gebruiken voor een deel plot waar een juiste weergave niet altijd verplicht is voor de gebruiker. En de publish functie is vooral handig als je meerdere tekeningen in één keer wil afdrukken zonder ze één voor één te moeten openen. Daarom zullen de standaard instellingen voor beide functies altijd beschikbaar blijven voor de gebruiker.
Voor het dagelijkse gebruik is besloten om een plotroutine aan te maken die de instellingen naar de wens van EMMTEC zal uitvoeren zonder te veel keuzes voor de
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 11 van 46
gebruiker waarbij de routine vooraf al de juiste keuzes voor de gebruiker maakt en er alleen nog maar op “OK” hoeft te worden gedrukt.
In het volgende hoofdstuk zal een analyse worden gemaakt, waaraan de routine zou moeten voldoen. Waarbij de opdracht is om een plotroutine te maken die correcte afdrukken genereert waarbij keuzes voor de gebruiker optimaal worden gepresenteerd en eenvoudig kunnen worden afgehandeld.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 12 van 46
2. Opdracht formulering In dit hoofdstuk wordt een programma van eisen opgesteld aan de hand van het in paragraaf 1.3 benoemde doel. Hierbij wordt gekeken waaraan de plotroutine zou moeten voldoen met betrekking tot de automatisch te maken keuzes en de mogelijke handmatig in te stellen opties. Hierna wordt een analyse gegeven van de mogelijke programeertalen met de voor- en nadelen van deze verschillende programeertalen. Ten slotte zal in de conclusie een keuze worden gemaakt van de toe te passen programeertaal. 2.1.
Programma van eisen
Als uitgangspunt wordt de oude BASE plotroutine gebruikt met eventuele uitbreiding met betrekking tot nieuwe wensen vanuit de praktijk. Eerst een toelichting van de opbouw van plotstyles en de gebruikte templates binnen EMMTEC engineering. Bij EMMTEC wordt er gewerkt met een standaard template voor de gebruikelijke papier formaten A4 t/m A0. Er is geen afwijkende formaat in gebruik binnen de organisatie. Voor de printers/plotters zijn er 5 plotstyle bestanden aangemaakt de zogenaamde ‘ctb’ bestanden. Het principe hierbij is dat als je een bepaald papierformaat wilt afdrukken op een afwijkend papierformaat de lijndiktes van de afdruk dienen te verschalen. Plotstyle 1 is voor een 1 op 1 afdruk op de printer/plotter en elke volgende plotstyle is voor een verschaling naar een kleinere schaal. Dit houdt in dat bij het afdrukken van een A0 op een A1 plotstyle 2 moet worden gebruikt tot plotstyle 5 voor een afdruk van een A0 op een A4. De BASE plotroutine maakt deze keuze voor de gebruiker door te kijken welke template er wordt gebruikt en naar de afdruk formaat keuze van de gebruiker . Een nadeel van de BASE plotroutine is dat het geen tekeningen kan afdrukken met een andere template dan de standaard EMMTEC template.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 13 van 46
Net als bij de BASE plotroutine wordt er eerst gekeken of er vanuit paperspace wordt geplot. Mocht dit niet het geval zijn zal de routine afsluiten en de standaard AutoCAD routine worden opgestart.
Een nieuwe gewenste optie is het laten controleren op transparante elementen in de tekening. Bij het ontwikkelen van het BASE menu zat deze optie nog niet in AutoCAD en dit is in de nieuwe revisies ook nooit toegevoegd. Het komt steeds vaker komt het voor dat er transparante elementen in een tekening voorkomen. Bij het testen is gebleken dat bij het standaard aanvinken van deze optie het afdrukken wordt vertraagd en dit dus een grotere belasting voor de PC betekent. Daarom wordt ervoor gekozen om deze optie alleen te activeren als er een transparant element aanwezig is.
Vervolgens zullen de printers en plotter worden ingesteld, waarbij een standaard printer/plotter wordt geactiveerd met de bijbehorende papierformaten.
De routine zal vervolgens kijken of er een EMMTEC template aanwezig is. Mocht de aanwezige template niet worden herkend kan de gebruiker het kaderformaat handmatig kiezen.
Nu zal de routine de juiste ctb bestand bepalen voor een correcte afdruk van de tekening op het gekozen afdruk formaat. Bij het handmatig wijzigen van de printer/plotter en het afdrukformaat zal de routine opnieuw de juiste ctb bestand bepalen.
Na het opgeven van het aantal gewenste afdrukken kan de gebruiker nu de afdruk laten uitvoeren met de juiste instellingen.
Ook zal er een handleiding worden toegevoegd die te openen is vanuit de routine. Deze geeft de gebruiker een uitleg van de werking van de plotroutine.
Op de volgende pagina is een stroomschema aangemaakt van het gewenste verloop van het proces in de plotroutine.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 14 van 46
Stroomschema:
START
Controleren of er vanuit paperspace wordt geplot
NEE
Opstarten standaard plot
NEE
Plot ‘transparency’ uit schakelen
JA Controleren of er ‘transparency’ elementen zijn JA Plot ‘transparency’ in schakelen Instellen beschikbare plotters/printers en default plotter/printer Instellen papier formaten plotter/printer
Controleren welk formaat het kader heeft
NEE
Kies het juiste kader formaat
JA Juiste ‘ctb’ file bepalen a.d.h. van het kader formaat en de afdruk formaat Plotter/printer kiezen
Afdruk formaat kiezen
Opgeven aantal afdrukken. Default ‘1’ Transparency on/off kiezen
Afsluiten
Keuze OK/Afsluiten/Help
Help
Openen PDF file met uitleg plot routine
OK Afdrukken kader met de opgegeven instellingen
EINDE
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 15 van 46
2.2.
Analyse mogelijke oplossingen
Voor het bepalen dan de te gebruiken programeertaal wordt hier een analyse gegeven van drie beschikbare programeertalen, waar enige kennis in beschikbaar is binnen de organisatie van EMMTEC engineering. Achtereen volgens wordt het programeren in LISP, VBA en VB.Net besproken en de beschikbare kennis binnen de organisatie voor deze programeertaal ingeschat. 2.2.1. LISP routine
AutoLisp (afgekort Lisp) is een programmeertaal van AutoCAD, die is afgeleid van LISP (LISt Procedure). Autolisp is gemakkelijk te bewerken d.m.v. NotePad (kladblok) dat standaard bij de installatie van Windows wordt geinstalleerd. Of met een andere tekstverwerkingprogramma die met ASCII codes overweg kan. Visual LISP is een opgewaardeerde versie van AutoLISP (inclusief alle oude AutoLISPfunctionaliteit) met een van VBA afgeleide toegang tot de AutoCAD-omgeving.
Binnen de organisatie is een brede kennis aanwezig m.b.t. LISP en zal een routine in LISP snel kunnen worden aangepast mocht dit nodig te zijn. 2.2.2. VBA module
Visual Basic (VB) is een programmeertaal en een ontwikkelomgeving. VB maakt het mogelijk om programma's te schrijven die draaien onder Windows. Het woord "Visual" slaat op het maken van de grafische gebruikers interface (Graphical User Interface oftewel GUI). Het woord "Basic" refereert aan de programmeertaal BASIC. VBA is qua taal equivalent aan VB. VBA is ingebouwd in een groot aantal andere applicaties, waaronder AutoCAD, als macro (applicatie) ontwikkeltaal . Met VBA is zo'n standaard applicatie naar eigen wens aan te passen en uit te breiden en zijn eenvoudig koppelingen tussen de verschillende applicaties te maken. VBA is een wereld standaard als het gaat om applicatie ontwikkel talen en is als programmeertaal in tientallen applicaties terug te vinden.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 16 van 46
Met behulp van VBA is het mogelijk toepassingen te automatiseren en de functionaliteit van de applicatie kan daardoor enigszins worden uitgebreid. VBA wordt dan gebruikt als een macrotaal voor die applicatie, waarin extra functies voor die applicatie kunnen worden geprogrammeerd. De basisfunctionaliteit van het applicatieprogramma kan in een VBA programma worden aangeroepen.
Ook met betrekking tot VBA is er binnen de organisatie een brede kennis aanwezig en is een aanpassing dus snel uit te voeren mocht dit nodig zijn. 2.2.3. VB.Net programma
Visual Basic 7.0 en latere versies hebben een grote oppervlakkige gelijkenis met de zojuist genoemde eerdere Visual Basic's, maar zijn op een totaal nieuwe ondergrond gebaseerd: het .NET-framework. Hiermee wordt Visual Basic een door en door objectgeoriënteerde taal, zeer vergelijkbaar met C# of Java. Daarnaast verandert het karakter van de naam Visual Basic enigszins: die slaat nu specifiek op de programmeertaal, omdat de ondersteunende softwarebibliotheken en de runtimeondersteuning ook worden gebruikt door alle andere .NET-talen, zoals C#. Ook heeft de taal een openbare specificatie.
Zoals de runtime van Visual Basic 6 is ook de .NET-runtime (beter bekend als het .NETframework) vrij verkrijgbaar als download op microsoft.com, en wordt daarnaast meegeleverd met automatische Windows-updates.
Doordat er pas sinds kort is besloten om de AutoCAD platform te updaten naar een nieuwere versie is er, in de laatste jaren, niet geïnvesteerd in het updaten van de kennis van VB.Net binnen de organisatie. Dit houdt in dat er op dit moment maar één persoon is die de routine zou kunnen updaten als dit nodig is. 2.3.
Conclusie analyse
Elke programeertaal is goed te gebruiken om een plotroutine aan te maken en heeft elk zijn voor en nadelen.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 17 van 46
Wat betreft de meeste mogelijkheden heeft VB.net de voorkeur. Tevens is VB.net een taal die in de toekomst zeker zal worden ondersteund. Het nadeel is dat er binnen EMMTEC Engineering momenteel maar 1 persoon is die deze programeertaal beheerst. Wat een risico geeft mocht deze persoon vertrekken voor toekomstige updates. Gezien de huidige economische situatie is er geen prioriteit om andere medewerkers heirvoor op te leiden. Aangezien er voldoende kennis aanwezig is in LISP en VBA is het dan ook een logische keuze om op dit moment te kiezen voor een plotroutine in één van deze talen.
Het voordeel van een VBA routine t.o.v. een LISP routine is dat een VBA routine in de toekomst kan worden gebruikt als basis voor het omzetten naar een VB.net routine. Daar een migratie naar VB.net zeker een wens is als de kennis van VB.net breder wordt gedragen binnen de organisatie.
Ik heb dan ook gekozen om de plotroutine verder uit te werken in VBA, zoals wordt besproken in het volgende hoofdstuk.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 18 van 46
3. Ontwerp module In dit hoofdstuk zal eerst een analyse worden gegeven van de keuze mogelijkheden binnen VBA voor de verschillende routines binnen de plotroutine. Vervolgens zullen enige keuzes worden uitgewerkt in een code. Tenslotte zal er een conclusie worden gegeven van de gemaakte keuzes binnen de routine. 3.1.
Analyse mogelijkheden binnen de gekozen programmeertaal
Voor het afdrukken van een DWG in een VBA routine kun je er voor kiezen om dit geheel in VBA te coderen, zodat het op de achtergrond gebeurt. Ook kun je de plot laten uitvoeren op de command line vanuit de VBA routine. Bij een eerste test fase kwam al snel naar voren dat bij een wijziging van de plotdriver en plotterpositie in het netwerk de routine niet goed werkt. Bij een plotroutine op de achtergrond is het niet altijd direct duidelijk wat het probleem is terwijl bij een commandline gestuurde plot is direct zichtbaar waar de afdruk fout gaat. Daarom is er besloten om de plot in de routine via de commandline te laten werken om bij storingen in de routine snel een analyse te kunnen maken van de mogelijke problemen. 3.2.
Uitwerking code
De eerste gewenste controle is of er wordt afgedrukt vanuit paperspace. De routine is alleen geschreven voor afdrukken vanuit paperspace en zal dan ook de standaard plot van AutoCAD moeten opstarten als vanuit modelspace wilt afdrukken.
Daarna volgt de controle of er elementen zijn met transparante eigenschappen. Deze instelling hebben we standaard uitstaan, omdat het afdrukken aanzienlijk trager wordt bij objecten die transparant zijn. En dus zal deze uit worden gezet als er geen transparante elementen wordt gebruikt in de tekening.
Vervolgens worden de beschikbare plotters en printers ingesteld, waaruit een keuze kan worden gemaakt door middel van een pulldown veld. Dit zelfde geldt voor het afdruk formaat.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 19 van 46
De standaard keuze is de A3 printer op de afdeling.
Nu controleert het programma welk formaat kader er in de layout staat. Hij controleert dit aan de hand van het gevonden kader block. Mocht de routine geen EMMTEC kader kunnen vinden zal er een pulldown veld verschijnen, zodat de keuze handmatig kan worden gemaakt.
Door nu de gewenste plotter/printer te kiezen zal de plot formaat keuze worden aangepast aan de beschikbare formaten.
Zie onderstaand voorbeeld code: (voor de gehele code van de plotroutine zie bijlage 2) -------------------------ElseIf PlotterCmbBx.Value = "EMN4858 A0 Plotter Bouw/Civiel" Then Call Me.FormaatCmbBx.Clear Dim Formaat2(0 To 4) As String Formaat2(0) = "A0 ( 1189 x 841 mm )" Formaat2(1) = "A1 ( 841 x 594 mm )" Formaat2(2) = "A2 ( 594 x 420 mm )" Formaat2(3) = "A3 ( 420 x 297 mm )" Formaat2(4) = "A4 ( 210 x 297 mm )" For I = 0 To 4 Call Me.FormaatCmbBx.AddItem(Formaat2(I)) Next I Me.FormaatCmbBx.ListIndex = 0 ElseIf PlotterCmbBx.Value = "EMN5028 A3 Copier Bouw/Civiel" Then Call Me.FormaatCmbBx.Clear Dim Formaat3(0 To 1) As String Formaat3(0) = "A3 ( 420 x 297 mm )" Formaat3(1) = "A4 ( 210 x 297 mm )" For I = 0 To 1 Call Me.FormaatCmbBx.AddItem(Formaat3(I)) Next I
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 20 van 46
Me.FormaatCmbBx.ListIndex = 0 -------------------------Als men de plotter/printer keuze en afdruk formaat wijzigt zal het programma de benodigde ctb file bepalen voor het verkrijgen van de juiste afdruk.
Zie onderstaand voorbeeld code: (voor de gehele code van de plotroutine zie bijlage 2) -------------------------'Bepalen schaal keuze Dim schaalkeuze As String If FormaatKaderCmbBx.Value = FormaatCmbBx.Value Then schaalkeuze = "1:1" ElseIf FormaatKaderLbl.Caption = FormaatCmbBx.Value Then schaalkeuze = "1:1" Else schaalkeuze = "fit" End If 'Bepalen plotstyle keuze Dim plotstylekeuze As String If schaalkeuze = "1:1" Then plotstylekeuze = "_01_EMMTEC.ctb" ElseIf FormaatKaderCmbBx.Value = "A0 ( 1189 x 841 mm )" Then If FormaatCmbBx.Value = "A1 ( 841 x 594 mm )" Then plotstylekeuze = "_02_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A2 ( 594 x 420 mm )" Then plotstylekeuze = "_03_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then plotstylekeuze = "_04_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then plotstylekeuze = "_05_EMMTEC.ctb" ori = "l" Else End If
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 21 van 46
-------------------------Als laatste kun je dan nog het aantal afdrukken geven en handmatig de transparantie in of uit schakelen.
Om daarna op OK te klikken om het afdrukken te starten.
Het afdrukken gebeurt zichtbaar op de command line om altijd een extra controle te hebben.
Zie onderstaand voorbeeld code: (voor de gehele code van de plotroutine zie bijlage 2) -------------------------For a = 1 To AantalTxtBx.Value If plotterkeuze = "DWG To PDF.pc3" Then ThisDrawing.SendCommand "-plot" & vbCr & "y" & vbCr & vbCr & plotterkeuze & vbCr & formaatkeuze & vbCr & "m" & vbCr & ori & vbCr & "n" & vbCr & "e" & vbCr & schaalkeuze & vbCr & "c" & vbCr & "y" & vbCr & plotstylekeuze & vbCr & "y" & vbCr & "n" & vbCr & "n" & vbCr & "n" & vbCr & "n" & vbCr & "y" & vbCr Else ThisDrawing.SendCommand "-plot" & vbCr & "y" & vbCr & vbCr & plotterkeuze & vbCr & formaatkeuze & vbCr & "m" & vbCr & ori & vbCr & "n" & vbCr & "e" & vbCr & schaalkeuze & vbCr & "c" & vbCr & "y" & vbCr & plotstylekeuze & vbCr & "y" & vbCr & "n" & vbCr & "n" & vbCr & "n" & vbCr & "n" & vbCr & "n" & vbCr & "y" & vbCr End If Next a --------------------------
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 22 van 46
Om nu te kunnen afdrukken start je de dialoogbox op die m.b.v. de bovengenoemde code het afdrukken uitvoert.
Voor het afdrukken is de meest gebruikte plotter standaard geactiveerd met de meest gebruikte afdruk formaat. Dus meestal hoef je alleen maar op OK te drukken om de gewenste afdruk te krijgen. Wijzig je de plotter zal de routine de instellingen opnieuw bepalen en de meest gemaakte afdruk formaat instellen zodat je ook nu alleen maar op OK hoeft te drukken om een goede afrduk te krijgen. 3.3.
Conclusie
Door de automatische bepaling van het kader formaat wordt de tekening nu automatisch in de juiste plotstyle afgedrukt en dus komt de tekening uniform op papier te staan. Onafhankelijk van de gebruiker is zo een uniforme afdruk binnen het bedrijf mogelijk.
De commandline gestuurde plot is geen elegante oplossing, maar hierdoor heeft de gemiddelde gebruiker snel de oorzaak gevonden als de afdruk routine onverwacht wordt afgesloten.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 23 van 46
4. Implementatie module Voor een gebruikerstest hebben we de nieuwe plotroutine bij de gebruikers geinstalleerd en na een bepaalde periode gevraagd hoe de ervaringen zijn en wat er aangepast en of verbeterd zou moeten worden. Hieronder zal het uitdragen van de module, de ervaring van de gebruikers en de conclusie worden beschreven die we hebben opgedaan na de test periode. 4.1.
Uitdragen nieuwe module bij de gebruikers
Voordat de gebruikers aan de gang kunnen zijn eerst de instellingen met betrekking tot de plotterfiles en plotstylefiles gewijzigd en is AutoCAD zo ingesteld dat de plotroutine automatisch wordt ingeladen. Daarna is een korte instructie gegeven van de werking van de routine. Het doel van de routine is dan ook dat met een korte introductie de gemiddelde gebruiker er direct mee kan werken. 4.2.
Ervaringen gebruikers
Na een bepaalde periode is de gebruiker gevraagd naar de ervaringen met de nieuwe routine.
-
In de periode dat zij de module hebben getest zijn er geen probleem geweest met het plotten.
-
De ervaringen zijn positief en de plotroutine voldoet aan de eisen die wij vooraf hadden gesteld.
Voor de toekomst zouden de gebruikers graag de volgende punten zien verwerkt in een nieuw project. Die nu niet waren voorzien in dit project: -
Tekeningen van externe bureaus worden niet herkend m.b.t. het bepalen van het kader.
-
Ook wijkt de plotstyle van een extern bureau af van onze standaard.
-
Ze zouden graag een batch plot functie hebben die ook gebruik maakt van de juiste instellingen.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 24 van 46
4.3.
Conclusie ervaringen gebruikers
De module voldoet aan de eisen die ik hadden opgesteld en de gebruikers kunnen zonder problemen een afdruk maken met de juiste bedrijfsinstellingen.
Het kunnen afdrukken van tekening van externe bureaus is niet voorzien in deze plotroutine, maar bij een nieuw project is het een optie om die mogelijkheid mee te nemen. Het automatisch bepalen van het kader formaat en daarmee de juiste plot instelling wordt zeer gewaardeerd. En zou dan ook graag bij externe tekeningen zeer welkom zijn.
Een batch plot functie zou kunnen worden toegevoegd, maar we hebben er nu voor gekozen om een korte handleiding te maken van de Publish functie aangezien de batch plot niet vaak gebruikt wordt.
In het volgende hoofdstuk zullen we deze punten meenemen in de eind conclusie.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 25 van 46
5. Conclusie De module die is gemaakt, voldaat aan de eisen en wensen die van te voren waren vastgesteld, voldoet. Zoals is gebleken na de test door de gebruikers. Op een eenvoudige en snelle manier kunnen de gebruikers de tekeningen afdrukken met de juiste instellingen zoals voorgeschreven binnen de organisatie.
Toch zijn er enige punten die meegenomen zouden kunnen worden in een volgend project. Zo zouden de gebruikers ook graag tekeningen van externe bureaus snel kunnen afdrukken zonder zelf teveel te moeten kiezen, zoals je hebt met de standaard plotroutine.
Voor de batch plot kijken we eerst de ervaringen aan van het gebruik van de Publish functie. Mocht dit niet de gewenste resultaten geven zal bij een nieuwe versie van deze module een batch plot functie worden toegevoegd.
Een aandachtspunt bij deze module is dat de plotter en formaat instellingen in de VBA code is ingeprogrameerd en dus moet worden aangepast bij wijziging van één van de plotters. Bij een nieuwe versie zal dan ook moeten worden nagedacht om dit anders op te lossen, zodat nieuwe plotters kunnen worden toegevoegd zonder de module te hoeven herprogrameren.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 26 van 46
6. Aanbevelingen Nu de plotroutine naar tevredenheid werkt en wordt gebruikt binnen de organisatie zal hieronder enige aanbevelingen worden gegeven voor een volgende project voor het maken van een plotroutine met de gewenste extra mogelijkheden.
Voor een volgend project is het wenselijk om de module dan in VB.Net te programeren, omdat deze programeer omgeving meer mogelijkheden biedt. Daarom wordt het management dan ook aangeraden om enige personen te laten opleiden voor het programeren in VB.Net om te waarborgen dat een toekomstige module intern kan worden aangepast of gewijzigd.
In een volgende versie zouden dan de volgende punten kunnen worden meegenomen: -
Plotterinstellingen vanuit een tekstfile in laten lezen zodat bij het wijzigen van een plotter je alleen maar de tekstfile hoeft aan te passen.
-
Plotstyle instellingen vanuit een tekstfile in laten lezen zodat bij het wijzigen of toevoeging van een plotstyle je alleen maar de tekstfile hoeft aan te passen.
-
Papierformaat instellingen vanuit een tekstfile in laten lezen, zodat bij het wijzigen van een plotter je alleen maar de tekstfile hoeft aan te passen.
-
Het bepalen van het kaderformaat aanpassen zodat de routine ook externe kaders kan bepalen.
Naast een module die speciaal voor de organisatie is gemaakt is het ook zaak om de AutoCAD kennis van de gebruikers actueel te houden. Het is daarom ook zaak om het management ervan te overtuigen dat het personeel weer een updatecursus krijgt aangezien de laatste cursus bij AutoCAD 2000 was. Ondertussen gaan wij binnenkort migreren naar versie 2014 en zou een update cursus zeker raadzaam zijn. Een aantal belangrijke punten om deze update te rechtvaardigen zijn de extra functies die AutoCAD heeft gekregen in deze periode onder de aandacht te brengen.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 27 van 46
Hierbij moet je denken aan het volgende: -
De Publish functie om meerdere tekeningen af te drukken met de gewenste instellingen.
-
De Ribbons in plaats van de oude knoppen balk. Er zijn nog veel gebruikers die de knoppenbalk nog steeds gebruiken terwijl de Ribbon hetzelfde doet. Alleen is men er niet mee bekend.
-
En zo zijn er ook nog vele nieuwe functies die hier niet nader worden genoemd, maar zeker een tegevoegde waarde hebben voor de gebruiker.
Afsluitend kunnen we dan ook stellen dat het verbeteren van de kennis in AutoCAD en VB.Net zeer wenselijk is binnen de organistatie.
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 28 van 46
BIJLAGEN: VBA code Private Sub UserForm_Activate() 'Controleren op blocken met transparante kleuren FindBlockName 'Inlezen block gegevens t.b.v. bepalen kader formaat Dim ent As AcadEntity Dim oBkRef As AcadBlockReference Dim FormaatKader As String FormaatKader = "Kan formaat niet bepalen!" For Each ent In ThisDrawing.PaperSpace If ent.ObjectName = "AcDbBlockReference" Then Set oBkRef = ent If oBkRef.EffectiveName = "BASECIV0" Then FormaatKader = "A0 ( 1189 x 841 mm )" Exit For FormaatKader = "A0 ( 1189 x 841 mm )" ElseIf oBkRef.EffectiveName = "BASECIV1" Then FormaatKader = "A1 ( 841 x 594 mm )" Exit For FormaatKader = "A1 ( 841 x 594 mm )" ElseIf oBkRef.EffectiveName = "BASECIV2" Then FormaatKader = "A2 ( 594 x 420 mm )" Exit For FormaatKader = "A2 ( 594 x 420 mm )" ElseIf oBkRef.EffectiveName = "BASECIV3" Then FormaatKader = "A3 ( 420 x 297 mm )"
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 29 van 46
Exit For FormaatKader = "A3 ( 420 x 297 mm )" ElseIf oBkRef.EffectiveName = "locdoco" Then FormaatKader = "A4 ( 210 x 297 mm )" Exit For FormaatKader = "A4 ( 210 x 297 mm )" ElseIf oBkRef.EffectiveName = "KaderA3Aanvalsplan" Then FormaatKader = "A3 ( 420 x 297 mm )" Exit For FormaatKader = "A3 ( 420 x 297 mm )" Else FormaatKaderLbl.Visible = False FormaatKaderCmbBx.Visible = True End If End If Next ent FormaatKaderLbl.Caption = FormaatKader End Sub Function FindBlockName() 'Inlezen block gegevens t.b.v. bepalen stempel Dim ent As AcadEntity Dim oBkRef As AcadBlockReference For Each ent In ThisDrawing.PaperSpace If ent.ObjectName = "AcDbBlockReference" Then Set oBkRef = ent If oBkRef.EffectiveName = "COMMENTAAR_ONDERHOEK_STEMPEL" Then
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 30 van 46
ChBxTransparency.Value = True Exit Function ElseIf oBkRef.EffectiveName = "SCHETS-STEMPEL" Then ChBxTransparency.Value = True Exit Function Else ChBxTransparency.Value = False End If End If Next ent End Function Private Sub UserForm_Initialize() 'Controleren of er vanuit modelpace wordt geplot 'Eerste check voor tilemode = 1 If ThisDrawing.ActiveSpace = acPaperSpace Then 'Hierna controlle of ms actief is If ThisDrawing.MSpace = True Then MsgBox ("Er is een Viewport actief!") End If Else MsgBox ("Je kunt alleen plotten vanuit Paperspace met deze routine!") 'AutoCAD standaard plotroutine opstarten ThisDrawing.SendCommand "plot" & vbCr 'Afsluiten macro met behoud van instellingen Me.Hide End If
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 31 van 46
'Instellen plotter en printer keuzes Dim Plotter(0 To 5) As String Plotter(0) = "EMN4868 A0 Plotter Archief" Plotter(1) = "EMN4858 A0 Plotter Bouw/Civiel" Plotter(2) = "EMN5028 A3 Copier Bouw/Civiel" Plotter(3) = "EMN4833 A3 Kleuren Laser Proces" Plotter(4) = "DWG To PDF" Plotter(5) = "PDF Creator" For I = 0 To 5 Call Me.PlotterCmbBx.AddItem(Plotter(I)) Next I Me.PlotterCmbBx.ListIndex = 2 'Instellen papier formaat keuze Call Me.FormaatCmbBx.Clear Dim Formaat(0 To 1) As String Formaat(0) = "A3 ( 420 x 297 mm )" Formaat(1) = "A4 ( 210 x 297 mm )" For I = 0 To 1 Call Me.FormaatCmbBx.AddItem(Formaat(I)) Next I Me.FormaatCmbBx.ListIndex = 0 'Instellen kader formaat Dim FormaatK(0 To 5) As String FormaatK(0) = "Kies kader formaat" FormaatK(1) = "A0 ( 1189 x 841 mm )" FormaatK(2) = "A1 ( 841 x 594 mm )" FormaatK(3) = "A2 ( 594 x 420 mm )" FormaatK(4) = "A3 ( 420 x 297 mm )" FormaatK(5) = "A4 ( 210 x 297 mm )" For I = 0 To 5 Call Me.FormaatKaderCmbBx.AddItem(FormaatK(I)) Next I Me.FormaatKaderCmbBx.ListIndex = 0 End Sub
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 32 van 46
Private Sub PlotterCmbBx_Change() 'Instellen papier formaat voor desbetreffende printer/plotter If PlotterCmbBx.Value = "EMN4868 A0 Plotter Archief" Then Call Me.FormaatCmbBx.Clear Dim Formaat1(0 To 4) As String Formaat1(0) = "A0 ( 1189 x 841 mm )" Formaat1(1) = "A1 ( 841 x 594 mm )" Formaat1(2) = "A2 ( 594 x 420 mm )" Formaat1(3) = "A3 ( 420 x 297 mm )" Formaat1(4) = "A4 ( 210 x 297 mm )" For I = 0 To 4 Call Me.FormaatCmbBx.AddItem(Formaat1(I)) Next I Me.FormaatCmbBx.ListIndex = 0 ElseIf PlotterCmbBx.Value = "EMN4858 A0 Plotter Bouw/Civiel" Then Call Me.FormaatCmbBx.Clear Dim Formaat2(0 To 4) As String Formaat2(0) = "A0 ( 1189 x 841 mm )" Formaat2(1) = "A1 ( 841 x 594 mm )" Formaat2(2) = "A2 ( 594 x 420 mm )" Formaat2(3) = "A3 ( 420 x 297 mm )" Formaat2(4) = "A4 ( 210 x 297 mm )" For I = 0 To 4 Call Me.FormaatCmbBx.AddItem(Formaat2(I)) Next I Me.FormaatCmbBx.ListIndex = 0 ElseIf PlotterCmbBx.Value = "EMN5028 A3 Copier Bouw/Civiel" Then Call Me.FormaatCmbBx.Clear Dim Formaat3(0 To 1) As String Formaat3(0) = "A3 ( 420 x 297 mm )" Formaat3(1) = "A4 ( 210 x 297 mm )"
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 33 van 46
For I = 0 To 1 Call Me.FormaatCmbBx.AddItem(Formaat3(I)) Next I Me.FormaatCmbBx.ListIndex = 0 ElseIf PlotterCmbBx.Value = "EMN4833 A3 Kleuren Laser Proces" Then Call Me.FormaatCmbBx.Clear Dim Formaat4(0 To 1) As String Formaat4(0) = "A3 ( 420 x 297 mm )" Formaat4(1) = "A4 ( 210 x 297 mm )" For I = 0 To 1 Call Me.FormaatCmbBx.AddItem(Formaat4(I)) Next I Me.FormaatCmbBx.ListIndex = 0 ElseIf PlotterCmbBx.Value = "DWG To PDF" Then Call Me.FormaatCmbBx.Clear Dim Formaat6(0 To 4) As String Formaat6(0) = "A0 ( 1189 x 841 mm )" Formaat6(1) = "A1 ( 841 x 594 mm )" Formaat6(2) = "A2 ( 594 x 420 mm )" Formaat6(3) = "A3 ( 420 x 297 mm )" Formaat6(4) = "A4 ( 210 x 297 mm )" For I = 0 To 4 Call Me.FormaatCmbBx.AddItem(Formaat6(I)) Next I Me.FormaatCmbBx.ListIndex = 0 ElseIf PlotterCmbBx.Value = "PDF Creator" Then Call Me.FormaatCmbBx.Clear Dim Formaat7(0 To 4) As String Formaat7(0) = "A0 ( 1189 x 841 mm )" Formaat7(1) = "A1 ( 841 x 594 mm )" Formaat7(2) = "A2 ( 594 x 420 mm )" Formaat7(3) = "A3 ( 420 x 297 mm )" Formaat7(4) = "A4 ( 210 x 297 mm )" For I = 0 To 4
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 34 van 46
Call Me.FormaatCmbBx.AddItem(Formaat7(I)) Next I Me.FormaatCmbBx.ListIndex = 0 Else End If 'Aanpassen papier formaat If FormaatKaderCmbBx.Value = "A1 ( 841 x 594 mm )" Then If PlotterCmbBx.Value = "EMN4868 A0 Plotter Archief" Then Me.FormaatCmbBx.ListIndex = 1 ElseIf PlotterCmbBx.Value = "EMN4858 A0 Plotter Bouw/Civiel" Then Me.FormaatCmbBx.ListIndex = 1 ElseIf PlotterCmbBx.Value = "DWG To PDF" Then Me.FormaatCmbBx.ListIndex = 1 ElseIf PlotterCmbBx.Value = "PDF Creator" Then Me.FormaatCmbBx.ListIndex = 1 Else End If ElseIf FormaatKaderCmbBx.Value = "A2 ( 594 x 420 mm )" Then If PlotterCmbBx.Value = "EMN4868 A0 Plotter Archief" Then Me.FormaatCmbBx.ListIndex = 2 ElseIf PlotterCmbBx.Value = "EMN4858 A0 Plotter Bouw/Civiel" Then Me.FormaatCmbBx.ListIndex = 2 ElseIf PlotterCmbBx.Value = "DWG To PDF" Then Me.FormaatCmbBx.ListIndex = 2 ElseIf PlotterCmbBx.Value = "PDF Creator" Then Me.FormaatCmbBx.ListIndex = 2 Else
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 35 van 46
End If ElseIf FormaatKaderCmbBx.Value = "A3 ( 420 x 297 mm )" Then If PlotterCmbBx.Value = "EMN4868 A0 Plotter Archief" Then Me.FormaatCmbBx.ListIndex = 3 ElseIf PlotterCmbBx.Value = "EMN4858 A0 Plotter Bouw/Civiel" Then Me.FormaatCmbBx.ListIndex = 3 ElseIf PlotterCmbBx.Value = "DWG To PDF" Then Me.FormaatCmbBx.ListIndex = 3 ElseIf PlotterCmbBx.Value = "PDF Creator" Then Me.FormaatCmbBx.ListIndex = 3 Else End If ElseIf FormaatKaderCmbBx.Value = "A4 ( 210 x 297 mm )" Then If PlotterCmbBx.Value = "EMN4868 A0 Plotter Archief" Then Me.FormaatCmbBx.ListIndex = 4 ElseIf PlotterCmbBx.Value = "EMN4858 A0 Plotter Bouw/Civiel" Then Me.FormaatCmbBx.ListIndex = 4 ElseIf PlotterCmbBx.Value = "DWG To PDF" Then Me.FormaatCmbBx.ListIndex = 4 ElseIf PlotterCmbBx.Value = "PDF Creator" Then Me.FormaatCmbBx.ListIndex = 4 ElseIf PlotterCmbBx.Value = "EMN5028 A3 Copier Bouw/Civiel" Then Me.FormaatCmbBx.ListIndex = 1 ElseIf PlotterCmbBx.Value = "EMN4833 A3 Kleuren Laser Proces" Then Me.FormaatCmbBx.ListIndex = 1 Else
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 36 van 46
End If Else End If If FormaatKaderLbl.Caption = "A1 ( 841 x 594 mm )" Then If PlotterCmbBx.Value = "EMN4868 A0 Plotter Archief" Then Me.FormaatCmbBx.ListIndex = 1 ElseIf PlotterCmbBx.Value = "EMN4858 A0 Plotter Bouw/Civiel" Then Me.FormaatCmbBx.ListIndex = 1 ElseIf PlotterCmbBx.Value = "DWG To PDF" Then Me.FormaatCmbBx.ListIndex = 1 ElseIf PlotterCmbBx.Value = "PDF Creator" Then Me.FormaatCmbBx.ListIndex = 1 Else End If ElseIf FormaatKaderLbl.Caption = "A2 ( 594 x 420 mm )" Then If PlotterCmbBx.Value = "EMN4868 A0 Plotter Archief" Then Me.FormaatCmbBx.ListIndex = 2 ElseIf PlotterCmbBx.Value = "EMN4858 A0 Plotter Bouw/Civiel" Then Me.FormaatCmbBx.ListIndex = 2 ElseIf PlotterCmbBx.Value = "DWG To PDF" Then Me.FormaatCmbBx.ListIndex = 2 ElseIf PlotterCmbBx.Value = "PDF Creator" Then Me.FormaatCmbBx.ListIndex = 2 Else End If ElseIf FormaatKaderLbl.Caption = "A3 ( 420 x 297 mm )" Then
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 37 van 46
If PlotterCmbBx.Value = "EMN4868 A0 Plotter Archief" Then Me.FormaatCmbBx.ListIndex = 3 ElseIf PlotterCmbBx.Value = "EMN4858 A0 Plotter Bouw/Civiel" Then Me.FormaatCmbBx.ListIndex = 3 ElseIf PlotterCmbBx.Value = "DWG To PDF" Then Me.FormaatCmbBx.ListIndex = 3 ElseIf PlotterCmbBx.Value = "PDF Creator" Then Me.FormaatCmbBx.ListIndex = 3 Else End If ElseIf FormaatKaderLbl.Caption = "A4 ( 210 x 297 mm )" Then If PlotterCmbBx.Value = "EMN4868 A0 Plotter Archief" Then Me.FormaatCmbBx.ListIndex = 4 ElseIf FormaatKaderLbl.Caption = "EMN4858 A0 Plotter Bouw/Civiel" Then Me.FormaatCmbBx.ListIndex = 4 ElseIf PlotterCmbBx.Value = "DWG To PDF" Then Me.FormaatCmbBx.ListIndex = 4 ElseIf PlotterCmbBx.Value = "PDF Creator" Then Me.FormaatCmbBx.ListIndex = 4 ElseIf FormaatKaderLbl.Caption = "EMN5028 A3 Copier Bouw/Civiel" Then Me.FormaatCmbBx.ListIndex = 1 ElseIf FormaatKaderLbl.Caption = "EMN4833 A3 Kleuren Laser Proces" Then Me.FormaatCmbBx.ListIndex = 1 Else End If Else
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 38 van 46
End If
End Sub
Private Sub PlottenBttn_Click() 'Bepalen plotter keuze Dim plotterkeuze As String Dim plottertype As String If PlotterCmbBx.Value = "EMN4868 A0 Plotter Archief" Then plotterkeuze = "\\emmtec050\emn4868" plottertype = "type1" ElseIf PlotterCmbBx.Value = "EMN4858 A0 Plotter Bouw/Civiel" Then plotterkeuze = "\\emmtec050\emn4858" plottertype = "type1" ElseIf PlotterCmbBx.Value = "EMN5028 A3 Copier Bouw/Civiel" Then plotterkeuze = "\\emmtec050\emn5028" plottertype = "type2" ElseIf PlotterCmbBx.Value = "EMN4833 A3 Kleuren Laser Proces" Then plotterkeuze = "\\emmtec050\emn4833" plottertype = "type3" ElseIf PlotterCmbBx.Value = "DWG To PDF" Then plotterkeuze = "DWG To PDF.pc3" plottertype = "type4" ElseIf PlotterCmbBx.Value = "PDF Creator" Then plotterkeuze = "PDFCreator" plottertype = "type3"
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 39 van 46
Else End If 'Bepalen formaat keuze Dim formaatkeuze As String If plottertype = "type1" Then If FormaatCmbBx.Value = "A0 ( 1189 x 841 mm )" Then formaatkeuze = "ISO A0 Borderless" ElseIf FormaatCmbBx.Value = "A1 ( 841 x 594 mm )" Then formaatkeuze = "ISO A1 Borderless" ElseIf FormaatCmbBx.Value = "A2 ( 594 x 420 mm )" Then formaatkeuze = "ISO A2 Borderless" ElseIf FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then formaatkeuze = "ISO A3 Borderless" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then formaatkeuze = "ISO A4 Borderless" Else End If ElseIf plottertype = "type2" Then If FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then formaatkeuze = "A3" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then formaatkeuze = "A4" Else End If ElseIf plottertype = "type3" Then If FormaatCmbBx.Value = "A0 ( 1189 x 841 mm )" Then
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 40 van 46
formaatkeuze = "A0" ElseIf FormaatCmbBx.Value = "A1 ( 841 x 594 mm )" Then formaatkeuze = "A1" ElseIf FormaatCmbBx.Value = "A2 ( 594 x 420 mm )" Then formaatkeuze = "A2" ElseIf FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then formaatkeuze = "A3" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then formaatkeuze = "A4" Else End If ElseIf plottertype = "type4" Then If FormaatCmbBx.Value = "A0 ( 1189 x 841 mm )" Then formaatkeuze = "ISO full bleed A0 (841.00 x 1189.00 MM)" ElseIf FormaatCmbBx.Value = "A1 ( 841 x 594 mm )" Then formaatkeuze = "ISO full bleed A1 (841.00 x 594.00 MM)" ElseIf FormaatCmbBx.Value = "A2 ( 594 x 420 mm )" Then formaatkeuze = "ISO full bleed A2 (594.00 x 420.00 MM)" ElseIf FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then formaatkeuze = "ISO full bleed A3 (420.00 x 297.00 MM)" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then formaatkeuze = "ISO full bleed A4 (210.00 x 297.00 MM)" Else End If Else End If
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 41 van 46
'Bepalen kader oriëntering Dim ori As String If FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then ori = "p" Else ori = "l" End If 'Bepalen schaal keuze Dim schaalkeuze As String If FormaatKaderCmbBx.Value = FormaatCmbBx.Value Then schaalkeuze = "1:1" ElseIf FormaatKaderLbl.Caption = FormaatCmbBx.Value Then schaalkeuze = "1:1" Else schaalkeuze = "fit" End If 'Bepalen plotstyle keuze Dim plotstylekeuze As String If schaalkeuze = "1:1" Then plotstylekeuze = "_01_EMMTEC.ctb" ElseIf FormaatKaderCmbBx.Value = "A0 ( 1189 x 841 mm )" Then If FormaatCmbBx.Value = "A1 ( 841 x 594 mm )" Then plotstylekeuze = "_02_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A2 ( 594 x 420 mm )" Then plotstylekeuze = "_03_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 42 van 46
plotstylekeuze = "_04_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then plotstylekeuze = "_05_EMMTEC.ctb" ori = "l" Else End If ElseIf FormaatKaderLbl.Caption = "A0 ( 1189 x 841 mm )" Then If FormaatCmbBx.Value = "A1 ( 841 x 594 mm )" Then plotstylekeuze = "_02_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A2 ( 594 x 420 mm )" Then plotstylekeuze = "_03_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then plotstylekeuze = "_04_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then plotstylekeuze = "_05_EMMTEC.ctb" ori = "l" Else End If ElseIf FormaatKaderCmbBx.Value = "A1 ( 841 x 594 mm )" Then If FormaatCmbBx.Value = "A2 ( 594 x 420 mm )" Then plotstylekeuze = "_02_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then plotstylekeuze = "_03_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then plotstylekeuze = "_04_EMMTEC.ctb" ori = "l"
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 43 van 46
Else End If ElseIf FormaatKaderLbl.Caption = "A1 ( 841 x 594 mm )" Then If FormaatCmbBx.Value = "A2 ( 594 x 420 mm )" Then plotstylekeuze = "_02_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then plotstylekeuze = "_03_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then plotstylekeuze = "_04_EMMTEC.ctb" ori = "l" Else End If ElseIf FormaatKaderCmbBx.Value = "A2 ( 594 x 420 mm )" Then If FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then plotstylekeuze = "_02_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then plotstylekeuze = "_03_EMMTEC.ctb" ori = "l" Else End If ElseIf FormaatKaderLbl.Caption = "A2 ( 594 x 420 mm )" Then If FormaatCmbBx.Value = "A3 ( 420 x 297 mm )" Then plotstylekeuze = "_02_EMMTEC.ctb" ElseIf FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then plotstylekeuze = "_03_EMMTEC.ctb" ori = "l"
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 44 van 46
Else End If ElseIf FormaatKaderCmbBx.Value = "A3 ( 420 x 297 mm )" Then If FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then plotstylekeuze = "_02_EMMTEC.ctb" ori = "l" Else End If ElseIf FormaatKaderLbl.Caption = "A3 ( 420 x 297 mm )" Then If FormaatCmbBx.Value = "A4 ( 210 x 297 mm )" Then plotstylekeuze = "_02_EMMTEC.ctb" ori = "l" Else End If Else End If 'Afdrukken tekening Dim a As Variant Dim ltscale As String If ChBxTransparency.Value = True Then ThisDrawing.SendCommand "PLOTTRANSPARENCYOVERRIDE" & vbCr & "2" & vbCr Else ThisDrawing.SendCommand "PLOTTRANSPARENCYOVERRIDE" & vbCr & "1" & vbCr End If ThisDrawing.SendCommand "LTSCALE" & vbCr & "1" & vbCr & "REGEN" & vbCr For a = 1 To AantalTxtBx.Value
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 45 van 46
If plotterkeuze = "DWG To PDF.pc3" Then ThisDrawing.SendCommand "-plot" & vbCr & "y" & vbCr & vbCr & plotterkeuze & vbCr & formaatkeuze & vbCr & "m" & vbCr & ori & vbCr & "n" & vbCr & "e" & vbCr & schaalkeuze & vbCr & "c" & vbCr & "y" & vbCr & plotstylekeuze & vbCr & "y" & vbCr & "n" & vbCr & "n" & vbCr & "n" & vbCr & "n" & vbCr & "y" & vbCr Else ThisDrawing.SendCommand "-plot" & vbCr & "y" & vbCr & vbCr & plotterkeuze & vbCr & formaatkeuze & vbCr & "m" & vbCr & ori & vbCr & "n" & vbCr & "e" & vbCr & schaalkeuze & vbCr & "c" & vbCr & "y" & vbCr & plotstylekeuze & vbCr & "y" & vbCr & "n" & vbCr & "n" & vbCr & "n" & vbCr & "n" & vbCr & "n" & vbCr & "y" & vbCr End If Next a ThisDrawing.SendCommand "PLOTTRANSPARENCYOVERRIDE" & vbCr & "1" & vbCr 'Afsluiten macro met behoud van instellingen Me.Hide End Sub Private Sub AfsluitenCmmndbttn_Click() 'Afsluiten macro met behoud van instellingen Me.Hide End Sub Private Sub HelpCmmndBttn_Click() ThisDrawing.SendCommand "start" & vbCr & "EEBC_Beschrijving.pdf" & vbCr End Sub
AutoCAD Menu Emmtec Engineering bouwkunde Civiel
pagina 46 van 46