Support Forum

[Frage] Makros und Legenden

Schlagworte:
  • Allplan
  • 2022-1-2
  • Architektur
  • Makros
  • Legenden

Hallo miteinander,

ich habe mir eine benutzerdefinierte Legende erstellt, um die in einer Zeichnung verwendeten Elemente automatisch mit ihrer korrekten Bezeichnung aufzulisten und diese Legende entsprechend auf der Zeichnung abzusetzen. Es handelt sich um eine Zeichnung mit der Ausführungsplanung Elektrik, also mit Steckdosen, Schaltern, Deckenleuchten, etc... mit entsprechend normgerechten Symbolen, die ich mir selber als 2D-Makros erstellt habe. Das ganze funktioniert gut. Aber es gibt einen Effekt, den ich nicht verstehe.

Manchmal habe ich einzelne Makros in der Zeichnung einfach kopiert, anstatt sie aus der Bibliothek einzufügen. Dabei gibt es keinerlei Probleme. Aber sobald ich ein Makro nicht kopiere, sondern spiegele, erkennt die Legende dieses Makros als ein neues, von seinem Original verschiedenes Makro, und fügt dieses Elektrosymbol entsprechend noch einmal in die Legende ein, so dass dieses Element nun zweimal in der Legende erscheint, obwohl es sich augenscheinlich um das selbe Makro handelt (es ist spiegelsymmetrisch).

Da ich nicht weiß, wie ich erkennen kann, ob ein Makro im Original oder gespiegelt im Plan abgesetzt ist, kann ich nur entweder alle Makros neu absetzen, ohne "spiegeln" zu verwenden, oder ich kann langwierig die drei oder vier gespiegelten Kopien mühsam suchen und entsprechend austauschen.

Ist das ein bekanntes Problem? Gibt es eine einfache Lösung dazu?

Für mich könnte eine Lösung sein, dass die Legende in ihrem Filterkriterium gespiegelte und nicht gespiegelte Makros als identisch erkennt und entsprechend nur einmal aufführt. Wie kann ich dies erreichen?

Eine andere Möglichkeit wäre, das ich gespiegelte Objekte, die sich optisch nicht unterscheiden, anhand eines Attributes erkennen könnte? Ich habe dazu kein Attribut oder keine Eigenschaft gefunden. Gibt es eine entsprechende Möglichkeit?

Eine letzte Möglichkeit wäre, dass man dem Makro die Eigenschaft "spiegelsymmetrisch" irgendwie mitgeben könnte, um anzugeben, das gespiegelte und nicht gespiegelte Version der Makroinstanz programmatisch als identische Elemente erkannt werden sollen... Ich weiß nicht, ob das überhaupt möglich ist.

Ich glaube wirklich, dass das genannte Verhalten ein Fehler des Programms ist. Zum Beispiel könnte jemand einen Stuhl als Makro darstellen und an einer Tischseite davon drei Kopien haben. Aber sobald per "spiegeln" die selben Stühle auf die andere Seite des Tisches kopiert werden, sind es auf einmal nicht mehr "dieselben" Stühle in Legenden und Listen ... ? Das scheint nicht das korrekte, erwartete Verhalten zu sein.

Kann irgendjemand hier mir das Problem auflösen...? Ich bin für jeden Hilfe dankbar.

Gruß aus Nordspanien

Hilfreichste Antwort anzeigen Hilfreichste Antwort verbergen

Das Verhalten ist absolut korrekt, und kann gar nicht anders sein! Beispiel:
Eine Tür DIN L wird durch das Spiegeln zu einer DIN R Tür und umgekehrt! (...ja, auch Türen sind Makros!) Wenn die alle in der Legende oder im Report als eine Tür behandelt würden, wäre das falsch!

Bei Tischen und Stühlen mag es egal sein, Fakt ist:
Spiegeln ist eine geometrische Transformation, die den Richtungssinn umkehrt!
Wenn ein Stuhl ein Schreibbrett rechts hätte, wäre es am gespiegelten Stuhl links!

Auch eine Leuchte hat vielleicht einen unsymmetrischen (seitlichen) Anschluss. Der würde dann auch durch Spiegeln umgekehrt.

In Deinem Fall ist das Verhaten von Allplan vielleicht hinderlich, aber es ist für viele andere Fälle leider notwendig.

Workarounds:
Den "Spiegeln-Befehl" nicht mehr für die Leuchten einsetzen, sondern evtl. nur die Rasterlinien spiegeln, und die Leuchten dann an die Schnittpunkte kopieren. Das meiste geht auch mit Kopieren und drehen (um 180°)

@Allplan
Wie wäre es mit einer zusätzlichen Funktion "Punkte/Makros spiegeln" die folgendes macht:
1. Spiegelt den (Einfüge-)punkt (des Makros) an die neue Position
2. Kopiert danach das Makroplacement (ohne Drehung oder Spiegelung des Inhalts) an die neue Position

Das wäre für den vorliegenden Fall schon mal hilfreich!

Noch besser wäre es, wenn man dem Makro eine Eigenschaft mitgeben könnte, die die Unterscheidung in "ungespiegelt" und "gespiegelt" bei der Auswertung in Legende und Report unterbindet.

Eine andere Möglichkeit wäre die Folgende:
Jedes Macro-Placement besitzt intern eine Eigenschaft "MirrorState", die bei jedem Spiegeln invertiert wird. Es wäre sicher einfach, diese Eigenschaft durch ein neues (berechnetes) Attribut "Gespiegelt" zugänglich zu machen. Dann könnte man in der Legende / im Report selbst entscheiden, ob man Makros mit dieser Eigenschaft separiert, oder nicht.

