Ich würde immer mal wieder gerne wissen, wieviele von welchen Objekten
auf einem Layer sind. Also ganz einfach gesagt:
z.B: 2 Punkte, 3 Linien, 1 Kreis, 2 Blöcke ....
Ich suche eine Info über z.B. Punkte die ich nicht sehe auf dem Bildschirm
oder Elemente, die außerhalb liegen oder sehr klein sind.
Info über alle Objekte auf dem Layer
Moderator: Moderator
- Zeichenartist
- Newbie
- Beiträge: 2
- Registriert: Mo 3. Apr 2006, 14:32
- CADwiesel
- Administrator
- Beiträge: 488
- Registriert: Mo 11. Jun 2018, 13:07
- Kontaktdaten:
Code: Alles auswählen
(defun c:elemsliste ( / elemli gesliste i item)
(defun bau_elemli (asatz / n elemli)
(setq n 0)
(repeat (sslength asatz)
(setq elemli (cons (ssname asatz n) elemli)
n (1+ n)
) ;_ end of setq
) ;_ end of repeat
elemli
)
(vlax-for layer(vla-get-layers(vla-get-activedocument(vlax-get-acad-object)))
(mapcar '(lambda (y / c)
(if(member(setq c(cdr(assoc 0(entget y))))(mapcar 'car elemli))
(setq elemli (subst(cons c(+ 1 (cdr(assoc c elemli))))(assoc c elemli)elemli))
(setq elemli(cons (cons c 1)elemli))
)
)
(if(setq as (ssget "_X" (list(cons 8 (vla-get-name layer)))))
(bau_elemli as)
)
)
(setq gesliste(cons(apply 'list (cons (vla-get-name layer)elemli))gesliste))
)
(if
gesliste
(foreach item gesliste
(princ (strcat "\nLayername: "(car item))"\nElemente: \n")
(foreach i (cdr item)
(prin1 i)(terpri)
)
)
)
(princ)
)
- Zeichenartist
- Newbie
- Beiträge: 2
- Registriert: Mo 3. Apr 2006, 14:32
Da funzt was nicht
Danke für die Hyperschnelle Antwort.
Aber:
Das krieg ich leider nicht aufgerufen.
Wo liegt der Fehler.
Wie lautet der Befehlsaufruf?
Aber:
Das krieg ich leider nicht aufgerufen.
Wo liegt der Fehler.
Wie lautet der Befehlsaufruf?
- CADwiesel
- Administrator
- Beiträge: 488
- Registriert: Mo 11. Jun 2018, 13:07
- Kontaktdaten:
- CADwiesel
- Administrator
- Beiträge: 488
- Registriert: Mo 11. Jun 2018, 13:07
- Kontaktdaten:
oops kleiner Klammer-Fehler
Hier nochmal überarbeitet
Hier nochmal überarbeitet
Code: Alles auswählen
(defun c:elemsliste ( / elemli gesliste i item)
(defun bau_elemli (asatz / n elemli)
(setq n 0)
(repeat (sslength asatz)
(setq elemli (cons (ssname asatz n) elemli)
n (1+ n)
) ;_ end of setq
) ;_ end of repeat
elemli
)
(vlax-for layer(vla-get-layers(vla-get-activedocument(vlax-get-acad-object)))
(mapcar '(lambda (y / c)
(if(member(setq c(cdr(assoc 0(entget y))))(mapcar 'car elemli))
(setq elemli (subst(cons c(+ 1 (cdr(assoc c elemli))))(assoc c elemli)elemli))
(setq elemli(cons (cons c 1)elemli))
)
)
(if(setq as (ssget "_X" (list(cons 8 (vla-get-name layer)))))
(bau_elemli as)
)
)
(setq gesliste(cons(apply 'list (cons (vla-get-name layer)elemli))gesliste))
)
(if
gesliste
(foreach item gesliste
(princ (strcat "\n\nLayername: "(car item)"\nElemente . Anzahl \n"))
(foreach i (cdr item)
(prin1 i)(terpri)
)
)
)
(princ)
)