Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Block modifizieren

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

Anzeige:

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
Autor Thema:  Block modifizieren (2531 mal gelesen)
TK_KE
Mitglied



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

Beiträge: 67
Registriert: 15.07.2003

erstellt am: 01. Sep. 2003 23:03    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 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

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: 1968
Registriert: 05.09.2000

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

erstellt am: 02. Sep. 2003 07:46    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 TK_KE 10 Unities + Antwort hilfreich

hier mal was von RoteSauce in Vlisp

(defun ax eleteObjectFromBlock (ent / doc blk)
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))
ent (vlax-ename->vla-object ent)
blk (vla-ObjectIdToObject doc (vla-get-OwnerID ent))
  )
  (vla-Delete ent)
  (vla-get-Count blk)
)


(defun ax:AddObjectsToBlock (blk ss / doc blkref blkdef inspt refpt)
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))
blkref (vlax-ename->vla-object blk)
blkdef (vla-Item (vla-get-Blocks doc) (vla-get-Name blkref))
inspt (vlax-variant-value (vla-get-InsertionPoint blkref))
ssarray (selectionsetToArray ss)
refpt (vlax-3d-point '(0 0 0))
  )
  (foreach ent (vlax-safearray->list ssarray)
    (vla-Move ent inspt refpt)
  )
  (vla-CopyObjects doc ssarray blkdef)
  (foreach ent (vlax-safearray->list ssarray)
    (vla-Delete ent)
  )
  (princ)
)

------------------
Gruß
CADwiesel

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

CADchup
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3329
Registriert: 14.03.2001

Sicher ist, dass nichts sicher ist. Selbst das nicht.
Joachim Ringelnatz

erstellt am: 02. Sep. 2003 08:39    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 TK_KE 10 Unities + Antwort hilfreich

Zu viel der Ehre, Wieselchen! 
Das Teil habe ich mir bei den ganz Pfiffigen "geliehen".

Übrings sollte das  durch "DoppelpunktD" ersetzt werden, damit's läuft.


Gruß
CADchup

------------------
www.cadditions.de

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

TK_KE
Mitglied



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

Beiträge: 67
Registriert: 15.07.2003

erstellt am: 02. Sep. 2003 08:57    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


@ 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??????

Gruß Thomas

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

TK_KE
Mitglied



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

Beiträge: 67
Registriert: 15.07.2003

...

erstellt am: 02. Sep. 2003 09:02    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

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?

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 02. Sep. 2003 09:18    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 TK_KE 10 Unities + Antwort hilfreich


Blockdef_forLOAD.LSP.txt

 
Hallo Thomas,

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.

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 | CAD.de-Newsletter

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

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

(c)2023 CAD.de | Impressum | Datenschutz