Hallo Cadgemeinde,
nach der Einspielung einer Datensicherung habe ich
folgendes Problem mit einer Lisp-Routine.
Es erscheint folgende Fehlermeldung.
Befehl: (if(not C:bw_setact)(load "eigsetz2"))
Befehl: bw_setact
; ----- LISP Error : Call Stack -----
; [0]...C:BW_SETACT <<--
;
; ----- Error around expression -----
(CDR PROP)
;
; error : bad argument type <NIL> ; expected <INTEGER> at [ITOA]
***************************************
Den Autor dieser Routine kann ich nicht erreichen.
Weiß jemand den Grund für diese Fehlermeldung?
Gruß
Anita99
;;; Lisp-File created at... DATE : 05.August.2004 / Time : 10:50:28
;;; Source by Rolf "Benwisch" Wischnewski (www.benwisch.de)
;;; ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××-
(vl-load-com) ;_ load ActiveX support
;;; Name of main program(s) : (C:BW_SETACT)
;;; List of functions
;;; BW_AC-DOC
;;; BW_ACAD
;;; BW_VLA-OBJ
;;; BW_VLX:GETPROP
;;; ENAME?
;;; ETYPE<
;;; STR?
(defun c:bw_setact (/
obj
vla-obj
sysvarlst
bw_ac-doc
bw_acad
bw_vla-obj
bw_vlx:getprop
ename?
etype<
str?
;;; GLOBALS *SetAct#sysvar*
;;; *setact#sysvardimstyle*
;;; *ACAD-OBJECT*
;;; *ACTIVE-DOC*
)
;;;
;;; ---------------------
;;; ×× LOCAL FUNCTIONS ××
;;; ---------------------
;;;
(defun bw_ac-doc (/)
(cond (*active-doc*)
((quote default)
(setq *active-doc* (vla-get-activedocument (bw_acad)))
)
)
)
;;;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
(defun bw_acad (/)
(cond (*acad-object*)
((quote default)
(setq *acad-object* (vlax-get-acad-object))
)
)
)
;;;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
(defun bw_vla-obj (ename /)
(cond ((= (type ename) (quote ename))
(vlax-ename->vla-object ename)
)
((= (type ename) (quote vla-object)) ename)
)
)
;;;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
(defun bw_vlx:getprop (#vla-obj #proplst /)
(mapcar (function (lambda (p)
(if (vlax-property-available-p #vla-obj p)
(cons p (vlax-get-property #vla-obj p))
(cons p nil)
)
)
)
#proplst
)
)
;;;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
(defun ename? (ent)
(if (= (type ent) (quote ename))
t
)
)
;;;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
(defun etype< (ent)
(if ent
(cdr (assoc 0 (entget ent)))
)
)
;;;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
(defun str? (ent)
(if (= (type ent) (quote str))
t
)
)
;;;×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
;;;
;;; -----------------------
;;; ×× END OF FUNCTIONS ××
;;; -----------------------
;;;
;;; < SNIP MAIN >
;;;
(setq sysvarlst (quote ("TEXTSTYLE"
"TEXTSIZE"
"CELWEIGHT"
"CLAYER"
"CECOLOR"
"CELTYPE"
"CELTSCALE"
"HPNAME"
"HPANG"
"HPSCALE"
)
)
)
(if (setq obj (cadr (ssgetfirst)))
(progn (setq obj (list (ssname obj 0))) (sssetfirst))
(progn (initget "Vorher Setze(vonlayer)")
(setq obj
(entsel
"\nFür Eigenschaft Objekt wählen oder [Vorher/Setze(vonlayer)] : "
)
)
)
)
(cond
((str? obj)
(cond ((= "Vorher" obj)
(if *setact#sysvar*
(progn (mapcar (quote setvar) sysvarlst *setact#sysvar*)
(if *setact#sysvardimstyle*
(vla-put-activedimstyle
(bw_ac-doc)
(vla-item (vla-get-dimstyles (bw_ac-doc))
*setact#sysvardimstyle*
)
)
)
)
(princ "\nKein vorheriger Auswahlsatz vorhanden!")
)
)
((= "Setze(vonlayer)" obj)
(foreach sysvar (quote (("celweight" . -1)
("celtscale" . 1.0)
("cecolor" . "bylayer")
("celtype" . "bylayer")
)
)
(vl-catch-all-apply
(quote setvar)
(list (car sysvar) (cdr sysvar))
)
)
)
)
)
((ename? (setq obj (car obj)))
(setq *setact#sysvar* (mapcar (quote getvar) sysvarlst)
*setact#sysvardimstyle* (getvar "DIMSTYLE")
)
(foreach sysvar
(mapcar (quote cons)
sysvarlst
(mapcar (function (lambda (prop)
(if (= "Color" (car prop))
(itoa (cdr prop))
(cdr prop)
)
)
)
(bw_vlx:getprop
(setq vla-obj (bw_vla-obj obj))
(list (if (= "DIMENSION" (etype< obj))
"TextStyle"
"StyleName"
)
(if (= "DIMENSION" (etype< obj))
"TextHeight"
"Height"
)
"Lineweight"
"Layer"
"Color"
"Linetype"
"LinetypeScale"
"PatternName"
"PatternAngle"
"PatternScale"
)
)
)
)
(if (cdr sysvar)
(vl-catch-all-apply
(quote setvar)
(list (car sysvar) (cdr sysvar))
)
)
)
(if (= "DIMENSION" (etype< obj))
(vla-put-activedimstyle
(bw_ac-doc)
(vla-item (vla-get-dimstyles (bw_ac-doc))
(vlax-get-property vla-obj (quote stylename))
)
)
)
)
((quote else) (princ "\n** Programmende **"))
)
(princ)
;;;
;;; < SNIP MAIN >
;;;
)
;;; end of lisp-file
;;;
(princ) ;_ exit quietly
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP