Zobrazit plnou verzi příspěvku: výpis hladin

Ferdinand
07.01.2008, 10:56
Navazuji na již uzavřené téma
http://www.cadforum.cz/forum/forum_posts.asp?TID=3128&KW=v%FDpis+hladin
Nyní potřebuji mít v lispu k dispozici seznam hladin, ze které beru jednu hladinu po druhé a provádím:
  **1  je-li uzamčena/zmražena/vypnuta->odemkni/rozmraž/zapni).
  **2  obsahuje-li její název ABC, přejmenuj ji na 123_ABC
  **3  ...atd...
Jasné, že to bude v cyklu, ale nedaří se mi sestrojit ten seznam hladin - někam je třeba asi napsat list, ale kam?
...
(setq HL (tblnext "LAYER" "T")) ;provede vypis vlastnosti 1. hladiny
(while HL  (setq JHL (cdr (assoc 2 HL))) ;promenne JHL priradi nazev 1. hladiny
    (if ....
      (command "_......) ;pri splnenem kriteriu provede potrebne operace
    )
  (setq HL (tblnext "LAYER")) ;provede vypis vlastnosti dalsi hladiny)
...
Pro **1 šlo v podstatě udělat použitím příkazu
(command "_-layer" "_ON" "*" "_T" "*" "_U" "*" "")
ale mně šlo hlavně o tu **2.

Seiner
07.01.2008, 11:25
Už je tomu drahně let, co jsem psal něco, co pracuje přes všechny hladiny. Rozebírat se mi to nechce - snad se inspirujete ukázkou.
 
;SEZNAM HLADIN, PRUTY/TRAMY(setq  k 0 hlad nil i 0 t 1)(tblnext "LAYER" k)(while (/= k nil)       (setq k (cdr(assoc 2(tblnext "LAYER"))))       (if (and(/= k nil)(/= k "PRUTY")(/= k "TRAMY")(/= k "CISLAU")           (/= k "CISLAP"))           (setq hladiny (append hladiny            (list k ))))       (setq t nil))
(if (= typ "S")(progn          (while (< i(length hladiny))           (setq typs nil)      (setq typs (strcase(substr (setq hla(nth i hladiny)) (strlen hla) 1)))      (while (and (/= typs "P") (/= typs "T"))        (prompt (strcat " \n Obsahuje hladina " (setq hla (nth i hladiny))                                  " (P)ruty nebo (T)rámy ?"))        (setq typs (strcase (getstring)))      )     (setq hlad (append hlad (list (list hla typs))))     (setq i (1+ i))      )               )(progn     (setq i 0)      (while (< i (length hladiny))                (setq hlad(append hlad (list(list (nth i hladiny) typ)))                      i (1+ i))       )
) )