;BSP: ; (f->txt '(defun musterprogramm ( a b c / ) ....... ) "0,0,0" "Layer") ; (txt->f "layer") (defun f->txt (expr inpkt lay / lay inpkt expr str->lst :M_T mapin) ;SUBS__________________________________START (defun str->lst (n :str / :str tmp i n) (setq i 1) (repeat (strlen :str) (setq tmp (cons (substr :str i n) tmp)) (setq i (1+ i)) ) (reverse tmp) ) (defun mapin(expr a / ) (cond ( (null a)nil) ( (atom a)((eval expr)a)) ( (and(=(type a)'LIST)(cdr a)(atom(cdr a))) (cons (mapin expr(car a)) ((eval expr)(cdr a)) ) ) ('T (append (list(mapin expr(car a))) (mapin expr(cdr a)) ) ) ) ) (defun :M_T (:str inpkt lay / :str inpkt lay :make) (setq Clay% (getvar "clayer") echo% (getvar "cmdecho") osnap% (getvar "osmode") ) (setvar "cmdecho" 0) (setvar "osmode" 0) (setq :make (LIST '(0 . "TEXT") (cons 10 inpkt) '(40 . 0.0001) '(50 . 0.0) (cons 1 (vl-princ-to-string :str)) ) ) (if (= lay "c") nil (command "_layer" "_make" (vl-princ-to-string lay) "") ) (entmake :make) (setvar "clayer" Clay%) ) ;SUBS__________________________________END (:M_T (mapcar 'ascii (str->lst 1 (vl-princ-to-string (mapin '(lambda (a / ) (if (= (type a) 'STR) (if (= a "") '(command) (list (read "apply") (list (read "quote") (read "strcat") ) (list (read "mapcar") (list (read "quote") (read "chr") ) (list (read "quote") (mapcar 'ascii (str->lst 1 a) ) ) ) ) ) a ) ) (list (strcat (substr (vl-princ-to-string (fix (getvar "cdate"))) 3) (substr (rtos (getvar "cdate") 2 6) 10 2) (substr (rtos (getvar "cdate") 2 6) 12 2) (substr (rtos (getvar "cdate") 2 6) 14 2)) expr) ) ) ) ) inpkt lay ) (setvar "cmdecho" echo%) (setvar "osmode" osnap%) (command "_layer" "_OFF" lay "_LOCK" lay "_PLOT" "_N" lay (command)) ) (defun txt->f (lay / :get-GC o-lst) ;START: sortieren nach Gruppencodes (defun :get-GC (O-lst :GC / GC-lst n GC a b O-lst tmp) (if (not (= (type O-lst) 'PICKSET)) (progn (if (= (type O-lst) 'LIST) (setq O-lst (car O-lst)) ) (mapcar '(lambda (a / ) (if (atom (setq tmp (cdr (assoc a (entget O-lst))))) (list tmp) tmp ) ) :GC ) ) (progn (setq n 0) (repeat (sslength O-lst) (setq GC-lst (cons (entget (ssname O-lst n)) GC-lst) n (+ n 1) ) ) (if (= (atom :GC) 'T) (setq :GC (list :GC)) ) (mapcar '(lambda (a / ) (mapcar '(lambda (b / ) (if (atom (setq tmp (cdr (assoc b a)))) (list tmp) tmp ) ) :GC ) ) GC-lst ) ) ) ) ;END: sortieren nach Gruppencodes (setq o-lst (ssget "_x" (list (cons 0 "TEXT") (cons 8 (vl-princ-to-string lay)) ) ) ) (mapcar '(lambda (c / ) (eval (cadr c)) ) (mapcar '(lambda (b / ) (read (apply 'strcat b ) ) ) (mapcar '(lambda (a / ) (mapcar 'chr (read (caar a)) ) ) (:get-GC o-lst '(1)) ) ) ) )