TEST UPGRADE FORA
LINK NA VLAKNO TOŤ

Diskusia - Rhino

Moderator: iconmaster

User avatar
atlon | 48
Pán laserov
Posts: 1668
Name: attila
Location: Nitra, Levice
Contact:

Re: Diskusia - Rhino

Postby atlon » 08 Nov 2022 21:00

Ahoj, trošku to tu oživím :victory:
Viete mi niekto povedať akú verziu V-ray pre rhino mám použiť pre Rhino 6 ver. 6.1??
Čo som našiel V-ry tak všetky začínali od verzie Rhina 6.34 :red:
Vopred díky :victory:
Armin is the best

User avatar
Ing. Spendlik | 44
Posts: 367
Name: Tomáš
Contact:

Re: Diskusia - Rhino

Postby Ing. Spendlik » 13 Jan 2023 22:44

Ahojte,
pár dní dozadu som sa snažil nájsť "blueprint" pre jeden Batmobil a žiaľ jediné, čo som našiel, bola video recenzia časopisu, v ktorom sa tento blueprint nachádzal. Urobil som teda aspoň screenshot z videa. Samozrejme, takto získaný blueprint/obrázok je deformovaný (kamera snímala časopis z uhla a keďže je to časopis, tak ten bol navyše ohnutý). Takže vyvstala otázka, ako upraviť obrázok tak, aby som sa zbavil deformácie a dal sa následne použiť ako podklad pre 3D model?

Klasické grafické programy majú všetky funkciu "Skew" alebo "Deform". Avšak, to nie je úplne to, čo by som potreboval. To by musel byť obrázok deformovaný len podľa persepktívy. Je možné, že niektorý program má funkciu, ktorá by toto zvládla. Aby som bol ale úprimný, nie som úplny profík v týchto programoch, čiže nájsť funkciu, ktorá by dokázala to, čo som potreboval, by mi zabralo dosť času. :) V Rhine sa ale vyznám podstatne lepšie a viem, že tam sa niečo podobné spraviť dá. Takže ako na to v Rhinoceros 3D?

1.) Pomocou príkazu Picture som vložil obrázok do Rhina. Tým sa vlastne vytvorí jednoduchá plocha o rozmeroch daného obrázka, ktorá má na sebe daný obrázok ako textúru. S touto plochou následne môžem pracovať, rovnako ako s hocijakou inou plochou.
2.) Klasická plocha ma štyri editovetaľné body (tzv. control points) - každý v jednom rohu, Môžete ich zobraziť tak, že označíte plochu a použijete príkaz PointsOn.
3.) Samozrejme štyri body nestačia na to, aby som mohol upraviť zdeformovaný obrázok. Potrebujem zvýšiť počet kontrolných bodov - to urobím príkazom ChangeDegree. Týmto príkazom mením tzv. UV stupne, čo vo výsledku znamená vyšší počet kontrolných bodov. Pre moje potreby som pre U stupeň zadal číslo 10 a pre V stupeň číslo 6.
4.) No a teraz je to už len o tom, že posúvam jednotlivé kontrolné body tak, aby som vyrovnal deformáciu. Ja som mal tú výhodu, že daný obrázok obsahoval sieť zvislých a vodorovných čiar. Vytvoril som si teda nad obrázkom rovnakú sieť pomocou jednoduchých čiar, zamkol jej editovanie a následne sa snažil posúvaním jednotlivých bodov upraviť obrázok. Cieľom bolo, aby sa sieť na obrázku čo najviac priblížila k sieti, ktorá bola vytvorená čiarami v Rhine.

Tu je vidieť rozdiel v obrázku pred a po. Najväčší rozdiel je v zadnej časti, kde je jasne vidieť "ohnutie" smerom nahor. Na spodnom už upravenom obrázku je ešte pridaná červená stredová os, vcelku som sa trafil :)

Image



Tu sú vidieť kontrolné body:

Image



A tu sú vidieť kontrolné body spolu so spomínanou sieťou čiar, podľa ktorej som upravoval obrázok posúvaním bodov:

Image


