Transparenz in 0.17

In diesem Forum Fragen und Diskussionen in Deutsch
Forum rules
Foren-Regeln und hilfreiche Informationen

WICHTIG: Bitte zuerst lesen, bevor Sie posten
Repman
Posts: 288
Joined: Sat Jul 05, 2014 9:56 am

Transparenz in 0.17

Post by Repman »

Hallo!
Folgendes Phänomen finde ich sehr lästig:
Hat man einem Körper Transparenz zugewiesen und verarbeitet ihn dann weiter (z. B. durch boolsche Operationen), so hat auch der daraus entstehende Körper wieder Transparenz. Soweit ok. Wenn ich in diesem Körper aber die Transparenz wieder auf 0 drehe und eine erneute boolsche Operation mit ihm durchführe, so hat der daraus resultierende Körper dennoch wieder Transparenz, obwohl die direkten Ausgangskörper keine Transparenz haben.
Oder anders gesagt: Wenn ich in einem Baum von Teilen nur ein Teil dabei habe, welches Transparenz größer als 0 hat, so hat bei jeder Weiterverarbeitung der resultierende Körper diese Transparenz geerbt. Die Vererbung erfolgt dominant.
Ist das ein Fehler oder so gewollt?

Ach ja: Die Transparenz ist da, obwohl FC schreibt, sie wäre 0. Man muss zur Änderung also wieder eine Transparenz > 0 einstellen und dann wieder auf 0 zurückdrehen.
Und gleiches gilt, wenn man z. B. in Part Fillets erzeugt. Bei jeder Änderung der Fillets wird wieder Transparenz eingestellt, obwohl man sie gerade ausgeschaltet hat. FC zeigt Transparenz 0 an, die Teile sind aber transparent. Ändert man dann von Transparenz 0 auf z. B. 80 und wieder zurück auf 0, so sind die Teile wieder solid ohne Transparenz.
Transparenz in 0_17.png
Transparenz in 0_17.png (265.84 KiB) Viewed 3007 times
Viele Grüße
Repman

OS: Windows 7
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.11684 (Git)
Build type: Release
Branch: master
Hash: ab596b0495d465b595f565735f0857833241b12d
Python version: 2.7.8
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: German/Germany (de_DE)
wmayer
Site Admin
Posts: 17764
Joined: Thu Feb 19, 2009 10:32 am

Re: Transparenz in 0.17

Post by wmayer »

Oder anders gesagt: Wenn ich in einem Baum von Teilen nur ein Teil dabei habe, welches Transparenz größer als 0 hat, so hat bei jeder Weiterverarbeitung der resultierende Körper diese Transparenz geerbt. Die Vererbung erfolgt dominant.
Ist das ein Fehler oder so gewollt?
Meiner Meinung nach ist das Verhalten so in Ordnung. Man kann die Sache auch andersherum sehen. Angenommen man würde die Transparenzen der Zwischenobjekte beibehalten, was würde dann ein Anwender erwarten, wenn er zuerst die Transparenz eines Zwischenobjekt ändert und danach die der Ausgangsobjekte?

Abgesehen davon frage ich mich, ob es wirklich sinnvoll ist, Transparenzen von Zwischenobjekten zu ändern.
Ach ja: Die Transparenz ist da, obwohl FC schreibt, sie wäre 0. Man muss zur Änderung also wieder eine Transparenz > 0 einstellen und dann wieder auf 0 zurückdrehen.
Momentan ist es so, dass ein FreeCAD-Objekt nur einen einzelnen Wert für Transparenz annehmen kann, der OpenInventor-Knoten aber für jede einzelne Fläche eine eigene Transparenz haben kann. Somit stimmt dann die GUI-Logik nicht mehr ganz. Man müsste also eine Property-Klasse implementieren, die 1:1 das umsetzt, was der OpenInventor-Knoten kann.
Repman
Posts: 288
Joined: Sat Jul 05, 2014 9:56 am

Re: Transparenz in 0.17

Post by Repman »

Hallo Werner,
Angenommen man würde die Transparenzen der Zwischenobjekte beibehalten, was würde dann ein Anwender erwarten, wenn er zuerst die Transparenz eines Zwischenobjekt ändert und danach die der Ausgangsobjekte?
Ich gebe dir Recht. Das Verhalten ist eigentlich nachvollziehbar. Ich verwende die Transparenz meist nur, um in Objekte hineinschauen zu können, um dann andere Objekte zu plazieren oder auszurichten. Das hauptsächlich deshalb, weil der Dialog der Clipping Plane die Placement-Dialoge der anderen WorkBenches blockiert, wenn er offen ist.
Abgesehen davon frage ich mich, ob es wirklich sinnvoll ist, Transparenzen von Zwischenobjekten zu ändern.
Wenn ich aber die Transparenz des Folgeobjekts aus einer boolschen Operation mit diesem Zwischenobjekt ändere, dann sollte dieses neue Zwischenobjekt jedenfalls die eingestellte Transparenz auch behalten. Das war unter 0.16 jedenfalls noch so.

Bei folgendem Beispiel erkennt man (erstellt unter 0.16):
BeispielTransparenz.FCStd
(6.85 KiB) Downloaded 32 times
- Der Würfel hat Transparenz 80.
- Der Zylinder 0
Der Cut daraus hat dann ebenfalls 0. Mache ich dann ein Fillet bleibt der Transparenzwert bei 0.
Lade ich diese Datei in 0.17, so ist das Verhalten wie unter 0.16.

Erstelle ich das gleiche unter 0.17, ergibt sich folgendes:
BeispielTransparenz2.FCStd
(8.87 KiB) Downloaded 28 times
- Der Würfel bekommt Transparenz 80, der Zylinder 0.
- Der Cut behält dann Transparenz 80, ausser die Schnittfläche.
- Das Fillet ist ebenfalls nicht transparent an der Filletfläche, der Rest schon.
Stelle ich jetzt die Transparenz des gesamten Teils auf 0, so ist der ganze Körper nicht transparent. Ändere ich dann ein Fillet oder mache eine weitere Cut-Operation, wird wieder alles transparent.
Naja, dieses Verhalten ist für mich jedenfalls nicht transparent :shock: .-)
Hoffe jemand kann das wenigstens nachvollziehen.

Die Folge daraus ist jedenfalls, dass man einmal zugewiesene Transparenz wieder am Ursprungsteil ändern müsste. Aber auch das funktioniert nicht: Gebe ich in obigem Beispiel dem Würfel wieder Transparenz 0, so bleibt sowohl der Cut als auch das Fillet transparent. Ändert man auch diese auf Transparenz 0, so führt trotzdem jede Änderung am Fillet zu einem transparenten Körper. Das darf, glaube ich, nicht sein!
Viele Grüße
Stefan
chrisb
Posts: 38687
Joined: Tue Mar 17, 2015 9:14 am

Re: Transparenz in 0.17

Post by chrisb »

Repman wrote: Tue Aug 08, 2017 2:38 pm Ich verwende die Transparenz meist nur, um in Objekte hineinschauen zu können, um dann andere Objekte zu plazieren oder auszurichten.
Dafür ist die Ansicht als Drahtgitter hilfreich.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
chrisb
Posts: 38687
Joined: Tue Mar 17, 2015 9:14 am

Re: Transparenz in 0.17

Post by chrisb »

Welche Workbench hast Du verwendet?

In meiner Version ist das Verhalten in PartDesign vollkommen klar: Transparenz wird am Body gesetzt und nicht an einzelnen Features.
In der Part WB habe ich ein anderes Verhalten als Du:
- zuerst habe ich den Zylinder gemacht und Transparenz gesetzt. Wenn ich jetzt eine Ecke mit einem Würfel rausschneide bleibt die Außenfläche transparent, die Schnittflächen aber nicht. Wenn ich Fillets anfüge dann sind die auch nicht transparent.
Bildschirmfoto 2017-08-08 um 18.05.35.png
Bildschirmfoto 2017-08-08 um 18.05.35.png (32.51 KiB) Viewed 2922 times
OS: Mac OS X
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.11740 (Git)
Build type: Release
Branch: (detached from 6b05302)
Hash: 6b05302c2e70f191a2a5787f55c5b549155b9824
Python version: 2.7.13
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: German/Germany (de_DE)
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Repman
Posts: 288
Joined: Sat Jul 05, 2014 9:56 am

