Nevieš kam dať 2% dane?. A čo tak prispieť na chod našej najväčšej súťaže v Nitre?
Nevieš ako? Napíš správu Radkovi ( RKK) , on ti povie ako na to. Ďakujeme.

Diskusia - Rhino

Moderátor: iconmaster

Užívateľov profilový obrázok
atlon | 46
Pán laserov
Príspevky: 1685
Meno: attila
Bydlisko: Nitra, Levice
Kontaktovať užívateľa:

Re: Diskusia - Rhino

Príspevokod užívateľa 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

Užívateľov profilový obrázok
Ing. Spendlik | 42
Príspevky: 372
Meno: Tomáš
Kontaktovať užívateľa:

Re: Diskusia - Rhino

Príspevokod užívateľa 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 :)

Obrázok



Tu sú vidieť kontrolné body:

Obrázok



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

Obrázok


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

Užívateľov profilový obrázok
QUASI | 43
Príspevky: 512

Re: Diskusia - Rhino

Príspevokod užívateľa 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)

Užívateľov profilový obrázok
Dody | 34
Príspevky: 1285
Meno: Dominik
Bydlisko: Borský Mikuláš / Ružomberok
Kontaktovať užívateľa:

Re: Diskusia - Rhino

Príspevokod užívateľa Dody » 14 Jan 2023 16:04

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

Užívateľov profilový obrázok
serpens | 40
a.k.a. hado
Príspevky: 8850
Meno: Miro
Bydlisko: Žilina
Kontaktovať užívateľa:

Re: Diskusia - Rhino

Príspevokod užívateľa serpens » 01 Máj 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

Užívateľov profilový obrázok
QUASI | 43
Príspevky: 512

Re: Diskusia - Rhino

Príspevokod užívateľa QUASI » 01 Jún 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

Užívateľov profilový obrázok
QUASI | 43
Príspevky: 512

Re: Diskusia - Rhino

Príspevokod užívateľa QUASI » 01 Jún 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.

Kód: Vybrať všetko

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

Užívateľov profilový obrázok
Trak-Tor | 51
2K+
Príspevky: 3659
Meno: Juraj
Bydlisko: Bratislava
Kontaktovať užívateľa:

Re: Diskusia - Rhino

Príspevokod užívateľa Trak-Tor » 01 Jún 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

Užívateľov profilový obrázok
QUASI | 43
Príspevky: 512

Re: Diskusia - Rhino

Príspevokod užívateľa QUASI » 02 Jún 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.

Užívateľov profilový obrázok
Trak-Tor | 51
2K+
Príspevky: 3659
Meno: Juraj
Bydlisko: Bratislava
Kontaktovať užívateľa:

Re: Diskusia - Rhino

Príspevokod užívateľa Trak-Tor » 02 Jún 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

Návrat na "Rhino kútik"

Kto je prítomný

Užívatelia prezerajúci toto fórum: Žiadny pripojení užívatelia a 2 neregistrovaní