Ai un punct, dar fara cota (z). Cota se gaseste in desen, sub forma unui text.
Prin simpla selectare a celor doua entitati, z-ul punctului ia valoarea text-ului.
Pentru a putea urmari care puncte (si texte) au fost selectate, acestea isi schimba culoarea in rosu si trec pe un alt layer, dupa ce au fost selectate.
Pentru a tine la minimum contanctul cu tastatura, este necesar un singur Enter la fiecare pereche, repetarea comenzii facandu-se automat.
Deci:
1. scris comanda
2. selectezi punct+text
3. enter
4. setare culoare + trecere pe un nou layer
5. se reia de la 2
Ciclul se intrerupe prin tasta ESC.
Intereseaza pe cineva?
Am eu ceva asemanator:
;;Aduce punctele la elevatia din textul cotei
(defun c:EP (/ #SS #Elev)
(vl-load-com)
(and
(setq #SS (ssget "_:L" '((0 . "POINT,TEXT"))))
(foreach x (setq #SS (mapcar 'vlax-ename->vla-object
(vl-remove-if 'listp (mapcar 'cadr (ssnamex #SS)))
) ;_ mapcar
) ;_ setq
(if (vlax-property-available-p x 'TextString)
(setq #Elev (atof (vla-get-textstring x)))
) ;_ if
T
) ;_ foreach
(or #Elev (setq #Elev (getreal "\nCota: ")))
(foreach x #SS
(if (eq "AcDbPoint" (vla-get-objectname x))
(progn
(vla-put-coordinates
x
(vlax-3d-point
(reverse
(cons
#Elev
(cdr (reverse (vlax-safearray->list (vlax-variant-value (vla-get-coordinates x))))
) ;_ cdr
) ;_ cons
) ;_ reverse
) ;_ vlax-3d-point
) ;_ vla-put-coordinates
(vla-put-color x 6)
) ;_ progn
) ;_ if
) ;_ foreach
) ;_ and
(princ)
) ;_ defun
#delete
Modificat de zamfy (12-11-2012 15:10:03)
Intereseaza pe cineva in sensul daca il vrea cineva, nu sa mi-l faca altcineva. :))
Nu de alta, dar il facusem pentru doua persoane si ma gandeam poate ajuta si pe altii. :))
PT. BAU: Daca ma poti ajuta cu lispul despre care vorbesti ti-as fi recunoscator! Stima
PS: adresa de mail: cristi . piciorlung @ yahoo . com (fara spatii)
Stiam la ce te-ai referit si mai demult m-am lovit si eu de problema punctelor doar in 2D, cu cota alaturata, asa ca am postat unul din programele pe care le-am folosit. Dupa cum vezi, sunt persoane interesate de aceste programe. Nu crezi ca ar fi mai bine sa il postezi aici, decat sa il trimiti fiecaruia pe mail? Asta daca e gratis, bineinteles.
http://fbx.ro/otk2ypyp3j4psjntFisierul e uploadat acolo.
Singura problema e ca nu merge pe anumite versiuni de autocad, in special pe cele mai vechi.
Mod de utilizare:
In Autocad comanda: "netload" si se incarca fisierul dll
1. se tasteaza "zDinMtext"
2. selectezi punct+text
3. enter ( setare culoare + trecere punct pe un nou layer/ trecere text pe un nou layer)
4. se reia de la 2
Ciclul se intrerupe prin tasta ESC.
Modificat de bau (13-11-2012 11:57:18)