Re: Transparenz in 0.17

Post by Repman »

chrisb wrote: Tue Aug 08, 2017 4:10 pm Welche Workbench hast Du verwendet?
Habe es in der PartWB gemacht.
Transparenz wird am Body gesetzt und nicht an einzelnen Features.
OK, dann müsste es sich aber wieder rückgängig machen lassen.
In der Part WB habe ich ein anderes Verhalten als Du:
- zuerst habe ich den Zylinder gemacht und Transparenz gesetzt. Wenn ich jetzt eine Ecke mit einem Würfel rausschneide bleibt die Außenfläche transparent, die Schnittflächen aber nicht. Wenn ich Fillets anfüge dann sind die auch nicht transparent.
Das ist genau mein Verhalten auch. Ich hatte nur den Würfel transparent gesetzt und den Zylinder solid. Die Fillets sind bei mir auch nicht transparent, der Rest des Objekts aber schon. Wenn Du jetzt aber deinen Zylinder wieder auf solid setzt, ist dein Fillet-Objekt totzdem transparent (eben bis auf die eigentlichen Fillets). Und wenn du das Fillet-Objekt auf solid setzt und anschließend eben dieses Fillet-Objekt wieder veränderst, dann ist das Fillet-Objekt wieder transparent. Einmal transparent, immer transparent!

Wie geschieben: In der 0.16 war das anders.

Viele Grüße
Stefan
chrisb
Posts: 38687
Joined: Tue Mar 17, 2015 9:14 am

Re: Transparenz in 0.17

Post by chrisb »

Repman wrote: Tue Aug 08, 2017 7:59 pm Einmal transparent, immer transparent!
Stimmt. Auch ein Force_Recompute hilft nicht.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Repman
Posts: 288
Joined: Sat Jul 05, 2014 9:56 am

Re: Transparenz in 0.17

Post by Repman »

Bin da bestimmt kein Experte in Sachen Programmierung. Sieht aber für sich so aus, als würden hier irgendwelche Objekteigenschaften vererbt, die dann falsch aufgegriffen werden. Vieleicht verstehe ich aber auch das Konzept dahinter nicht ganz.
Wenn ich jedenfalls einem Objekt eine Eigenschaft zuweise und diese anschließend wieder ändere, dann fände ich es logisch, wenn die Eigenschaft sich dann auch ändert und nicht einfach erhalten bleibt. Sonst müsste ich ja mein ganzes Projekt wieder from scratch beginnen, wenn ich diese Eigenschaft nicht behalten will. Das kann doch nicht sein.
Sorry for the trouble, aber die Entwickler wollen ja immer Feedback.
Viele Grüße
Stefan
wmayer
Site Admin
Posts: 17764
Joined: Thu Feb 19, 2009 10:32 am

Re: Transparenz in 0.17

Post by wmayer »

Wenn ich aber die Transparenz des Folgeobjekts aus einer boolschen Operation mit diesem Zwischenobjekt ändere, dann sollte dieses neue Zwischenobjekt jedenfalls die eingestellte Transparenz auch behalten. Das war unter 0.16 jedenfalls noch so.
In v0.16 hat es dieses Feature nämlich noch gar nicht gegeben, dass Transparenzen von Eingabe- auf Ausgabe-Objekte kopiert werden. Das hat wohl erst irgendwann in v0.17 Einzug gehalten. Yorik hat das mal vor einigen Monaten implementiert.
Aber auch das funktioniert nicht: Gebe ich in obigem Beispiel dem Würfel wieder Transparenz 0, so bleibt sowohl der Cut als auch das Fillet transparent. Ändert man auch diese auf Transparenz 0, so führt trotzdem jede Änderung am Fillet zu einem transparenten Körper. Das darf, glaube ich, nicht sein!
Kann ich bestätigen. Das ist also auf jeden Fall ein Fehler.
Repman
Posts: 288
Joined: Sat Jul 05, 2014 9:56 am

Re: Transparenz in 0.17

Post by Repman »

OK, ich warte auf Abhilfe in einer der nächsten Versionen :-)
Post Reply