• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Zähler dynamisch und xref Blöcke

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)
)
 
sorry heruntergeladen die datei, die ich warf, wenn ich dann bildung blkqnt geben, autocad sagt mir programm unbekannt
 
... Ich stelle Ihnen eine kleine Frage...
Ich habe den Deckel geladen und es funktioniert perfekt, mein Problem ist, dass, wenn ich dynamische Blöcke zählen, ich auch die versteckten Blöcke berechnen.
:Mad: Ich erkläre es besser, mein Block enthält Unterblöcke, die ich mit dem Sichtparameter ausschalten werde. Ich möchte, dass die Lippe nur die sichtbaren zählt und nicht einmal die versteckten.
Wissen Sie, wie man mich anspricht oder mir sagt, wie man dieses Problem löst?
Danke, seitdem, guten Tag für alle. ♪
 
...mit dieser Lispe kann ich sehr gut alle dynamischen Blöcke an der dwg inert zählen, aber wenn Sie nur einen Teil der Zeichnung auswählen und ausschließlich auf die ausgewählten Blöcke zählen möchten, welche Funktion sollte ich zum Autolisp hinzufügen? Ich glaube, dass der "Dbcount" perfekt ist:)
Dank noch einmal im Voraus an alle.
 
Suchen Sie den Text in schwarz und fügen Sie ihn vor dem Text in rot ein, einschließlich Punkt und Komma, Sie können auch andere Objekte auswählen, aber nur die Blöcke werden gefiltert:
(Prompt "\nselezionare andgetti")
(falls (sget (list '(0 . "insert") (cons 410 (getvar 'ctab))))))))

; (wenn (ssget "_x" (list '(0 . "insert") (cons 410 (getvar 'ctab)))))


sperando che il buon lee nicht so arbbi. :Tongue:
 
superooo, sehr freundlich. Ich habe es versucht und es funktioniert....aber es wäre erstaunlich, wenn man wählen könnte, ob das ganze Blatt oder die Auswahl;) heheheheh sind ein Puzzle, das ich kenne;)
Inzwischen danke, dann wenn Sie die doppelte Option machen möchten, willkommen :) guten Tag
 
Ich habe es versucht, aber wenn ich eine Tür mit der Länge 60,70,80 zum Beispiel hatte,
Können Sie zählen, wie viele für die verschiedenen Längen sind?
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben