Afstudeerproject - · PDF fileDe KKS-functiecodes zijn aan de tekening onderdelen toegevoegd...

22

Transcript of Afstudeerproject - · PDF fileDe KKS-functiecodes zijn aan de tekening onderdelen toegevoegd...

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 2 van 22 1/12/2003

Project: KKS-manager Een methode om eenvoudig KKS-functie codes te maken, onderhouden en op te zoeken in een AutoCAD tekening. Auteur: S. M. Roorda Opdrachtgever: Reliant Energy Power Generation Benelux BV. Opleiding: AutoCAD Certified Engineer System Manager (HBO deeltijdopleiding) Instituut: TEC CadCollege, Nijmegen Studiebegeleider: ir. R. Boeklagen Datum: 18-12-2003 Voorwoord Dit project is tot stand gekomen naar aanleiding van de studie tot AutoCAD Sys-tem Engineer. Hierbij was de opdracht een programma te schrijven in Visual Ba-sic voor Applications (VBA) dat ten gunste komt aan het bedrijf waar de auteur werkzaam is. Met dank aan Reliant Energy Power Generation Benelux BV voor de beschikbaar gestelde tijd en middelen, en aan de begeleiders van TEC Cad-College te Nijmegen voor de professionele ondersteuning. Dec. 2003, Houten

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 3 van 22 1/12/2003

Inhoudsopgave

Samenvatting __________________________________________________ 4

Inleiding _______________________________________________________ 5

Probleem ______________________________________________________ 7

Alternatieven ___________________________________________________ 9

Besluitvormingsanalyse_________________________________________ 10

Programma ___________________________________________________ 11

Code_________________________________________________________ 16

Conclusie en aanbevelingen _____________________________________ 21

Bronnen ______________________________________________________ 22

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 4 van 22 1/12/2003

Samenvatting Het resultaat van dit project is een eenvoudig te gebruiken interface voor teke-naar/constructeurs die KKS-codes in een tekening willen opzoeken, toevoegen of wijzigen. De KKS-functiecodes zijn aan de tekening onderdelen toegevoegd als zogenaamde “Extended data”. Deze data kan ook door andere, reeds in gebruik-zijnde, routines worden gebruikt om snel en accuraat te kunnen coderen.

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 5 van 22 1/12/2003

Inleiding Ik ben werkzaam bij het energieproductiebedrijf Reliant Energy Power Generati-on Benelux BV. Dit is het Nederlandse onderdeel van het Amerikaanse concern Reliant Energy, dat haar hoofdkantoor heeft in Houston. De kernactiviteit van Reliant Energy bestaat uit het produceren van elektriciteit. In de Verenigde Staten is dit ongeveer 22000MW voor zo’n 1,7 miljoen klanten. In de deregulering van de energiemarkt in Europa heeft Reliant Energy in 1999 het Nederlandse energieproductiebedrijf UNA opgekocht als springplank voor de Europese markt. Dit bedrijf produceert ruim 3400MW elektriciteit en warmte voor stadsverwarming met als energiebron aardgas, steenkool, olie en hoogovengas. De centrales van Reliant Energy Power Generation Benelux werken nog op de zelfde wijze als toen het nog UNA heette. De energieopwekkings eenheden staan in Utrecht, Diemen, Amsterdam, Velsen-noord en op het terrein van Corus in IJmuiden. In het kader van de vrije energiemarkt is er ook een dochterbedrijf, dat zich be-zighoudt met de handel in brandstoffen en energie, op de zogenaamde APX (Amsterdam Power Exchange spotmarket) met nog een afdeling in Frankfurt. Voor de fusie van Reliant Energy en UNA bestond er in Utrecht een tekenkamer van 25 mensen voor de behoeftes van het hele bedrijf. Na de fusie volgde er een reorganisatie, waarbij het bedrijf werd opgedeeld in 3 clusters. De afdeling te-kenkamer werd opgeheven en de hoeveelheid tekenaars en constructeurs terug-gebracht naar 11. Deze mensen werden verdeeld over de clusters en ingedeeld bij de afdeling werkvoorbereiding. Zij moeten, naast het uitvoeren van tekenwerk, nu ook werkvoorbereiding doen voor revisieprojecten. Tekenwerk dat door tijds-druk niet kan worden uitgevoerd moet worden uitbesteed. Naast deze functie moeten deze mensen ook het technisch documentatie archief Up-to-date hou-den. Als Tekenaar / Constructeur houd ik mij met nog twee mensen bezig met het be-heren van de codering van installatieonderdelen. Omdat ik de applicatie beheerder van AutoCAD ben maak ik ook vaak menu’s en speciale gereedschappen en tekenhulpmiddelen. Om het tekenwerk toch zoveel mogelijk in eigen hand te houden ontwikkelen we gereedschappen die het tekenwerk doeltreffend en eenvoudig maken.

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 6 van 22 1/12/2003

Bij de energieproductiebedrijven in Nederland worden de onderdelen van de installatie met een unieke code gecodeerd volgens het zogenaamde KKS (=Kraftwerk Kennzeichen System). Deze code wordt gebruikt voor de procesvoe-ring, en het onderhoud van de installatie. Omdat de processen in P&ID’s staan opgetekend (P&ID = Process & Instrumentation Diagram) is het belangrijk dat deze schema’s snel informatie kunnen verschaffen bij een storing. Elk onderdeel in de centrale kun je coderen met een proces-code en een plaats-code. De procescode geeft de functie van een onderdeel aan, en de plaatscode vertelt iets over de inbouwplaats. De KKS-code is als volgt opgebouwd: Voorteken Cluster Functie Aggregaat Bedrijfsmiddel = (proces) + (plaats)

AA1 AAANN AANNNA AANN

De Clustercode zegt iets over de eenheid waarin het onderdeel zit, of de in-bouwplaats. De Functiecode geeft aan bij welk proces een onderdeel hoort. De Aggregaatcode laat zien of het bijvoorbeeld een klep, een pomp of een warm-te wisselaar is. En de bedrijfsmiddelcode is een verdieping van de Aggregaatcode. Bijvoorbeeld de aandrijfmotor van een pomp. Hier een afloopschema over hoe de KKS-code wordt opgebouwd.

Start

is het eengebouw?

Procescode/ Plaatscode plaats +

plaats een •tussen functie-

enaggregaatcode

procescode is gerelateerd aan hetproces, plaatscode aan een ruimte ofeen inbouwplaats in een kast (Electro-of Meet&Regeltechmisch)

Maximale lengte van eenKKS-code is 18 karakters(incl. =)voorbeelden van KKSPROCEScodes:=K 6NDA21 AA501=F 8NDD01 BR001A=8 0GBK01 AP001 -M01=Y 0BHA02=F 3LAB11 AA001 YA01

nee

ja (de functie code begint met een U)

proces =

Maximale lengte vaneen KKS-code is 12karakters (incl. +)voorbeeld van KKSplaatscode:+F 1UND01Of als er een aantalgecodeerde ruimteszijn:+4 0UND01 R010

Maximale lengte van eenKKS-code is 15karakters (incl. + en •)voorbeeld van KKSplaatscode:+F1CUA02+80CDA02•A1+K9BFB01•B1B001

Klaar

1 A=Alfanumeriek, N=Numeriek

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 7 van 22 1/12/2003

Probleem De installatie is verdeeld in een grote hoeveelheid processen die allemaal op een eigen P&ID zijn uitgetekend. Een P&ID kan meerdere bladen bevatten. De KKS-codes die zijn toegekend aan de onderdelen op een P&ID zijn uniek, en om dit te kunnen bewaken is er een databaseprogramma geschreven. Deze database controleert alleen of een KKS-code uniek is; een bepaalde KKS-code kan name-lijk wel op meerdere tekeningen voorkomen. Bijvoorbeeld: een druk-transmitter staat zowel op een P&ID als op een elektrisch aansluitschema. Als je nu in de database een code hebt opgezocht en hebt gezien dat deze code op een bepaald P&ID voorkomt kun je in AutoCAD deze tekening openen. Je hebt nu echter niet direct de gezochte code te pakken. Je kunt je voorstellen dat wanneer je een A0 (hier zijn de meeste P&ID’s op getekend) op een 19” tot 21” scherm laat zien, je dan niet de codes meer kan lezen.

Het zou mooi zijn wanneer je bij een tekening een programma zou hebben waar-in je de gezochte functie kan laten zoeken. Als je namelijk de functie hebt gevon-den is het vinden van de aggregaatcodes geen probleem meer omdat die alle-maal bij elkaar aansluiten. Het is namelijk zo dat een bepaalde “streng” in een tekening een gedeelte van de code gemeenschappelijk heeft. Als voorbeeld: rondom een pomp zit altijd een aantal componenten, dat te maken heeft met het functioneren van die pomp, of die nodig zijn om onderhoud aan die pomp te kunnen plegen. De cluster- en functiecode zijn hetzelfde maar de ag-gregaatcodes verschillen.

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 8 van 22 1/12/2003

In onderstaande afbeelding zie je een pompstraat met een paar afsluiters een filter en een aantal drukmeetpunten. De functie van deze componenten is het transporteren van afgekoeld stadsverwarmingwater.

Van het gedeelte tussen de begrenzingstekens (spikes) hebben alle onderdelen de zelfde KKS-functiecode. Deze fuctiecode wordt gevolgd door de aggregaat-code die, in combinatie met de functiecode, een unieke KKS-code oplevert. De complete KKS-code van bijvoorbeeld deze leiding is dus J8NDC15BR001. Deze code vind je ook in de centrale terug, als tekst op de leiding geplaatst.

Begrenzingsteken van de functie

Functie-code

Aggregaat-code

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 9 van 22 1/12/2003

Alternatieven Om KKS-codes in een tekening in te voeren kun je op verschillende manieren te werk gaan.

1. Maak van alle componenten in de tekening blocks met de KKS-code als attribute. Met de attribute-extract functie van AutoCAD kun je de codes exporteren naar een comma- of space-delimited bestand. Dit bestand is later te importeren in Microsoft Excel of Access.

2. Alle onderdelen in een tekening voorzien van een stukje “extended da-ta” waar de functiecode in staat.

Voordeel van methode 1 is dat alle P&ID’s er vergelijkbaar uitzien, en dat je met attribute-extract relatief eenvoudig een overzicht kan maken van de KKS-codes op een tekening. Nadeel is dat alle bestaande P&ID’s die ooit al eens zelf zijn gemaakt of door derden zijn aangeleverd moeten worden overgetekend om de juiste blokken met de juiste attributes te hebben. Voordeel van methode 2 is dat je ook oude tekeningen eenvoudig achteraf kan voorzien van een KKS-codering. Zelfs bij gevectoriseerde gescande tekeningen is dat mogelijk. Tevens kan je ook andersoortige overzichtstekeningen voorzien van KKS-code’s. Bij het zelf tekenen van P&ID’s is het alleen noodzakelijk de lijnen die de leidingen voorstellen te voorzien van een KKS-code als extended data. Wij maken in ons bedrijf namelijk gebruik van een symbolenbibliotheek met symbolen die zelf bij het invoegen de lijn onderbreken en de extended data uit die lijn filteren waarop zij worden geplaatst waarna deze gegevens automatisch opgenomen worden in een attribute van het geplaatste symbool. Nadeel bij deze methode is dat niet van alle tekeningen waar je de KKS-code’s aanbrengt middels attribute-extract een lijst kan worden geproduceerd, maar het aanbrengen van de code’s gaat sneller omdat grote groepen lijnen en blocks in één keer kan worden voorzien van een functiecode. Als je nagaat dat er op een uitgebreide P&ID wel 200 KKS-codes, met een lengte variërend van 7 tot 18 karakters, kunnen voorkomen verdeeld over misschien 15 à 20 strengen, is de kans op een typefout behoorlijk groot. Het is ook een be-hoorlijk geestdodend werk om elk onderdeel apart te voorzien van een code.

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 10 van 22 1/12/2003