Určite existuje milión ďalších spôsobov ako niečo podobné spraviť (a určite kopec z nich bude podstatne jednoduchších), ale možno že to niekomu v budúcnosti pomôže.
Spendlik

User avatar
QUASI | 45
Posts: 575

Re: Diskusia - Rhino

Postby QUASI » 14 Jan 2023 00:12

Super, aktuálne sa tiež snažím väčšinu roboty urobiť v Rhine. V minulosti som využival plejádu podporných programov, ale Rhino to vie pekne suplovať.

(Ináč v "klasických grafických programoch" sa to volá Warp Tool)

User avatar
Dody | 36
Posts: 1245
Name: Dominik
Location: Borský Mikuláš / Ružomberok
Contact:

Re: Diskusia - Rhino

Postby Dody » 14 Jan 2023 16:04

Super, toto by sa veru mohlo hodit. Dakujem za zaujimavy postup.

User avatar
serpens | 42
a.k.a. hado
Posts: 8906
Name: Miro
Location: Žilina
Contact:

Re: Diskusia - Rhino

Postby serpens » 01 May 2023 10:11

Zaujimave. Neskusal si to samsung mobilom odfotit to a dat funkciu scan, ktora to vsetko poribi asi za sekundu? Možno by to slo.
"Art without engineering is dreaming. Engineering without art is calculating." Steven K. Roberts

User avatar
QUASI | 45
Posts: 575

Re: Diskusia - Rhino

Postby QUASI » 01 Jun 2023 00:35

Ako riešite toto (vertikálne zrkadlenie textu)? Ja som zatiaľ na v5 a tam to nejde. Vo v6/7 už to majú vyriešené?

(btw. riešenie mám (aj zverejním, keď to nedoriešili), len chcem vedieť či tomu venovať ďalší čas)

Takže skúste pls.
Dík.
Q

User avatar
QUASI | 45
Posts: 575

Re: Diskusia - Rhino

Postby QUASI » 01 Jun 2023 22:41

No škoda, že to nikto nepozrel v novších verziách.

Tak keby to niekto chcel do v5, tak tu to je.
(Funguje to teda vo v5, novšie nemám možnosť otestovať, ale fungovať by to malo.)

No a robí to to, že zrkadlený text otočí naspäť na právne čitateľný. Na výber (v commandline) je či chceš kópiu alebo nie a tiež kde má byť na konci kontrolný bod textu.
Funguje to len na vertikálne zrkadlenie, mne nič iné netreba tak som iné možnosti zrkadlenia neriešil.

Code: Select all

