Setarea cotei unui punct pe baza unui text

Creat de bau, Noi 12, 2012, 01:21 PM

« precedentul - următorul »

bau

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?

zamfy

#1
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

zamfy

#delete

Modificat de zamfy (12-11-2012 15:10:03)

bau

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. :))

piciorlung_cristi

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)

zamfy

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.

bau

http://fbx.ro/otk2ypyp3j4psjnt" target="_blank">http://fbx.ro/otk2ypyp3j4psjnt

Fisierul 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)