Besluitvormingsanalyse Bovengenoemde voor- en nadelen hebben mij doen besluiten om KKS-code’s als extended data toe te voegen. Om dit te kunnen doen heb ik een applicatie gemaakt met Visual Ba-sic for Applications (VBA) waarmee je, eventueel achteraf, KKS-codes kunt toekennen aan onderdelen in een tekening d.m.v. extended data. Ik heb ook gekozen voor een appli-catie geschreven in VBA, omdat je dan op een redelijk eenvoudige wijze een overzichtelijke gebruikers interface kan maken met alle gebruiksmogelijkheden bij elkaar. VBA is geïntroduceerd bij AutoCAD 14, en is in tegenstelling tot AutoLisp versie-onafhankelijk. De applicatie, die KKSmanager is genoemd, heeft de mogelijkheid om KKS-codes toe te voegen aan onderdelen, of deze te wijzigen. Met een andere optie kun je de al toegevoegde KKS-codes zoeken in de betreffende tekening en de onderdelen met deze KKS-code zichtbaar maken.

N.B. De methode waarmee dit programma gemaakt is kan ook worden toege-past om andere informatie als extended data aan onderdelen te verbinden, zoals leveranciersgegevens, typenummers, enzovoort. Met een paar eenvou-dige wijzigingen is hiervoor een soortgelijke interface te maken.

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 11 van 22 1/12/2003

Programma Voor iemand die verstand heeft van coderen, moet het aanbrengen van KKS-codes op een bestaande tekening zo simpel zijn, dat een Menu-button in Auto-CAD waarmee het programma wordt aangeroepen voldoende is. De interface ziet er als volgt uit:

Na het aanklikken van button 1 (info) wordt gevraagd een onderdeel in de teke-ning te selecteren, waarna van dit onderdeel de KKS-functiecode in het tekstveld wordt weergegeven. Als het tekstveld 2 leeg is kun je button 3 (KKS toevoegen) gebruiken om een nieuwe KKS-code toe te voegen, je kunt echter ook eerst een gecodeerd onder-deel selecteren met button 1 (info) en daarna met een kleine wijziging in het tekstveld middels button 3 (KKS toevoegen) deze code overbrengen op een se-lectie van de tekening. Op deze manier kun je ook één of meer KKS-codes wijzigen met button 4 (KKS wijzigen). Als je een KKS-code wilt zoeken tik je hem in op het tekstveld. Druk vervolgens op button 5 (KKS Tonen). De onderdelen die met deze code zijn gecodeerd zul-len als enige zichtbaar zijn op het beeldscherm, zodat je meteen ziet waar ze zich bevinden. Als je wilt weten welke onderdelen van de tekening nog niet zijn gecodeerd druk je op button 6 (zonder KKS). De niet gecodeerde onderdelen zullen zichtbaar worden met het aantal. Na elke buttonkeuze zal het programma terugkeren in het hoofdmenu. Met button 7 (Einde) kun je het hoofdmenu afsluiten.

1

5

7

6

4

3

2

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 12 van 22 1/12/2003

Hieronder tref je een stroomschema aan van de info functie van het hoofdmenu (button 1)

de VBA (= Visual Basic forApplications) functie GetXdata

start button 1i-kks

selecteer onderdeelwaarvan je de KKS wilt

weten

bewaar degegevens van het

onderdeel

is onderdeelgecodeerd?

appl. = KKS-CODEkks = waarde xdata

appl. = niet gedefinieerdkks = CODE?

ja

nee

onthoud tekstvoor andere

functies

Klaar

Laat waardeappl. en kks

zien

appl is de variabele voor deapplicatienaam,kks is de variabele voor deCluster + Functiecode (deze ismaximaal 7 karakters lang en inhoofdletters)

De waarde van kks komt intekstvak 2 te staan, metdaarboven de applicatienaam

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 13 van 22 1/12/2003

Om een KKS-code toe te voegen of te wijzigen geldt onderstaand stroomsche-ma. Als er in het tekstvak niets staat ingevuld komt er een vervolgscherm waarin om de KKS-code wordt gevraagd. (Button 3 en 4)

start Button 3/4Toevoegen/Wijzigen

KKS

messagebox

menukeuze

Staat er een KKS-codein tekstvak 2?

Wijzig eventueelde Code

druk op Button 3om toe te voegenof op Button 4om een code te

wijzigen

Selecteerde te

coderenonderdelen

tel de onderdelen

aantalonderdelen

gecodeerd metKKS-code

Klaar

Vul dejuiste Code

in

Laatinvulscherm

zien

druk op button OK

ja

nee

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 14 van 22 1/12/2003

We kunnen nu informatie opvragen van een bepaald onderdeel, en een KKS-code toevoegen of wijzigen. Hier volgt het stroomschema van het opzoeken in de tekening van een bepaalde KKS-code. (Button 5)

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 15 van 22 1/12/2003

Als je zelf een schema aan het coderen bent is het handig om te weten hoe ver je bent. Met deze functie kun je ook zien in hoeverre tekeningen voorzien zijn van KKS-codes. Hier het stroomschema voor de functie zonder KKS. (Button 6)

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 16 van 22 1/12/2003

Code Het programma maakt gebruik van de mogelijkheid in AutoCAD De variabelen xdataType(0) en xdataType(1) krijgen respectievelijk de waarden 1001 en 1000. dit zijn zogenaamde DXF-codes die in de database van een Au-toCAD tekening staan voor de “veldnamen”. Zo is de DXF-code voor, bijvoor-beeld, de layer-naam een 8 en voor de kleur is die 62. De veldcode 1001 is gereserveerd voor de applicatienaam, terwijl het veld 1000 een reeks ASCI karakters mag bevatten van maximaal 255 byte. Er zijn nog veel meer soorten DXF-codes voor extended data velden, maar die zijn in dit project niet van toepassing.

Het programma heeft slechts 2 User-Forms. Dit zijn de menuschermen die de gebruiker te zien krijgt. Verder zijn er een aantal algemene functies die in de zogenaamde module Algemeen zijn op-genomen en die vanuit de knoppen in de menuschermen worden aangeroe-pen. UserForm1 is het hoofdmenu, en als bij een edit-functie het tekstveld niet wordt ingevuld volgt UserForm2 waarin alsnog de KKS-code kan worden inge-

vuld. De algemene functies zijn:

Een filterfunctie, waarmee van een onderdeel wordt bekeken of er in de database van AutoCAD extended data aanwezig is en of deze voldoet aan het criterium dat de applicatienaam gelijk is aan “KKS-code”.

Een Informatiefunctie, waarin gevraagd wordt een onderdeel in de teke-ning te selecteren. Hierna wordt nagegaan of het onderdeel extended data heeft in de vorm van een KKS-funktiecode en waarvan de applicatienaam gelijk is aan “KKS-code”

Een Editfunctie. Hiermee wordt de code die ingevuld wordt in het hoofd- of submenu toegevoegd als extended data aan de AutoCAD database bij de geselecteerde onderdelen.

In AutoCAD kan het hoofdmenu worden aangeroepen met de button:

Met hieraan gekoppeld de AutoCAD commandoreeks: ^C^C-vbarun;KKSmanager.dvb!Algemeen.keuzemenu; De plaats van het VBA programma KKSmanager moet dan wel zijn opgenomen in het zoekpad van AutoCAD.

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 17 van 22 1/12/2003

De VBA Code van de informatie button: Private Sub CommandButton1_Click() 'Info over KKS-functiecode van een bepaald onderdeel UserForm1.hide Call Algemeen.i_kks(app, kks) If app = "" Then UserForm1.Label1 = "applicatienaam niet gede-finiëerd. " Else UserForm1.Label1 = "applicatienaam: " & app End If UserForm1.TextBox1.Value = kks UserForm1.Show End Sub

ßRoep de in-formatie-functie aan

Van de aangeroepen informatie-functie is dat: Public Sub i_kks(app, kks) ' selecteer het onderdeel waar je de KKS-functiecode van wilt weten Dim onderdeel As Object Dim pt As ACAD_POINT On Error Resume Next ActiveDocument.Utility.GetEntity onderdeel, pt, "Selecteer een onderdeel: " ' zoek xdata (KKS-code) van dit onderdeel in de data-base. onderdeel.GetXData app, xdataType, xdataValue app = xdataValue(0) 'is de applicatienaam gedefinieerd? If xdataValue(0) = "" Then app = "" Else If xdataValue(0) <> "KKS-CODE" Then app = "" End If End If kks = xdataValue(1) 'is de code al ingevuld? If xdataValue(1) = "" Then kks = "CODE?" Else If xdataValue(0) <> "KKS-CODE" Then kks = "CODE?" End If End If End Sub

ßselecteer een onderdeel op het scherm ßfilter de appli-catienaam uit het onderdeel ßfilter de KKS-code uit het onderdeel

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 18 van 22 1/12/2003

Om één of meer KKS-code(s) toe te voegen of te wijzigen gebruik je de volgende regels. Eerst zie je het specifieke deel. Private Sub CommandButton2_Click() 'Een KKS-functiecode toevoegen If UserForm1.TextBox1.Value = "" Then UserForm2.Caption = "KKS Toevoegen" UserForm2.Label1.Caption = "Toe te voegen KKS-functiecode:" UserForm2.TextBox1.Value = "CODE?" UserForm1.hide UserForm2.Show kks = UCase(UserForm2.TextBox1.Value) Else If UserForm1.TextBox1.Value = "CODE?" Then UserForm2.Caption = "KKS Toevoegen" UserForm2.Label1.Caption = "Toe te voegen KKS-functiecode:" UserForm2.TextBox1.Value = "CODE?" UserForm1.hide UserForm2.Show kks = UCase(UserForm2.TextBox1.Value) Else kks = UCase(UserForm1.TextBox1.Value) UserForm1.hide End If End If app = "KKS-CODE" Call Algemeen.e_kks(app, kks) UserForm1.Label1 = "" UserForm1.TextBox1.Value = "" UserForm1.Show End Sub

ßhet aanroe-pen van de al-gemene functie e_kks

Op de volgende pagina tref je de code voor het algemene deel e_kks. Aan het begin van de functie verdwijnt het menu van het beeld, en aan het eind van de functie komt het hoofdmenu weer in beeld.

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 19 van 22 1/12/2003

Public Sub e_kks(app, kks) 'voor het aanpassen van een KKS-functiecode Call kies(sset) Dim i As Integer i = sset.Count Dim onderdeel As Object If (vbEmpty = VarType(xdataType)) Then Dim tmp(0 To 1) As Integer xdataType = tmp ReDim xdataValue(0 To 1) ' het eerste item in Xdata moet 1001 zijn ' deze geeft de applicatienaam. xdataType(0) = 1001 xdataValue(0) = app ' het tweede item in Xdata moet 1000 zijn ' deze geeft de KKS-code xdataType(1) = 1000 xdataValue(1) = kks Else xdataType(0) = 1001 xdataValue(0) = app xdataType(1) = 1000 xdataValue(1) = kks End If For Each onderdeel In sset onderdeel.SetXData xdataType, xdataValue onderdeel.Update Next onderdeel If i = 1 Then MsgBox ("Er is " & i & " onderdeel gecodeerd met: " & kks) Else MsgBox ("Er zijn " & i & " onderdelen geco-deerd met: " & kks) End If i = 0 End Sub

