Kierrä objektia akselilla kahden pisteen välillä

Minulla on esine ja kaksi pistettä, jotka minun täytyy kiertää koko objektin ympäri. Loin kaksi tyhjiötä kiertopisteille, ja minun täytyy kiertää se akselin ympäri, jonka muodostavat kahden tyhjyyden välinen viiva. Yritin lisätä objektirajoituksia turhaan. Alla olevassa kuvassa minun täytyy kiertää kolmiota punaisen viivan akselin ympäri.

Kommentit

  • Samanlainen kuin toinen kysymys. Voit kokeilla tällä tavalla .
  • Koska esitin tämän kysymyksen, Blender 2.8 esitteli tämän asianmukaisena, helposti saatavilla olevana ominaisuutena. Selaa vanhojen vastausten ohi saadaksesi helpon ratkaisun. (Älä muuta

äänestä vanhoja vastauksia – ne ovat hyödyllisiä kaikille, jotka käyttävät Blenderin vanhempaa versiota.)

Vastaus

3D-näkymässä on käytettävissä useita muunnossuuntia, jotka määrittävät, miten objekti liikkuu tietyllä akselilla.

kirjoita kuvakuvaus tähän

Kun nämä vaihtoehdot eivät sovi tehtävään, voit määrittää mukautetun suunnan . Tämä vaihtoehto on käytettävissä ominaisuuksien sivupalkissa N

kirjoita kuvan kuvaus tähän

Laita se yksinkertaisesti, jos lisäät objektin ja kierrät sitä 23,6 astetta z-akselilla ja määrität sitten sen mukautetun suunnan määrittämiseksi, voit sitten käyttää tätä suuntausta toisen objektin siirtämiseen, kiertämiseen tai skaalaan pitkin samaa x- ja y-akselia. 23,6 astetta maailman x- ja y-akselista.

Voit käyttää tätä, kun sinulla on kaksi tyhjentämistä –

  1. Valitse yksi emp ty ja paina Shift S ja valitse kohdistin valittuun.
  2. Lisää taso ja skaalaa nollaan x-akselilla ( S X 0 Enter ).
  3. Ota käyttöön kärkipisteiden napsautus kirjoita kuvan kuvaus täällä 3D-otsikossa.
  4. Varmista, että näkymä on kohdistettu esiasetukseen (vasen, ylhäältä, edestä …), joka näyttää suoraan kahdelle tyhjälle, niin että ainoa kulma kaksi on kulma, jonka haluat määrittää. Jos haluat määrittää suunnan, joka muuttaa useampaa kuin yhtä akselia, voit toistaa seuraavan vaiheen useita kertoja kolmesta näkymästä saadaksesi kohdistuksen oikein.
  5. Aloita pyörittämällä tasoa R ja siirrä kohdistin toisen tyhjän päälle. Kun tyhjän keskustan ympärillä näkyy ympyrä, joka osoittaa, että se napsahtaa sitä, hyväksy kierto. Tason kiertäminen vastaa nyt kahden tyhjentämisen välistä kulmaa.
  6. Näytä ominaisuuksien sivupalkki ja etsi Transformation Orientations -paneeli, luo uusi suunta napsauttamalla -kuvaa kuvaus tässä.

Taso voidaan nyt poistaa ja uutta muunnossuuntaa voidaan käyttää liikuttamaan tai kiertämään muita objekteja akselia pitkin, joka kulkee yhdensuuntaisesti kahden tyhjyyden välillä. .

Kun mukautettu suunta on valittu, X X , Y Y ja Z Z pikakuvakkeet, joita normaalisti käytetään paikallisakselilla liikkumiseen, käyttävät mukautettua akselia paikallisakselin sijaan.

Vastaa

Oikeastaan kahta tyhjyyttä ei tarvitse luoda, jos aiot vain muodostaa kuvitteellisen akselin. Mielestäni tässä suhteellisen yksinkertainen ja nopea toiminta olisi:

Jos haluat tehdä sen muokkaustilassa :

  1. Valitse kaikki elementit, jotka haluat kiertää, pidä sitten Vaihto -painiketta alhaalla ja napsauta sitä reunaa kahdesti, jotta se on aktiivinen;
  2. Alt . (piste), Vaihto Numpad 1 ;
  3. R kiertää haluamallasi tavalla, ja paina sitten Enter . Valmis.

kirjoita kuvan kuvaus tähän


