Vytisknout stránku | Zavřít okno

výpis hladin

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=5747
Datum vytištění: 11.čer.2026 v 00:13


Téma: výpis hladin
Odeslal: Ferdinand
Předmět: výpis hladin
Datum odeslání: 07.led.2008 v 10:56
Navazuji na již uzavřené téma
http://www.cadforum.cz/forum/forum_posts.asp?TID=3128&KW=v%FDpis+hladin - 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.


-------------
-FerTh-



Odpovědi:
Odeslal: Seiner
Datum odeslání: 07.led.2008 v 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))
       )
) )


-------------
Vítězslav Seiner

Chrudim



Vytisknout stránku | Zavřít okno