import Rhino import rhinoscriptsyntax as rs def Q_mirror_text(mirror_copy): to_mirror = rs.GetObjects( "Select objects to mirror", select=True, preselect=True ) # ak su vybrane objekty rob s nimi, ak nie tak ich vyber if to_mirror is None: # ak si nevybral tak vyber return copyOpt = Rhino.Input.Custom.OptionToggle( True, "No", "Yes" ) # chcem zrkadlit kopiu / povodny zmazat mirrorOpt = Rhino.Input.Custom.OptionToggle( mirror_copy, "No", "Yes" ) # zrkadlit/nezrkadlit text # moznosti do command line (to co sa mi zobrazi v riadku), nastavenia vyssie (copyOpt, mirrorOpt) def set_options(): gp.ClearCommandOptions() gp.SetCommandPrompt("Point on vertical plane") gp.AddOptionToggle("Copy", copyOpt) gp.AddOptionToggle("TextJustificationLeft", mirrorOpt) gp = Rhino.Input.Custom.GetPoint() set_options() # zavolam funkciu definovanu cca 5 riadkov vyssie v def set_options() while True: get_rc = gp.Get() if gp.CommandResult() != Rhino.Commands.Result.Success: return gp.CommandResult() if ( get_rc == Rhino.Input.GetResult.Point ): # klikol som, a vybral som bod zrkadlenia suradnice1 = gp.Point() # zistim si suradnice bodu if suradnice1 is None: # ak nie su suradnice, tak skonci return Rhino.Commands.Result.Cancel break suradnice2 = [ suradnice1[0], suradnice1[1] + 10.0, 0, ] # vertikalna linia urcena bodom + 10.0 dohora if to_mirror: mirrored = rs.MirrorObjects( to_mirror, suradnice1, suradnice2, copyOpt.CurrentValue ) # ak mam co zrkadlit tak vyzrkadlim to_mirror do mirrored if mirrored is None: return Rhino.Commands.Result.Cancel for obj in mirrored: if not rs.IsText(obj): continue BBox = rs.BoundingBox(obj) # vytvorim BoundingBox (ramcek okolo textu) objText = rs.TextObjectText(obj) objfont = rs.TextObjectFont(obj) objfontheight = rs.TextObjectHeight(obj) objlayer = rs.ObjectLayer( obj ) # nacitam hodnoty zrkadlenych textovych objektov text = rs.AddText( objText, BBox[0] if mirrorOpt.CurrentValue else BBox[1], objfontheight, objfont, 0, 0 if mirrorOpt.CurrentValue else 4, ) # pridam novy text so zrkadlenou(4)/nezrkadlenou(0) justifiacation rs.ObjectLayer(text, objlayer) rs.DeleteObject(obj) # zmazem povodny vyzrkadleny text rs.UnselectAllObjects() # odznacim vsetky objekty (ak som nekopiroval) if copyOpt.CurrentValue == True: rs.SelectObjects(to_mirror) # odznacim vytvorene objekty return Rhino.Commands.Result.Success if __name__ == "__main__": Q_mirror_text(True)
Je to python, a je to anglicky keďže robím v anglickej verzii, ale snažil som sa zakomentovať slovensky čo najviac aby to bolo prehľadné.

No a do buttonov to nahráte niektorým z týchto spôsobov.
https://discourse.mcneel.com/t/running- ... tons/47290

Tak hádam sa to niekomu zíde.
Q

User avatar
Trak-Tor | 54
2K+
Posts: 3784
Name: Juraj
Location: Bratislava
Contact:

Re: Diskusia - Rhino

Postby Trak-Tor » 01 Jun 2023 23:04

Ja som si to aj prečítal.
Ale moc s textom nerobím.
A nepochopil som, v čom je problém.
Teda čo si urobil, čo mal byť výsledok a čo bol výsledok?
:wink:
-- Ani budúcnosť už nie je to, čo bývala... --
Moja galéria

User avatar
QUASI | 45
Posts: 575

Re: Diskusia - Rhino

Postby QUASI » 02 Jun 2023 08:15

Jaj aha, tak zhruba takto:
Zíde sa to keď máš napr. rovnaké diely ľavé a pravé a potrebuješ ich len otočiť. (Ono to samozrejme kopíruje všetky prvky, nie len text, ale otáča iba text na čitateľný.)

1. riadok - tak funguje rhino štandardne, keď vyzrkadlíš niečo po vertikálnej osi tak ten text je otočený(1 riadok, 2.stĺpec), takže potrebuješ ho ešte raz otočiť aby bol správne (1 riadok, 3.stĺpec)

Toto pomocou toho pythonscriptu vieš urobiť v jednom kroku - 2. riadok

To isté je v 3. riadku, len je tam otočený kotviaci bod textu(to sú tie červené stvorčeky, ktoré som tam pre ilustráciu vytiahol). Takže keď k textu niečo pripíšeš (3.stĺpec, 2. a 3. riadok) tak to zarovnáva k tomu bodu. (teda doprava/doľava).

Teda vyzerá to ako blbosť, ale keď máš tých dielov/textov desiatky, tak to ušetrí celkom dosť klikov.

User avatar
Trak-Tor | 54
2K+
Posts: 3784
Name: Juraj
Location: Bratislava
Contact:

Re: Diskusia - Rhino

Postby Trak-Tor » 02 Jun 2023 09:28

Ok. Teraz je to jasné.
Skúsim to pozrieť v 7-čke.
Ale nemyslím, že sa niečo zmenilo.
:wink:
-- Ani budúcnosť už nie je to, čo bývala... --
Moja galéria

Return to “Rhino kútik”

Who is online

Users browsing this forum: No registered users and 1 guest