Ich erläutere gern nochmal das Problem, welches sich dahinter verbirgt:
Das Ergebnis einer SmartPart-Erzeugung besteht aus Makro-Definition und Makro-Verlegung.
Diese beiden Elemente werden im Teilbild gespeichert!
Als Anwender sieht man nur die Makroverlegung, die Definition ist nicht sichtbar.
In der Definition befinden sich die Folien mit den Geometrie-Elementen, die durch die Makro-Verlegung
an der Stelle der Verlegung im Teilbild verschoben, gedreht und verzerrt dargestellt werden.
Die Definition ist eine Art "lageunabhängige" Geometrie-Vorlage, die durch die Verlegung an den konkreten Ort "transformiert" wird.
Solange man nur ein SmartPart (Makro-Verlegung) auf dem Teilbild/den Teilbildern hat, ist alles OK!
Wenn man jedoch das SmartPart an eine andere Stelle oder auf ein anderes Teilbild kopiert, wird nur die Makro-Verlegung kopiert,
d.h. es "teilen" sich 2 Makro-Verlegungen eine Definition.
Dadurch wird jegliche Änderung an der Definition (wie z.B. bei Makro-Modifizieren) automatisch und ungefragt auf
alle Verlegungen übertragen, auch Teilbild übergreifend.
Für Makro-Definitionen auf 2 getrennten Teilbildern, wird zur Überprüfung der "Gleichheit" der Zeitstempel der letzten Änderung der Makro-Definition herangezogen. So werden auch kopierte Definitionen auf anderen Teilbildern gefunden.
Die Scripte und alle Parameter des SmartParts sind in der Makro-Defintion gespeichert.
Bei den SmartParts wird nach einer Änderung (an einer Definition) gefragt, ob "gleiche" SmartParts mit geändert werden sollen.
Für SmartParts wird dabei die "Gleichheit" mit einem Hash über die Parameter-Werte und die Scripte geprüft.
Die Annahme dabei ist: Wenn die Scripte die Parameter-Werte gleich sind, ist auch der Script-Durchlauf und die Ergebnisse (die erzeugten Geometrien auf den Folien) identisch.
Wenn jetzt im Script mit SYMB_POS und SYMB_ROT Parameter der gerade geänderten Makro-Verlegung in den Script-Durchlauf eingebaut werden können, ist die obige Annahme nicht mehr gültig, und der Hash-Wert zum Vergleich nicht mehr geeignet!
Was wird passieren?
Wenn ich ein SmartPart ändere, und im Script für SYMB_POS und SYMB_ROT jeweils die Werte der aktuellen Verlegung "eingesetzt" werden, wird das SmartPart plötzlich "lageabhängig" erzeugt. Das Script-Ergebnis (Geometrie) würde an die Drehung (SYMB_ROT) der aktuellen Verlegung angepasst. Wenn es jetzt noch andere SmartParts gibt, die dieselbe Makro-Definition verwenden, werden diese mit aktualisiert, auch wenn sie vielleicht eine andere Drehung haben! Bei der Position(SYMB_POS) wird es noch komplizierter!
Meistens haben SmartParts unterschiedliche Positionen. Das Script kann immer nur die korrekte Geometrie für die Position der aktuellen Verlegung berücksichtigen. Andere Verlegung werden dann die für ihre Position falsche Geometrie erhalten!
Das bedeutet:
Mit der Freigabe von SYMB_POS und SYMB_ROT dürften sich dann nicht mehr mehrere Makro-Verlegungen eine Definition teilen!
Die Gleichheit könnte nicht mehr zuverlässig geprüft werden. Die "Aktualisierung von Gleichen" müßte komplett abgeschaltet werden.
Bei der Abwägung der Alternativen hat man sich entschieden, dass das Feature "Aktualisierung von Gleichen" zusammen mit der "Teilung" der Definition für mehrere Verlegungen bei Weitem mehr Möglichkeiten schafft, als die Freigabe von Freigabe von SYMB_POS und SYMB_ROT. Gerade weil man bei "massenhaft" vorkommenden SmartParts keine andere Möglichkeit des "Multi-Edit" anbieten kann!
Auch eine "differenzierte" Behandlung von "lageabhängigen" SmartParts (mit SYMB_POS und SYMB_ROT) und "lageunabhängigen" SmartParts (ohne SYMB_POS und SYMB_ROT) erschien zu aufwändig und unverständlich.
Möglicherweise sieht man das aber mittlerweile anders...