Eindverslag - TEC / CAD College

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