devmingle
Home
Categories
Popular Codes
Articles
/
Lisp
/
Elisp return type
Elisp return type
Elisp return type
import bpy from mathutils import Matrix, Vector import bmesh context = bpy.context obj = context.edit_object mw = obj.matrix_world.copy() bm = bmesh.from_edit_mesh(obj.data) face = bm.select_history.active o = face.calc_center_median() axis_src = face.normal axis_src2 = face.calc_tangent_edge() axis_dst = Vector((0, 0, 1)) axis_dst2 = Vector((0, 1, 0)) vec2 = axis_src * obj.matrix_world.inverted() matrix_rotate = axis_dst.rotation_difference(vec2).to_matrix().to_4x4() vec1 = axis_src2 * obj.matrix_world.inverted() axis_dst2 = axis_dst2*matrix_rotate.inverted() mat_tmp = axis_dst2.rotation_difference(vec1).to_matrix().to_4x4() matrix_rotate = mat_tmp*matrix_rotate matrix_translation = Matrix.Translation(mw * o) # obj2 = context.scene.objects.get("Cube.001") obj2.matrix_world = matrix_translation * matrix_rotate.to_4x4()
0
Source:
blender.stackexchange.com
Share
Similar codes
0 vote
177 views
1 answer
Magit pull request
Lisp
0 vote
173 views
1 answer
Emacs switch horizontal vertical
Lisp
0 vote
180 views
1 answer
Doom emacs pdf-tools
Lisp
0 vote
181 views
1 answer
Lisp input
Lisp
0 vote
179 views
1 answer
Common lisp map number to word
Lisp
0 vote
185 views
1 answer
List contains lisp
Lisp
0 vote
181 views
1 answer
Common lisp ide macos
Lisp
Share