Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  Rund um AutoCAD
  Attribut aus Schriftfeld - Diesel?

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
  
WS LANDCAD-Anwendertreffen 2025, eine Veranstaltung am 17.09.2025
Autor Thema:  Attribut aus Schriftfeld - Diesel? (723 mal gelesen)
deadmau5er
Mitglied
CAD/PDM Admin, Technischer Zeichner, Bauzeichner


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

Beiträge: 142
Registriert: 18.05.2012

Software:
AutoCAD Mechanical 2022 (+LT)
Inventor 2022
CIM Database
Windows 11<P>Hardware:
Intel Core i7 12700K
NVIDIA RTX A4000
64GB RAM
Logitech G502
Razer Tartarus

erstellt am: 14. Aug. 2023 16:46    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,

ich habe die SuFu schon genutzt, aber nicht das richtige gefunden.

Hier mein Wunsch:
Wenn im Schriftfeld in einen bestimmten Attribut ein bestimmtes Wort erscheint, sollte ein Text dargestellt werden.

Ich habe im Schriftfeld folgende Object ID:
%<\AcObjProp Object(%<\_ObjId 2450768087344>%).TextString>%

wenn hier jetzt das Wort "Montage" im Schriftfeld eingefügt wird, soll ein langer Text mit Montageinfos angezeigt werden, um es für Testzwecke einfach zu halten, könnte hier "Montagezeichnung" stehen.

versucht habe ich schon verschiedene Möglichkeiten, aber komme zu keinem Ergebnis.
$(if,$(eq,$(getvar,\AcObjProp Object(\_ObjId 2450768087344).TextString), "Montage"), "Montagezeichnung")

Ich habe noch nichts mit DIESEL gearbeitet und ist völliges Neuland für mich.
Vielleicht gibt es auch andere Lösungen, die besser geeignet wären.
Optimal wäre es, wenn ein Block, der immer in der Vorlagezeichnung verfügbar ist, am Einfügepunkt XY auf dem Layout eingefügt wird. Aber ich bezweifle, dass das so einfach geht?!

auf Hilfe würde ich mich sehr freuen.

Viele Grüße
Marcel

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

System: F1
und Google

erstellt am: 14. Aug. 2023 18:05    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 deadmau5er 10 Unities + Antwort hilfreich

Hi,

>>"$(if,$(eq,$(getvar,\AcObjProp Object(\_ObjId 2450768087344).TextString), "Montage"), "Montagezeichnung")

Auch wenn das nichts bringt, dein Ausdruck etwas aufgedröselt:

1. Als Tip, auch wenn es nicht immer zu einem "Fehler" führt und überall auch anders zu sehen ist:
  Vermeide die unnötigen Leerzeichen in Dieselausdrücken! $(getvar,CTAB) als Beispiel benötigt kein Leerzeichen.
  Hält man sich daran, so ist die Chance auch Probleme zu stoßen geringer wie mit Leerzeichen und es kostet auch nichts,
  vorallen nicht unnötig Zeichen in einem Dieselausdruck (je nachdem wo man Diesel nutzt gibt es Längen-Beschränkungen)


2. $(getvar,\AcObjProp Object(\_ObjId 2450768087344).TextString)
  \AcObjProp Object(\_ObjId 2450768087344).TextString) ist keine AutoCAD-Variable, also rennt getvar in einen Fehler


>>"versucht habe ich schon verschiedene Möglichkeiten, aber komme zu keinem Ergebnis."
Dann hättest du aber doch auch schon mitbekommen das man in Diesel-Schriftfelder keine anderen Schriftfelder verschachteln kannst.
Das Resultat deines verschachtelten Schriftfelds %<\AcObjProp Object(%<\_ObjId 2450768087344>%).TextString>%,
also in deinem Beispiel = "Montage" würde als dummer Textstring in das Dieselschriftfeld integriert werden.
Du hättest also kein Schriftfeld erstellt was so aussieht:
$(if,$(eq,$(getvar,\AcObjProp Object(\_ObjId 2450768087344).TextString), "Montage"), "Montagezeichnung")
sondern so:
$(if,$(eq,"Montage, "Montage"), "Montagezeichnung")

>>"Vielleicht gibt es auch andere Lösungen, die besser geeignet wären."
- Mit Diesel kann man keine Objektdaten auslesen, also geht DIESEL in dem Zusammenhang überhaupt nicht.
  Wäre die Zeichenkette im Layout- oder Dateinamen zu finden und möglichst immer an gleicher Stelle im Namen, dann wäre das lösbar.
- Mit einem Objekt-Eigenschaften Schriftfeld kannst du keine IF THEN ELSE Geschichten machen, also ist das auch raus.
  Bleibt nur noch Programmierung, die funktioniert natürlich nur bei demjenigen der das Programm installiert hat.


>>"Optimal wäre es, wenn ein Block, der immer in der Vorlagezeichnung verfügbar ist, am Einfügepunkt XY auf dem Layout eingefügt wird."
>>" Aber ich bezweifle, dass das so einfach geht?!"

Wieoft soll er das denn machen, jedes Mal wenn eine Datei geöffnet wird? Nach drei Mal öffnen hast du dann 3 Blockreferenzen dort liegen,
oder 100x in der Sekunde? Nein, das geht nicht und wäre auch nicht Sinnvoll.
Ein entsprechendes Zusatzprogramm würde auf Montage=Montageplanung (und die anderen Fälle) prüfen,
dann schauen ober die Blockreferenz bereits eingefügt ist oder das noch erfolgen muss - und diese dann einfügen.


Ootb gibt es da nichts, aus dem www suche ich jetzt auch nichts heraus - möchte aber motivieren zum SUCHEN,
denn du kannst dir denken: Das brauchen sehr vielen Leute! Hauptsächlich wirst du über workarounds stolpern,
aber vielleicht findest du auch ein paar Zeilen Code.
Anm: Nicht nur im deutschen Sprachraum ist das oft gewünscht.


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