Kolorowanie ścian sześcianu, da się parametrycznie?
Kolorowanie ścian sześcianu, da się parametrycznie?
Cześć, projektuję mebla, takiego z płyty meblowej, niektóre brzegi płyty trzeba oklejać inne zostawić nieoklejone - jest takie narzędzie w Part które umożliwia nadawanie kolorów poszczególnym ściankom, i mogę przypisać jakiś kolor do oznaczenia części nieoklejonych, ale potrzebowałbym nadawać te kolory na podstawie wartości z arkusza Spreadsheet. Czy jest to jakoś możliwie?
Może da się inaczej osiągnąć to aby oznaczać brzegi płyty do oklejenia na podstawie wartości z Spreadsheet'a?
Może da się inaczej osiągnąć to aby oznaczać brzegi płyty do oklejenia na podstawie wartości z Spreadsheet'a?
Re: Kolorowanie ścian sześcianu, da się parametrycznie?
Obawiam się, że Spreadsheet tu nie pomoże. Myślałem żeby użyć skryptu w Pythonie i np. nagrać makro, ale wygląda na to, że narzędzie Part FaceColors nie jest obsługiwane w ten sposób, w przeciwieństwie do Std RandomColor.
Re: Kolorowanie ścian sześcianu, da się parametrycznie?
Fajnie że ktoś z Polski też się zajmuje meblami we FreeCADzie, myślałem że sam tylko jestem takim wariatem. A tu proszęherr3ro wrote: ↑Tue May 10, 2022 9:02 am Cześć, projektuję mebla, takiego z płyty meblowej, niektóre brzegi płyty trzeba oklejać inne zostawić nieoklejone - jest takie narzędzie w Part które umożliwia nadawanie kolorów poszczególnym ściankom, i mogę przypisać jakiś kolor do oznaczenia części nieoklejonych, ale potrzebowałbym nadawać te kolory na podstawie wartości z arkusza Spreadsheet. Czy jest to jakoś możliwie?
Może da się inaczej osiągnąć to aby oznaczać brzegi płyty do oklejenia na podstawie wartości z Spreadsheet'a?
Generalnie "edgeband", czy jak tam zwał jest we FreeCADzie możliwy do zrealizowania na 3 sposoby.
Drugi raz już czytam o tym że ktoś chce ustawiać edgeband ze spreadsheeta w sumie to nie wiem za bardzo po co? przecież to bardziej problematyczne niż zaznaczyć konkretny face na modelu 3D i wybrać kolor. W spreadsheecie to musisz znać numery faceów, a problem jest taki że taki array albo MUltiTransform to może mieć tych faceów, setki, a dodatkowo jak zrobisz jakąś transformację na tych obiektach to numerki faceów się pozmieniają.
To oczym piszesz można zrobić, tylko moim zdaniem nie ma to sensu. Byłaby z tym taka grzebanina żeby to poustawiać że szkoda słów
EDIT:
Zazwyczaj przy meblach, oklejanie krawędzi można podzielić na grupy. Zazwyczaj wszystkie podobne elementy, typu boki, półki, przody mają w podobny sposób oklejane brzegi. Nie ma co do tego dorabiać jakieś niesłychanej teorii Warto znać przybliżoną wartość długości okleiny żeby wiedzieć ile metrów trzeba kupić w rolkach, albo jak ktoś zamawia płyty przycięte z okleiną to ile będzie trzeba dopłacić.
Thanks
Darek
github.com/dprojects
workbench for woodworking is available at: github.com/dprojects/Woodworking
Re: Kolorowanie ścian sześcianu, da się parametrycznie?
Cześć, wykonałem model sześcianu, który można pokolorować za pomocą makro.
To jest przykładowe makro, kolorujące jedną ścianę sześcianu na czerwono, a cztery na niebiesko. .
Jestem zainteresowany tematem kolorowania powierzchni za pomocą arkusza kalkulacyjnego.
Obecnie w celu wykonania takiej gwiazdy, muszę kolorować każdą powierzchnię osobno.
https://youtu.be/2egn0UWuTcQ
Wypróbowanie innego układu barw jest zbyt pracochłonne, więc to sobie zwykle odpuszczam.
.
Każda grupa ścian musi mieć ten sam kolor.
Takich grup zwykle jest kilka, więc kombinacji kolorów do sprawdzenia może być naprawdę sporo.
Najwygodniej to zmieniać w jednym miejscu, czyli w arkuszu kalkulacyjnym, gdzie są dostępne wszystkie inne parametry.
Jaką instrukcją można przenieść wartość z komórki arkusza do makro?
.To jest przykładowe makro, kolorujące jedną ścianę sześcianu na czerwono, a cztery na niebiesko. .
Jestem zainteresowany tematem kolorowania powierzchni za pomocą arkusza kalkulacyjnego.
Obecnie w celu wykonania takiej gwiazdy, muszę kolorować każdą powierzchnię osobno.
https://youtu.be/2egn0UWuTcQ
Wypróbowanie innego układu barw jest zbyt pracochłonne, więc to sobie zwykle odpuszczam.
.
Każda grupa ścian musi mieć ten sam kolor.
Takich grup zwykle jest kilka, więc kombinacji kolorów do sprawdzenia może być naprawdę sporo.
Najwygodniej to zmieniać w jednym miejscu, czyli w arkuszu kalkulacyjnym, gdzie są dostępne wszystkie inne parametry.
Jaką instrukcją można przenieść wartość z komórki arkusza do makro?
Re: Kolorowanie ścian sześcianu, da się parametrycznie?
Np z komórki B1:
wartosc = App.ActiveDocument.Spreadsheet.get("B1")
https://wiki.freecadweb.org/Spreadsheet ... ypt.C3.B3w
Niezłe "kwiatki" tworzysz;)
Re: Kolorowanie ścian sześcianu, da się parametrycznie?
Spojrzałem na ten przykład i kilka rzeczy mnie zastanawia:
1. Dlaczego używasz Plane a nie Cube?
2. Face dla Cube ustawia się na innym property: .Cube.ViewObject.DiffuseColor, podobnie dla innych obiektów typu Pad.
3. Nie rozumiem schematu tego spreadsheeta, o jakie grupy kolorów chodzi?
4. Jeżeli chcesz używać nazw kolorów typu: "black", "white", "blue" , to potrzebny jest też fragment kodu który zamieni "niebieski" na coś takiego:
Code: Select all
(0.3333333432674408, 0.0, 1.0, 0.0)
(0.3333333432674408, 0.0, 1.0, 0.0)
(0.3333333432674408, 0.0, 1.0, 0.0)
(0.3333333432674408, 0.0, 1.0, 0.0)
(0.3333333432674408, 0.0, 1.0, 0.0)
(0.3333333432674408, 0.0, 1.0, 0.0)
Mógłbym dodać taki ficzer, bo to pewnie dużo kodu nie jest, pewnie jedna pętla for, tylko fajnie jakby miał jakieś szersze zastosowanie w woodworkingu. Jedyne zastosowanie jakie mi przychodzi do głowy w tej chwili to przykładowo kostka Rubika, żeby sprawdzać kolejne przejścia przy pomocy danych zaimportowanych do spreadsheeta.
Thanks
Darek
github.com/dprojects
workbench for woodworking is available at: github.com/dprojects/Woodworking
Re: Kolorowanie ścian sześcianu, da się parametrycznie?
Dziękuję.
Tak wygląda 'kwiatek' w praktyce i na modelu CAD. Nie miałem sznurków w aż tylu różnych kolorach i musiałem kombinować.
Dwa kolory z konieczności zastąpiłem jednym.
Gdybym mógł to sprawdzić na modelu, to może bym zastąpił nie zielonym, a innym kolorem.
Twoje informacje pomogą mi to sprawdzać w przyszłości.
Re: Kolorowanie ścian sześcianu, da się parametrycznie?
W twoim przypadku chyba lepiej by było utworzyć jakiś obiekt sznurek i później go kopiować i zmieniać cały kolor obiektu a nie tylko face, coś w tym stylu: https://www.youtube.com/watch?v=Z5TUajGHqxo
Aczkolwiek, temat kostki Rubika mnie zaciekawił i napisałem na szybko taki skrypt który koloruje kostkę Rubika, może się komuś też przyda. Nie testowałem go w innych przypadkach więc nie mam pojęcia czy zadziała w innych przypadkach. Można by jeszcze dodać jakiś skypt obracający kostkę Rubika i można by się bawić pod FreeCADem
Przy okazji chyba jest znowu jakiś bug we FreeCADzie bo coś mi kolorów faceów nie chce zapisywać. Są one w property ale po otwarciu ponownym pliku kolorów brak.
- Attachments
-
- faceColors.py
- (877 Bytes) Downloaded 78 times
-
- RubikCube.FCStd
- (43.54 KiB) Downloaded 79 times
Thanks
Darek
github.com/dprojects
workbench for woodworking is available at: github.com/dprojects/Woodworking
Re: Kolorowanie ścian sześcianu, da się parametrycznie?
Ja zwykle ustawiam prostopadle do ścieżki, profil przeciągany, bo wtedy lina ładniej wygląda.
Wystarczy zrobić jedną spiralę, a pozostałe dwie można powielić z obrotem.
Z tym akurat nie mam problemu. .
To jest znany żeglarzom grommet. Kiedyś bawiłem się w jego wirtualne wykonanie.
Re: Kolorowanie ścian sześcianu, da się parametrycznie?
.dprojects wrote: ↑Thu May 12, 2022 5:50 pm Spojrzałem na ten przykład i kilka rzeczy mnie zastanawia:
1. Dlaczego używasz Plane a nie Cube?
2. Face dla Cube ustawia się na innym property: .Cube.ViewObject.DiffuseColor, podobnie dla innych obiektów typu Pad.
3. Nie rozumiem schematu tego spreadsheeta, o jakie grupy kolorów chodzi?
4. Jeżeli chcesz używać nazw kolorów typu: "black", "white", "blue" , to potrzebny jest też fragment kodu który zamieni "niebieski" na coś takiego:
Rozpatruję bardziej ogólne zagadnienie.
Sześć ścian może tworzyć kostkę, albo kafelki na podłodze, lub jeszcze coś innego.
Kody kolorów pokazują się w oknie Pythona, przy ich zmianie dla danej ściany, więc je sobie bez problemu ustaliłem.
.
Tamte pliki były robocze, niepełne, niedopracowane.
Brakowało mi ważnej instrukcji, którą na szczęście poratował mnie kwahoo
.
Teraz wreszcie mogę pokazać działającą, przykładową wersję systemu kodowania kolorów dla sześcianu.
Jest to komplet dwu plików:
kostka1.FCStd i kostka1.FCMacro .
Opis systemu:
W arkuszu Spreadsheet są dwie szare tablice do kodowania za pomocą znaczników logicznych "true".
W pierwszej przypisujemy kolejne ściany do jednej z trzech grup.
W drugiej przypisujemy kolory poszczególnym grupom.
.
Po zakodowaniu wystarczy uruchomić makro i sześcian zostanie pokolorowany zgodnie z naszymi ustawieniami.
.
Ograniczenia:
1. Jedna ściana może należeć tylko do jednej grupy.
2. Jedna grupa może mieć wyłącznie jeden kolor.
3. Grupy są maksymalnie trzy.
.
Pokazuję tylko samą zasadę kodowania, na prostym ograniczonym przykładzie.
Kto chce to może sobie rozbudować system, stosownie do potrzeb.
Można bez problemu zwiększyć liczbę ścian, grup i kolorów.