Community
AutoCAD Produktfamilie - Deutsch
Das Forum für alle Fragen zu AutoCAD, LT, Architecture, Electrical, Map 3D, Mechanical, MEP, Plant 3D, Raster Design, Web App, sowie Autodesk Civil 3D und Advance Steel.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

AutoCAD - Hilfe bei Makro-Erweiterung zum Zählen von Blöcken

3 ANTWORTEN 3
Antworten
Nachricht 1 von 4
daniel.grassl
365 Aufrufe, 3 Antworten

AutoCAD - Hilfe bei Makro-Erweiterung zum Zählen von Blöcken

Guten Tag.

Ich benötige Hilfe bei der Erweiterung eines Makros welches Blöcke zählt.

Bisher können nur normale Blöcke, jedoch keine dynamischen Blöcke gezählt werden.

Könnte mir jemand bei der Erweiterung des Codes helfen, sodass dynamische Blöcke zählbar sind mit dem Befehl "zh" (ohne ") ?

 

Der Kundensupport gab mir zudem einen Hinweis, jedoch fehlt mir das nötige Wissen um den Code zu verändern.

"Der Link zu 
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/count-dynamic-blocks/td-p/3738189
enthält das funktional ähnliche Makro "countblk" jedoch mit Unterstützung dyn. Blöcke.

Mit diesem Codeschnpsel können Sie ihr bisherigen Makro Ihren erweiterten Funktionsbedarf anpassen. "

 

Beschreibung des Makros vom Ersteller Markus Hoffmann:

"zählt alle Vorkommen des gewählten Objekts und gibt Objektname und Anzahl zurück.
Wird ein Block gewählt wird der Name mit ausgegeben,
wird ein Attdef, Text oder MText gewählt,
werden nur Objekte mit gleichen Textinhalten ausgegeben."

 

Code:

|;
(defun c:Zh (/ ent entdata ssgetlist)
(while (setq ent (entsel "\nObjekt wählen, das gezählt werden soll:"))
(setq ent (entget (car ent)))
(setq ssgetlist
(cond
((= (cdr (assoc 0 ent)) "INSERT")
(setq entdata (cdr (assoc 2 ent)))
(list (assoc 0 ent) (assoc 2 ent))
)
((wcmatch (cdr (assoc 0 ent)) "*TEXT,ATTDEF")
(list (assoc 0 ent) (assoc 1 ent))
)
(T
(setq entdata (cdr (assoc 0 ent)))
(list (assoc 0 ent))
)
)
)
(alert
(strcat "Gewähltes Objekt: "
(cond
((= (cdar ssgetlist) "INSERT")
(strcat "Blockreferenz \"" entdata "\"")
)
((wcmatch (cdar ssgetlist) "*TEXT,ATTDEF")
(strcat
(cdar ssgetlist)
"\nTextinhalt: "
"\""
(cdadr ssgetlist)
"\""
)
)
(T entdata)
)
"\n\nGefundene Anzahl: "
(itoa (sslength (ssget "_X" ssgetlist)))
)
)
)
(princ)
)

 

@daniel.grassl:

Die Themenüberschrift wurde zum besseren Verständnis von @Thomas_Stuehle editiert. Original: Makro - Hilfe bei Codeerweiterung

3 ANTWORTEN 3
Nachricht 2 von 4
cadffm
als Antwort auf: daniel.grassl

Dies ist keine Basis zum anpassen, suchen Sie lieber ein passendes Produkt.

im Autodesk App Store

Block

 

oder in den Foren:

Block count dynamic

 

oder dem www.gogle.com

Block count dynamic blocks

Example:

http://www.lee-mac.com/dynamicblockcounter.html

Falls diese ausreichend ist, bedenken Sie den Ersteller mit einer ordentlichen Spende, danke.

 

 

- Sebastian -
Nachricht 3 von 4
Thomas_Stuehle
als Antwort auf: cadffm

Hallo @daniel.grassl,

 

herzlich Willkommen im deutschsprachigen AutoCAD Forum.

Du bist schon im richtigen Forum, allerdings ist es immer schwierig individuellen Code anzupassen. Häfig geht es schneller auf schon vorhandenen Code im Netz zurück zu greifen, da Du meist nicht der erste mit der Fragestellung bist. Daher ist der Vorschlag von @cadffm vielleicht sogar für Dich der schnellste Weg.

 

Hast Du unter den genannten Quellen bereits existierenden Code für Deine Fragestellung gefunden? Wenn ja, dann kannst Du gerne auf einen weblink verweisen und Deinen Beitrag "Als Lösung akzeptieren". Auf diese Art und weise profitieren auch künftige Nutzer von diesem Beitrag.

 

Beste Grüße,

Thomas

-----------------------------
You found a post helpful? Then feel free to give likes to these posts!
Your question got successfully answered? Then just click on the 'Mark as solution' button.


Thomas Stühle
Technical Support Specialist
Nachricht 4 von 4
Thomas_Stuehle
als Antwort auf: Thomas_Stuehle

Hallo Daniel @daniel.grassl,

 

bitte meld Dich kurz ob Du noch weitere Unterstützung benötigst. Über ein kurzes Feedback würde ich mich freuen.

 

Beste Grüße,

Thomas

-----------------------------
You found a post helpful? Then feel free to give likes to these posts!
Your question got successfully answered? Then just click on the 'Mark as solution' button.


Thomas Stühle
Technical Support Specialist

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen