hallo, kan iemand onderstaand lisp nakijken ? :
ik had een bestaande lisp aangepast, maar ik heb er verder niet zoveel verstand van,
hij geeft de melding : ; error: no function definition: DXG
groetjes, martin
(defun c:ml ( / txtlst)
(setq zklay "DETAIL_NUMBERS")
(setq sset (ssget "x" (list (cons 0 "TEXT") (cons 8 zklay))))
;; Samenstellen lijst met teksten
(if sset (setq sslen (sslength sset)) (setq sslen 0))
(while (> sslen 0)
(setq sslen (1- sslen) ent (ssname sset sslen) txt (dxg 1 ent))
(setq txtlen (strlen txt) lstcar (substr txt txtlen 1))
(if (or (= lstcar "+") (= lstcar "*"))
(setq txt (substr txt 1 (1- txtlen)))
)
(setq txtlst (append txtlst (list txt)))
)
(if (not txtlst)
(progn
(alert (strcat "Geen teksten op layer " zklay " gevonden"))
(exit)
)
)
;; sorteren en dubbele verwijderen
(setq txtlst2 (acad_strlsort txtlst))
(setq tel 0 prvtxt nil txtlst nil)
(while (< tel (length txtlst2))
(setq txt (nth tel txtlst2))
(cond
((not prvtxt)
(setq prvtxt txt)
)
((= txt prvtxt)
(princ)
)
(T
(setq txtlst (append txtlst (list prvtxt)))
(setq prvtxt txt)
)
)
(setq tel (1+ tel))
)
(setq txtlst (append txtlst (list prvtxt)))
(setq filenm (strcat (getvar "dwgprefix") "details.lst"))
(setq f1 (open filenm "w"))
(foreach txt txtlst
(write-line txt f1)
)
(close f1)
(alert (strcat (itoa (length txtlst)) " details in " filenm " geplaatst."))
(princ)
)
Beste Martin,
Je mist de functie dxg bij je programma!
Waarschijnlijk is dit de funtie:
(defun dxg (code ent)
(cdr (assoc 1 (entget ent)))
)
Met vriendelijke groet, HofCAD CSI.
ja, de melding is weg, bedankt daarvoor, maar hij sorteert maar 1 tekst, terwijl er ca. 300 teksten op deze laag staan. weet u hoe dat kan ? groet, Martin