Nějak se nemohu dostat s tím dál... Představa: Potřebuji zjistit, jestli ve výkresech existují nějaké bloky s konkrétním názvem, pokud ne, tak výkres se uloží zvlášť do jiného podadresáře.
Příklad:
1. otevřený výkres se jmenuje 111.
dwg, měl by obsahovat bloky s názvem 111-B, 111-N, 111-P (anebo alespoň jednoho z nich)
Hledám bloky s názvem 111_C, 111_C-B, 111_C-N, 111_C-N (tj. porovnávám 111-B <-> 111_C-B, ...)
Pokud ve výkrese 111 některý blok tohoto názvu (s indexem _C) najde (tj. shoduje se "kořen" názvů 111), končí a otevře další výkres s názvem 222.
dwg...
Pokud ve výkrese 111 nenajde ani jeden z těch bloků (s indexem _C), tak 111.
dwg se uloží do podadresáře
<AktualniAdresar>\neshoda-bloky\111.
dwg, končí a otevře další výkres s názvem 222.
dwg...
(defun S::STARTUP ()
...
;;;;;podrutina pro ziskani odkladaciho podadresare
(defun C:ADR (/ D1 D2 DWG A1 A2 A3)
(setq D1 (getvar "cdate")) ;20071213.15 /akt. datum/
(setq D2 (rtos (fix D1) 2 0)) ;"20071213"
(setq DWG (cadr (fnsplitl (getvar "dwgname")))) ;nazev akt.vykresu
(setq A1 (getvar "dwgprefix")) ;<AktualniAdresar>
(setq A2 (strcat A1 "neshoda-bloky" D2 "\\")) ;nazev podadresare
(setq A3 (strcat A2 DWG)) ;nazev akt. vykresu s plnou cestou
(command "shell" (strcat "mkdir" " " A2)) ;zalozi podadresar A2
(princ)
)
...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;zacatek procedury
(C:ADR) ;ziskani podadresare
(setq
DWG-B (strcat DWG "-B")
DWG-N (strcat DWG "-N")
DWG-P (strcat DWG "-P")
DWG_C (strcat DWG "_C")
DWG_C-B (strcat DWG_C "-B")
DWG_C-N (strcat DWG_C "-N")
DWG_C-P (strcat DWG_C "-P")
)
(setq SS1 (list DWG DWG-B DWG-N DWG-P))
(setq SS2 (list DWG_C DWG_C-B DWG_C-N DWG_C-P))
(if (and (tblsearch "insert" SS1) (tblsearch "insert" SS2))
nil
(command "_saveas" "" A3)
)
...
...a tady to nevím jestli to takhle funguje a jak by to mělo být dál ...
Lisp je pojmenován
acad2004.lsp, je umístěn v
<AktualnimAdresari>. Proces startuje buď kliknutím na 1. výkres anebo napsáním "
acad" do přík. řádku, výkresy se otvírají jeden po druhém a vyhodnocují se...
Upravil Ferdinand - 30.led.2008 v 21:44