Generarea macrourilor în MicroStation '95

DE Dorian NEDELCU, Aurelian HĂU și Ovidiu TUDORA

Prezentul articol își propune să prezinte detaliat modul de generare al unui macro care calculează desfășurata trunchiului de con, utilizând limbajul BASIC încorporat programului de proiectare asistată MicroStation '95.

Generalități

Prin intermediul unui exemplu simplu de macro ce tratează problema desfășurării unui trunchi de con (figura 1) , cititorii vor putea înțelege modul de generare a unui macro în MicroStation '95, atât prin prezentarea sursei cât și prin parcurgerea etapelor necesare construirii acestuia, asociate cu explicații detaliate.

Licența MicroStation '95 este însoțită de manualul MicroStation BASIC Guide, care cuprinde descrierea comenzilor limbajului MicroStation BASIC. Același manual este livrat și pe CD-ul de instalare a MicroStation '95, în format PDF.

Crearea unui macro (New), editarea sursei (Edit), rularea acestuia (Run), o scurtă descriere a macro-ului (Detail - ce afișează primele linii de comentarii din sursa macro-ului) respectiv localizarea macroului (Browse) sunt disponibile din fereastra MACROS apelabilă din meniul principal MicroStation '95, în succesiunea Utilities ( Macros (figura 2). Forma sursă a unui macro este un fișier cu extensia "bas", iar versiunea compilată un fișier cu extensia "ba".

Există câteva posibilități prin care un macro poate interacționa cu utilizatorul în timpul execuției (selectarea unui obiect, introducerea unui punct cu mouse-ul sau de la tastatură). Pe lângă acestea utilizatorul poate opera cu ferestre de dialog standard pentru deschiderea unui fișier (MbeFileOpen), crearea unui fișier (MbeFileCreate), afișarea unui mesaj cu posibilități de răspuns predefinite (MbeMessageBox), introducerea unei valori (MbeInputBox), selecția unei opțiuni dintr-o listă (MbeSelectBox), sau cu ferestre de dialog definite de utilizator (forme) pentru situația în care datele necesare a fi introduse sunt mai complexe.

Sursa macro-ului

Sursa macro-ului este inclusă în prezentul articol, fiecare linie fiind însoțită de comentarii pentru ușurarea înțelegerii scopului instrucțiunilor. Limbajul BASIC MicroStation '95, în care este realizat acest macro, conține instrucțiuni clasice corespunzătoare BASIC-ului, precum și instrucțiuni specializate de interacțiune cu nucleul grafic MicroStation '95, a căror sintaxă conține prefixul Mbe.

Scrierea unei noi surse de macro, sau editarea uneia existente se realizează prin BASIC Editor (figura 3), apelabil din fereastra MACROS prin opțiunile New respectiv Edit. BASIC Editor are un meniu propriu cu următoarele bare de meniu:

ActionButton = MbeOpenModalDialog <(număr identificare formă selectată)>

Valoarea returnată de ActionButton este determinată de butonul selectat pentru închiderea formei (ex. valoarea 4 la selectarea butonului CANCEL în macro-ul exemplu).

Macro-ul exemplu este compus din rutina principală (Sub Main) și o subrutină (Trasare_arc), care realizează trasarea unui arc prin trei puncte (punct start, centru arc, punct final). Comunicarea între rutina apelantă și cea apelată se face prin mecanismul transmiterii parametrilor actuali către parametrii formali. Introducerea datelor inițiale pentru calculul desfășuratei se realizează prin forma din (figura 4).

Codul sursei nu conține instrucțiuni de generare a formei, ci numai apelarea ei, modul de generare al formei fiind prezentat în secțiunea următoare. În macro trebuie declarate ca publice toate variabilele asociate obiectelor formei de introducere a datelor inițiale (căsuțe text, butoane, liste, etc.).

Variabilele programului trebuie să fie declarate ca tip (integer, long integer, string, single, double precision, MbePoint), ceea ce poate fi realizat în două moduri:

Macro-ul parcurge următoarele etape:

Crearea formei macro-ului

Generarea formei de date inițiale a macro-ului se realizează nu prin cod, ci similar cu modul de generare a formelor propriu programului Visual Basic. Într-un macro pot fi definite una sau mai multe forme, apelabile succesiv. Acestea sunt întotdeauna de tip modal, adică execuția macro-ului este suspendată până la închiderea formei, controlul fiind returnat macro-ului; acest fapt implică existența a cel puțin unui Push Button pentru închidere a formei (OK sau Cancel).