Jos haluat tehdä sen kohdassa Objektitila:

  1. Valitse yksi tai useampi objekti ja varmista, että kohdeobjekti on valittu viimeiseksi. Valitse kohdereuna Muokkaa -tilassa;
  2. Vaihto S kohdistin valittuun, . (piste), Vaihto Numpad 1 ;
  3. Takaisin kohtaan Objektitila , R kiertää, Enter . Valmis.

kirjoita kuvan kuvaus tähän

PS: Voit tietysti painaa Alt välilyönti näyttääksesi Normaali koordinaattijärjestelmä helpon arvioinnin tai CtrlAlt välilyönti luoda / tallentaa uusi muunnossuunta tämän perusteella jatkokäyttöä varten, kuten muutkin mainitsevat. Haluan vain ehdottaa nopeinta ja tarkkaa tapaa.

kommentit

  • Niille, jotka ’ eivät tiedä, Alt+. muuttaa kääntöpisteen aktiiviseksi elementiksi. Näet muut kääntövaihtoehdot varjostusvaihtoehtojen vieressä olevassa valikossa.

Vastaa

Manuaalinen tapa

Valitse ensin yksi tyhjennyksistä ja paina VAIHTO + S Cursor to Selected. kirjoita kuvan kuvaus tähän

sitten MMB kiertääksesi näkymää, kunnes molemmat tyhjät ovat rivissä. kirjoita kuvan kuvaus tähän

Napsauta nyt . (jakso) asettaaksesi kääntöpisteen 3D-kohdistimeen. Valitse lopuksi objekti ja paina R kiertääksesi.

Pythoninen tapa

Tämä komentosarja käyttää vektoria kahden tyhjentämisen välillä ja kiertymistä 3D-kohdistimen ympärillä .

import bpy from mathutils import Vector def main(): C = bpy.context D = bpy.data #rotation set to 90 degrees (rotation in radians) rotation = (6.283185/4) #Save objects by their presumed names empty0 = D.objects["Empty"] empty1 = D.objects["Empty.001"] object_to_rot = D.objects["Suzanne"] #################################################### #set pivot point to be one of the empties by temporarily placing cursor there #use of Vector() here is to avoid copying reference to cursor location old_cursor_loc = Vector(CursorAccess.getCursor()) CursorAccess.setCursor( empty0.location ) CursorAccess.findSpace().pivot_point = "CURSOR" #make object the active object C.scene.objects.active = object_to_rot #get axis we rotate around rotation_axis = empty1.location - empty0.location #override the rotate operator override = get_override("VIEW_3D", "WINDOW") bpy.ops.transform.rotate( override, value=rotation, axis=rotation_axis ) #restore old cursor position CursorAccess.setCursor( old_cursor_loc ) def get_override(area_type, region_type): """Returns a dictionary which can be used to override certain bpy operators""" for area in bpy.context.screen.areas: if area.type == area_type: for region in area.regions: if region.type == region_type: override = {"area": area, "region": region} return override #error message if the area or region wasn"t found raise RuntimeError("Wasn"t able to find", region_type," in area ", area_type, "\n Make sure it"s open while executing script.") class CursorAccess: """This code allows you to set and get the cursor location. It came from the addon Cursor Control http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/Cursor_Control""" @classmethod def findSpace(cls): area = None for area in bpy.data.window_managers[0].windows[0].screen.areas: if area.type == "VIEW_3D": break if area.type != "VIEW_3D": return None for space in area.spaces: if space.type == "VIEW_3D": break if space.type != "VIEW_3D": return None return space @classmethod def setCursor(cls,coordinates): spc = cls.findSpace() spc.cursor_location = coordinates @classmethod def getCursor(cls): spc = cls.findSpace() return spc.cursor_location if __name__=="__main__": main() 

Vastaa

Voit tehdä tämän valitsemalla Mesh Align Plus (lisäosa). Joko tarkkaile GIF: n vaiheita tai lue alla oleva tekstiversio (tallensin yllä kuvaamasi asetukset ja sitten pari yleisempiä esimerkkejä, jos haluat tehdä jotain vastaavaa):

kirjoita kuvan kuvaus tähän

Etsimäsi ominaisuus on pika-akseli Kierrä -operaattoria 3D-näkymä Työkalupaneeli (T)> Mesh Align Plus -välilehdessä , omassa paneelissaan.

  1. Valitse kohdeakseli muokkaustilassa (välilehti) painamalla kahta reunakuvaketta siirtämällä + hiiren kakkospainikkeella (jätä ne valituksi ja varmista, että Automaattinen lähteen nappaus on valittu, se on oletusarvoisesti)

  2. Kirjoita kiertokulma Määrä : lle ja objektilla, jonka haluat käyttää käännä valittu, paina Käytä kohteeseen: objekti

