Moin !
Weiß jemand fähiges, warum das folgende lisp nicht unter Acad2000 (unter 2002 läuft es) funktioniert ? (no function definition : init bonus error). Es sollte möglichst unter beiden Versionen laufen...
----------------
(Defun C:LAYISO (/ SS CNT LAY LAYLST VAL VPMODE)
  (init_bonus_error
    (list
      (list "cmdecho" 0
            "expert"  0
      )
      T    ;flag. True means use undo for error clean up.
    );list
  );init_bonus_error
  (if (and (= 0 (getvar "tilemode"))                          ; if in a paper space
          (/= 1 (getvar "cvport"))                          ; viewport
      )
    (setq VPMODE T)                                          ; set flag for viewport behavior
  )
  (if (not (setq SS (ssget "_i")))
    (progn
      (prompt "\nObjekt(e) auf zu isolierenden Layern wählen: ")
      (if(null(setq SS (ssget)))
          (setq ss(ssget "_X"(list(cons 8(getstring"\nLayernamen eingeben [mehrere durch Komma trennen]: ")))))
        )
    )
  )
  (if SS
    (progn
      (setq CNT 0)
      (while (and ss
                  (> (sslength ss) 0)
                  (setq LAY (ssname SS CNT))
            );and
        (setq LAY (cdr (assoc 8 (entget LAY))))
        (if (not (member LAY LAYLST))
          (setq LAYLST (cons LAY LAYLST))
        )
        (setq CNT (1+ CNT))
      )
      (cond
        (VPMODE
          (command "_.vplayer" "_freeze" "*" "_Current")
          (foreach VAL LAYLST (command "_Thaw" VAL "_Current"))
          (command "")
          (if (= (length LAYLST) 1)
            (prompt (acet-str-format "\nLayer %1 wurde in diesem Ansichtsfenster isoliert." (car LAYLST)))
            (prompt (acet-str-format "\n%1 Layer wurden in diesem Ansichtsfenster isoliert." (itoa (length LAYLST))))
          )
        )
        (T
          (if (member (getvar "CLAYER") LAYLST)
            (setq LAY (getvar "CLAYER"))
            (setvar "CLAYER" (setq LAY (last LAYLST)))
          )
          (command "_.-LAYER" "_OFF" "*" "_Y")
          (foreach VAL LAYLST (command "_ON" VAL))
          (command "")
          (if (= (length LAYLST) 1)
            (prompt (acet-str-format "\nLayer %1 wurde isoliert." (car LAYLST)))
            (prompt (acet-str-format "\n%1 Layer wurden isoliert. %2 ist der aktuelle Layer."
                                      (itoa (length LAYLST)) LAY)
            )
          )
        )
      )
    )
  )
  (restore_old_error)
  (princ)
)
----------------------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP