Zobrazit plnou verzi příspěvku: potlacenie dialogoveho okna v lispe

Augur
14.08.2007, 07:43
Dobry den. Chcem v scripte pouzit lisp, ktory vyexportuje vsetky texty z vykresu. Pred samotnym ulozenim textoveho dokumentu sa mi objavi dialogove okno, ktore neviem potvrdit priamo zo scriptu.. Ako sa da upravit lisp (vykonavajuci export textu) aby som obysiel dialog.. Uvazoval som, ci by nebolo riesenim pouzit aplikaciu Timer.arx, ale pod CAD2007 sa neda nacitat. Augur2007-08-14 08:33:41

alfred
14.08.2007, 08:41
Nerozumim jaky dialog mate na mysli.
Pokud dialog na ulozeni souboru, tak promenna FILEDIA.
Pokud se jedná o dialog nejake funkce AutoCadu, tak zalezi na tom, zda podporuje i rezim bez dialogu - casto ten prikaz zacina "-" (napr. "plot" a "-plot").


Mrázek
14.08.2007, 08:42
Dialogové panely se vypínají systémovou proměnnou FILEDIA (načtení a uložení souborů), popř. CMDDIA (ostatní příkazy). Takže na začátku rutiny si tyto proměnné nastavte na 0 a na jejím konci zpět na 1.

Augur
14.08.2007, 11:06
Ano o premennych "filedia" a cmddia" viem a pouzivam ich, ale na toto nemaju vlyv. Kedze tento export sa robi pomocou lispu, zaujimalo ma, ci sa da nejakou upravou samotneho lispu potlacit dialog.
Samotny lisp vyzera asi takto.

(defun c:txtexprt ()
(setq sset (ssget '((0 . "TEXT"))))
(if sset
    (progn
      (setq itm 0)
      (setq num (sslength sset))
      (setq fn (getfiled "Text Export File" "" "txt" 1))
      (if (/= fn nil)
        (progn
          (setq fh (open fn "w"))
          (while (< itm num)
            (setq hnd (ssname sset itm))
            (setq ent (entget hnd))
            (setq stv (cdr (assoc 1 ent)))
            (princ (strcat stv "\n") fh)
            (setq itm (1+ itm))
          )
          (close fh)
        )
      )
    )
)
(setq sset nil)
(princ)
)

alfred
14.08.2007, 14:25
vzdyt Vy si ten dialog sam otevirate.
radku
(setq fn (getfiled "Text Export File" "" "txt" 1))

nahradte
(setq fn (getstring "Zadej jmeno souboru: "))

nebo rovnou natvrdo napsat hodnotu stringu

pokud chcete aby to zaviselo na promene FILEDIA tak bych to resil podminkou