ok...
but...
Why exaclty use diesel ??
In your lisp program you must have your block count in a variable right ?
try to use this variable with..
$(GETVAR, your variable)
or...there is my block count program.
;| ;
B L I S T ;
Par: Andrea Andreetti ;
2005-08-4 ;
;
Programme permettant de calculer le nombre ;
de bloc selon la couche spécifié. |;
;| ;
;
EXÉCUTION MBLIST ;
|;
(defun c:MBlist ()
(setq la1 nil)
(setq la3 nil)
(setq bname (ssget))
(if (not bname)
(progn
(alert " No entity was selected.")
(exit)
)
)
(setq sscount (sslength bname))
(setq val1 (- sscount 1))
(setq tlen 0)
(repeat sscount
(setq a1 (entget (ssname bname val1)));;détail de l'entité
(setq a2 (cdr (assoc 2 a1)));;nom du block
(if a2
(progn
(setq a3 (cdr (assoc 8 a1)));;nom du de la couche
(setq BLitem (strcat a2 "," a3))
(setq la1 (append la1 (list BLitem)))
;;; (createfile)
);;progn
);;if
(setq val1 (- val1 1))
);;end repeat
(if (not a3)
(progn
(alert " No Block was detected in this selection.")
(exit)
)
)
(setq la1 (acad_strlsort la1))
(setq cont 1)
(setq itemp (car la1))
(setq lalist (cdr la1))
(foreach a la1
(if (= itemp (car lalist))
(progn
(setq cont (+ cont 1))
(setq itemp (car lalist))
(setq lalist (cdr lalist))
)
(progn
(setq la2 (strcat (rtos cont) "," itemp))
(setq la3 (append la3 (list la2)))
(setq itemp (car lalist))
(setq lalist (cdr lalist))
(setq cont 1)
)
);;if
);;foreach
(setq F_space " ")
(setq dwglengt (- (strlen (getvar "DWGNAME")) 4))
(setq MBfilename (substr (getvar "DWGNAME") 1 dwglengt))
(setq MBlistfilename (strcat (getvar "DWGPREFIX") MBfilename ".txt"))
(setq projetname (strcat (getvar "DWGPREFIX") (getvar "DWGNAME")))
(initget 1 "Yes No")
(setq question1 (strcase (getkword "Do you want to export the result in txt file ? (Yes/No) ")))
(if (= question1 "YES") (MBexportlist))
(if (= question1 "NO") (MBscreenonly))
(MBresetvar)
)
(defun MBresetvar ()
(setq la1 nil
la3 nil
bname nil
sscount nil
val1 nil
tlen nil
a1 nil
a2 nil
a3 nil
BLitem nil
la1 nil
la2 nil
la3 nil
val1 nil
cont nil
projetname nil
itemp nil
lalist nil
F_space nil
dwglengt nil
MBfilename nil
MBlistfilename nil
FLA1 nil
virgule1 nil
virgule2 nil
vig1 nil
vig2 nil
MBi1 nil
MBi2 nil
MBi3 nil
MBi1# nil
space1 nil
space2 nil)
(princ)
)
;| ;
SCREEN ONLY ;
|;
(defun MBscreenonly ()
(princ
"
Block List RESULT with MBlist
_____________________________
")
;;(princ (strcat "\n\nProjet: " projetname))
(princ (strcat "\n\nDWG File: " projetname))
(princ (strcat "\n\nDate: " (menucmd "M=$(edtime,$(getvar,date),YYYY MON D H:MMam/pm)")))
(princ "
______________________________________
Qty: Block name: Layer:" )
(foreach b la3
(setq FLA1 (car la3))
(setq virgule1 (vl-string-position 44 FLA1))
(setq virgule2 (vl-string-position 44 (substr FLA1 (+ virgule1 2))))
(setq vig1 (+ virgule1 2))
(setq vig2 (+ virgule1 virgule2 3))
(setq MBi1 (substr b 1 virgule1)
MBi2 (substr b vig1 virgule2)
MBi3 (substr b vig2)
);;setq
(setq MBi1# (- 12 (strlen MBi1)))
(setq space1 (substr F_space 1 MBi1#))
(setq MBi2# (- 20 (strlen MBi2)))
(setq space2 (substr F_space 1 MBi2#))
(princ (strcat "\n" MBi1 space1 MBi2 space2 MBi3))
(setq la3 (cdr la3))
);;foreach
(textscr)
)
;| ;
EXPORTATION dans un fichier TXT ;
|;
(defun MBexportlist ()
(setq MBfile (open MBlistfilename "w"))
(write-line " Block List RESULT with MBlist" MBfile)
(write-line " ___________________________________" MBfile)
;;(write-line (strcat "\n\nProjet: " projetname) MBfile)
(write-line (strcat "\nDWG File: " projetname) MBfile)
(write-line (strcat "\nDate: " (menucmd "M=$(edtime,$(getvar,date),YYYY MON D H:MMam/pm)")) MBfile)
(write-line "\n\n\n______________________________________" MBfile)
(write-line "\nQty: Block name: Layer:" MBfile)
(foreach b la3
(setq FLA1 (car la3))
(setq virgule1 (vl-string-position 44 FLA1))
(setq virgule2 (vl-string-position 44 (substr FLA1 (+ virgule1 2))))
(setq vig1 (+ virgule1 2))
(setq vig2 (+ virgule1 virgule2 3))
(setq MBi1 (substr b 1 virgule1)
MBi2 (substr b vig1 virgule2)
MBi3 (substr b vig2)
);;setq
(setq MBi1# (- 12 (strlen MBi1)))
(setq space1 (substr F_space 1 MBi1#))
(setq MBi2# (- 20 (strlen MBi2)))
(setq space2 (substr F_space 1 MBi2#))
(write-line (strcat "\n" MBi1 space1 MBi2 space2 MBi3) MBfile)
(setq la3 (cdr la3))
);;foreach
(close MBfile)
(command "start" (strcat MBfilename ".txt"))
(princ)
)
(PRINC
"
________________________________________By Andrea Andreetti
Programme MBlist version 1.0
write \"MBlist\" to start")
hope this will help