Etapele generării unei forme sunt:

  1. Apelare Builder (figura 5) din meniul BASIC Editor în următoarea succesiune: Edit ( Custom Dialog ( Edit. Simultan cu apariția Builder-ului se deschide și bara Tools (figura 6) ce conține obiectele generice ce pot fi plasate inserate pe formă (Text, Label, Toggle Button, Group Box, Option Button, Push Button, Color Picker, Level Map, Scale, Radio Button).
  2. Crearea unei forme prin intermediul butonului New sau încărcarea uneia existente prin butonul Load. Butoanele au corespondent pe opțiunile New respectiv Load din meniul Dialog al Builder-ului. În urma acestor acțiuni, în cazul creării unei noi forme va apare forma care conține inițial butoanele OK și Cancel, iar în cazul încărcării uneia existente va apare Load Dialog, care va permite selecția formei care se dorește a se edita. Sunt posibile și deschiderea unei forme existente numai pentru citire (Read Only) și/sau ca o copie a originalului în vederea salvării sub un alt nume pentru modificări ulterioare, prin specificarea acestor opțiuni din Load Dialog.
  3. Caracteristicile formei (titlu, număr de identificare, lățime și înălțime) pot fi specificate prin fereastra Dialog Box Attributes (figura 7) apelabilă prin succesiunea de opțiuni Options ( Dialog Attributes? din meniul Builder-ului. În timpul editării formei, în bara de titlu a ferestrei Builder este specificat numele și calea fișierului compilat în care se va salva forma.
  4. Plasarea obiectelor se realizează prin selectare din bara Tools și poziționare lor pe formă. Obiectele pot fi mutate pe formă, redimensionate similar obiectelor Windows. Fiecare obiect plasat pe formă este introdus automat și în lista Builder-ului ce conține coordonatele de poziție, dimensiunile și caracteristicile de identificare ale obiectului. Selecția unui obiect se realizează prin click pe obiect, ceea ce are ca efect apariția marker-ilor obiectului. Selecția mai multor obiecte se realizează prin click succesiv pe obiecte cu tasta SHIFT apăsată. Alinierea obiectelor selectate (Left, Right, Top, Bottom , Center, etc.) se poate realiza selectând opțiunea corespunzătoare din bara de meniu Alignment a meniului Builder-ului. Ștergerea unuia sau mai multor obiecte se poate realiza, după operația de selecție, prin activarea ferestrei Builder-ului (prin click pe fereastra Builder-ului) și apăsarea tastei Del, urmată de confirmarea operației de ștergere. Sunt posibile operații de Cut, Copy, Paste a obiectelor, după operația de selecție, prin selecția opțiunii corespunzătoare din bara de meniu Edit a ferestrei Builder-ului, după activarea acesteia prin click.

Un obiect nu conține un cod de program asociat ci numai câteva caracteristici predefinite. Specificarea caracteristicilor fiecărui obiect se realizează într-o fereastră care poate fi activată prin dublu-click pe obiect. Cea mai importantă caracteristică a obiectului este Access String, prin care valoarea primită de obiect in timpul execuției este transmisă variabilei publice corespondente declarate în macro. Tabelul următor prezintă corelația impusă între tipul obiectului de pe formă și tipul variabilei declarată ca publică:

Alte caracteristici ale obiectelor ce pot fi plasate pe formă sunt:

Explicații referitoare la toate caracteristicile obiectelor nu pot fi cuprinse în articolul de față, fiind descrise însă detaliat în manualul MicroStation BASIC Guide.

Figurile 8, 9, 10, 11, 12 prezintă ferestrele de specificare a caracteristicilor pentru următoarele obiecte: Text, Option, Color Picker, Push Button, Group Box, utilizate în cadrul macro-ului exemplu.

5. Testarea formei se poate realiza chiar în timpul editării, prin activarea opțiunii Test Dialog din bara de meniu Options a meniului Builder-ului. În timpul testării forma devine activă și toate obiectele din formă pot fi testate, fără rularea efectivă a macro-ului. Ieșirea din testarea formei se realizează prin dezactivarea aceleiași opțiuni.

6. Salvarea formei se realizează prin activarea butonului Save a ferestrei Builder-ului, după activarea acesteia prin click, urmat de confirmarea operației de salvare. O formă definită de utilizator este salvată numai în format binar în versiunea compilată a macro-ului (fișierul cu extensia "ba").

Generarea automată a unui macro

MicroStation '95 oferă o posibilitate deosebit de utilă: generarea automată a macro-urilor, adică generarea codului sursă (prin instrucțiuni specifice extensiei limbajului BASIC MicroStation) bazat pe interacțiunile succesive ale utilizatorului cu mediul MicroStation '95. Avantajele acestei metode sunt evidente: învățarea rapidă a comenzilor limbajului Basic extins precum și posibilitatea introducerii într-un macro propriu (prin operația de editare specifică Copy & Paste) a codului sursă generat în acest mod.

Generarea automată a unui macro se realizează prin parcurgerea următoarele etape:

Play - la activarea acestui buton acțiunile utilizatorului sunt capturate și se scrie automat în macro codul corespunzător acțiunilor; la afișarea inițială a ferestrei, acest buton este activ

Pause - activarea acestui buton se întrerupe scrierea automată în macro a codului corespunzător acțiunilor utilizatorului; pauza este utilă atunci când nu trebuie capturate acțiuni în timpul sesiunii de generare a macro-ului; reactivarea capturării acțiunilor se realizează prin activarea butonului Play

End - activarea acestui buton are ca efect închiderea sesiunii de generare a macro-ului; operația se poate realiza și prin selecția opțiunii End Macro din bara de meniu Utilities a meniului principal MicroStation '95.

Comenzi limbaj BASIC extins

Extensia limbajului BASIC MicroStation oferă programatorilor de macro-uri acces la resursele programului MicroStation '95. Scopul extensiei BASIC este de a simplifica interacțiunea programatorului cu MicroStation '95. Instrucțiunile extensiei BASIC se disting de cele ale limbajului BASIC clasic prin prefixul Mbe pentru funcții, tipuri, obiecte sau colecții predefinite, prefixul Mbe_ fiind rezervat constantelor predefinite specifice ale MicroStation '95. Extensia BASIC cuprinde instrucțiuni specifice pentru următoarele grupe de operații : accesul la informațiile din și despre fișierul desen, accesarea și modificarea setărilor MicroStation '95, accesarea informațiilor stării curente a MicroStation '95, manipularea ferestrelor și a vederilor dintr-o fereastră, accesarea referințelor, a bazelor de date. De asemenea se pot transmite comenzi de desenare, se pot simula introduceri de puncte (click stânga mouse) sau reset (click dreapta mouse).

Pentru macro-ul exemplu din prezentul articol, vor fi explicate numai instrucțiunile cu prefixul Mbe utilizate, celelalte fiind instrucțiuni clasice BASIC:

Crearea unei icoane atașate unui macro

Pe lângă posibilitatea de a rula un macro prezentată în primul capitol al articolului, utilizatorul poate crea propria opțiune de meniu sau propria icoană, la selectarea căreia MicroStation '95 să execute o comandă sau un macro. Icoana se poate insera într-o bară de icoane existentă sau se poate defini o nouă bară de icoane (Tool Frames).

Pentru definirea unei noi icoane se apelează din meniul MicroStation '95 succesiunea de opțiuni Workspace ( Customize și din fereastra Customize (figura 15), se alege opțiunea Tool Frames (din partea stânga sus), iar din partea dreaptă Create Tool Frame..., după care se deschide o fereastră unde se specifică titlul noii bare și se selectează butonul Insert pentru a insera o nouă icoană. După selectarea acestui buton se deschide editorul de icoane (figura 16), unde se desenează icoana, se specifică (în căsuța Tool Tips) mesajul ce va fi afișat de MicroStation '95 la mișcarea mose-ului în zona icoanei, iar în câmpul Key-in se tastează comanda ce va fi executată la apăsarea icoanei (în cazul nostru rularea unui macro ce l-am denumit "desf_con": macro desf_con). Salvarea noii bare ce conține icoana nou definită se face prin selectarea butonului Save din fereastra Customize.

Urmărind pașii descriși în articol, cititorii își pot crea macro-uri utile, pot defini icoane pentru apelarea lor sau pentru apelarea unor comenzi ce nu sunt cuprinse în barele cu icoane predefinite ale MicroStation '95, putând astfel să-și simplifice munca și să-și creeze o interfață de lucru după propriile necesități.

Cititorii interesați pentru relații suplimentare sau soluții pot apela autorii la tel. 055-431715 int. 195 sau mobil 092-718560, în cadrul Centrului de Cercetare-Dezvoltare pentru Echipamente Hidroenergetice al U.C.M.Reșița S.A

(C) Copyright Computer Press Agora