Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  entmod für Referenzen funktioniert nicht

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:  entmod für Referenzen funktioniert nicht (746 mal gelesen)
archi.archi
Mitglied



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

Beiträge: 77
Registriert: 08.10.2010

Windows 10
AutoCAD 2023
Revit 2023

erstellt am: 23. Mrz. 2017 16:11    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


Refum.lsp

 
Hallo Forum,

für das Austauschen von Referenzen (über Name und Pfad) wurde der angehängte Code erstellt.

Bis zum Generieren der geänderten Datenliste funktioniert es (scheinbar).

Die Daten werden mit entmode leider nicht in die Datenbank geschrieben.

Ich komme jetzt nicht mehr weiter.

Habt ihr vielleicht einen Tipp für mich?

Gruß

Archi

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: 21533
Registriert: 03.06.2002

Alles

erstellt am: 23. Mrz. 2017 16: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 archi.archi 10 Unities + Antwort hilfreich

AutoLISP bearbeitet Objekte "recht dumm", wenn man in inem Arbeitsschritt (NUR) den Namen eines Blockes ändern würde,
dann hätte dieser keine Blockreferenzen(nicht so schlimm).
Andernsseits würde zu allen Blockreferenzen des Blockes plötzlich die Blockdefinition fehlen

Block ALT
100 Blockreferenzen referenzieren den Block ALT

Name ändern von ALT in NEU

Block ALT
100 Blockreferenzen referenzieren den NICHT MEHR VORHANDENEN Block ALT
*ERROR*FEHLER*

Daher geht das nicht.
In AutoLisp wäre der Weg: Eine Kopie des Blockes mit neuem Namen erstellen, alle Blockreferenzen
auf den neuen Block umleiten (GC2 der INSERTs), alten Block löschen.

Das ist aber nicht nötig:

Nutze etwas neuere Technik des VisualLisp, so wie hier:
http://forum.cad.de/foren/ubb/Forum54/HTML/033211.shtml#000011

Acad benennt den Block und die Referenzen in einem Rutsch um (wie gewünscht),
BefehlszeilenBeispiel:

(vla-put-Name(vla-item (vla-get-Blocks(vla-get-activeDocument(vlax-get-Acad-Object))) (cdr(assoc 2 (entget(car(entsel)))))) "NeuerName")

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

Andreas Kraus
Mitglied
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: 1356
Registriert: 11.01.2006

WIN 10
ACAD 2022

erstellt am: 23. Mrz. 2017 19: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 Nur für archi.archi 10 Unities + Antwort hilfreich

Hallo Archi,
ich glaub ich weis was du vorhast.
Hab ich auch schon mal mit entmod versucht.

Das hier geht besser:

Code:
(vl-load-com)

(setq alt "01-") ;?01-G...
(setq neu "02-") ;?02-G...

(vlax-for blk (vla-get-blocks
(vla-get-activedocument (vlax-get-acad-object))
      )
  (if (not (vl-catch-all-error-p
    (setq path
    (vl-catch-all-apply
      'vla-get-path
      (list blk)
    )
    )
  )
      )
    (progn
      (setq filename (vl-string-subst neu alt (vl-filename-base path)))
      (setq path
    (strcat (vl-filename-directory path) "\\" filename ".dwg")
      )
      (vla-put-name blk filename)
      (vla-put-path blk path)
      (vla-Reload blk)
    )
  )
)


Probiers mal aus

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

Gruß
Andreas

http://kraus-cad.de

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

archi.archi
Mitglied



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

Beiträge: 77
Registriert: 08.10.2010

Windows 10
AutoCAD 2023
Revit 2023

erstellt am: 24. Mrz. 2017 11: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 cadffm,

die neuere Technik macht es wirklich leichter!
Da müssen alte Tools wohl doch radikal umgestaltet werden!

Vielen Dank für die Unterstützung, es läuft.

Gruß

Archi

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