Hallo Lispler! Wie kann man eine Blockdefinition modifizieren? Mein Vorgehen bisher: 1. Blockdefinition zum Blocknamen auslesen (setq BLOCKDEF (tblsearch "BLOCK" BLOCKNAME)) ==> alles klar 2. Blockelemente holen (setq BLOCKELEMENT (cdr (assoc -2 BLOCKDEF))) ==> funktioniert 3. weiter mit (entnext) bis zum gesuchten Element 4. löschen des Elements (entdel BLOCKELEMENT) ==> auch noch keine Fehlermeldung ..und nun weiß ich nicht recht weiter. entmod ?? entupd ???
Oder muß ich den Block auflösen (ich meine das Insert!) ... Aufgelöste Elemente in Auswahlsatz packen - dann Auswahlsatz durchlaufen - gesuchtes Element löschen - und Restelemente im Auswahlsatz als neuen Block redefinieren ?? Ein Tip wäre nicht schlecht! Gruß Thomas
@ CADWiesel! Vielen Dank! Funktioniert prima. Muß mich wohl doch mit VLISP beschäftigen. Gibts irgentwo ein (am besten deutschsprachiges) Tutorial oder wenigstens eine über die ACAD-Hilfe hinausgehende Befehlsreferenz dazu? Quelltextbeispiele sind natürlich auch willkommen.
@CADchup Woher das Teil kommt ist doch Wurst. Solche Programmschnipsel sollten sowieso sowas wie öffentlich sein. Würde der Entwicklung von Lisp echt gut tun. Reicht schon, wenn sich Autodesk nicht in die Karten gucken läßt. ... Das mit den Smilies war schon klar. Kommt ja öfter vor. Vielleicht ein Thema für den Admin??????
Ach so, nur nochmal interessehalber: Geht obige Problemstellung eigentlich mit normalen Lisp auch zu lösen? Was haben die Leute früher gemacht, als es noch kein VLISP gab?
ja das geht. Ist auch heute noch notwendig, damit die AcadLT+Extender-User das auch machen können. Jedoch verfolge ich für die Manipulation vorhandener Blockdefinitionen einen anderen Ansatz. Der Block muß neu definiert werden. Dazu 1) die Blockdefinitionsdaten und die Elementdaten ermitteln 2) das betroffene Objekt löschen/hinzufügen 3) Block neu definieren
1 und 3 zu diesem Ansatz kannst du sehr gut aus dem Tool BlockDefForLoad entnehmen. Habs hier mit drangehängt.
Bei Fragen ...
Grüße Holger
------------------ Holger Brischke CADlon - Lisp over night! Ich bin vom 07.-10.10. auf dem Anwendertreffen anzutreffen.