Hot News:
   

Mit Unterstützung durch:

  Foren auf CAD.de
  Lisp
  Blöcke: Attributwerte löschen - Block sprengen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
Autor Thema:  Blöcke: Attributwerte löschen - Block sprengen (58 / mal gelesen)
sponk-mg
Mitglied



Sehen Sie sich das Profil von sponk-mg an!   Senden Sie eine Private Message an sponk-mg  Schreiben Sie einen Gästebucheintrag für sponk-mg

Beiträge: 39
Registriert: 10.10.2011

AutoCAD 2020 Architecture

erstellt am: 09. Jan. 2026 10:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ich habe folgende Fragestellung.
Ich habe auf 2 Layern Blöcke, die gesprengt werden sollen. Die Geometrie soll erhalten bleiben. Attributwerte und Attributnamen sollen gelöscht werden.
Ich habe folgenden Code, den ich mehrfach geändert habe.
Ich erhalte immer die Fehlermeldung "zu wenig Argumente"
Woran könnte dies liegen.

(defun c:BlockSprengenUndAttributeLoeschen (/ layerList lay ss i ent)
  (setvar "CMDECHO" 0) ;; Befehlsausgaben unterdrücken
  (setq layerList '("BV-VK-SYM" "BT-BM-SYM"))
 
  (foreach lay layerList
    (if (tblsearch "layer" lay)
      (progn
        ;; 1. Blöcke sammeln und einzeln sprengen
        (setq ss (ssget "X" (list (cons 0 "INSERT") (cons 8 lay))))
        (if ss
          (progn
            (setq i 0)
            (repeat (sslength ss)
              (setq ent (ssname ss i))
              ;; Native Version ohne ActiveX-Fehleranfälligkeit
              (command "_.explode" ent)
              (setq i (1+ i))
            )
          )
        )
       
        ;; 2. Texte, MTexte und Attributdefinitionen löschen
        (setq ss (ssget "X" (list (cons 0 "TEXT,MTEXT,ATTDEF") (cons 8 lay))))
        (if ss
          (progn
            (setq i 0)
            (repeat (sslength ss)
              (entdel (ssname ss i))
              (setq i (1+ i))
            )
          )
        )
      )
      (princ (strcat "\nLayer nicht gefunden: " lay))
    )
  )
  (setvar "CMDECHO" 1)
  (princ "\nVerarbeitung abgeschlossen.")
  (princ)
)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadwomen
Ehrenmitglied V.I.P. h.c.
Mädchen für fast alles


Sehen Sie sich das Profil von cadwomen an!   Senden Sie eine Private Message an cadwomen  Schreiben Sie einen Gästebucheintrag für cadwomen

Beiträge: 3150
Registriert: 26.08.2002

ACAD R11 - 2022/2024
(Revit und Recap 2024)

ACAD LT 2013- 2022
ZWCAD 2015 Versuch "nun ja"
[s]History P3D 2012/(13) SP und Hotfix([/s]<P>
Windows 11 / 64 Bit<P>Prozessor Intel(R) Xeon(R) w5-2445 3.10 GHz
RAM 256 GB
Platte c: 1 TB
Platte d: 8 TB<P>Dell U3818DW + Dell U2412M Monitor

erstellt am: 09. Jan. 2026 10:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sponk-mg 10 Unities + Antwort hilfreich

Hy sponk-mg

was soll das heißen Block , sprengen aber Geometrie erhalten ? es soll also ein Block bleiben , nur die Attribute sollen gelöscht werden ?
dann brauchst du dazu keine Lisp außer jeder Block hat einen anderen Namen

cu cw

------------------
Also ich finde Unities gut ... und andere sicher auch
------------------------------------------------
cadwomen™
Plant ist nur die Spitze des Berges der da treibt ?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 2001
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 09. Jan. 2026 10:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sponk-mg 10 Unities + Antwort hilfreich

Grundsätzlich funktioniert das Lisp.
Folgendes gebe ich einmal zu Bedenken:
- Es werden pro Durchlauf die Blockrefs des angegebenen Layers gesucht, wenn gefunden aufgelöst und das Gleiche mit den Attributdefs gemacht.
- Liegen die Attdefs auf anderen Layern als die Blockdefs, funktioniert das Lisp nicht.
- Unter Architecture kann es sein, dass sich die command Aufrufe andes verhalten als unter AutoCAD Vanilla.

------------------
Gruß
CADwiesel
Besucht uns im CHAT

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 22744
Registriert: 03.06.2002

Alles

erstellt am: 09. Jan. 2026 11:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sponk-mg 10 Unities + Antwort hilfreich

Hi,

zum weiteren aufblasen, wie gesperrte Layer berücksichtigen, oder statt Attdefs auch (M)Texte löschen usw,
hier mein 3zeiler für dich:

Code:
(if (ssget "_X" (list'(0 . "INSERT")'(8 . "*")(cons 410 (getvar 'CTAB))))
    (progn
      (initcommandversion) (command "_.EXPLODE" "_p" "")
      (if (ssget "_p" '((0 . "ATTDEF"))) (command "_.ERASE" "_p" ""))
    )
)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Anzeige:Infos zum Werbeplatz >>

AVC DXF Export CAD APP für 3D, Datenaustausch, Möbel

Plugin for AutoCAD and BricsCAD AVC_DXF. Lay details (solids 3d), obtaining contours for 2d milling and export of contours in dxf. Layers and blocks for import to BiesseWorks, BSolid, Homag WoodWop, Thermwood

Andreas Kraus
Ehrenmitglied
Elektrotechniker


Sehen Sie sich das Profil von Andreas Kraus an!   Senden Sie eine Private Message an Andreas Kraus  Schreiben Sie einen Gästebucheintrag für Andreas Kraus

Beiträge: 1527
Registriert: 11.01.2006

WIN 11
ACAD 2022
BricsCAD V25.1.07

erstellt am: 09. Jan. 2026 12:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für sponk-mg 10 Unities + Antwort hilfreich

Wenn du einen Block sprengst kannst du mit "vorher" auf die entstandenen Objekte zugreifen.

(ssget "_p" '(( 0 . "TEXT,MTEXT,ATTDEF")))

sollte eigentlich alles greifen was du löschen möchtest.
Sofern die Layer entsperrt sind.

------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen .... | Nach anderen Beiträgen suchen

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2026 CAD.de | Impressum | Datenschutz