Scrigroup - Documente si articole

     

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


Selectarea numelui unei entitati prin selectie grafica cu cursorul AutoLISP

autocad



+ Font mai mare | - Font mai mic



Selectarea numelui unei entitati prin selectie grafica cu cursorul AutoLISP

Un program AutoLISP poate extrage numele unei entitati cerind utilizatorului sa selecteze o entitate.

Obiective

in acest capitol veti studia:

Cum sa extrageti numele unei entitati interactiv cu utilizatorul.



Cum sa folositi functia entsel.

Cum sa deplasati centrul cercului selectat de utilizator.

Functia entsel

Functia entsel va cere sa selectati un singur obiect. Functia returneaza o lista cu doua obiecte: numele entitatii si punctul in care a fost selectat; daca nu se selecteaza nimic atunci functia returneaza nil.

Puteti extrage numele entitatii din lista returnata de functia entsel cu ajutorul functiei car.

Exemplu

Introduceti expresiile care urmeaza.

intr-un desen nou , desenati o linie si un cerc.

Command: line
From point: 1,1
To point: 5,5
To point: Enter

Command: circle
3P/2P/TTR/<Center point>: 5,5
Diameter/<Radius>: 1

Selectati cercul in punctul 5,6,0 ca raspuns la cererea functiei entsel si legati valoarea returnata de variabila epick.

Command: (setq epick (entsel))
Select object: pick circle at 5,6,0
(<Entity name: xxxxxxxx> (5.0 6.0 0.0))

Command: !epick
(<Entity name: xxxxxxxx> (5.0 6.0 0.0))

Extrageti numele entitatii din lista returnata de functia entsel si pastrati-l in variabila ename.

Command: (setq ename (car epick))
<Entity name: xxxxxxxx>

Command: !ename
<Entity name: xxxxxxxx>

{tergeti entitatea Circle.

Command: (command '._erase' ename '')

Recapitulare

Functia entsel extrage o lista a proprietatilor unui obiect selectat de utilizator: numele entitatii si punctul in care a fost selectat.

Partea car a unei liste selectate de entsel reprezinta numele unei entitati.

exercitiul 28: selectarea si modificarea unui cerc

in acest exercitiu:

Veti consolida cunostintele despre selectia interactiva a entitatilor.

Veti crea un program care cere utilizatorului sa selecteze o entitate Circle si un nou punct de centru care deplaseaza centrul cercului

Etape de lucru

in editorul de texte, deschideti fisierul text numit circen.lsp din directorul student.

Adaugati codul care face urmatoarele:

Defineste functia c:circen.

Cere utilizatorului o entitate cu functia entsel.

Daca utilizatorul selecteaza o entitate, codul trimite lista asociata entitatii ca argument la functia circen_mod.

Salvati fisierul.

incarcati programul in AutoCAD.

Verificati comanda CIRCEN intr-un desen care contine cel putin un cerc.

(defun circen_mod (elist)

(if

(/= 'CIRCLE' (cdr (assoc 0 elist))) ;is it a circle?

(prompt 'anNot a circle.') ;if not, exit

(progn

(setq old_cen (cdr (assoc 10 elist))) ;get current center

(initget 1) ;no null reponse

;for getpoint

;get new center

(setq new_cen (getpoint old_cen 'anCenter point: '))

(entmod ;modify the circle

(subst (cons 10 new_cen) (assoc 10 elist) elist)

)

)

exercitiul 29: probleme optionale de acces la entitati

Acestea sint exercitii optionale pe care le puteti completa in clasa sau in afara clasei.

Scrieti un set de definitii de functii.

c:movelast

Deplasati ultima entitate in baza de date.

Cereti operatorului punctul de baza si al doilea punct al deplasarii..

c:printent

Selectati fiecare entitate din desen, una dupa alta.

Tipariti fiecare tip si layer ale entitatii in zona liniei de comanda.

c:red

Cereti operatorului sa selecteze o entitate.

Schimbati culoarea entitatii in RED (reprezentata intr-o lista asociata de codul de grup 62 si numarul intreg 1).

Observati ca puteti adauga o noua sublista la lista asociata in loc sa inlocuiti o lista existenta folosind functia entmod. O sublista de grup 62 nu este prezenta intr-o lista asociata unei entitati daca culoarea entitatii este BYLAYER.

c:chglayer

Cereti operatorului sa selecteze o entitate.

Cereti operatorului numele unui nivel.

Schimbati nivelul entitatii.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1308
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