| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | Integration von 3D-Ersatzteilkatalogen in bestehende Systeme, ein Webinar am 24.10.2024
|
Autor
|
Thema: Möglichkeiten bei der Blockerstellung (Blockplatzhalter, Attribute, Schriftfelder...) (1498 / mal gelesen)
|
PB2 Mitglied
Beiträge: 5 Registriert: 09.08.2016 Windows 10 (32-bit) Autocad Architecture 2008
|
erstellt am: 07. Aug. 2017 19:45 <-- editieren / zitieren --> Unities abgeben:
Einen schönen guten Abend! Ich habe eher ein paar allgemeine Fragen, als ein spezielles Problem, mit denen ich mich an euch richte. Mittlerweile habe ich doch schon eine ganze Menge Beiträge hier im Forum, aber auch extern durchforstet. Einige Unstimmigkeiten konnte ich dadurch schon lösen, aber bei einigen Dingen bin ich doch noch etwas ratlos. Darum mein Post hier im Forum. Derzeit erstelle ich diverse Blocksymbole, die zur Kennzeichnung für Bauteile in der Elektro- und Lüftungstechnik fungieren sollen. Allerdings zielen meine Fragen eher auf den allgemeinen Umgang von Blöcken mit Attributen und die Nutzung von Schriftfeldern ab. Beispielsweise habe ich das Symbol einer Brandschutzklappe als dynamischen Block angelegt (Name: BSK), wobei sich hier die grafische Darstellung je nach Bautyp unterscheidet (motorsteuerung, thermische Steuerung...). Soweit auch noch kein Problem. Da aber das Exportieren der Attribute ("attout") etwas kompliziert ist, wegen der Einzelbenennung als "*Uxxx" statt des Blocknamens "BSK" ausgegeben wird, möchte ich ein zusätzliches Attribut einfügen. Dieses soll sich aus zwei Teilen zusammensetzen: Zum einen aus dem Namen des Blocks & dem Attribut für die Nummer der Klappe. Dafür habe ich ein neues Attribut erstellt, welches als Vorgabe zwei Schriftfelder besitzt. 1. Schriftfeld > Objekte > Blockplatzhalter > Name = "EffectiveName" 2. Schriftfeld > Objekte > Objekt > Attribute definieren > Wert (hier habe ich als Referenz eben das Attribut ausgewählt, in dem die Nummer der Klappe manuell eingegeben werden soll) Problem: Das zweite Schriftfeld aktualisiert sich nicht auf eine eingegebene Nummer, auch nicht nach syncronisierung im battman oder attsync Um es jetzt vielleicht nicht übermäßig kompliziert zu machen hier die Frage: Lässt sich ein Schriftfeld einfügen, indem ich über Andere>Diesel-Ausdruck oder eine LispVariable den Attributwert abrufen kann? Gibt es eine Systemvariable, die mir den Wert eines definierten Attributs vom jeweiligen Blockplatzhalter zurückgibt? Darüber hinaus. Es ist mit ADT möglich, beispielsweise eine Tür mit dem zugehörigen Raum zu verknüpfen. Dadurch lassen sich Attribute wie Raumnummern o.ä. synchron halten. Diesen Weg kann ich leider nicht gehen, da verschiedene Fachplaner mit den Zeichnungen arbeiten. Existiert ein möglicher Workaround, durch den ich ein Attribut bei der Erstellung des Blocks 1x mit einem anderen Block verknüpfe? Sodass eine Raumnummer nur noch im Raumstempel und nicht mehr in allen zugehörigen Symbolen verändert werden muss?
Ich sage schon mal vielen Dank im Voraus. Falls meine Erklärung zu wirr sein sollte, bitte ich um Rückfragen. --- Autocad Architecture 2008 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 07. Aug. 2017 20:47 <-- editieren / zitieren --> Unities abgeben: Nur für PB2
Warum Attout und nicht eattext/datenextrakt? Dann ist auch der annonyme Blockname kein Problem mehr. Auf Werte späterer Attribute kannst du kein Schriftfeld in der Blockdefinition verlinken (wenn und aber mal beiseite gelassen). Workarounds gibt es einige, aber so geradlinig wie gewünscht nicht. Nach deiner Beschreibung ist dies aber auch nicht zwingend nötig, wenn Blockname und Attributwert in einem Datensatz des Exports steht, dann hast du ja alle nötigen Infos zusammen.
Die Sache mit der Raum/Türinfo ist ein ähnliches Thema. Nachdem Blockreferenzen erstellt wurden kann man ein Schriftfeld erstellen welches auf die (jetzt existierenden) Attribute einer Blockreferenz zugreift. Schriftfeld erstellen, Objekt, Blockreferenz wählen, Attribut auswählen, fertig. Diese Verlinkungen sind mühsam und man kann sich dafür die entsprechenden Werkzeuge besorgen, zwei Klicks (Türattribut und Raumstempelattribut) &fertig. BTW: Interessant das ihr Daten von Fachplanern weiterverarbeiten müsst, für gewöhnlich arbeitet nur der Architekt in der ARC Datei. Dann würden man ACA Funktionalitäten nutzen können und die anderen Fachplaner bekommen nur einen DWGEXPORT, also dumme Daten um diese als XRef unter die TGA etc zu legen.
------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PB2 Mitglied
Beiträge: 5 Registriert: 09.08.2016 Windows 10 (32-bit) Autocad Architecture 2008
|
erstellt am: 08. Aug. 2017 11:20 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für deine Antwort! Die Datenextraktion kannte ich noch gar nicht. Bisher wurde alles über attin/attout geregelt. Jetzt habe ich ein bischen damit rumgespielt und ja, die Dynamischen Blocknamen werden richtig ausgegeben. Nur ist der spätere Datenimport bisher noch nicht möglich gewesen. Es gibt ja doch sehr unterschiedliche Formatierungen zwischen attout oder Datenextrakt. Wie gesagt ist mir diese Möglichkeit noch neu, vermutlich gibts dazu auch schon Hilfe. Schriftfelder in neu eingefügten Blöcken mit Stempeln o.ä. verknüpfen klappt auch. Hier trau ich mir auch ein DIESEL Macro zu, mit dem ich schneller Verknüpfungen anlegen kann. Dazu nur noch eine Frage: Lässt sich der Schriftfeldausdruck hier auch direkt in ein Macro einbauen, ohne die drei Reiter abzuarbeiten? Ich denke hierbei vor allem an so etwas wie "self.name" oder "self.attribute.ID" wie es in python aussehen würde? Das wäre eben das sparsame, ein Schriftfeld mit der Information zum Eigennamen und nicht mit dem Namen des Objekts #2591, welches ich selber bin. Wie würde denn eigentlich der Ausdruck für $(getvar, IDvonObjektBSK#2591) aussehen? ---
Zitat: BTW: Interessant das ihr Daten von Fachplanern weiterverarbeiten müsst, für gewöhnlich arbeitet nur der Architekt in der ARC Datei. Dann würden man ACA Funktionalitäten nutzen können und die anderen Fachplaner bekommen nur einen DWGEXPORT, also dumme Daten um diese als XRef unter die TGA etc zu legen.
Das liegt daran, dass ich derzeit nicht auf der Architektenseite stehe, sondern auf Fachplanerseite. Passiert manchmal Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 08. Aug. 2017 12:12 <-- editieren / zitieren --> Unities abgeben: Nur für PB2
Export: Schön, nun kennst du eine neue Funktion von AutoCAD, von Import wurde zuvor nichts geschrieben, denn dabei hätte ich gleich das ABER eingelegt. AutoCAD bietet keinerlei Funktionen zum import, die uralte ATTOUT/ATTIN Geschichte kommt durch die Expresstools welche früher (bis heute) eine kostenlose Dreingabe war um den Funktionsumfang zu erhöhen. Zwischenzeitlich wollte man dafür auch mal Geld kassieren. Diese Tools wurden nie weiterentwickelt, aber Stück für Stück ünernimmt man die Funktionen in das eigentliche Programm (Attin/Attout bisher jedoch nicht). Kurz: Wer Daten exportieren, ggf. bearbeiten und importieren möchte, der sollte sich entsprechend nach einer leistungsstarken oder zumindest "sicheren" Programmerweiterung umsehen. Anm1: Eine richtige Lösung für "Datenextraktion importieren" gibt es nicht. Anm2: Ein Import würde aber auch die Schriftfelder in den Attributen zerstören und durch dummen Text ersetzen?! - "Schriftfelder in neu eingefügten Blöcken mit Stempeln o.ä. verknüpfen klappt auch. Hier trau ich mir auch ein DIESEL Macro zu, mit dem ich schneller Verknüpfungen anlegen kann." Das kann mit AutoCAD-Befehlen nicht funktionieren da es keine Befehle gibt zum ermitteln der notwendigen ObjectID. *1
"Lässt sich der Schriftfeldausdruck hier auch direkt in ein Macro einbauen, " Nur wenn man den vollständigen Schriftfeldcode kennt und das ist hier nicht der Fall. *1 "Wie würde denn eigentlich der Ausdruck für $(getvar, IDvonObjektBSK#2591) aussehen?" Mit der Frage kann ich recht wenig anfangen? Eine ObjektId ist nur am Objekt selbst zu ermitteln und dafür gibt es keine Befehle. *1 *1 Bei Autmatisieren und Schriftfeld(code) benötigt dann schon etwas Programmierung in welcher Sprache auch immer, damit sind LT-Versionen schon mal raus. In Makros (nur mit AutoCAD-Befehlen) kann man maximal Schriftfelder erstellen welche "komplett fertig" sind und da auch nur durch den Ablauf in einem AutoCAD-Script(*.scr), weil man in einem Makro keine Backslashs übergeben kann.
Mit VBA/NET/Lisp würde es funktionieren, dann auch komplett mit ObjecID Ermittlung etc. Hier mal ein Beispiel: http://forum.cad.de/foren/ubb/Forum54/HTML/032566.shtml ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PB2 Mitglied
Beiträge: 5 Registriert: 09.08.2016 Windows 10 (32-bit) Autocad Architecture 2008
|
erstellt am: 08. Aug. 2017 19:10 <-- editieren / zitieren --> Unities abgeben:
Hallo. Nochmals vielen Dank. Ich dachte es ließe sich etwas einfaches zusammenbasteln durch das wir weiterkommen. Zumindest schien mir das durch meine Kenntnisse möglich. Aber ja, jetzt sehe ich, dass es sich nicht so ohne weiteres on-the-fly umsetzten lässt. Daten exportieren/bearbeiten/importieren scheint wirklich nur durch externe Plugins zu funktioniern. Schade. Auch wenn es an der veralteten Version liegen mag, ich dachte nicht, dass dies so stiefmütterlich implementiert ist. Danke für deine Hilfe! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|