模型的长宽高在写一些需要计算的插件时还是挺有用的,可以通过object.dimensions(模型尺寸)知道,可是遇到复数模型组成的物体计算长宽高就比较麻烦了,像我这个模型就是复数子模型组成的,用一个空物体当父级

两个方法:方法一,把复数模型合并成一个模型;方法二,通过顶点计算出长宽高

方法一代码

selected_objects = bpy.context.selected_objectsbpy.context.view_layer.objects.active = selected_objects[0]bpy.ops.object.join()

这样就可以通过object.dimensions(尺寸)知道长宽高了,麻烦的是需要还原成复数模型,我的解决方法是复制模型,把复制的模型合成一个模型获得长宽高后删除这个合成的模型,这样就可以避免动原模型了

方法二,本来想通过循环顶点来计算长宽高的,结果发现耗时太长了,就找其他方法,在object的属性里发现了bound_box属性,这个属性是用来画边框用的,那我就可以用这8个顶点来计算最大值和最小值

贴代码

from mathutils import Vectordef get_object_size(parent_object):is_start = Falsemax_x = 0.0max_y = 0.0max_z = 0.0min_x = 0.0min_y = 0.0min_z = 0.0for obj in parent_object.children:box_corners = [obj.matrix_world @ Vector(corner) for corner in obj.bound_box]for v in box_corners:x = v[0]y = v[1]z = v[2]if is_start:max_x = max(max_x, x)max_y = max(max_y, y)max_z = max(max_z, z)min_x = min(min_x, x)min_y = min(min_y, y)min_z = min(min_z, z)else:is_start = Truemax_x = xmax_y = ymax_z = zmin_x = xmin_y = ymin_z = zwidth = max_x - min_xheight = max_y - min_ylength = max_z - min_zdimensions = (width, height, length)return dimensions

通过obj.matrix_world计算出该顶点的世界坐标,然后通过各个轴的最大值和最小值计算出长宽,最后的命名请无视掉,出于习惯把x轴当宽,y轴当高了

Blender 插件开发 计算模型长宽高相关推荐

  1. 虚幻引擎(14)-测量模型长宽高

    文章目录 前言 其他介绍 上一篇笔记 下一篇笔记 一.第一种方式 二.第二种方式 前言 模型长宽高的测量方法 虚幻引擎版本: 4.23.1 其他介绍 虚幻4官方文档 虚幻4中文官网 虚幻引擎蓝图API ...

  2. 使用Metashape软件测量三维重建模型的长宽高

    一.引言 本文修改自我的摄影测量学期末实验报告 实验内容 使用Metashape软件,对常见物件进行摄影测量.基于三维重建结果,测量物件的长宽高,并对测量结果进行精度评价. 二.三维重建测量方法 对于 ...

  3. java设计一个立方体类box_实例1: 设计一个立方体类Box,定义三个属性,分别是长,宽,高。定义二个方法,分别计算并输出立方体的体积和表面积。_学小易找答案...

    [填空题]表达式 list(filter(lambda x:x>2, [0,1,2,3,0,0])) 的值为 _________ . [填空题]表达式 len(' 中国 '.encode('ut ...

  4. 定义长方体类,数据成员有长、宽、高,成员函数有带默认形参值的构造函数(默认长宽高分别为2.5、3.4、2)、计算体积函数,分别构造默认对象和长宽高分别为6.25、4.8、5.2的对象,输出各对象的体积

    定义长方体类,数据成员有长.宽.高,成员函数有带默认形参值的构造函数(默认长宽高分别为2.5.3.4.2).计算体积函数,分别构造默认对象和长宽高分别为6.25.4.8.5.2的对象,输出各对象的体积 ...

  5. C++:输入长方体长宽高计算体积(使用构造函数)。

    题目概述: 输入长方体长宽高计算体积. 编程: #include using namespace std; class Cft { public: Cft() { length = 0; width ...

  6. 求三个长方柱的体积,数据成员包括length(长)、width(高)。要求用成员函数实现以下功能: (1)用键盘分别输入三个长方柱的长宽高; (2)计算长方柱的体积;(3)输出3个长方柱的体积。

    项目要求: 需要求三个长方柱的体积,请编写一个基于对象的程序,数据成员包括length(长).width(高).要求用成员函数实现以下功能: (1)用键盘分别输入三个长方柱的长宽高: (2)计算长方柱 ...

  7. 求表面积和体积。 读入5个整数a, b, c, d 和 e,计算物体的表面积和体积。你可以想像该物体是一个长宽高为a, b, c 的长方体,每中央都是凹进去的,而凹进去的深度为 d,沒凹进

    题目描述: 读入5个整数a, b, c, d 和 e,计算物体的表面积和体积.你可以想像该物体是一个长宽高为a, b, c 的长方体,每一面中央都是凹进去的,而凹进去的深度为 d,沒凹进去的边框宽度 ...

  8. 魔猴-stl3D文件计算体积、面积、长宽高

    前一阵子正好有个单子是做关于艺术品的3D文件报价,与魔猴网有些许类似. 因故自己倒腾了一下STL3D文件的体积.面积.长宽高的计算方法. 主要基于Three.js,直接贴代码~~~ function ...

  9. 第三周任务四:计算长方体的长宽高

    /* (程序头部注释开始)* 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称: * 作 者: 田 ...

最新文章

  1. Cesium学习笔记(九):导入3D模型(obj转gltf)
  2. robot.txt 搜索引擎 蜘蛛爬虫 搜索规则
  3. [转]使用QT开发GoogleMap瓦片显示和下载工具
  4. 学习笔记整理之对象的转型
  5. NodeList 和 HTMLCollection
  6. 【Flutter】HTTP 网络操作 ( 引入 http 插件 | 测试网站 | Get 请求 | Post 请求 | 将响应结果转为 Dart 对象 | Future 异步调用 )
  7. Android系统system文件夹结构的说明 \system下的app、lib、bin、etc、fonts、framework
  8. go语言实现斐波那契
  9. eclipse 如何忽略js文件报错
  10. 腾讯海量存储与CDN的自动化运维
  11. zigbee的路由器能分配网络地址吗_家用无线路由器讲解
  12. Realtek无线网卡在Linux,gentoo下Realtek无线网卡的解决方案…
  13. 文件锁(二)——文件锁的读锁和写锁
  14. 钉钉桌面版绑定其他邮箱
  15. Zlib的安装与测试
  16. XDM、GDM和KDM
  17. Vue+EleMentUI实现el-table-colum表格select下拉框可编辑
  18. 最新WIN10系统封装教程2019系列(五)——使用工具优化与清理
  19. 华为面试题错题集总结,你的Java基础过关了吗?
  20. php集成极光推送,thinkphp 写APP接口集成极光推送的例子

热门文章

  1. 马云反串白雪公主照曝光
  2. Ghost全盘镜像备份/还原(下)
  3. Flutter: There are multiple heroes that share the same tag within a subtree异常
  4. 西门子S7-200 SMART(6ES7 288-1ST40-0AA0)相关与晨控智能CK-FR08-E00关于modbus tcp 通信配置指南
  5. 计算机网络(自顶向下学习笔记)---应用层协议之SMTP
  6. 李健清华计算机专业,李建-西南石油大学 - 计算机科学学院
  7. “共享”日本旅游车票 销售电商已消失
  8. linux关闭磁盘缓存,在linux上禁用apache2的所有磁盘缓存
  9. Jackson解析嵌套类问题(MismatchedInputException)
  10. 回忆杀--致敬八零后的六一儿童节