Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Pointere de entitati AutoLISP

autocad



+ Font mai mare | - Font mai mic



Pointere de entitati AutoLISP

Un pointer de entitate este un identificator unic si permanent pentru o entitate dintr-un desen AutoCAD. Aplicatiile pot folosi pointere de entitati pentru a mentine legaturi asociative intre entitati sau intre entitati si seturi arbitrare de date in timpul sesiunii de editare grafica.

Obiective

in acest capitol veti studia:



Cum sa activati sau sa distrugeti pointerele de entitati.

Cum sa extrageti un pointer dintr-o lista asociata entitatii.

Cum sa gasiti o entitate cu ajutorul pointerului.

Formatul unui pointer de entitate

Pointerele de entitati sint pastrate ca numere hexadecimale exprimate sub forma unui sir. De exemplu, primul pointer atribuit entitatii intr-un desen poate fi '1' iar pointerul treizeci si unu poate fi '1F'.

Pointerul unei entitati nu poate fi schimbat: poate fi numai distrus. Cind se sterge o entitate dintr-un desen, pointerul ei este retras si niciodata refolosit in acel desen.

Lungimea maxima a unui sir este de 16 caractere, ceea ce inseamna ca numarul maxim de pointere pentru un singur desen este 264-1.

Pointerele sint pastrate in codul de grup DXF cimpul 5 al unei liste asociata entitatii.

Atribuirea de pointere entitatilor

Spunem ca al 31-lea pointer atribuit entitatii ar putea fi '1F' deoarece atribuirea pointerelor nu este intotdeauna secventiala, desi intotdeauna progreseaza de la mai mic la mai mare. Este imposibil de prevazut in toate cazurile care va fi urmatoarea atribuire pe care o va face AutoCAD-ul; de aceea este necesar de stabilit in mod explicit pointerul unei entitati din lista asociata entitatii, decit sa incercam sa ghicim ce pointer va atribui AutoCAD-ul entitatii.

Activarea si dezactivarea pointerelor

Actiunea de atribuire a pointerelor este dezactivata in momentul in care pointerele lipsesc. Comanda HANDLE ON va activa pointerele permanent in desenul curent.

Pointerele pot fi dezactivate. Deoarece prin aceasta se poate dezactiva orice legatura intre entitatile AutoCAD si de bazele de date externe (de exemplu pointerele sint folosite extensiv de catre AutoCAD SQL Extension), pointerele pot fi distruse printr-un act deliberat din partea utilizatorului.

Comanda HANDLES DESTROY <CONFIRMATION-STRING> va dezactiva toate activitatile de atribuire a pointerelor in sesiunea curenta. <CONFIRMATION-STRING> este unul din cele sase siruri posibile pe care le poate introduce utilizatorul. AutoCAD genereaza unul dintre siruri la intimplare in timpul executiei comenzii; de aceea este imposibil de prezis de care sir este nevoie ca sa confirme comanda.

Verificarea atribuirii pointerelor

Variabila de sistem HANDLES este setata la 1 cind pointerele sint activate in sesiunea curenta.

Gasirea unei entitati cu ajutorul pointerului

Functia handent cere un argument de tip sir: pointerul unei entitati. Daca unei entitati din sesiunea curenta i se atribuie un pointer, functia handent va returna numele entitatii; daca nu, va returna nil.

Exemplu

intr-o noua sesiune, introduceti comenzile si expresiile care urmeaza. Extrageti un pointer de entitate si stabiliti numele entitatii folosind pointerul.

Activati pointerele in sesiunea curenta.

Command: handles
Handles are disabled.
ON/DESTROY: on

Desenati citeva entitati Line.

Command: line
etc

Extrageti un pointer cu una din entitatile Line.

Command: (setq elist (entget (car (entsel))))
Select object: pick a line

Command: (setq ehand (cdr (assoc 5 elist)))

Command: !ehand
'1B' (sau un sir similar)

Extrageti numele entitatii folosindu-i pointerul.

Command: (setq ename (handent ehand))
<Entity name: xxxxxxxx>

Recapitulare

Pointerele de entitati sint pastrate ca numere hexazecimale exprimate sub forma de siruri.

Pointerul nu poate fi schimbat niciodata. El poate fi numai distrus.

Pointerele sint pastrate in coduri DXF de grup 5 intr-o lista asociata entitatii.

Atribuirea de valori nu este intotdeauna secventiala.

Comanda HANDLES activeaza sau dezactiveaza pointerele.

Functia handent va returna numele entitatii prin pointerul entitatii.

exercitiul 43: salvarea seturilor de selectie

in acest exercitiu:

Veti folosi un program pentru a citi pointerele entitatilor.

Veti pastra pointerele intr-un fisier extern.

Veti citi fisierul extern si veti crea un set de selectie din pointerele entitatilor.

Programul savset.lsp din directorul student implementeaza doua comenzi pentru AutoCAD: SAVESET si GETSET.

SAVESET pastreaza pina la sase seturi de selectie diferite dintr-un desen si permite ca acestea sa fie folosite in timpul sesiunii de editare grafica. SAVESET salveaza pointerele dintr-un set de selectie intr-un fisier extern a carui nume este <dwgname>.st<n>, unde <dwgname> este numele desenului respectiv si <n> este un numar cuprins intre 1 si 6.

GETSET citeste pointerele entitatilor dintr-un fisier creat de SAVESET si construieste setul de selectie anterior din entitatile asociate cu pointerele.

Etape de lucru

Pastrati seturile de selectie in timpul sesiunii de editare prin scrierea si cititrea pointerelor in/si din fisierul extern.

Deschideti desenul ssget.lsp din directorul student.

incarcati programul savset.lsp in AutoCAD.

Folositi comanda SAVESET si salvati doua sau mai multe seturi de selectie.

Deschideti o noua sesiune de editare grafica cu ssget.

incarcati programul saveset.lsp.

Folositi comanda GETSET pentru a extrage unul dintre seturile de selectie pastrate.

Folositi comanda MOVE cu setul de selectie anterior.

Deschideti fisierul savset.lsp in editorul de text si examinati codul.

execitiul 44: un manager simplu pentru fisierele tip dwg

Acesta este un exercitiu optional

Fisierul drawman.lsp din directorul student implementeaza un sistem de management pentru fisiere tip dwg, foarte simplu pentru a ilustra modul cum pot fi folosite pointerele.

Puteti folosi comenzile din acest fisier urmind aceste etape:

incarcati fisierul drawman.lsp in AutoCAD.

Folositi comanda LOGIN.

Desenati citeva entitati.

Folositi comanda LOGOUT.

Folositi oricare dintre aceste comenzi pentru a afla informatii despre entitatile pe care le-ati desenat prin legaturi intre pointere si atribute intr-un bloc inserat aplicatiei.

finger
rlist
seluser
seleco

Aduceti fisierul in editorul de text si studiati-l. Codul este scurt, usor de inteles si bine comentat.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1056
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved