Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Layer aus Abdeckung aus Block in Block

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
  
PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
Autor Thema:  Layer aus Abdeckung aus Block in Block (294 / mal gelesen)
Peter2
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3849
Registriert: 15.10.2003

erstellt am: 03. Jul. 2024 17:25    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


block_in_block.dwg

 
Weiss der Kuckuck wo das herkommt, aber ich habe eine Zeichnung wo das folgende Problem laufend bei fast allen Inserts vorkommt:

- Ein Block auf Layer 0
-- bestehend aus einem Block mit fast gleichem Namen auf Layer 0
--- bestehend aus verschiedenen Elementen auf Layer 0 und Farbe XY und einem Wipeout mit sinnvollem Namen sinnvollem Layernamen

Ich müsste jetzt bei jedem Block den sinnvollen Namen ermitteln und den Hauptblock auf diesen Layer setzen.

Ich stehe mit Block in Block irgendwie auf der Leitung; hat jemand eine Lösung oder einen Ansatz in der Schublade liegen?

Schönen Abend
Peter

[Diese Nachricht wurde von Peter2 am 03. Jul. 2024 editiert.]

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

Alles

erstellt am: 03. Jul. 2024 17:47    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 Peter2 10 Unities + Antwort hilfreich

Hi,

ich habe ein Problem mit dem Post, irgendwie ist das für mich als ob jemand 2 Geschichten erzählt, statt nur einer!?

>>"Weiss der Kuckuck wo das herkommt, aber ich habe eine Zeichnung wo das folgende Problem laufend vorkommt:"
1. Zeichnung HABEN, okay, aber "laufend vorkommt" würde für mich bedeuten das IHR das Produziert?
   Also Du selbst in der Datei arbeitest und was-auch-immer passiert dann.

    

2. "sinnvoller Name"
   Da wipeouts keine Namen haben, meinst du wohl den Layer auf den Referenziert wird?
   "MIW-SEK Schlammsammler"
   PS: Der übergeordnete Block enthält nicht nur eine Blockreferenz, sondern selbst auch noch einmal eine Abdeckung (auf diesem sinnvollen Layer(namen).
   Ich vermute ganz stark das der Layer immer derselbe ist wie auch in dem Verschachtelten Block.


  EDIT:
    Ein Block auf Layer 0
-- bestehend aus einem Block mit fast gleichem Namen auf Layer 0 UND EINEM  WIPEOUT auf Layer mit sinnvollem Namen
--- bestehend aus verschiedenen Elementen auf Layer 0 und Farbe XY und einem Wipeout mit sinnvollem Namen sinnvollem Layernamen


3. >>"Ich müsste jetzt bei jedem Block den sinnvollen Namen ermitteln und den Hauptblock auf diesen Layer setzen."
   Macht ja alles keinen Sinn, aber okay.
   Durchlaufe die Blocktabelle, schau nach ob der Blockinhalt eine Blockreferenz ist + eine Abdeckung(in der Annahme das diese immer gleich sind im Hauptblock und dem verschachtelten block),
   und ermittel den Layer.
   Durchlaufe Modellbereich und Layouts, setze alle Blockreferenzen dieses Blockes auf den ermittelten Layer.
   und zum nächsten Block.


Sicher das das so okay ist?
Da liegt doch ein Fehler vor, ziemlich sicher.

Da nutzt jemand ein Tool zum Abdecken von Blöcken, oder einfach nur zum einfügen von Blockreferenzen, oder gar nur ein simples Makro / Werkzeugpalette.

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: 965
Registriert: 09.10.2004

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

erstellt am: 03. Jul. 2024 17: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 Peter2 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Peter2:
Weiss der Kuckuck wo das herkommt, aber ich habe eine Zeichnung wo das folgende Problem laufend vorkommt:

- Ein Block auf Layer 0
-- bestehend aus einem Block mit fast gleichem Namen auf Layer 0
--- bestehend aus verschiedenen Elementen auf Layer 0 und Farbe XY und einem Wipeout mit sinnvollem Namen

Ich müsste jetzt bei jedem Block den sinnvollen Namen ermitteln und den Hauptblock auf diesen Layer setzen.

Ich stehe mit Block in Block irgendwie auf der Leitung; hat jemand eine Lösung oder einen Ansatz in der Schublade liegen?
Schönen Abend
Peter



Vielleicht hilft Dir diese Funktion weiter. Sie gibt alle Elemente der Blockdefinition aus, mit dem Enamen der Blockdefinition als erstem Element. In dieser Liste kannst Du dann ja Deine Blöcke suchen und passend abändern.

Code:

(defun at-blockentities (name / en result space el)
  (setq result (list (setq en (tblobjname "BLOCK" name))))
  (if en
    (progn
      (setq space (assoc 410 (entget en)))
      (while (and (setq en (entnext en)) (setq el (entget en)) (equal space (assoc 410 el)))
        (setq result (cons en result))
      )
    )
  )
  (reverse result)
)

Und zum Ändern dieser Elemente (egal ob in einer BlockDef oder im Zeichnungsbereich selbst) kannst Du das hier verwenden:

Code:

(defun ss-modent (ename dxf val)
  (entmod (at-subst
            (cons dxf val)
            (entget ename)
          )
  )
)

(defun at-subst (ntok lst / temp)
  (cond
    ((not lst)
          (list ntok)  ; lst existiert nicht
    )
    ((not (assoc (car ntok) lst))
          (reverse (cons ntok (reverse lst)))
    )
    ( 'T
      (subst ntok (assoc (car ntok) lst) lst)
    )
  )
)


Auruf z.B. (ss-modent en 62 1) ändert den DXF-Code des Entitys für die Farbe (62) auf rot (1). Du kannst hier auch einfach die Referenz des Inserts auf eine andere Blockdefinition ändern, mit (ss-modent en 2 "NeuerBlockName"). In dem Fall solltest Du dann noch ein (entupd en) hinterherschieben, damit das auch gleich angezeigt wird.

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

Alles

erstellt am: 03. Jul. 2024 17:53    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 Peter2 10 Unities + Antwort hilfreich

TESTFEHLER meinerseits - gelöscht

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

Peter2
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3849
Registriert: 15.10.2003

erstellt am: 03. Jul. 2024 17:56    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

Zitat:
Original erstellt von cadffm:
..ich habe ein Problem mit dem Post, irgendwie ist das für mich als ob jemand 2 Geschichten erzählt, statt nur einer!?...

"Laufend": schlecht formuliert, habe es korrigiert
"Wipeout Namen": schlecht formuliert, habe es korrigiert

Vielleicht habe ich auch da unpräzise formuliert, aber 1500 Block-Inserts auf Layer 0 sind nicht sehr handlich.


Zitat:
Original erstellt von archtools:
Vielleicht hilft Dir diese Funktion weiter. ...

Werde schauen und berichten

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

Alles

erstellt am: 03. Jul. 2024 17: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 Peter2 10 Unities + Antwort hilfreich

1. Deine Strukturbeschreibung war FALSCH
2. Meine zuerst gepostete auch, daher habe ich oben noch einmal editiert!

3.  1500 Block-Inserts auf Layer 0 sind nicht sehr handlich.
INSERTS sind keine Blöcke! sonndern Blockreferenzen.

Wenn es nur 1500 Blockreferenzen eines Blockes wären, dann wählst du einfach alle 1500 und änderst den Layer, fertig.

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

Peter2
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 3849
Registriert: 15.10.2003

erstellt am: 03. Jul. 2024 18: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

zu 1) Ja. Schlecht gelaufener Post. Sorry.

zu 3) Es sind 1500 Referenzen auf verschiedene Blöcke. Das wollte ich mit dem Wort "laufend" sagen, war aber leider daneben ..

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

Alles

erstellt am: 03. Jul. 2024 19:00    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 Peter2 10 Unities + Antwort hilfreich

Jetzt wissen wir es ja

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