Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Lisp: (command -BLOCKREPLACE verwenden

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
  
Olgun Celik: Entwirft hochwertige Fahrzeugfedern mit ZW3D
Autor Thema:  Lisp: (command -BLOCKREPLACE verwenden (212 / mal gelesen)
redfire
Mitglied



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

Beiträge: 23
Registriert: 05.03.2008

AutoCAD / Civil 3D 2024

erstellt am: 07. Mai. 2024 10:50    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 zusammen

Ich versuche mittels lisp den Befehl Blockreplace zu verwenden, leider erhalte ich immer folgende Fehler:

-----
Befehl: AUTOBR
-BLOCKREPLACE Unbekannter Befehl "-BLOCKREPLACE". Drücken Sie F1-Taste für Hilfe.

Befehl: Block_1_alt Unbekannter Befehl "BLOCK_1_ALT". Drücken Sie F1-Taste für Hilfe.

Befehl: Block_3_neu Unbekannter Befehl "BLOCK_3_NEU". Drücken Sie F1-Taste für Hilfe.

Befehl: y Unbekannter Befehl "Y". Drücken Sie F1-Taste für Hilfe.
------

Code:
(defun C:AUTOBR ()
  (command "-BLOCKREPLACE" "Block_1_alt" "Block_3_neu" "y" "")
(princ)
)

Kann mir jemand sagen was ich falsch mache? Besten Dank für eure Unterstützung

------------------
Gruss
redfire

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

archtools
Mitglied



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

Beiträge: 934
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 07. Mai. 2024 11:48    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 redfire 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von redfire:
Hallo zusammen

Ich versuche mittels lisp den Befehl Blockreplace zu verwenden, leider erhalte ich immer folgende Fehler:

-----
Befehl: AUTOBR
-BLOCKREPLACE Unbekannter Befehl "-BLOCKREPLACE". Drücken Sie F1-Taste für Hilfe.

Befehl: Block_1_alt Unbekannter Befehl "BLOCK_1_ALT". Drücken Sie F1-Taste für Hilfe.

Befehl: Block_3_neu Unbekannter Befehl "BLOCK_3_NEU". Drücken Sie F1-Taste für Hilfe.

Befehl: y Unbekannter Befehl "Y". Drücken Sie F1-Taste für Hilfe.
------

Code:
(defun C:AUTOBR ()
   (command "-BLOCKREPLACE" "Block_1_alt" "Block_3_neu" "y" "")
(princ)
)

Kann mir jemand sagen was ich falsch mache? Besten Dank für eure Unterstützung


Durchsuche das Forum mal nach "SSMODENT". Damit kannst Du jeden DXF-Gruppencode jedes Entities ändern. Der Blockname einer Blockreferenz steht in Gruppencode 2, also geht das dann so:

(ssmodent <ename> 2 ""Block_3_neu")

Und wenn Du nur Blockreferenzen auf den Namen "Block_1_alt" ändern willst, dann mithilfe der folgenden SS->LIST dann so:

(mapcar '(lambda (en) (ssmodent en 2 ""Block_3_neu")) (ss-list (ssget '((2 . "Block_1_alt")))

Code:

(defun ss->list (sset / eset counter)
  (setq counter 0)
  (if (= 'PICKSET (type sset))
    (repeat (sslength sset)
      (setq eset (cons (ssname sset counter) eset)
            counter (1+ counter)
      )
    )
  )
  eset
)

Ergänzung: BLOCKREPLACE wird vermutlich kein COMMAND sein, sondern höchstwahrscheinlich auch in Lisp oder C# o.ä geschrieben und wird dann mit (BLOCKREPLACE ...) aufgerufen

[Diese Nachricht wurde von archtools am 07. Mai. 2024 editiert.]

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

redfire
Mitglied



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

Beiträge: 23
Registriert: 05.03.2008

AutoCAD / Civil 3D 2024

erstellt am: 07. Mai. 2024 15:06    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

Ich möchte nicht nur die Namen ändern sondern die Instanz austauschen
Gemäss Hilfe ist es ein Express-Befehl --> -BLOCKREPLACE gibt es als Befehlszeile
Ersetzt alle Instanzen eines bestimmten Blocks durch einen anderen Block.

wie kriegeich das mit einem Lisp hin, dass ich die Blöcke austauschen kann
wie würde der Aufruf mit(BLOCKREPLACE.... funktionieren?

------------------
Gruss
redfire

[Diese Nachricht wurde von redfire am 07. Mai. 2024 editiert.]

[Diese Nachricht wurde von redfire am 07. Mai. 2024 editiert.]

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

archtools
Mitglied



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

Beiträge: 934
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 07. Mai. 2024 21:19    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 redfire 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von redfire:
Ich möchte nicht nur die Namen ändern sondern die Instanz austauschen

Damit änderst Du nicht den Namen der Blockdefinition, sondern tauschst bei einem Insert die Referenz auf den Block "Ursprungsblock" auf die Referenz auf den Block "NeuerBlock" aus.

Warum probierst Du's nicht erst mal aus?

Zitat:
wie kriegeich das mit einem Lisp hin, dass ich die Blöcke austauschen kann
wie würde der Aufruf mit(BLOCKREPLACE.... funktionieren?

Indem Du die verschiedenen Varianten ausprobierst.

[Diese Nachricht wurde von archtools am 07. Mai. 2024 editiert.]

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13523
Registriert: 30.11.2003

.

erstellt am: 08. Mai. 2024 07:19    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 redfire 10 Unities + Antwort hilfreich

blockreplace ist kein Autocad-Befehl sondern ist innerhalb der Expresstools als LISP-Befehl definiert ( siehe blocktoxref.lsp im Express-Ordner ) ... da kannst du keine Parameter übergeben ... Somit : Schreib dir die Funktion um , oder nutze gleich eine eigene 

------------------
Also ich finde Unities gut ... und andere sicher auch
---------------------------------------
  - Thomas -          
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

Archäologie Bubi
Mitglied
Archäologische Funddokumentation


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

Beiträge: 64
Registriert: 09.03.2021

AutoCAD Map 3D 2013
AutoCAD Map 3D 2023
AutoCAD Map 3D 2024
Faro AS-Built / TachyCAD
BricsCAD V18
Elcovision ElTheo
Agisoft Photoscan
Agisoft Metashape Professional 1.7
Agisoft Metashape Professional 2.0

erstellt am: 08. Mai. 2024 07:22    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 redfire 10 Unities + Antwort hilfreich

Wenn der Befehl aus den Expresstools stammt, kannst du ihn auch direkt einsehen.
Die Expresstools sind grösstenteils in LISP geschrieben und in den Dateien offen lesbar.

------------------
Bubi spiele, Bubi glücklich!

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

mathias fey
Mitglied
Verm.-Ing.


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

Beiträge: 14
Registriert: 20.11.2020

Windows 10 Pro
ACAD 2024
Vestra (für DGM)
Intel(R)Core(TM)i5-4590 CPU @ 3.30Ghz
16,0GB
NVIDIA Quadro K620

erstellt am: 10. Mai. 2024 14:58    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 redfire 10 Unities + Antwort hilfreich

Moin,
schon mal den (neuen) ACAD-Befehl -BLERSETZEN ausprobiert?

AutoCAD 2024 Hilfe | So ersetzen Sie eine Blockreferenz | Autodesk
https://help.autodesk.com/view/ACD/2024/DEU/index.html?guid=GUID-575DBF52-31A3-47C5-9F19-C66854BB2214

------------------
viele Grüße

Mathias

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)2024 CAD.de | Impressum | Datenschutz