| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Optimiertes Einkaufserlebnis dank interaktiver 3D-Modelle im Webshop (APS, Autodesk Platform Services, Autodesk), ein Anwenderbericht |
Autor
|
Thema: dynamischer Block wird unbenannter Block? (609 / mal gelesen)
|
archi.archi Mitglied
Beiträge: 101 Registriert: 08.10.2010 Windows 11 AutoCAD 2024/2025 Revit 2024/2025
|
erstellt am: 16. Apr. 2024 12:07 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 1607 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 / zitieren --> Unities abgeben: Nur für archi.archi
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 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 / zitieren --> Unities abgeben: Nur für archi.archi
|
cadffm Moderator 良い精神
Beiträge: 22171 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 16. Apr. 2024 18:38 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
|
archi.archi Mitglied
Beiträge: 101 Registriert: 08.10.2010 Windows 11 AutoCAD 2024/2025 Revit 2024/2025
|
erstellt am: 17. Apr. 2024 09:03 <-- editieren / zitieren --> Unities abgeben:
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 良い精神
Beiträge: 22171 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 17. Apr. 2024 09:43 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
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
Beiträge: 13527 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 / zitieren --> Unities abgeben: Nur für archi.archi
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
Beiträge: 101 Registriert: 08.10.2010 Windows 11 AutoCAD 2024/2025 Revit 2024/2025
|
erstellt am: 17. Apr. 2024 11:12 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 101 Registriert: 08.10.2010 Windows 11 AutoCAD 2024/2025 Revit 2024/2025
|
erstellt am: 17. Apr. 2024 11:17 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 943 Registriert: 09.10.2004 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme
|
erstellt am: 17. Apr. 2024 11:24 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
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
Beiträge: 13527 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 / zitieren --> Unities abgeben: Nur für archi.archi
|
Meldin Mitglied
Beiträge: 397 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 17. Apr. 2024 16:14 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
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
Beiträge: 101 Registriert: 08.10.2010 Windows 11 AutoCAD 2024/2025 Revit 2024/2025
|
erstellt am: 02. Mai. 2024 13:18 <-- editieren / zitieren --> Unities abgeben:
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 良い精神
Beiträge: 22171 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 02. Mai. 2024 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für archi.archi
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 |
archi.archi Mitglied
Beiträge: 101 Registriert: 08.10.2010 Windows 11 AutoCAD 2024/2025 Revit 2024/2025
|
erstellt am: 29. Mai. 2024 09:30 <-- editieren / zitieren --> Unities abgeben:
|