ßhier wordt een algemene functie aange-roepen om een selectieset te maken. ßhet aantal gecodeerde onderdelen wordt weerge-geven.

Op de volgende bladzijde zie je nog de code voor het opzoeken van een bepaal-de KKS-code in de tekening. Het zoom extents commando aan het begin is no-dig omdat er eventueel gecodeerde onderdelen buiten beeld zouden kunnen zijn.

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 20 van 22 1/12/2003

Private Sub CommandButton6_Click() AutoCAD.AcadApplication.ZoomExtents Dim sall As AcadSelectionSet Call Algemeen.alles(sall) Dim teller As Integer Dim element As AcadEntity teller = 0 kks = UserForm1.TextBox1.Value If kks = "CODE?" Then kks = "" End If For Each element In ThisDrawing.ModelSpace On Error Resume Next element.Visible = False Next element For Each element In sall Call element.GetXData("KKS-CODE", xdataType, xdataValue) If xdataValue(1) = kks Then element.Visible = True If xdataValue(1) = kks Then teller = teller + 1 element.Update Next element UserForm1.hide If teller = 0 Then If kks = "" Then MsgBox "geen Code geselecteerd..." Else MsgBox "Er zijn geen onderdelen gecodeerd met " & kks End If Else: If teller = 1 Then If kks = "" Then MsgBox "Het zichtbare onderdeel heeft geen Code..." Else MsgBox "Het zichtbare onderdeel is geco-deerd met " & kks End If Else: If kks = "" Then MsgBox "De zichtbare onderdelen zijn niet gecodeerd..." Else MsgBox "De zichtbare " & teller & " onder-delen zijn gecodeerd met " & kks End If End If End If 'Laat alles weer zien... For Each element In ThisDrawing.ModelSpace element.Visible = True element.Update Next element UserForm1.Label1 = "" UserForm1.TextBox1.Value = "" UserForm1.Show End Sub

ßzoom extents ß de gezochte code ßVerberg alles ßLaat de on-derdelen met de gezochte code zien

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 21 van 22 1/12/2003

Conclusie en aanbevelingen Uit dit verslag blijkt dat het mogelijk is om op eenvoudige en snelle wijze KKS-functiecodes als extended data toe te voegen aan onderdelen van een tekening. Het voor-deel van het werken met Visual Basic for Applications (VBA) ten opzichte van bijvoor-beeld AutoLisp is dat alle functies vanuit één menuscherm kunnen worden aangeroepen. Het programma blijft versieonafhankelijk werken in AutoCAD vanaf Release14. De gebruikte methodiek is ook eenvoudig om te bouwen, zodat ook andersoortige gege-vens als extended data aan onderdelen van een tekening kunnen worden toegevoegd. Mijn aanbeveling is dan ook om dit programma te implementeren in onze AutoCAD omgeving, zodat wij op een effectieve manier het beheer en het opzoeken van KKS-codes kunnen doen.

Afstudeerproject: Door: S.M. Roorda KKS-manager

Afstudeeropdracht.doc Pagina 22 van 22 1/12/2003

Bronnen Er is niet veel gepubliceerd over het gebruik van extended data in Visual Basic voor AutoCAD. Vanwege ervaringen opgedaan met extended data en AutoLisp heb ik documen-tatie over dit onderwerp uit verschillende bronnen gebruikt. Hieronder een overzicht. Omschrijving Uitgeverij Titel Vaktijdschrift Cmedia productions AutoCAD Magazine Vaktijdschrift AGN AGN nieuws Vaktijdschrift UN Miller Freeman Cadence praktijkboek Kluwer AutoCAD/AutoLisp 12 Computer Ondersteund ontwerpen

TEC CadCollege AutoCAD 2002

Internet diverse Publicaties over het on-derwerp