Vastaa

Valitse kohde-akseli (reuna) muokkaustilassa.

Napsauta 3D-kohdistin valittuun reunaan ( Shif t + S ja napsauta Kohdistin valittuun ).

Aseta 3D-kohdistin kääntöpisteeksi ( näppäimistön jaksopainike ).

Avaa Ominaisuudet -hylly N ja siirry Tranfsorm Orientation -käyttöönottoon paneeli.

Luo uusi muunnoksen suunta napsauttamalla plus-painiketta (tai paina Ctrl + Alt + välilyönti ) .
Varmista, että luotu suunta on aktiivinen.

Nyt voit kiertää reunan ympäri painamalla R ja Y + Y (annetun reunan paikallista Y-akselia pitkin).

Vastaus

Blender 2.8+

Tämä on huomattavasti yksinkertaisempi viimeisimmissä Blender-julkaisuissa.

Videon esittely

Valitse muokkaustilassa kaksi pistettäsi (kohdassa Vertex Select -tila) tai reunasi ( Reunan valinta -tilassa).

Avaa Muunna suunta -ponnahdusikkuna:

Muunna suunta

Napsauta sitten Luo suunta + ” -painike:

Luo suunta

Tämä luo mukautetun muunnossuunnan, jonka oletuksena todennäköisesti olet nimeltään ” Edge ”. Varmista, että se on valittu, kun haluat käyttää sitä, tai vaihda takaisin oletusasetukseen Global , kun olet valmis. Voit myös poistaa mukautetun muunnoksen suunnan ” X ” nimen vieressä:

Mukautettu muunnos

Kun muokatun muunnoksen suunta on aktiivinen, voit kiertää Y-akselia pitkin R Y tai käyttää Kierrä gizmo:

Käännä gizmo Käännä käytössä olevaa gizmoa

Vastaa

En pidä olemassa olevista vastauksista. Ensinnäkin, kerron miksi. Sitten tarjoan oman ratkaisun.

Ensinnäkin, tämä ei ole asia, johon lisäosia vaaditaan, ja lisäosien asentaminen, kun se voidaan tehdä, ei yksinkertaisesti ole tarpeen.

Toiseksi kiertyminen pivot-pisteiden ympäri antaa outoa interpolointia, kun sitä käytetään animaatiossa. Syynä on se, että se ei ole suora kiertyminen, vaan kiertämisen ja kääntämisen yhdistelmä. Toisinaan se toimii hyvin, riippuen paikallisista akseleista, mutta toisinaan se toimii hämmentävästi väärin.

Kolmanneksi, mielivaltaisten akselien kiertäminen voi myös antaa outoa interpolointia käytettäessä Eulerin kulmia (ja kuvissa ei ole luita, mikä viittaa siihen, että käytät muunnoksissasi Eulerin kulmia.) Kiertäminen mielivaltaisten akselien ympäri käytettäessä Euler-kulmia voi helposti antaa sinulle myös hämmentäviä outoja – parhaiten osoittavat ” rubikin kuutio ” animaatioita.

Mikä siis on ratkaisu, jota kannatan? Periaatteessa se, mistä aloitit, mutta ei onnistunut loppuun: pari tyhjentämistä ja rajoituksia. Aloita parilla tyhjyydestä, yksi kummassakin kohdassa, joka määrittelee akselisi. Mikään ei vielä ole vanhentunut. Seuraavaksi anna yhdelle tyhjälle vaimennettu seuraa kohdistamista toiseen tyhjään. Lopuksi vanhenna objekti, jonka haluat kiertää rajoitettuun tyhjään. Kierrä objekti kiertämällä ylätaso tyhjäksi paikallisessa Y-akselissa. (Voit antaa tämän tyhjentää muunnoslukot, jotta estetään kiertyminen muissa kohteissa. akselit ja mahdollisesti käännös / mittakaava; voit myös asettaa sille deltat.)

Tämä ei vaadi lisäosia, käyttää vain Blenderin vakiotyökaluja, ja antaa sinulle hyvän interpolaation muunnostilasta ja akseleista riippumatta, koska kaikki kiertosi tulee olemaan tyhjäsi yhdellä paikallisella akselilla.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *