Van egy objektumom, és két olyan ponttal kell körbeforgatnom az egész objektumot. A forgási pontokhoz két üreget hoztam létre, és el kell forgatnom egy tengely körül, amelyet a két üreg közötti vonal alkot. Próbáltam eredménytelenül hozzáadni az objektumkorlátozásokat. Az alábbi képen el kell forgatnom a háromszöget a piros vonal tengelye körül.
Megjegyzések
- Hasonló egy másik kérdéshez. Kipróbálhatja így .
- Mivel feltettem ezt a kérdést, a Blender 2.8 ezt bevezette megfelelő, könnyen elérhető szolgáltatásként. Görgessen lefelé a régi válaszok mellett a könnyű megoldás érdekében. (Egyébként a
t a régebbi válaszokat alulírja – azok mindenki számára hasznosak, akik a Blender régebbi verzióját használják.)
Válasz
A 3D nézetben számos transzformációs tájolás áll rendelkezésre, amelyek meghatározzák, hogy egy objektum milyen irányban mozog az adott tengely mentén.
Ha ezek az opciók nem felelnek meg a feladatnak, akkor megadhat egy egyéni tájolást . Ez a beállítás a tulajdonságok sávban érhető el N
egyszerűen, ha hozzáad egy objektumot, és 23,6 fokkal elforgatja azt a z tengelyen, majd egy egyedi tájolás megadására használja, akkor ezt a tájolást használhatja egy másik objektum mozgatására, elforgatására vagy méretezésére ugyanazon az x és y tengely mentén, amely 23,6 fokos távolságra az x és y világ tengelyétől.
Ennek használatához, ha két üres hely van a helyén –
- Válasszon ki egy emp ty-t, és nyomja meg a Shift S gombot, és válassza a Kurzor a kijelölthez elemet.
- Adjon hozzá egy síkot és skálázzon nullára az x tengelyen ( S X 0 Enter ).
- Engedélyezze a csúcsra történő kattintást a 3D-s fejlécben.
- Győződjön meg arról, hogy a nézet egy előre beállított (bal, felső, elülső …) oldalhoz igazodik, amely egyenesen a két üreget nézi, hogy az egyetlen szög a kettő a meghatározni kívánt szög. Ha olyan tájolást szeretne meghatározni, amely egynél több tengelyt változtat, akkor a következő lépést három nézetből többször is megismételheti, hogy megfelelő legyen az igazítás.
- Kezdje el forgatni a síkot R és vigye a kurzort a második üres fölé. Ha az üres közepe körül egy kör látható, amely azt mutatja, hogy az bepattan, fogadja el a forgatást. A sík elforgatása most meg fog egyezni a két ürítés közötti szöggel.
- Mutassa meg a tulajdonságok oldalsávot, és keresse meg az Átalakítás tájolása panelt, az .
A sík most törölhető, és az új transzformációs tájolás felhasználható más objektumok mozgatására vagy elforgatására a két ürítés közötti vonallal párhuzamos tengely mentén. .
Ha egyéni tájolás van kiválasztva, akkor a X X , Y Y és Z Z parancsikonok, amelyeket általában a helyi tengelyen mozognak, az egyedi tengelyt fogják használni a helyi tengely helyett.
Válasz
Valójában nincs szükség a két üresség létrehozására, ha csak egy képzeletbeli tengelyt akarsz alkotni. Úgy gondolom, hogy a viszonylag egyszerű és gyors művelet a következő lenne:
Ha szerkesztési módban szeretné megtenni :
- Jelölje ki az összes elforgatni kívánt elemet, majd tartsa lenyomva a Shift gombot, és kattintson kétszer arra az élre, hogy aktívvá váljon;
- Alt . (pont), Shift Numpad 1 ;
- R a kívánt forgatáshoz, majd Enter . Kész.
Ha a Objektum mód:
- Jelöljön ki egy vagy több objektumot, ellenőrizze, hogy a célobjektumot utoljára választotta-e ki. Válassza ki a céléleket Szerkesztés módban;
- Shift S Kurzor a kiválasztottra, . (pont), Shift Numpad 1 ;
- Vissza ide: Objektum mód, R forgatáshoz, Enter . Kész.
–
PS: Természetesen megnyomhatja az Alt szóközt , hogy Normál koordinátarendszer az egyszerű megítéléshez, vagy CtrlAlt szóköz egy új transzformációs orientáció létrehozása / tárolása az alapján további felhasználás céljából, ahogy mások is említik. Csak a leggyorsabb és pontos módszert szeretném javasolni.
Megjegyzések
- Azok számára, akik nem tudják ‘ t,
Alt+.
megváltoztatja a forgáspontot az aktív elemre. A többi pivot opciót az árnyékolási lehetőségek mellett található menüben láthatja.
Válasz
Kézi út
Először válassza ki az egyik kiürítést, és nyomja meg a SHIFT + S Cursor to Selected
gombot.
majd MMB a nézet forgatásához, amíg a kettő ki nem ürül.
Most nyomja meg a . (pont) gombot a 3D kurzor forgáspontjának beállításához. Végül válassza ki az objektumot, és nyomja meg az R gombot a forgatáshoz.
Pythonikus út
Ez a szkript a két ürítés közötti vektort és a forgatást a 3D kurzor körül .
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()
Válasz
Ezt a következővel teheti meg: Mesh Align Plus (a kiegészítőm). Vagy nézze meg a GIF lépéseit, vagy olvassa el az alábbi szöveges verziót (rögzítettem a fent leírt beállítást, majd néhány általánosabb példát arra az esetre, ha hasonlót akarna csinálni):
A keresett funkció a Quick Axis Forgatás operátor a 3D nézet Eszközök panel (T)> Mesh Align Plus fül n, saját paneljén.
-
Válasszon ki egy céltengelyt szerkesztési módban (Tab) a Shift + jobb egérgombbal a két élellenőrzés kiválasztásához (hagyja őket kiválasztva, és ellenőrizze, hogy Forrás automatikus megragadása be van jelölve, alapértelmezés szerint ez van)
-
Írja be a forgatási szöget az Összeg mezőhöz, és az objektummal, amelyet alkalmazni szeretne, forgatás a kijelöltre, nyomja meg az Alkalmazás: Objektumhoz
Válasz
Válasszon céltengelyt (élt) Szerkesztés módban.
Pattintsa a 3D kurzort a kijelölt élre ( Shif t + S és kattintson a Kurzor a kiválasztottra elemre.
Állítsa a 3D kurzort forgópontként ( billentyűzetidőszak gomb ).
Nyissa meg a Tulajdonságok polcot N , és lépjen a Tranfsorm Orientation bevezetésre a panel.
Kattintson a “plusz” gombra az új transzformációs tájolás létrehozásához (vagy nyomja meg a Ctrl + Alt + szóköz billentyűt) .
Ellenőrizze, hogy a létrehozott tájolás aktív-e.
Most a R és a Y + Y megnyomásával elforgathatja az élet. (az adott él helyi Y tengelye mentén).
Válasz
Turmixgép 2.8+
Ez a Blender legújabb kiadásaiban lényegesen egyszerűbb.
Szerkesztési módban válassza ki a két pontját (a Vertex Select módban) vagy az élét ( Edge Select módban).
Nyissa meg az Transformation orientation felugró ablakot:
Ezután kattintson a Tájolás létrehozása ” + ” gomb:
Ez létrehoz egy egyéni transzformációs tájolást, valószínűleg alapértelmezés szerint ” Edge ” nevet kap. Győződjön meg róla, hogy ki van jelölve, ha használni szeretné, vagy ha végzett, váltson vissza a Globális alapértelmezett értékére. Az egyéni átalakítási tájolást a ” X ” a neve mellett:
Amikor az egyéni átalakítási tájolás aktív, forgathat Y tengelye mentén a R Y gombbal, vagy használhatja a Forgatás gizmot:
Válasz
Nem szeretem a meglévő válaszokat. Először elmondom, miért. Ezután felajánlom a saját megoldásomat.
Először is, ez nem olyan, amihez bármilyen kiegészítőre van szükség, és ha telepíthető, akkor egyszerűen nem szükséges telepíteni.
Másodszor, a forgópontok körüli forgatás furcsa interpolációt ad, ha animációban használják. Ennek oka az, hogy nem egyenes forgatás, hanem a forgatás és a fordítás kombinációja. Van, hogy a helyi tengelyektől függően jól fog működni, de előfordul, hogy zavaróan rosszul fog működni.
Harmadszor, az önkényes tengelyek körüli forgatás furcsa interpolációt is eredményezhet, ha az Euler-szögeket használjuk (és a képen csontok hiánya azt sugallja, hogy az Euler-szögeket használja transzformációihoz.) A tetszőleges tengelyek körüli elfordulás az Euler-szögek használatakor könnyen megkaphatja a zavaró furcsaságokat is. Ezt legjobban a ” rubik “kocka bizonyítja ” animációk.
Szóval, mi a megoldás, amelyet támogatnék? Alapvetően azzal, amivel kezdett, de nem tudta befejezni: egy pár ürítés és megkötés. Kezdje azzal a pár ürítéssel, amely rendelkezik, az egyik bármelyik pontban, amely meghatározza a tengelyét. Még nincs semmi szülő. Ezután adjon egy üresnek egy nedves nyomon követi a másik üres célzását. Végül szülőd be azt az objektumot, amelyet el akarsz forgatni a korlátozott üresre. Az objektum elforgatásához forgasd üresen a szülőt a Y Y tengelyében. tengelyek és esetleg fordítás / skála; érdemes beállítani deltákat is hozzá.)
Ehhez nincs szükség kiegészítőkre, csak a szabványos Blender eszközöket használva, és jó interpolációt biztosít transzformációs módtól és tengelyektől függetlenül, mert az összes elforgatás egy üres tengelye lesz.