搅拌机中的对象大小不正确, [英] Size of object in Blender not correct,

查看:13
本文介绍了搅拌机中的对象大小不正确,的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么长度是1221.21‘,而不是例外。我使用的是Ubuntu21.10Linux和Blender 3.0,脚本使用的是Python。 从右侧的"场景属性"可以看出,单位设置为"英制",而不是公制,应该以英寸和英尺为单位。我也使用正交视图,而不是透视视图。

import bpy
tall = 7
inchesinfeet = 12
#horizontal pieces
length = 192
 #x
width = 4 #y
height = 2 #z
#vertical pieces
thick = 2 #x
wide = 2 #y
ceiling = tall*inchesinfeet #z
oncenter = 18

# bottom
bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, align='WORLD', location=(length/2, 0, 0), scale=(length, 1, 1))

# sides left first
print("length = " + str(length))
'''
bpy.ops.mesh.primitive_cube_add(enter_editmode=False, align='WORLD', location=(width, depth,) (tall*inchesinfeet+2*height)), scale=(width, depth, ))

bpy.ops.mesh.primitive_cube_add(enter_editmode=False, align='WORLD', location=(2 + 1*oncenter, 4, 98), scale=(depth, 

终端输出也符合预期

推荐答案

为什么长度是1221.21‘,而不是预期的192’?

因为运算符bpy.ops.mesh.primitive_cube_add不支持英制公制,并使用‘None’公制创建您的对象,在Blender中该公制与米相同。 记住通过接口的搅拌器符号,例如1.02:

  • 1.02为无

  • 1.02m是表

  • 1.02‘为英制

您能向操作员提供1.02‘吗?否,操作员不支持此表示法。

引用:Blender Mesh Operator : bpy.ops.mesh.primitive_cube_add

程序上,无论使用哪种系统单位,您都必须提供度量(大小、比例等)以"None"度量表示的对象的。 因此,您必须将"Foot"转换为"None"。

如果需要192‘的多维数据集:

1‘=0.3048m

将192‘转换为’无‘(即’米‘)=58.5216

使用58.5216作为参数(大小、比例等)创建对象

仅此而已。

一些解释: 如果您‘手动’(即通过界面)创建一个多维数据集,您会看到对象的大小参数带有当前使用的系统公制单位表示法的后缀(例如None=&Quot;&Quot;,Meter=m,Imperial=‘)。

通过界面,您可以根据需要使用单位表示法(m或‘),无论使用哪种单位制,都可以输入不同的单位表示法来指定对象大小,甚至可以混合输入(有一定限制)。

因此,您可以在大小字段中输入‘1.08m’,即使您使用英制单位系统,Blender也会自动转换它。 使用bpy运算符时,不能通过接口指定单位记数法。 于是,使用默认的"None"(或"Meter")。

"单位设置"是执行以下操作的一种方式:

  • 使用不同的单位比例显示相同的对象大小
  • 通过接口使用默认单位制作为参数。

不是使用默认单位进行计算的方法,因为运算符不支持单位系统表示法,并且所有顶点向量都采用‘无/米’度量;要在修改后的默认多维数据集上显示幕后内容,请执行以下操作:

import bpy
print("Unit System In Use: " + bpy.context.scene.unit_settings.system)
for item in bpy.data.objects:
    print(item.name)
    if item.type == 'MESH':
        for vertex in item.data.vertices:
            print(vertex.co)

可以输出如下内容:

Unit System In Use: IMPERIAL
Camera
Cube
<Vector (3.3311, 1.3453, 1.0000)>
<Vector (1.0000, 1.0000, -1.0000)>
<Vector (1.0000, -1.0000, 1.0000)>
<Vector (1.0000, -1.0000, -1.0000)>
<Vector (-1.0000, 1.0000, 1.0000)>
<Vector (-1.0000, 1.0000, -1.0000)>
<Vector (-1.0000, -1.0000, 1.0000)>
<Vector (-1.0000, -1.0000, -1.0000)

第一个矢量显示位于以下位置的顶点坐标:

10.9287ft, 4.41385ft, 3.28084ft

这篇关于搅拌机中的对象大小不正确,的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