CATEGORII DOCUMENTE |
Un program AutoLISP poate extrage numele unei entitati cerind utilizatorului sa selecteze o entitate.
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 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.
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 '')
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
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.
Deplasati ultima entitate in baza de date.
Cereti operatorului punctul de baza si al doilea punct al deplasarii..
Selectati fiecare entitate din desen, una dupa alta.
Tipariti fiecare tip si layer ale entitatii in zona liniei de comanda.
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.
Cereti operatorului sa selecteze o entitate.
Cereti operatorului numele unui nivel.
Schimbati nivelul entitatii.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1333
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved