Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  dynamischer Block wird unbenannter 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
  
Künftige Herausforderungen: Was tut sich in der deutschen Maschinenbaubranche?
Autor Thema:  dynamischer Block wird unbenannter Block? (392 / 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: 98
Registriert: 08.10.2010

Windows 11
AutoCAD 2024/2025
Revit 2024/2025

erstellt am: 16. Apr. 2024 12:07    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 Miteinander,

ist das ein normales ACAD-Verhalten:
ein (streckbarer) dynamischer Block (hier: Plankopf) wird nach dem Strecken immer zu einem unbenannten Block?

nach dem Einfügen:
(-1 . <Objektname: 266ae939810> )
(0 . "INSERT")
(330 . <Objektname: 266800b06b0> )
(5 . "3851")
(100 . "AcDbEntity")
(67 . 1)
(100 . "AcDbBlockReference")
(66 . 1)
(2 . "Plankopf")

nach dem Strecken:
(-1 . <Objektname: 266ae939810> )
(0 . "INSERT")
(5 . "3851")
(102 . "{ACAD_XDICTIONARY")
(360 . <Objektname: 266af3b2bc0> )
(102 . "}")
(330 . <Objektname: 266800b06b0> )
(100 . "AcDbEntity")
(67 . 1)
(8 . "0")
(100 . "AcDbBlockReference")
(66 . 1)
(2 . "*U2")

Gibt es evtl. eine Lösung, um den unbenannten Block zu verhindern?

Beste Grüße

archi

------------------

[Diese Nachricht wurde von archi.archi am 24. Apr. 2024 editiert.]

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

bbernd
Ehrenmitglied
Technischer Zeichner / Zimmerermeister


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

Beiträge: 1597
Registriert: 20.02.2009

AutoCAD 2021, 2023
nanoCAD 5
Gimp 2.10
Windows10 64bit
64 GB Arbeitsspeicher
NVIDIA RTX A4000

erstellt am: 16. Apr. 2024 13: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 archi.archi 10 Unities + Antwort hilfreich

Hallo Archi,

wäre es möglich den Block hochzuladen, damit es testen kann?

------------------
Gruß Bernd

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 16. Apr. 2024 13:15    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

Ableitungen eines dynamischen Blockes werden als unbenannte Blöcke gespeichert ( die noch einen Verweis zum Mutterblock haben) und dann referenziert. Das Konzept ist so.
Angezeigt im z.B. Eigenschaftsfenster wird der Effektiv-Name

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

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

System: F1
und Google

erstellt am: 16. Apr. 2024 18:38    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

Hi,

ein Block ist eine Definition, Blockreferenzen zeigen diese an
und somit zeigen alle dasselbe an.
Es gibt also keine dynamischen Blöcke,
das Konzept der dynamischen Blöcke ist
also etwas geflunkert wenn man sich das so genau ansieht wie du (was ja nicht die normale Benutzer(an)sicht ist.
Siehe Abschnitt dyn Blöcke
https://ww3.cad.de/foren/ubb/Forum54/HTML/013223.shtml

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: 98
Registriert: 08.10.2010

Windows 11
AutoCAD 2024/2025
Revit 2024/2025

erstellt am: 17. Apr. 2024 09: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 Sebastian,

das ist wirklich eine schlechte Meldung:

Zitat:
Leider gibt es auch eine Schlechte Meldung: Das ist alles Fake!
Im hintergrund wird mit vielen (automatisch generierten)anonymen Blöcken gearbeitet,
jede Blockreferenz sieht also nach wie vor so aus wie die eine vorhandene Blockdefinition.

Mein Ziel ist ein streckbarer, dynamische Plankopf.
Die Attribute diese Plankopfes werden nach Excel ausgelesen, bearbeitet und dann wieder eingelesen.

Mit den unbenannten Blöcken gibt es jetzt ein Problem, da die Blöcke über den Namen der BlockREFERENZ angesprochen werden.
Also "Name" aus den Eigenschaften.

Heisst jetzt also:
bei einer "anonymen" BlockDEFINITION muss der Name der BlockREFERENZ ermittelt werden. Für diese BlockREFERENZ sind die Attribute aller BlockDEFINITIONEN zu bearbeiten?

Hast du dafür evtl. noch ein Beispiel/eine Fundstelle?

Beste Grüße

Archi

------------------

[Diese Nachricht wurde von archi.archi am 17. Apr. 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: 22141
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 17. Apr. 2024 09:43    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

Ein Durcheinander.

Eine Blockreferenz hat ja selbst keinen Namen, nur die Information welcher Block referenziert wird
UND wie der Benutzer diesen Block nennt/sieht: VLA-GET-EFFECTIVENAME

Zunächst wollte ich auf jeden Punkt antworten, aber Für einen Export/Import in dieselbe Datei:
Benötigt wird die Information Pfad+Name+Erw. und das Handle, mehr nicht.
Wenn man möchte, dann kann man dem Anwender gerne noch den Blocknamen mitteilen, hier nimmt man dann den Effectivename (damit kann der Nutzer etwas anfangen).

Falls du wirklich anhand des Blocknamen die Blockreferenz in der .dwg suchst, dann hast du ja immer das Problem das es auch mehrere
Blockreferenzen geben kann, wie löst du das denn aktuell?

Ein SSGET- Beispiel
https://ww3.cad.de/foren/ubb/Forum145/HTML/004866.shtml

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 17. Apr. 2024 10:23    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

Eine Toollösung könnte so aussehen:
1. alle Ableitungs-Blöcke des dynamischen Blockes ermitteln und mit deren Namen dein Auswertetool weitermachen lassen
(alle Referenzen der Ableitungs-Blöcke ermitteln und ihre Attribute auslesen...)

oder was in deinem Fall praktikabler da ein Plankopf selten verschachtelt ist:

-alle Blockreferenzen mit Attributen in einem Auswahlsatz einsammeln
-dort den Effektivnamen mit Namen des dynamischen Blockes vergleichen ,bei Gleichheit dann mit deinem Auswertetool weiter ...

Warum muss der Plankopf eigentlich "dynamisch" sein  , beim Zeichnungsrahmen verstehe ich es ja noch, obwohl da auch meist 6 Varianten ausreichen und ich da auch verschiedene statische Blöcke einsetzen würde..

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

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: 98
Registriert: 08.10.2010

Windows 11
AutoCAD 2024/2025
Revit 2024/2025

erstellt am: 17. Apr. 2024 11:12    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 Miteinander,

vielen Dank für die Hilfestellung.

So wird es dann gemacht:

Zitat:
-alle Blockreferenzen mit Attributen in einem Auswahlsatz einsammeln
-dort den Effektivnamen mit Namen des dynamischen Blockes vergleichen ,bei Gleichheit dann mit deinem Auswertetool weiter ...

Bei Planfortschreibung mit Maßstabsänderung von z.B. 1:100 auf 1:50:
1. Plotter-Blattgöße ändern,
2. [Planrahmen mit Plankopf] dynamisch anpassen,
3. Attribute mittels Excel ändern.
Daher dynamischer [Planrahmen mit Plankopf]. Einer für alle.

Ich gehe in Klausur und melde mich, wenn es funktioniert (oder bei Problemen).

Beste Grüße

Archi


------------------

[Diese Nachricht wurde von archi.archi am 23. Apr. 2024 editiert.]

[Diese Nachricht wurde von archi.archi am 22. Mai. 2024 editiert.]

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: 98
Registriert: 08.10.2010

Windows 11
AutoCAD 2024/2025
Revit 2024/2025

erstellt am: 17. Apr. 2024 11:17    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

bisher geht die Auswahl eines nicht-dynamischen Blockes über:
Code:
(setq chk (cdr (assoc 0 (entget ent))))
(setq block (cdr (assoc 2 (entget ent))))
...
(setq blk_list (ssget "_X" (list (cons 0 "INSERT")(cons 2 block))))

------------------

[Diese Nachricht wurde von archi.archi am 22. 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: 935
Registriert: 09.10.2004

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

erstellt am: 17. Apr. 2024 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 Nur für archi.archi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von archi.archi:
Mit den unbenannten Blöcken gibt es jetzt ein Problem, da die Blöcke über den Namen der BlockREFERENZ angesprochen werden.

Das ist kein Problem, weil Du jeden dieser unbenannten Blöcke ja über andere, von Dir beliebig festgelegte Eigenschaften finden, auswerten und bearbeiten kannst. Trivialerweise würde ich hier eindeutige XDATA anhängen.

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

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 17. Apr. 2024 11: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 archi.archi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von archtools:

Das ist kein Problem, weil Du jeden dieser unbenannten Blöcke ja über andere, von Dir beliebig festgelegte Eigenschaften finden, auswerten und bearbeiten kannst. Trivialerweise würde ich hier eindeutige XDATA anhängen.


Die Blöcke werden aber nicht von dir erzeugt, sondern "automatisch" von Autocad  ... im Nachhinein kannst du da auch was ranhängen , aber dann kann man auch gleich anders arbeiten ( was ich vorziehe    )

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

Meldin
Mitglied



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

Beiträge: 397
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 17. Apr. 2024 16:14    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 sowas?
Zitat:
Heisst jetzt also:
bei einer "anonymen" BlockDEFINITION muss der Name der BlockREFERENZ ermittelt werden. Für diese BlockREFERENZ sind die Attribute aller BlockDEFINITIONEN zu bearbeiten?

Hast du dafür evtl. noch ein Beispiel/eine Fundstelle?


Code:
(setq BLK-Name "TESTBLOCK")
(setq BLK-Liste
      (vl-remove-if-not
'(lambda (x)
    (= (getpropertyvalue x "BlockTableRecord/Name")
      BLK-Name
    )
  )
(mapcar 'cadr
(ssnamex (ssget "X"
(list (cons 0 "INSERT")
      (cons 2 "`*U*")
)
  )
)
)
      )
)

------------------
Gruß Wolfgang

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: 98
Registriert: 08.10.2010

Windows 11
AutoCAD 2024/2025
Revit 2024/2025

erstellt am: 02. Mai. 2024 13: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

Hallo Miteinander,

bei die Bearbeitung der Attribute war ich (durch eurer fleißige Mithilfe) erfolgreich.

Jetzt gibt es noch ein anschließendes Problem: wie kann ich je Layout die Ableitungen eines dynamischen Blockes "Plankopf" in einen Auswahlsatz übernehmen?

Bisher (ohne dynamischen Block):

Code:
  (setq plankopf "Plankopf*")

  (foreach lay  (layoutlist)
    (setvar 'Ctab lay)
    (setq ss (ssget "_X"
                      (list '(0 . "INSERT")
                            '(66 . 1)
                            (cons 2 plankopf)
                            (cons 410 lay))))
...


Jeder Hinweis ist willkommen :-)!

Beste Grüße

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

System: F1
und Google

erstellt am: 02. Mai. 2024 13:28    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

Eigentlich ging es oben bereits darum, mit Lösung und Code.
Wobei ich als Beispielcode den obigen etwas anpassen würde und wenn es nur in den Layouts sein soll, dann so.


Code:

(setq BLK-Liste
      (vl-remove-if-not
'(lambda (x)
    (= (getpropertyvalue x "BlockTableRecord/Name")
      BLK-Name
    )
  )
(mapcar 'cadr  (ssnamex (ssget "_X" (list (cons 0 "INSERT")
      (cons 2 (strcat BLK-Name ",`*U#*"))
                                                      '(67 . 0)
)
        )
)
)
      )
)

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