arri
Bannato
im gegensatz zum express-bcount zählt die angeschlossene lisp auch dynamische blöcke und xrefs
;; cadalyst 05/07 serze 2210: blkqnt.lsp block quantify (c) 2007 brock narum
; geschrieben von brock narum 6-7-05; aktualisiert 2-1-07; blkqnt Begleiter wird:
; (1) alle blöcke, unternehmen blöcke und xrefs im current dwg definiert.
; (2) geben Butge für jede Block- und dynamische Blockdefinition.
; (3) gibt an, ob xref nicht geladen ist.
(Defun)
c:blkqnt (/ älterer echo doc refn reflektiert die dblkn dblks blkn
blks qnt1 qnt2 lst1 lst2 lst3 dblk1 qntd blk1
Q
)
(vl-load-com)
(setq doc (vla-get-activedocument (vlax-get-acad object))
(princ "\nplease wait for list... \n");funt nach blks/dynamic blks
(vlax-for)
laien (vla-get layout doc)
(vlax-for)
blk (vla-get-block playt)
(wenn (und (= (vla-get-objectname blk) "acdbblock reference")
(vlax-property-p blk 'isdynamicblock)
)
(wenn (= vlax-get-property blk 'isdynamicblock) :vlax-true)
(setq dblkn (vla-get-effizientname blk)
dblks (cons dblkn dblks)
)
(setq blkn (vla-get-name blk)
blks (cons blkn blks)
)
)
)
)
) ; Spinne nach xrefs
(vlax-for)
ITm (vla-get-blocks doc)
(wenn = (vla-get-isxref ITm) :vlax-true)
(falls vl-catch-all-error-p
(vl-catch-all-apply 'vla-get-xref Datenbank (list itm)
)
(setq refn (strcat (vla-get-name itm) " - *not geladen* ")
Refs (Kons-Reflexe)
)
(setq refn (vla-get-name itm)
Refs (Kons-Reflexe)
)
)
)
)
(wenn (und (= refs nil) (= blks nil) (= dblks nil)
(princ "\nno blöcke in dwg...")
(progn ; blacky blks dyn blks und xrefs wennn gefound
(falls blks)
(setq blks (acad_strlsort blks)
)
(falls dblks)
(setq dblks (acad_strlsort dblks)
)
(Fälle Reflexionen)
(setq refs (acad_strlsort refs)
)
(setq qnt1 (länge blks)
qnt2 (länge dblks)
1. ================================================================================================================================================================================================================================================================
I.2 ================================================================================================================================================================================================================================================================
lst3 "=== dynamischer block(en) ===
) ; isstellt eine Liste von xrefs
(Empfehlung)
; zyangle thru zu ishalten qnt von dyn blks
(während)
(setq dblk1 (car dblks)
dblks (vl-remove dblk1 dblks)
qntd (- qnt2 (länge dblks)
qnt2 (länge dblks)
lst3 (strcat lst3 "\n" dblk1 " = (" (rtos qntd 2 0) ")"
)
)
(während)
(setq blk1 (car blks)
blks (vl-remove blk1 blks)
qntb (- qnt1 (länge blks)
qnt1 (länge blks)
lst1 (strcat lst1 "\n" blk1 " = (" (rtos qntb 2 0) ")
)
)
(princ (strcat lst1 "\n" lst3 "\n" lst2)
(Textcr)
)
)
(vlax-release-object doc)
(princ)
)
;; cadalyst 05/07 serze 2210: blkqnt.lsp block quantify (c) 2007 brock narum
; geschrieben von brock narum 6-7-05; aktualisiert 2-1-07; blkqnt Begleiter wird:
; (1) alle blöcke, unternehmen blöcke und xrefs im current dwg definiert.
; (2) geben Butge für jede Block- und dynamische Blockdefinition.
; (3) gibt an, ob xref nicht geladen ist.
(Defun)
c:blkqnt (/ älterer echo doc refn reflektiert die dblkn dblks blkn
blks qnt1 qnt2 lst1 lst2 lst3 dblk1 qntd blk1
Q
)
(vl-load-com)
(setq doc (vla-get-activedocument (vlax-get-acad object))
(princ "\nplease wait for list... \n");funt nach blks/dynamic blks
(vlax-for)
laien (vla-get layout doc)
(vlax-for)
blk (vla-get-block playt)
(wenn (und (= (vla-get-objectname blk) "acdbblock reference")
(vlax-property-p blk 'isdynamicblock)
)
(wenn (= vlax-get-property blk 'isdynamicblock) :vlax-true)
(setq dblkn (vla-get-effizientname blk)
dblks (cons dblkn dblks)
)
(setq blkn (vla-get-name blk)
blks (cons blkn blks)
)
)
)
)
) ; Spinne nach xrefs
(vlax-for)
ITm (vla-get-blocks doc)
(wenn = (vla-get-isxref ITm) :vlax-true)
(falls vl-catch-all-error-p
(vl-catch-all-apply 'vla-get-xref Datenbank (list itm)
)
(setq refn (strcat (vla-get-name itm) " - *not geladen* ")
Refs (Kons-Reflexe)
)
(setq refn (vla-get-name itm)
Refs (Kons-Reflexe)
)
)
)
)
(wenn (und (= refs nil) (= blks nil) (= dblks nil)
(princ "\nno blöcke in dwg...")
(progn ; blacky blks dyn blks und xrefs wennn gefound
(falls blks)
(setq blks (acad_strlsort blks)
)
(falls dblks)
(setq dblks (acad_strlsort dblks)
)
(Fälle Reflexionen)
(setq refs (acad_strlsort refs)
)
(setq qnt1 (länge blks)
qnt2 (länge dblks)
1. ================================================================================================================================================================================================================================================================
I.2 ================================================================================================================================================================================================================================================================
lst3 "=== dynamischer block(en) ===
) ; isstellt eine Liste von xrefs
(Empfehlung)
; zyangle thru zu ishalten qnt von dyn blks
(während)
(setq dblk1 (car dblks)
dblks (vl-remove dblk1 dblks)
qntd (- qnt2 (länge dblks)
qnt2 (länge dblks)
lst3 (strcat lst3 "\n" dblk1 " = (" (rtos qntd 2 0) ")"
)
)
(während)
(setq blk1 (car blks)
blks (vl-remove blk1 blks)
qntb (- qnt1 (länge blks)
qnt1 (länge blks)
lst1 (strcat lst1 "\n" blk1 " = (" (rtos qntb 2 0) ")
)
)
(princ (strcat lst1 "\n" lst3 "\n" lst2)
(Textcr)
)
)
(vlax-release-object doc)
(princ)
)