Bei dieser Gelegenheit könnte man gleich noch die Koordinaten des Einfügepunktes und die Drehung um die 3 Achsen aus der Transformationsmatrix extrahieren, und ebenfalls in Attribute schreiben.

Das würde z.B. bei den SmartPart/PythonParts "Bodenanker" eine Auswertung der Koordinaten und der Lage (Neigung) ermöglichen. Auch für Bohrpfähle oder andere Fundamente sind manchmal (GPS-)Koordinaten des Einfügepunktes des Makros hilfreich!

All das wäre ein wirklich sehr kleiner Aufwand mit einer äußerst großen Wirkung!
Es würde neuen Möglichkeiten eröffnen, SmartPart, PythonParts und VS-Objekte zu beschriften und auszuwerten.
Bitte, denkt wenigstens mal drüber nach...

Hallo,

Entweder ist die Legende vielleicht nicht richtig konfiguriert oder die Makros verfügen nicht über ihren Namen für das Attribut "Bezeichnung" (@507@), auf Spanisch "Nombre".

Um gespiegelte Makros leichter zu finden, fügen Sie Ihren Makros ein kleines Symbol hinzu, z. B. auf der linken Seite. Wenn das Symbol rechts ist, ist das Makro gespiegelt.


Das Verhalten ist absolut korrekt, und kann gar nicht anders sein! Beispiel:
Eine Tür DIN L wird durch das Spiegeln zu einer DIN R Tür und umgekehrt! (...ja, auch Türen sind Makros!) Wenn die alle in der Legende oder im Report als eine Tür behandelt würden, wäre das falsch!

Bei Tischen und Stühlen mag es egal sein, Fakt ist:
Spiegeln ist eine geometrische Transformation, die den Richtungssinn umkehrt!
Wenn ein Stuhl ein Schreibbrett rechts hätte, wäre es am gespiegelten Stuhl links!

Auch eine Leuchte hat vielleicht einen unsymmetrischen (seitlichen) Anschluss. Der würde dann auch durch Spiegeln umgekehrt.

In Deinem Fall ist das Verhaten von Allplan vielleicht hinderlich, aber es ist für viele andere Fälle leider notwendig.

Workarounds:
Den "Spiegeln-Befehl" nicht mehr für die Leuchten einsetzen, sondern evtl. nur die Rasterlinien spiegeln, und die Leuchten dann an die Schnittpunkte kopieren. Das meiste geht auch mit Kopieren und drehen (um 180°)

@Allplan
Wie wäre es mit einer zusätzlichen Funktion "Punkte/Makros spiegeln" die folgendes macht:
1. Spiegelt den (Einfüge-)punkt (des Makros) an die neue Position
2. Kopiert danach das Makroplacement (ohne Drehung oder Spiegelung des Inhalts) an die neue Position

Das wäre für den vorliegenden Fall schon mal hilfreich!

Noch besser wäre es, wenn man dem Makro eine Eigenschaft mitgeben könnte, die die Unterscheidung in "ungespiegelt" und "gespiegelt" bei der Auswertung in Legende und Report unterbindet.

Eine andere Möglichkeit wäre die Folgende:
Jedes Macro-Placement besitzt intern eine Eigenschaft "MirrorState", die bei jedem Spiegeln invertiert wird. Es wäre sicher einfach, diese Eigenschaft durch ein neues (berechnetes) Attribut "Gespiegelt" zugänglich zu machen. Dann könnte man in der Legende / im Report selbst entscheiden, ob man Makros mit dieser Eigenschaft separiert, oder nicht.

Bei dieser Gelegenheit könnte man gleich noch die Koordinaten des Einfügepunktes und die Drehung um die 3 Achsen aus der Transformationsmatrix extrahieren, und ebenfalls in Attribute schreiben.

Das würde z.B. bei den SmartPart/PythonParts "Bodenanker" eine Auswertung der Koordinaten und der Lage (Neigung) ermöglichen. Auch für Bohrpfähle oder andere Fundamente sind manchmal (GPS-)Koordinaten des Einfügepunktes des Makros hilfreich!

All das wäre ein wirklich sehr kleiner Aufwand mit einer äußerst großen Wirkung!
Es würde neuen Möglichkeiten eröffnen, SmartPart, PythonParts und VS-Objekte zu beschriften und auszuwerten.
Bitte, denkt wenigstens mal drüber nach...

Hallo,

Die Unterscheidung zwischen "Links" und "Rechts" bei Blenden funktioniert einwandfrei.

Bei einem "normalen" Makro oder einem normalen Objekt-SmartPart hingegen kann man die Mengen auch ohne Differenzierung erhalten.

Im Beispiel im angehängten Bild habe ich eine Standardlegende von Allplan geändert, die für Fenster galt. Ich habe die Auswahl neu definiert, damit sie auf Makros und SmartParts im Allgemeinen angewendet wird.
Wie man auf dem Bild sehen kann, gibt es keine Differenzierung zwischen den ursprünglichen und den gespiegelten Elementen.

Ohne zu wissen, wie Ihre Objekte und Ihre Legende aussehen, ist es schwierig zu erkennen, warum Sie einen Unterschied erhalten.

Die angehängten Dateien "ExternXXXXX.zip" enthalten diese Legende in den Versionen 2022 und 2024. Ersetzen Sie die Dateierweiterung entsprechend Ihrer Sprache (.fra wird z.B. zu .deu in Deutsch).


Anhänge (3)

Typ: image/png
65-mal heruntergeladen
Größe: 14,54 KiB
Typ: application/zip
367-mal heruntergeladen
Größe: 2,34 KiB
Typ: application/zip
350-mal heruntergeladen
Größe: 2,34 KiB