AutoCAD system manager (VBA)

advertisement
Afstudeeropdracht
AutoCAD system manager
(VBA)
HBO traject 2001-2002
Naam:
Begeleider:
T. Kraus
Ir. R. Boeklagen
Inhoudsopgave:
1
Inleiding: ........................................................................................................................... 4
1.1
1.2
1.3
2
Tekenkamer bij het MARIN .................................................................................. 4
Mijn taken bij het MARIN ..................................................................................... 6
Gekozen opdracht................................................................................................... 7
Beschrijving van de situatie............................................................................................. 8
2.1
Tekensystemen ....................................................................................................... 8
3
Doel van de toepassing ..................................................................................................... 9
4
Keuze en structuur van de database............................................................................... 9
4.1
4.2
4.3
4.4
4.5
5
Ontwerp van de database van het tekeningenbeheersysteem .................................... 12
5.1
5.1.1
5.1.2
5.1.3
5.1.4
5.1.5
5.1.6
5.2
6
Database systeem ................................................................................................... 9
Relatie cliënt/server in de database ...................................................................... 10
Het cliënt/server model ........................................................................................ 10
Het logische model van een record ...................................................................... 11
Inzicht in de automatisering ................................................................................. 11
Toepassen van Microsoft Access voor het maken van de database ..................... 13
De tabel ‘TblProject’........................................................................................ 13
De tabel ‘TblModel’......................................................................................... 14
De tabel ‘TblDrawing’..................................................................................... 14
De tabel ‘TblTitel’............................................................................................ 14
De tabel ‘TblType’........................................................................................... 14
De tabellen ‘TblDrawingApp’, ‘TblApp’, ‘TblNummer’, ‘TblLeter’............. 14
Inzicht in verbindingen en SQL query’s .............................................................. 14
De werking van het programma ................................................................................... 15
6.1
De installatie......................................................................................................... 15
6.2
Het programma..................................................................................................... 15
6.2.1
De ActiveX Data Object (ADO) ...................................................................... 15
6.2.2
Opstart procedure van het programma ............................................................. 16
6.2.3
Inschrijven van informaties .............................................................................. 16
6.2.4
Weergeven van informaties.............................................................................. 16
7
Programma interface ..................................................................................................... 17
7.1
7.2
7.3
7.4
7.5
Hoofd scherm van het programma ....................................................................... 17
Menustructuur van het programma ...................................................................... 17
Toevoegen van een nieuw project ........................................................................ 20
Toevoegen van een nieuw model in een project .................................................. 20
Toevoegen van een nieuw tekening ..................................................................... 21
Afstudeer opdracht AutoCAD system manager
2
7.6
7.7
7.8
7.9
7.10
7.11
Wijzigen van een ingeschreven tekeningen ......................................................... 22
Printen van een project ......................................................................................... 22
Wijzigen van een project...................................................................................... 23
Wijzigen van een model ....................................................................................... 23
Toegangsniveau instellen ..................................................................................... 23
Titel van de tekening koppelen aan type van de tekening.................................... 24
8
Conclusie ......................................................................................................................... 25
9
Nawoord .......................................................................................................................... 25
9.1
10
Reactie van de CAD engineer’s ........................................................................... 25
Bijlage.............................................................................................................................. 27
10.1
10.2
10.3
10.4
Toegang tot de server database ............................................................................ 27
Opstart procedure codes ....................................................................................... 28
Uitbreiding van optionbuttons met nieuwe types van de tekeningen................... 29
Functie PaintPreview............................................................................................ 30
Afstudeer opdracht AutoCAD system manager
3
1 Inleiding:
Ik ben werkzaam als CAD Engineer bij het MARIN (MAritieme Research Institute
Netherlands).
MARIN is een research instituut ten behoeve van de maritieme sector wereldwijd en beschikt
over tien test- en trainingsfaciliteiten, waar onderzoek wordt gedaan naar gedrag van schepen
en offshore constructies op modelschaal en met behulp van computer simulatie.
Er wordt gekeken naar de prestatie van het schip in vlakwater (zonder golven, stroom en
wind ), in zeegang (met golven, stroom en wind ) en het manoeuvreergedrag.
Aan het begin van hele proces adviseert het MARIN (waar nodig) bij het verbeteren van het
hydrodynamisch ontwerp door middel van Computated Fluid Dynamics (CFD) berekeningen.
Dit is voor de eigenaar interessant, omdat hiermee het motorvermogen van het schip kan
worden geminimaliseerd bij dezelfde snelheid en er dus minder brandstof wordt verbruikt.
Eén van de testfaciliteiten is de vlakwatertank, waar meestal weerstand- en
voortstuwingsproeven plaatsvinden. Bij een weerstandsproef wordt het model met
verschillende snelheden door het water getrokken; bij een voortstuwingsproef stuwt het model
zichzelf voort met zijn eigen schroef en wordt het dus niet gesleept. Op basis van deze twee
proeven wordt de snelheid-vermogens relatie voor het schip op ware grootte berekend.
Naast onderzoek in vlakwater wordt gekeken naar de prestaties van een schip op zee. De
eigenaar van een schip laat deze bij het MARIN beproeven omdat hij wil weten wanneer het
varen in golven niet meer acceptabel zijn. En bij offshore constructie tot welke golfhoogte en
windkracht bepaalde operaties nog uitgevoerd kunnen worden.
Nadat via modeltesten diverse metingen zijn gedaan, moeten de resultaten omgezet worden in
concrete gegevens waarmee men verder aan de slag kan. Gemeten modelbewegingen en de
diversen meetwaarden worden via verschillende computerprogramma’s verder verwerkt en
omgezet in scheepswaarden. Statistische waarden, diagrammen, histogrammen, foto’s, figuren
en beschrijvende tekst vormen uiteindelijk het rapport voor de klant. Met deze analyse en
rapportage wordt een project afgerond.
1.1
Tekenkamer bij het MARIN
De tekenkamer is bij het hele proces nauw betrokken. Het hydrodynamisch ontwerp, met
andere woorden de vorm van het schip, wordt door de CAD engineer digitaal vastgelegd. De
basis tekening ‘Lijnenplan’wordt door de werf aangeleverd.
Op een lijnenplan staan de 3 doorsneden van het schip in x,y,z :
• X richting dwarsdoorsnede
(spantenraam)
• Y richting langsdoorsnede verticaal
(verticalen)
• Z richting langsdoorsnede horizontaal
(waterlijnen)
Dit lijnenplan wordt als drie dimensionale vorm in de computer ingelezen en wordt m.b.v. het
computer programma RAPID welke door het MARIN ontwikkeld is geoptimaliseerd.
Hierna wordt er een freesfile gegenereerd die gebruikt wordt om het model m.b.v. 5 assige
freesmachine te frezen.
Afstudeer opdracht AutoCAD system manager
4
Na het traject van hydrodynamische optimalisatie wordt door een Autocad CAD engineer
begonnen met het tekenen van de aanhangsels, zoals roer en schroefassen met asdragers,
vinnen etc.
De scheepsvorm uit het GMS programma wordt hierbij gebruikt als basis. Dit programma kan
een DXF of IGES formaat bestand genereren voor gebruik binnen Autocad.
GMS (Geometrische Modellering van Schepen) is een door het MARIN ontwikkeld
interactief systeem om de geometrie van een schip vast te leggen in een mathematische vorm.
GMS (Afbeelding 1.1.1) is gebaseerd op de B-splines beschrijving van lijnen en oppervlakken
en is toegepast naar de eigen behoefte op het gebied van geometrische modellering.
Afbeelding 1.1.1
Afstudeer opdracht AutoCAD system manager
5
1.2
Mijn taken bij het MARIN
• Eén van de belangrijkste taken voor mij op de tekenkamer is het tekenen van drie
dimensionale modellen van:
o Schroeven – de voortstuwer van een schip. Een schroef bestaat uit een naaf en drie
tot zeven schroefbladen; deze schroefbladen bestaan uit complexe dubbel
gekromde oppervlakken. Zie afbeelding 1.2.1.
o Pods – een soort buitenboord motor ( elektromotor ).
o Roeren - om het schip op koers te houden. Zie
afbeelding 1.2.2
o Asdragers – ondersteuning van de schroefas
o Vinnen – zorgen voor stabiliteit van het schip
Afbeelding 1.2.2
Afbeelding 1.2.1
Gezien de vorm van deze onderdelen worden ze vaak met de Autosurf module in
Mechanical Desktop getekend.
• Maken van CNC files van drie dimensionale onderdelen voor de productie afdeling met
het programma HyperMill van OpenMind (zie afbeelding 1.2.3.).
• Tekenen van deze onderdelen in twee dimensionale samenstelling tekeningen t.b.v. de
tanktest opstelling.
• Tekenen van testopstellingen t.b.v rapportage aan de klant.
• Twee dimensionale tekeningen maken voor de instrumentmakerij (handbewerking).
Afstudeer opdracht AutoCAD system manager
6
• Verbeteren en automatiseren van Autocad tekenen m.b.v. VBA (Visual Basic for
Applications) en VB (Visual Basic).
Afbeelding 1.2.4.
Afbeelding 1.2.3
1.3
Gekozen opdracht
Het MARIN wil steeds beter en sneller zijn opdrachten uitvoeren, de tijd de tussen laatste
proef in de tank en het opleveren van een eindrapport aan de klant moet terug gebracht
worden van gemiddeld half jaar naar 6 weken. Dit betekent voor het MARIN grote
veranderingen in de hele bedrijfsstructuur.
Bewaren en beheren van informatie speelt een belangrijke rol.
Er is besloten het systeem van rapportage te automatiseren en dit kan alleen met digitale
informatie over de tekening en niet met een hand geschreven tekeningenboek.
Maar ook omdat het gebruik van een netwerk er bij het MARIN steeds belangrijker begint te
worden en men steeds meer behoefte heeft om op afstand informatie over tekeningen te
kunnen opvragen, heb ik als opdracht gekozen het maken van een tekeningenbeheersysteem –
tekeningen kennis bank.
Afbeelding 1.2.5 Twee dimensionale tekening van een schroef
Afstudeer opdracht AutoCAD system manager
7
2 Beschrijving van de situatie
Bij het MARIN werken we met projectnummers. Binnen een projectnummer kan meer dan
één model gemaakt worden. Deze modellen kunnen gebruikt worden bij meerdere projecten.
Voor ieder model worden meerdere proefopstellingen getekend. Bijvoorbeeld met
verschillende vormen van het roer, andere helling van de schroefas of een andere
lengte/breedte positie van de pod. Er kunnen ook wijzigingen van het model voorkomen.
Alle wijzigingen, proefopstellingen, ingekomen tekeningen (scheepsvorm of aanhangsels) en
rapportfiguren van de proefopstellingen worden bijgeschreven in het bestaande fysieke
tekeningenboek.
Dit tekeningenbeheersysteem is gesorteerd op projectnummers. Iedere regel van het bestaande
fysieke tekeningenboek bevat :
• Nummer van de tekening
• Nummer van het model
• Naam van de ingekomen tekening
• Beschrijving - bijvoorbeeld proefopstelling of wijziging omschrijving
• Bestandsnaam – als het om een Autocad tekening gaat
2.1
Tekensystemen
Bij de tekenkamers van het MARIN worden verschillende soorten tekeningen gemaakt t.b.v.
model- en aanhangsel productie.
Systemen waar tekeningen mee worden gemaakt:
• Autocad software (Acad 2002 en Mcad 6)
o 2D tekenen van b.v. asdragers, roeren, kimkielen, vinnen, boeg en hekbuizen
o 3D tekenen van scheepsschroeven
o 3D tekenen van roeren, vinnen t.b.v. CNC productie
o 2D tekeningen van proefopstellingen t.b.v. eindrapportage
• GMS – UNIX systeem
o 3D Modelleren van scheepsromp met behulp van NURBS (Non-Uniform
Rational B-Splines curves en surfaces)
Aangezien bij het MARIN niet alleen met Autocad tekeningen worden gemaakt, maar ook
met andere systemen, is het nodig dat de tekeningen niet alleen via Autocad ingeschreven
worden maar met een stand alone applicatie.
Deze applicatie – “MARIN Tekeningenbeheersysteem” heb ik gemaakt in de loop van 2001
in opdracht van het MARIN management.
Afstudeer opdracht AutoCAD system manager
8
3 Doel van de toepassing
• Koppeling met het MARIN MeetVerwerkings- en Rapportage (MVR) systeem, een
semi-automatische methode voor het samenstellen en doorrekenen van numerieke
ontwerp- en analyse modellen ten behoeve van het genereren van rapportdocument.
• Versnellen van het rapportage proces
• Bekijken van de Autocad tekeningen op een computer waar geen Autocad
geïnstalleerd is m.b.v. Volo View programma van Autodesk.
• Numeriek bewaren van tekeninginformatie.
Tot een jaar geleden gebeurde dit alleen in met de hand geschreven tekeningenboeken
ingedeeld op opdrachtnummer.
• Met behulp van dit programma zal het zoeken naar een tekening met specifieke
gegevens mogelijk zijn.
• Belangrijk is dat een grote groep mensen binnen de organisatie toegang krijgt tot de
opgeslagen kennis/tekeningen.
4 Keuze en structuur van de database
Om een systeem en een structuur vast te leggen, heb ik in het begin een kleine werkgroep van
3 mensen samengesteld die uitgezocht heeft welke informatie bewaard zou moeten worden in
de database en dat dit op een uniforme manier gebeurt. Dit om te zorgen dat we later zo min
mogelijk aanpassingen aan het programma behoeven uit te voeren.
4.1
Database systeem
De eerste belangrijke stap was het vastleggen van een database systeem. We hebben een
aantal database systemen naast elkaar gelegd zoals FoxPro, SQL Server, XML, ORACLE,
ACCESS en met de software afdeling uitgebreid gesproken over de werking van deze
losstaande componenten. FoxPro lijkt hiervoor het beste database systeem te zijn, maar
aanpassingen in de bestaande MARIN netwerk/software zijn op dit moment niet haalbaar.
XML zou een goede optie zijn, zeker i.v.m. MARIN’S intranet, maar de toegangssnelheid ligt
te laag. Met ORACLE hebben we onvoldoende ervaring. Dus ging het om SQL Server of
Access.
Aangezien vanuit Access eenvoudig kan worden overgestapt naar een SQL Server heb we
voor Access gekozen. Er is vastgelegd wat voor informatie het MARIN wil bewaren, wat
voor zoek opdrachten er beschikbaar moeten zijn. Er is besloten om een cliënt/serverstructuur toe te passen i.v.m. mogelijke beschadiging van het database bestand door de cliënt
computer.
De cliënt/server-structuur wordt uitgebreid toegelicht in paragraaf 4.2 t/m 4.5
Afstudeer opdracht AutoCAD system manager
9
4.2
Relatie cliënt/server in de database
De database waarin de informatie is opgeslagen die kan worden opgevraagd en bewerkt, plus
de software die de database onderhoudt, vormen de server. Deze databasestructuur die een
krachtige lokale component met een component op afstand combineert, noemen we een
cliënt/server-structuur.
Verzoek data
Toegang tot
data opslag
Terugkeer van
Informatie
Terugkeer van
data
Cliënt
Disk
Server
Afbeelding 4.2.1 De relatie tussen programma’s van cliënt en de informatie in de database.
4.3
Het cliënt/server model
De server bestaat uit een database plus de software om de database te benaderen. Alleen de
informatie die een cliënt opvraagt, opslaat of bewerkt, zal zich over het netwerk verplaatsen.
De rest van het server-programma, samen met de database die de informatie bevat, blijft in de
computer van de server.
In afbeelding 4.3.1. ziet u een hardwaremodel met een voorbeeld van twee cliënten die met
een enkele server zijn verbonden.
Netwerk kabel
Netwerk kabel
Cliënt
Cliënt
Server
Afbeelding 4.3.1. Het cliënt/server model
Afstudeer opdracht AutoCAD system manager
10
4.4
Het logische model van een record
DrawingID
DrawingNO
TitelID
De cliënt vraagt de server om het identificatienummer te controleren en te verifiëren of het
uniek is. Als alles in orde is ( dat wil zeggen, als het ID-nummer acceptabel en uniek is ), kan
de cliënt een nieuwe tekening aan de database toevoegen. Daarbij kan de cliënt alle records
bekijken die de database van de server bevat. Verschillende gebruikers kunnen de server
gebruiken om tegelijkertijd de informatie op de server via een netwerk te benaderen. In
afbeelding 4.4.1. wordt de compacte (onvolledige) versie getoond van het logische model van
de informatie die in de database opgeslagen is.
Project
1
1
2
17150
1 ROER I, 2 ASDRAGERS I, 2 ASKOP
2
1
30
17174
Position Headbox
3
5
8
17230
3 Boegbuizen I
4
2
4
17174
Nozles 1282, S6292
5
27
57
17097
ANKERREK + ANKERLIJN
n
n
n
17630
Ingekomen tekening POD-I
Subject
Afbeelding 4.4.1
4.5
Inzicht in de automatisering
Automatisering is een type besturingssysteem waarmee een ActiveX EXE programma kunt
benaderen, vanaf een lokale computer of vanaf een computer op afstand. De server blijft op de
andere computer en voert de taken uit die de cliënt opdraagt, waardoor de computer van de
cliënt vrij blijft voor andere taken. De server stuurt de gevraagde informatie terug naar de
cliënt, waardoor minder transmissie van gegevens in beide richtingen nodig is. De
toepassingstijd van de cliënt wordt verlengd door het netwerkverkeer, dit leidt tot de
mogelijkheid om met meerdere cliënten tegelijkertijd de server te benaderen.
In feite zend computer een verzoek aan een andere computer waarop een ActiveX EXE voor
het tekeningenbeheersysteem draait. Terwijl de andere computer mijn verzoek verwerkt, ben
ik vrij om andere bewerkingen uit te voeren. Voor de beste resultaten zou de ActiveX EXE op
de snelste computer van de netwerk moeten draaien, omdat de server uiteindelijk wel
tientallen of zelfs honderden verzoeken kort na elkaar moet kunnen verwerken. In afbeelding
4.5.1. ziet u een out-of-process toepassing zoals die bij het MARIN wordt toegepast.
Afstudeer opdracht AutoCAD system manager
11
Proces B
Informatie
verwerking
Informatie
verwerking
Programma
Code
ek
d
or
nt
w
o
tw
oo
rd
zo
oe
k
er
An
Geheugen
blok
A
oe
k
Ve
rz
ek
Programma
Code
o
Verz
Geheugen
blok
Informatie
verwerking
Ant
wo
ord
Out-of-process
server
ord
two
An
Proces C
Geheugen
blok
Programma
Code
V
Ver
z
Geheugen
blok
Proces A
Proces D
Informatie
verwerking
Geheugen
blok
Programma
Code
Afbeelding 4.5.1.
Een out-of-process object draait in zijn eigen adresruimte, in zijn eigen proces, zijn eigen
virtueel geheugen. Omdat de ActiveX EXE in zijn eigen proces draait, kan er een kopie van
een ActiveX EXE programma op de cliënt computer aanwezig zijn of op een andere computer
(server/host) en het proces dat toegang tot de EXE vereist, kan de server lokaliseren en het
uitvoeren, onafhankelijk van zijn locatie. Een van de belangrijkste voordelen van een ActiveX
EXE programma is dat het over een heel netwerk kunt benaderen en het programma hoeft niet
in cliënt computer te worden ingelezen. Het blijft op de host computer
5 Ontwerp van de database van het
tekeningenbeheersysteem
Na het vastleggen van de benodigde informatie door de werkgroep ben ik gestart met het
opzetten van een goede database structuur in het Microsoft Access programma. Er werd snel
duidelijk dat ik een relationele database met meerdere tabellen moest ontwerpen. In meerdere
tabellen zal ik de informatie opslaan die is gerelateerd aan één enkel object in een bepaald
record. In feite houdt het juist ontwerpen van een database in dat ik uitsluitend informatie
opsla die is gerelateerd aan een enkel object in een bepaald record. Om de informatie uit de
tabellen op een voor de gebruiker begrijpelijke manier te combineren gebruik ik query’s uit de
Structured Query Language (SQL).
Afstudeer opdracht AutoCAD system manager
12
5.1
Toepassen van Microsoft Access voor het maken van de
database
Een database bestaat uit één of meer tabellen en elke tabel is opgebouwd uit rijen en
kolommen. In een tabel is elke rij een record en elke kolom een veld. Een record kan één of
meer velden bevatten. Elk veld kan een waarde bevatten. Deze waarde kan een getal, tekst,
symbool of een ander gedefinieerd type zijn.
Aan de database heb ik de naam ‘DrawingOffice.mdb’gegeven. Deze bevat een negental
relationele tabellen. In afbeelding 5.1.1. kunt u de relaties tussen de tabellen vinden.
Afbeelding 5.1.1. Samengestelde database ‘DrawingOffice.mdb’.
5.1.1 De tabel ‘TblProject’
In de tabel ‘TblProject’worden alle projecten en informatie over projecten bewaard, zoals
projectbeschrijving in het veld ‘Description’, Exchange informatie voor het betreffend project
in het veld ‘Outlook’. De velden ‘ClientID’en ‘TypeShipID’zijn bedoeld voor een latere
uitbreiding met informatie over opdrachtgevers en soorten modellen.
Veld ‘Project’is een index veld waar geen dubbele waarden zijn toegestaan. Met andere
woorden de gebruiker mag maar één keer een zelfde project toevoegen aan de tabel.
De cliënt/server-structuur zorgt voor een juiste foutafhandeling van de invoer van de
gebruiker.
Het veld ‘Project’is gerelateerd aan de tabel ‘TblDrawing’veld ‘Project’en ‘TblModel’veld
‘Project’.
Afstudeer opdracht AutoCAD system manager
13
5.1.2 De tabel ‘TblModel’
In de tabel ‘TblModel’wordt alle informatie over modellen bewaard, zoals de schaal van het
model, het projectnummer en de beschrijving.
5.1.3 De tabel ‘TblDrawing’
De tabel ‘TblDrawing’bevat informatie over de tekening, zoals omschrijving van de
tekening, de naam van de CAD engineer, bestandsnaam, tekenschaal e.d. Velden ‘TitelID’,
‘ModelID’en ‘TypeID’zijn relationeel verbonden met andere tabellen.
5.1.4 De tabel ‘TblTitel’
De titel van de tekening mag gekozen worden uit de tabel ‘TblTitel’waar alle titels vooraf
gedefinieerd zijn door een aangewezen CAD engineer / beheerder. Titels zijn relationeel
verbonden met de tabel ‘TblType’.
5.1.5 De tabel ‘TblType’
Iedere titel is gekoppeld aan het type (Autocad, Model, Ingekomen tekening, Rapport
tekening of Voorsteltekening) van de tekening.
5.1.6 De tabellen ‘TblDrawingApp’, ‘TblApp’, ‘TblNummer’, ‘TblLeter’
De tabellen ‘TblDrawingApp’, ‘TblApp’, ‘TblNummer’en ‘TblLeter’zijn bedoeld voor
uitbreiding in de toekomst.
5.2
Inzicht in verbindingen en SQL query’s
De kracht van een relationele database is gelegen in het vermogen om database informatie uit
verschillende tabellen te combineren, zodat een enkele recordset ontstaat.
Een recordset uit verschillende tabellen kan gecombineerd worden met een Join-clausule,
binnen de SQL-statement Select. Als een Join statement wordt toepast om records uit
verschillende tabellen te combineren, gebruikt dit statement de waarden uit de velden die in
de twee tabellen zijn opgegeven. Het statement combineert de tabellen, zodat de recordset
ontstaat. Het volgende statement combineert bijvoorbeeld een tabel:
SELECT Model, Project FROM tblProject INNER JOIN tblModel
ON tblProject.Project = tblModel.Project
De recordset die zo ontstaat, geeft alleen de records uit beide tabellen weer die een gelijke
waarde hebben in het veld ‘Project‘. Deze records kunt u sorteren en selecteren op grond van
gemeenschappelijke waarden in de oorspronkelijke tabellen.
Afstudeer opdracht AutoCAD system manager
14
6 De werking van het programma
6.1
De installatie
Het programma wordt gedistribueerd met een installatieprogramma op de CD. Start het
installatieprogramma door setup.exe aan te klikken in de folder Package. Volg nu de
installatie procedure.
Afbeelding 6.1.1.
Na een succesvolle installatie wordt er een icoon (Teken boek) aangemaakt in
Start\Programs\Drawing Office waarmee u het programma kunt opstarten. Voor een goede
werking tijdens de demonstratie van het programma moeten de bestanden
DrawingOffice.mdb en DOSettings.mdb aanwezig zijn in de folder c:\CursusTomas\. Bij het
MARIN is dit geregeld met een cliënt/server structuur (zoals beschreven in paragraaf 4.2 t/m
4.5) waardoor alles geregeld wordt via het MARIN netwerk.
6.2
Het programma
In het MARIN tekeningenbeheersysteem programma kan iedere CAD engineer alle (niet
alleen Autocad) tekening inschrijven. Project managers en project engineer’s kunnen de
tekeningen bekijken en zoeken naar informatie welke in het tekeningenbeheersysteem worden
bewaard.
6.2.1 De ActiveX Data Object (ADO)
Als een toegang object voor de cliënt tot de server ActiveX EXE heb ik voor ADO (Microsoft
ActiveX Data Object) gekozen. ADO maakt het mogelijk om vanuit Cliënt applicatie data te
lezen of te wijzigen in een database server of OLE DB provider. ADO is makkelijk te
gebruiken en te onderhouden. De sterke kanten van dit object zijn hight speed en low memory
overhead. ADO biedt de mogelijkheid om cliënt/server of WEB-based applicaties te bouwen.
Details zijn te zien in bijlage 10.1 in de paraaf toegang tot de database server.
Afstudeer opdracht AutoCAD system manager
15
6.2.2 Opstart procedure van het programma
Tijdens het opstarten van het tekeningenbeheersysteem wordt eerst gekeken naar NT
inlognaam van de gebruiker met API functie ‘advapi32.dll’. Voor details zie Bijlage 10.2.
De inlognaam wordt gebruikt voor de indeling en menustructuur van de hele applicatie, niet
iedere gebruiker heeft de zelfde rechten. Het MARIN tekeningenbeheersysteem houdt bij wie
wat mag doen. Als men voor de eerste keer inlogt kan men alleen tekeningen bekijken en
printen.
Daarna wordt de laatste status van de applicatie opgezocht in het register (met het commando
GetSetting) zoals de grootte van het scherm, laatste actieve project en laatste scope voor
applicatie.
6.2.3 Inschrijven van informaties
Als de gebruiker voldoende rechten heeft is het mogelijk om een nieuwe tekening in te
schrijven. Eerst moet de gebruiker het type van de tekening kiezen. Hierbij kan gekozen
worden m.b.v. de OptionButton uit: Autocadtekening, modeltekening, rapporttekening, rapid,
voorstel tekening of een ingekomen tekening. Deze lijst kan gemakkelijk uitgebreid worden
met nieuwe types m.b.v. de database (zie bijlage 10.3). Hiermee is de uitbreidingmogelijkheid
gegarandeerd.
6.2.4 Weergeven van informaties
Alle informatie is toegankelijk via het MARIN tekeningenbeheersysteem.
Er bestaat een mogelijkheid om van een autocad tekening een preview te maken. Deze
preview functionaliteit kan zonder Autocad, OCX of DLL werken. De functie leest het binair
DWG bestand in en zoekt naar de byte 14. In de byte 14 staat een verwijzing naar een
absolute byte in het bestand, hier is bitmap of wmf informatie opgeslagen. De werking van
deze functie wordt uitgelegd in bijlage 10.4.
Een andere mogelijkheid is een autocad tekening te openen met het VoloView (downloaden
gratis), een programma van Autodesk welke wel geïnstalleerd moet zijn op de computer.
Afstudeer opdracht AutoCAD system manager
16
7 Programma interface
7.1
Hoofd scherm van het programma
Hier kan de gebruiker alle informatie over het project terugvinden.
Afbeelding 7.1.1 Interface van het Marin tekeningenbeheersysteem
7.2
Menustructuur van het programma
De menustructuur van het programma is sterk afhankelijk van het toegangsniveau van de
aangemelde gebruiker. De gebruikers zijn ingedeeld in drie hoofdgroepen:
• Gebruiker met alleen lees rechten – dat zijn project manager en project engineer. Zij
mogen:
o Projecten zoeken en printen.
o Autocad tekeningen bekijken met VoloView (ingebouwd als ActiveX).
o Oproepen van preview, als het om een Autocad tekening gaat.
Afstudeer opdracht AutoCAD system manager
17
• Gebruikers met lees en schrijf rechten – dat zijn alle CAD engineer’s. Zij mogen:
o Nieuwe projecten aanmaken.
o Nieuw model in een project toevoegen.
o Tekeningen inschrijven in een project.
o Tekeningen wijzigen in een project.
• Beheerder – staflid CAD engineer’s. Zij mogen:
o Standaard titel naam en/of tekening type toevoegen.
o Informatie van het project of het model wijzigen.
o Tekening verwijderen uit het project.
In afbeeldingen 7.2.1 t/m 7.2.5 is de menustructuur te zien voor de groep beheerders, dus met
alle beschikbare menu’s.
Afbeelding 7.2.1
Afbeelding 7.2.2
Afbeelding 7.2.3
In het menu ‘Drawing book’zijn de meest gebruikte functies ondergebracht, zoals het
inschrijven van een nieuwe tekening of het aanmaken van een nieuw project.
In het menu ‘Tools’zijn handige functies te zien, zoals het direct openen van een tekening in
Autocad. Of het openen in Volo View welke is ingebouwd in het programma (zie afbeelding
7.2.6). Reset register zet het programma weer in de oorspronkelijke status zoals die
gedefinieerd is in Visual Basic.Dit in verband met het bewaren van de status van het scherm
of het laatste projectnummer in het register van de computer.
Afbeelding 7.2.4
Afbeelding 7.2.5
Afstudeer opdracht AutoCAD system manager
18
Het menu ‘Extra’is uitsluitend bedoeld voor de beheerders van het tekeningenbeheersysteem
(op dit moment zijn er twee aangewezen). Hierover wordt later nog uitgebreid geschreven.
In het eerste gedeelte van het menu ‘Window’kan de gebruiker instellen wat voor informatie
over de tekening zichtbaar moet zijn, zoals de naam van de CAD engineer of de datum van de
tekening.
Afbeelding 7.2.6. Volo View control in het tekeningenbeheersysteem
In het tweede gedeelte van het menu ‘Window’kan men een preview (zie afbeelding 7.2.7)
van een Autocad tekening bekijken. Er is ook een refresh functie aanwezig, omdat de
gebruiker in een netwerkomgeving werkt.
Afbeelding 7.2.7 Preview van de tekening 17552-006
Afstudeer opdracht AutoCAD system manager
19
7.3
Toevoegen van een nieuw project
Affbeelding 7.3.1. Invoeren van een nieuw project nummer
Door op ‘Add new project’in het menu ‘Drawing book’te klikken, kan de gebruiker (CAD
engineer) een nieuw projectnummer inschrijven. Bijzonderheden van het project kan de CAD
engineer in het veld ‘Project description’vermelden. Het veld ‘Outlook description’wordt
automatisch gevuld met informatie over dit project welke in Exchange wordt bewaard. Deze
functie is tijdens de demonstratie niet beschikbaar vanwege het ontbreken van een koppeling
met de Exchange server bij het MARIN.
7.4
Toevoegen van een nieuw model in een project
Door op ‘Add new model for current project’in het menu ‘Drawing book’te klikken, kan de
gebruiker een nieuw model inschrijven welke in het actieve project beschikbaar moet zijn.
Minimalle invoer is het modelnummer en de schaal; een omschrijving is niet verplicht, dit is
bedoeld om bijzondere situaties goed te kunnen omschrijven.
Afbeelding 7.4.1 Inschrijven van een nieuw model
Afstudeer opdracht AutoCAD system manager
20
7.5
Toevoegen van een nieuw tekening
Eén van de belangrijkste schermen van het programma is het toevoegen van een nieuwe
tekening. Deze kan geactiveerd worden door ‘Add new drawing’in het menu ‘Drawing
book’. Bij het opstarten van het scherm wordt gekeken wat het laatste tekeningnummer in het
actieve project is geweest en deze wordt opgehoogd met één. Dit wordt door een cliënt/server
structuur geregeld, zoals uitgelegd in hoofdstuk 4. De CAD engineer moet eerst selecteren om
wat voor type tekening het gaat. Daar worden alle beschikbare opties bepaald voor de
combobox ‘Titel’. Eén van deze opties moet de gebruiker kiezen. Koppelen van deze relatie is
beschreven in paragraaf 7.11. De gebruiker kan een omschrijving van de tekening plaatsen in
het veld ‘Subject’. Het modelnummer kan geselecteerd worden vanuit de combobox ‘Model
Nr.’. De tekenschaal is standaard ingesteld 1:1, de naam van de CAD engineer wordt
overgenomen van de windows login naam.
Afbeelding 7.5.2
Afbeelding 7.5.1 Inschrijven van een nieuwe tekening
De standaard waarde voor de datum is dag-maand-jaar ( uit windows NT ). De gebruiker moet
nog een bestand selecteren (wanneer het om Autocad tekening gaat ) met een scherm zoals u
ziet in afbeelding 7.5.2.
In afbeelding 7.6.1. ziet u al een ingeschreven Autocad opstellingstekening.
Afstudeer opdracht AutoCAD system manager
21
7.6
Wijzigen van een ingeschreven tekeningen
Afbeelding 7.6.1. Wijzigen van de tekening
Een tekening kan foutief ingevoerd zijn door de CAD engineer. Met ‘Edit current drawing’in
het menu ‘Drawing book’kan men dit scherm oproepen en gegevens wijzigen.
7.7
Printen van een project
Door op ‘Print current project’in het menu ‘Drawing book’te klikken, kan iedere gebruiker
een afdruk maken van het actieve project zoals te zien is in afbeelding 7.7.1
Afbeelding 7.7.1.
Door op het icoon te klikken met een printer kan de gebruiker een printer kiezen en/of
printerinstellingen wijzigen naar eigen behoefte.
Naast de mogelijkheid om te printen, kan men in dit scherm ook voor het icoon ‘Export’
kiezen. Dit biedt de mogelijkheid om een html of een tekst bestand te maken.
Afstudeer opdracht AutoCAD system manager
22
7.8
Wijzigen van een project
Door een CAD engineer met beheerrechten kunnen
wijzigingen aangebracht worden in het actieve
projectnummer, zoals een omschrijving van het project of
ophalen van Exchange informatie over het actieve project.
(Zie afbeelding 7.8.1)
Afbeelding 7.8.1
7.9
Wijzigen van een model
Wijzigen van een model nummer is alleen toegestaan
door CAD engineer met beheerrechten. Hier kunnen
het modelnummer, de schaal en de omschrijving
gewijzigd worden. Aanpassingen in dit scherm
kunnen wijzigingen in de al ingeschreven tekeningen
opleveren. Daarom is gekozen om deze functionaliteit
alleen beschikbaar te stellen aan de staflid CAD
engineer/beheerder.
Afbeelding 7.9.1
7.10 Toegangsniveau instellen
In dit scherm kan de beheerder na het inloggen (zie
afbeelding 7.10.1 ) gebruikers toevoegen met
permissie niveau (zie afbeelding 7.10.2).
Afbeelding 7.10.1
Afbeelding 7.10.2
Afstudeer opdracht AutoCAD system manager
23
7.11 Titel van de tekening koppelen aan type van de tekening
In het menu ‘Extra’, onder menu ‘Aanpassen’mag de
gebruiker met voldoende rechten titels koppelen aan type
van de tekening. Dit bepaalt de inhoud van de combobox
‘Titel’(zie afbeelding 7.5.1).
Afbeelding 7.11.1
In de afbeelding 7.11.2 ziet u alle titels
voor Autocad tekeningen. Zo kan men
andere titels definiëren voor de model
tekening dan voor de ingekomen
tekening. Deze relatie wordt bepaald
door de rij TypeID. Op deze manier
wordt er gezorgd voor uniforme
benamingen van de titels.
Afbeelding 7.11.2
Afstudeer opdracht AutoCAD system manager
24
8 Conclusie
Het MARIN tekeningenbeheersysteem is een belangrijke aanvulling van het
Meetverwerkings- en Rapportage (MVR) systeem van het MARIN. Het MARIN
tekeningenbeheersysteem maakt het mogelijk om overzichten van modellen, aanhangsels,
voortstuwers in hun samenhang op te vragen op basis van een MVR bijgehouden configuratie.
Door de MARIN tekeningenbeheersysteem geproduceerde overzichten bevatten
componentnamen, tekeningennummers maar ook de ingekomen tekeningen/correspondentie
op basis waarvan ze zijn gemaakt etc. Het samenstellen van deze overzichten op de
traditionele (c.q. met het handgeschreven tekeningenboek) vraagt veel tijd en is foutgevoelig;
het MARIN tekeningenbeheersysteem genereert deze informatie foutloos en snel op basis van
een query met daarin het modelnummer en componentnamen. Het query resultaat wordt
daarna geheel automatisch in een data- of eindrapport geplaatst door het MVR systeem, zoals
dit ook wordt gedaan met het overzichten van de uitgevoerde proeven, standaard bijlagen,
analyse, resultaten, diagrammen etc. Met het gebruik van het MARIN
tekeningenbeheersysteem in combinatie met MVR realiseert het MARIN een belangrijke
verhoging van zowel de efficiency als de kwaliteit van het rapportage proces.
Onze nieuwe stelling is om rapporten binnen zes weken naar de laatste proef op te leveren.
Dit lag in het jaar 2001 gemiddeld op 6 maanden.
9 Nawoord
Met deze applicatie hebben de CAD engineer’s nu een hulpmiddel om tekeningen in digitale
vorm op te slaan. Er wordt nu veel tijd bespaard omdat zoeken naar specifieke gegevens nu
veel makkelijker gaat.
Maar zo een applicatie is natuurlijk nooit af. Regelmatig krijg ik of mijn collega’s nieuwe
ideeën voor verbreding van de applicatie. In de loop van jaar 2002 wordt MARIN tekeningen
beheer systeem uitgebreid voor autocad gebruikers met automatische genereren van
tekeningen stempel en veld ‘DrawingID’uit de tabel ‘tblDrawing’koppelen m.b.v. Autocad
XData aan autocad tekening. Dit zorgt voor betere beheerbaarheid van alle opgeslagen kennis.
Er wordt ook preview scherm standaard ingebouwd in het hoofdscherm i.p.v. oproepen via
‘Window->Preview’
Een goede optie blijkt het openen van Autocad tekeningen (welke ingeschreven zijn in
tekeningenbeheersysteem) met VoloView (Afbeelding 7.2.6). Dit wordt door de project
manager of assistent gebruikt om toegang tot hetgeen getekend is door een CAD engineer.
9.1
Reactie van de CAD engineer’s
Doordat dit MARIN tekeningenbeheersysteem bij uitzondering op de werkplek gemaakt is, is
het een op maat geschreven programma geworden.
Aangekochte dan wel in opdracht gemaakte programma’s zijn vaak onnodig ingewikkeld of
net niet compleet (voor het MARIN).
Afstudeer opdracht AutoCAD system manager
25
Het MARIN tekeningenbeheersysteem heeft in gebruik zoveel overeenkomsten met het
bestaande fysieke tekeningenboek dat de overschakeling (instructies CAD engineer’s) in een
paar uur was voltooid.
De toegevoegde extra’s zijn modern van opzet maar des al niet te min door de CAD
engineer’s (gemiddelde leeftijd ruim 50 jaar!) tot grote tevredenheid goed en blijvend in
gebruik genomen.
Door deze gebruiksvriendelijkheid is het goed archiveren van de tekeningen gewaarborgd en
dit zonder extra belasting voor CAD engineer.
Opkomende wensen van de CAD engineer’s konden in de afgelopen maanden zonder
problemen ingewilligd worden.
De keuze om het bestaande fysieke tekeningenboek (anno 1930) aan te pakken is een goede
beslissing. Voordelen zijn:
• Snel opzoeken van tekeningen met een specifiek onderdeel.
• Geen geloop vanuit de verschillende kamers naar de centraal opgeslagen
tekeningenboek.
• Geen verschillende en onduidelijke handschriften meer.
• Meer ruimte voor andere nuttige informatie.
• Visualiseren van tekeningen vanuit het tekeningenbeheersysteem geeft zeer snel info
over de inhoud.
Afstudeer opdracht AutoCAD system manager
26
10 Bijlage
10.1 Toegang tot de server database
Tijdens de demonstratie wordt gebruik gemaakt van een rechtstreekse koppeling met de
Access database volgens:
Public Sub RunConnection()
On Error GoTo LocalError
Dim objConn As ADODB.Connection
Dim strConnStr As String
Set objConn = New ADODB.Connection
strConnStr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" &
MYCONNECTIONSTRING & "DrawingOffice.mdb"
objConn.CursorLocation = adUseClient
objConn.Open strConnStr, "Username", "Password"
Set pADOConnection = objConn
Exit Sub
LocalError:
If Err.Number = -2147467259 Then
MsgBox "ADO data error nr.: " & Err.Number & vbCrLf & "Error
description: " & Err.Description, vbCritical, "Fatal error EXIT NOW"
objConn.Open "Provider=Microsoft.Jet.OLEDB.3.51;Data source=" &
FindDB("DrawingOffice.mdb") & ";Jet OLEDB:Database
Password=Password;"
Else
If Fatal((Err.Number), (Err.Description),
"SetGetNewConnection!ADO Sub") = vbRetry Then
Resume
Else
Resume Next
End If
End If
End Sub
De routine RunConnection maakt een verwijzing naar object pADOConnection welke overal
toegankelijk is. Met andere worden is dit een koppeling met de database tijdens de
demonstratie of een koppeling met de server ActiveX EXE welke op de database server van
het MARIN draait.
Afstudeer opdracht AutoCAD system manager
27
10.2 Opstart procedure codes
Deze functie geeft de inlognaam terug van het Windows NT systeem. Er wordt gebruik
gemaakt van een advapi32.dll API functie
Private Declare Function GetUserName Lib "advapi32.dll" Alias
"GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long
Public Function ReturnUserName() As String
On Error GoTo LocalError
Dim sBuffer As String
Dim lSize As Long
Dim txtUserName As String
sBuffer = Space$(255)
lSize = Len(sBuffer)
Call GetUserName(sBuffer, lSize)
If lSize > 0 Then
txtUserName = Left$(sBuffer, lSize - 1)
Else
txtUserName = vbNullString
End If
ReturnUserName = txtUserName
Exit Function
LocalError:
If Fatal((Err.Number), (Err.Description),
"SetUpFunctions!GetUserStatus") = vbRetry Then
Resume
Else
Resume Next
End If
End Function
Uit de inlognaam wordt de menustructuur afgeleid. Zodat de gebruikers in drie groepen in te
delen zijn. Allen lezen, lezen en schrijven, en de groep beheerders.
Afstudeer opdracht AutoCAD system manager
28
10.3 Uitbreiding van optionbuttons met nieuwe types van de
tekeningen
Het scherm voor nieuwe tekening toevoegen of oude wijzigen wordt pas tijdens de loop van
het programma bepaald. Waardes en aantal van de optionbuttons worden in het database
opgeslagen. Hiermee is de uitbreidingsmogelijkheid van het MARIN
tekeningenbeheersysteem groot.
Private Sub SetOptionsIndex()
Static MaxIdx
MaxIdx = 0
Dim rsType As ADODB.Recordset
Dim strSQL As String
Dim strNameType As String
strSQL = "SELECT * FROM tblType"
Set rsType = New ADODB.Recordset
rsType.Open strSQL, GetNewConnection, adOpenForwardOnly,
adLockReadOnly
rsType.ActiveConnection = Nothing
rsType.MoveFirst
rsType.MoveNext
rsType.MoveNext
Do Until rsType.EOF
MaxIdx = MaxIdx + 1
strNameType = rsType.Fields("Type")
Load optType(MaxIdx)
optType(MaxIdx).Top = optType(MaxIdx - 1).Top + 360
optType(MaxIdx).Visible = True
optType(MaxIdx).Caption = strNameType
rsType.MoveNext
Loop
DisconnectRecordSet rsType
Me.Frame1.Height = optType(MaxIdx).Top + 400
End Sub
Afstudeer opdracht AutoCAD system manager
29
10.4 Functie PaintPreview
De functie PaintPreview wordt gebruikt om een Preview te genereren uit een DWG bestand.
Hiermee is allen de BMP informatie uit te lezen wat ook weer zijn nadelen heeft, zoals
maximaal 256 kleuren als waterkleuren.
Option Explicit
'/// BEGIN API FOR THE BITMAP & PAINT////
Private Type BITMAPINFOHEADER
biSize As Long
biWidth As Long
biHeight As Long
biPlanes As Integer
biBitCount As Integer
biCompression As Long
biSizeImage As Long
biXPelsPerMeter As Long
biYPelsPerMeter As Long
biClrUsed As Long
biClrImportant As Long
End Type
Private Type RGBQUAD
rgbBlue As Byte
rgbGreen As Byte
rgbRed As Byte
rgbReserved As Byte
End Type
Private Type IMGREC
bytType As Byte
lngStart As Long
lngLen As Long
End Type
Private Declare Function GetDC Lib "user32" _
(ByVal hWnd As Long) As Long
Private Declare Function FindWindow Lib _
"user32" Alias "FindWindowA" (ByVal lpClassName _
As String, ByVal lpWindowName As String) As Long
Private Declare Function SetPixel Lib _
"gdi32" (ByVal hdc As Long, ByVal X As _
Long, ByVal Y As Long, ByVal crColor _
As Long) As Long
'///END API FOR BITMAP & PAINT///
Public Function PaintPreview(strFile As _
String) As Integer
Dim lngSeeker As Long
Dim lngImgLoc As Long
Dim bytCnt As Byte
Dim lngFile As Long
Dim lngCurLoc As Long
Afstudeer opdracht AutoCAD system manager
30
Dim intCnt As Integer
Dim udtRec As IMGREC
Dim bytBMPBuff() As Byte
Dim udtColors() As RGBQUAD
Dim udtColor As RGBQUAD
Dim lngHwnd As Long
Dim lngDc As Long
Dim lngY As Long
Dim lngX As Long
Dim intRed As Integer
Dim intGreen As Integer
Dim intBlue As Integer
Dim lngColor As Long
Dim lngCnt As Long
Dim udtHeader As BITMAPINFOHEADER
On Error GoTo Err_Control
If Len(Dir(strFile)) > 0 Then
lngFile = FreeFile
Open strFile For Binary As lngFile
Seek lngFile, 14
Get lngFile, , lngImgLoc
Seek lngFile, lngImgLoc + 17
lngCurLoc = Seek(lngFile)
Seek lngFile, lngCurLoc + 4
Get lngFile, , bytCnt
If bytCnt > 1 Then
For intCnt = 1 To bytCnt
Get lngFile, , udtRec
If udtRec.bytType = 2 Then
'All of the code preceding this Line
'Is identical to the code in Part
'Two of Byte By Byte.
'Now we begin the color extraction
'The start value is the BYTE BEFORE
'The BMP Header data (The RGBQUAD
'And BMP Header are contained within
'Another structure), so move the read/
'Write marker to the next byte...
Seek lngFile, udtRec.lngStart + 1
'Pull out the BMP header data...
Get lngFile, , udtHeader
'Resize the Byte buffer to the full
'Length of the data...
ReDim bytBMPBuff(udtRec.lngLen)
'Did you read Randall's article?
If udtHeader.biBitCount = 8 Then
'Resize the array of RGBQuad's, I
'Could also have used the biClrUsed
'Value of the udtHeader...
ReDim udtColors(256)
'Grab all of the color values
Get lngFile, , udtColors
'Now we grab the full record by
'Moving the Read/Write marker
'Back to the start of the data.
'Don't worry about all of the data
'We already grabbed...
'(If you read Randall's article,
'Remember that the data is reverse
'Scan...
Seek lngFile, udtRec.lngStart
Afstudeer opdracht AutoCAD system manager
31
'Fill the buffer...
Get lngFile, , bytBMPBuff
'Now grab the Forms Handle
lngHwnd = FindWindow(vbNullString, _
Me.Caption)
'So we can get its Device Context..
lngDc = GetDC(lngHwnd)
'I thought this was a nice touch..
Me.Caption = strFile
'Clean any old paint off..
Me.Repaint
'Begin Painting
For lngY = 1 To udtHeader.biHeight
For lngX = udtHeader.biWidth To _
1 Step -1
'See, we are reading the data
'From THE END of the buffer...
lngColor = _
bytBMPBuff((UBound(bytBMPBuff) _
- lngCnt))
'Get the mapped value
udtColor = udtColors(lngColor)
'Break it into Red
intRed = CInt(udtColor.rgbRed)
'Green
intGreen = CInt(udtColor.rgbGreen)
'And Blue
intBlue = CInt(udtColor.rgbBlue)
'Get a color the API will accept
lngColor = RGB(intRed, intGreen, _
intBlue)
'Paint this Pixel. The + 5 is to
'Give a little offset from the edge
'Of the form.
'But before we do, would you like
'To have Black backgrounds? Easy,
'Swap the map:
'///BLACK BACKGROUND///
If lngColor = vbBlack Then
lngColor = vbWhite
ElseIf lngColor = vbWhite Then
lngColor = vbBlack
End If
'//////////////////////
'If your prefer White (the true
'Value) Then just remove that..
SetPixel lngDc, lngX + 5, lngY + 5, _
lngColor
'Increment the counter...
lngCnt = lngCnt + 1
Next lngX
Next lngY
End If
Exit For
ElseIf udtRec.bytType = 3 Then
'Add your message for Meta Files
Exit For
End If
Next intCnt
Else
'Add your Message for No Preview
Afstudeer opdracht AutoCAD system manager
32
End If
'Close the file
Close lngFile
'Return the value
End If
'General Error control
Exit_Here:
Exit Function
Err_Control:
Select Case Err.Number
Case Else
MsgBox Err.Description
Resume Exit_Here
End Select
End Function
Afstudeer opdracht AutoCAD system manager
33
Download