CATEGORII DOCUMENTE |
Functia entmake creaza noi entitati AutoCAD fara sa foloseasca comenzi AutoCAD de tip LINE, ARC, CIRCLE. Functia entmake adauga entitati noi direct in baza de date.
Functia entmake cere un argument: o lista asociata entitatii. Functia returneaza lista asociata entitatii in intregime daca reuseste sa creeze o entitate, altfel returneaza nil.
Lista asociata folosita ca argument trebuie sa contina toate informatiile necesare pentru a defini entitatea. Definitii optionale, cum ar fi layerul implicit, sint omise din lista asociata.
De exemplu, fiecare dintre aceste expresii creaza o entitate Line in WCS pe Layerul 0 de la 1,1,0 la 5,5,0.
(entmake
'(
(0 . 'LINE')
(8 . '0')
(10 1.0 1.0 0.0)
(11 5.0 5.0 0.0)
(210 0.0 0.0 1.0)
)
(entmake
(list
(cons 0 'LINE')
(cons 8 '0')
(list 10 1.0 1.0 0.0)
(list 11 5.0 5.0 0.0)
(list 210 0.0 0.0 1.0)
)
exercitiul 39: crearea unei linii cu entmake
Creati o functie numita c:xline intr-un fisier text numit xline.lsp in directorul student
Comanda xline ar trebui sa faca urmatoarele:
Sa ceara utilizatorului un punct de start.
Sa ceara utilizatorului un punct de sfirsit.
Sa creeze o entitate de tip Line in baza de date prin apelarea functiei entmake.
Sa deseneze linia intre cele doua puncte pe layerul curent.
Entitati complexe cum sint poliliniile, definitiile de Block si entitatile Insert atribute pot fi definite prin apelarea de citeva ori a functiei entmake care sa le defineasca subentitatile.
De indata ce AutoCAD vede ca functia entmake creaza o entitate complexa, acesta creaza un fisier temporar in care pastreaza toate datele definitiilor. Dupa definirea entitatii prin apelarea functiei entmake), AutoCAD creaza si adauga o entitate de capat (o entitate SEQEND pentru o polilinie sau o entitate BLKEND pentru o definitie Block), desfiinteaza fisierul temporar si, in cazul definitiei Block, returneaza numele Blockului care a fost definit si nu lista asociata entitatii definite.
Expresiile care urmeaza creaza o entitate de tip polilinie pe layerul curent si UCS cu o elevatie 0 si doua vertexuri la 1,1,0 si 5,5,0.
(entmake
(list
(cons 0 'POLYLINE')
(cons 66 1)
(list 10 0.0 0.0 0.0)
)
(entmake
(list
(cons 0 'VERTEX')
(list 10 1.0 1.0 0.0)
)
(entmake
(list
(cons 0 'VERTEX')
(list 10 5.0 5.0 0.0)
)
(entmake
(list
(cons 0 'SEQEND')
)
Expresiile care urmeaza creaza o definitie Block numita myblock in tabelul Block. Definitia are un punct de baza de 5,5,0 si este formata din urmatoarele entitati:
O entitate de tip Line pe layerul curent si UCS de la 5,5,0 la 10,1,0.
O entitate de tip Circle pe layerul curent si UCS la 5,5,0 cu o raza de 1.0.
(entmake
(list
(cons 0 'BLOCK')
(cons 2 'MYBLOCK')
(cons 70 0)
(list 10 0.0 0.0 0.0)
)
(entmake
(list
(cons 0 'LINE')
(list 10 5.0 5.0 0.0)
(list 11 10.0 1.0 0.0)
)
(entmake
(list
(cons 0 'CIRCLE')
(list 10 5.0 5.0 0.0)
(cons 40 1.0)
)
(entmake
(list
(cons 0 'ENDBLK')
)
exercitiul 40: crearea unei polilinii cu functia entmake
Creati o functie numita c:polymake intr-un nou fisier text numit polymake.lsp in directorul student.
Functia trebuie sa faca urmatoarele:
Sa faca o noua entitate de tip Polyline cu functia entmake.
Sa introduca o bucla.
Sa ceara utilizatorului un vertex.
Sa apeleze functia entmake atita timp cit utilizatorul selecteaza un punct.
Sa iasa din bucla cind utilizatorul introduce o valoare nula.
Sa termine de facut polilinia prin apelarea functiei entmake pentru inserarea entitatii SEQUEND.
Salvati fisierul text.
incarcati programul in AutoCAD si incercati comanda polymake.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1320
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved