Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 10 di 12
  1. #1
    Bannato
    Iscritto dal
    2007
    Messaggi
    1683
    Professione
    *
    Regione
    Lombardia
    Software
    AutoCAD

    Predefinito Contare blocchi dinamici e xref

    a differenza del bcount degli Express, il lisp allegato conta anche i blocchi dinamici e gli Xref

    ;;; CADALYST 05/07 Tip 2210: BlkQnt.lsp Block Quantify (c) 2007 Brock Narum

    ;Written by Brock Narum 6-7-05; updated 2-1-07; blkqnt routine will:
    ; (1) list all blocks, dynamic blocks and xrefs defined in current dwg.
    ; (2) give quantity for each block and dynamic block definition.
    ; (3) indicates if xref is not loaded.
    (Defun
    c:blkqnt (/ olderr echo doc refn refs dblkn dblks blkn
    blks qnt1 qnt2 lst1 lst2 lst3 dblk1 qntd blk1
    qntb
    )
    (vl-load-com)
    (setq doc (vla-get-activedocument (vlax-get-acad-object)))
    (princ "\nPlease wait for list... \n") ; searches for blks/dynamic blks
    (vlax-for
    lays (vla-get-layouts doc)
    (vlax-for
    blk (vla-get-block lays)
    (if (and (= (vla-get-objectname blk) "AcDbBlockReference")
    (vlax-property-available-p blk 'IsDynamicBlock)
    )
    (if (= (vlax-get-property blk 'IsDynamicBlock) :vlax-true)
    (setq dblkn (vla-get-effectivename blk)
    dblks (cons dblkn dblks)
    )
    (setq blkn (vla-get-name blk)
    blks (cons blkn blks)
    )
    )
    )
    )
    ) ; searches for xrefs
    (vlax-for
    itm (vla-get-blocks doc)
    (if (= (vla-get-isxref itm) :vlax-true)
    (if (vl-catch-all-error-p
    (vl-catch-all-apply 'vla-get-xrefdatabase (list itm))
    )
    (setq refn (strcat (vla-get-name itm) " - *Not loaded* ")
    refs (cons refn refs)
    )
    (setq refn (vla-get-name itm)
    refs (cons refn refs)
    )
    )
    )
    )
    (if (and (= refs nil) (= blks nil) (= dblks nil))
    (princ "\nNo blocks in Dwg...")
    (progn ; sorts blks dyn blks and xrefs if found
    (if blks
    (setq blks (acad_strlsort blks))
    )
    (if dblks
    (setq dblks (acad_strlsort dblks))
    )
    (if refs
    (setq refs (acad_strlsort refs))
    )
    (setq qnt1 (length blks)
    qnt2 (length dblks)
    lst1 "====== Block(s) ========"
    lst2 "======= Xref(s) ========="
    lst3 "=== Dynamic Block(s) ===="
    ) ; creates list of xrefs
    (foreach itm refs (setq lst2 (strcat lst2 "\n" itm)))
    ; cycles thru to get qnt of dyn blks
    (while (> qnt2 0)
    (setq dblk1 (car dblks)
    dblks (vl-remove dblk1 dblks)
    qntd (- qnt2 (length dblks))
    qnt2 (length dblks)
    lst3 (strcat lst3 "\n" dblk1 " = (" (rtos qntd 2 0) ") ")
    )
    ) ; cycles thru to get qnt of blks
    (while (> qnt1 0)
    (setq blk1 (car blks)
    blks (vl-remove blk1 blks)
    qntb (- qnt1 (length blks))
    qnt1 (length blks)
    lst1 (strcat lst1 "\n" blk1 " = (" (rtos qntb 2 0) ") ")
    )
    )
    (princ (strcat lst1 "\n" lst3 "\n" lst2))
    (textscr)
    )
    )
    (vlax-release-object doc)
    (princ)
    )

  2. #2
    Utente poco attivo
    Iscritto dal
    2010
    Messaggi
    1
    Professione
    libero professionista
    Regione
    emilia romagna
    Software
    autodesk 10

    Predefinito

    scusate scaricato il file l'ho lanciato se poi do' istruzione blkqnt, autocad mi dice programma sconosciuto

  3. #3
    Utente Standard L'avatar di Ezio Olivato
    Iscritto dal
    2009
    Messaggi
    542
    Professione
    Creative designer
    Regione
    Piemonte
    Software
    Autocad, Rhinoceros, Extracad, NanoCAD

    Predefinito

    Prova a digitare BlkQnt!

  4. #4
    Utente Senior L'avatar di GP.
    Iscritto dal
    2008
    Messaggi
    1998
    Professione
    Nientologo
    Regione
    Vercelli
    Software
    uozapp

    Predefinito

    Ezio, Ŕ proprio l'istruzione che emastrantuono afferma di aver dato, ma dopo aver scaricato il lisp lo avrÓ caricato?

    http://www.cad3d.it/forum1/showthread.php?t=496

  5. #5
    Utente Standard L'avatar di Ezio Olivato
    Iscritto dal
    2009
    Messaggi
    542
    Professione
    Creative designer
    Regione
    Piemonte
    Software
    Autocad, Rhinoceros, Extracad, NanoCAD

    Predefinito

    Si GP, ma se il comando pretende di farglielo riconoscere con le minuscole!!!!!

  6. #6
    Utente poco attivo
    Iscritto dal
    2012
    Messaggi
    6
    Professione
    progettista
    Regione
    veneto - treviso
    Software
    autocad - 3dMax

    Icon4 manca una cosa...

    ...vi espongo un piccolo quesito...
    ho caricato il lisp e funziona perfettamente, il mio problema Ŕ che quando faccio il conteggio dei blocchi dinamici, mi vengono calcolati anche i blocchi nascosti.
    mi spiego meglio, il mio blocco contiene dei sottoblocchi che vado a spegnere con il parametro visibilitÓ. mi piacerebbe che il lisp contasse solo quelli visibili e non anche quelli nascosti.
    Sapete per caso indirizzarmi o dirmi come risolvere questo problema?
    vi ringrazio fin da ora, buona giornata a tutti. Andr_Ea

  7. #7
    Utente Standard
    Iscritto dal
    2011
    Messaggi
    311
    Professione
    *
    Regione
    *
    Software
    AutoCAD

  8. #8
    Utente poco attivo
    Iscritto dal
    2012
    Messaggi
    6
    Professione
    progettista
    Regione
    veneto - treviso
    Software
    autocad - 3dMax

    Icon14

    Grazie TIR, gentilissimo ed Ŕ proprio quello che mi servia

  9. #9
    Utente poco attivo
    Iscritto dal
    2012
    Messaggi
    6
    Professione
    progettista
    Regione
    veneto - treviso
    Software
    autocad - 3dMax

    Predefinito conteggio blocchi dinamici selezionati

    ...con questo lisp riesco a contare benissimo tutti i blocchi dinamici all'inerno del dwg, ma se volessi selezionare solo una porzione di disegno e fare il conteggio esclusivamente sui blocchi selezionati, chŔ funzione devo aggiungere all'autolisp? fatto questo credo che il "DBCount" sia perfetto :)
    grazie ancora in anticipo a tutti.

  10. #10
    Utente Senior L'avatar di GP.
    Iscritto dal
    2008
    Messaggi
    1998
    Professione
    Nientologo
    Regione
    Vercelli
    Software
    uozapp

    Predefinito

    Cerca il testo in nero ed incollagli davanti il testo in rosso, compreso il punto e virgola, potrai selezionare anche altri oggetti ma verranno filtrati solo i blocchi:

    (prompt "\nSelezionare oggetti")
    (if (ssget (list '(0 . "INSERT") (cons 410 (getvar 'CTAB))))

    ; (if (ssget "_X" (list '(0 . "INSERT") (cons 410 (getvar 'CTAB))))


    Sperando che il buon Lee non si arrabbi.


  • Pagina 1 di 2 12 UltimaUltima

    Discussioni Simili

    1. Blocchi dinamici
      Di Giuseppe Beatrice nel forum AutoCAD
      Risposte: 11
      Ultimo Messaggio: 22-07-2011, 18: 00
    2. Contare blocchi dinamici e Xref
      Di arri nel forum Autocad tools free
      Risposte: 1
      Ultimo Messaggio: 10-02-2008, 01: 00
    3. Blocchi dinamici
      Di arri nel forum Tutorials per Autocad
      Risposte: 0
      Ultimo Messaggio: 10-02-2008, 00: 35
    4. Copiare entitÓ nidificate nei blocchi o xref
      Di arri nel forum Tips & Tricks per Autocad
      Risposte: 0
      Ultimo Messaggio: 09-02-2008, 21: 00
    5. Contare i blocchi ed esportare i dati in Excel
      Di arri nel forum Tips & Tricks per Autocad
      Risposte: 0
      Ultimo Messaggio: 31-01-2008, 02: 40

    Segnalibri

    Segnalibri

    Permessi di Scrittura

    • Tu non puoi inviare nuove discussioni
    • Tu non puoi inviare risposte
    • Tu non puoi inviare allegati
    • Tu non puoi modificare i tuoi messaggi
    •  



    CAD3D.it - la community dei progettisti