栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于Python的DELMIA二次开发(三):人体建模

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于Python的DELMIA二次开发(三):人体建模

DELMIA二次开发系列

文章目录
  • 前言
  • 一、创建标准人体模型
  • 二、姿态设置


前言

运用delmia进行人因工程分析,建立人体模型是必不可少的步骤,本文介绍如何用Python来在delmia中建立虚拟人体模型并设置其姿态。


一、创建标准人体模型
import win32com.client

delmia = win32com.client.Dispatch('delmia.application')
productDocument1 = delmia.documents.add('Product')
product1 = productDocument1.Product

sWKHmiWorkbench1 = product1.GetTechnologicalObject("HumanWorkbench")
# 创建人体模型,参数含义分别为:模型名字、性别索引、百分位数、人群索引
sWKManikin1 = sWKHmiWorkbench1.CreateManikin("Manikin1", 0, 50.000000, 6)
  • 其中,人群索引及其对应含义分别为:
索引含义
0美国人
1加拿大人
2法国人
3日本人
4韩国人
5德国人
6中国台湾人
  • 百分位数表示模型身高体重占所选国家人口统计的百分位数,取值为0.01%~99.99%,取值为X%时代表有X%的人群身体数据小于此值。
  • 性别索引取值为1时代表女性,取值为其它值时代表男性。

上述程序运行结果为:

二、姿态设置

运用姿态编辑器,将模型姿态改变为“起飞”姿态,该程序在上述程序运行结束之后运行,且勿关闭delmia。

import win32com.client

delmia = win32com.client.Dispatch('delmia.application')  # 获取当前活动的文档
productDocument1 = delmia.ActiveDocument
product1 = productDocument1.Product
products1 = product1.Products
product2 = products1.Item("Manikin1")

sWKManikin1 = product2.GetTechnologicalObject("Manikin")

sWKBody1 = sWKManikin1.Body
sWKBody1.SetPosture(1, True)  # 将整体姿态调整为立姿

sWKSegment1 = sWKBody1.GetItem("SHeNe")  # 头部姿态调整
sWKDOF1 = sWKSegment1.GetItem("DOF1")  # 自由度DOF1代表前后摆动
sWKDOF1.Value = -0.361403  # -20.707度,头部向上弯曲的极限
sWKDOF2 = sWKSegment1.GetItem("DOF2")  # 自由度DOF2代表左右摆动
sWKDOF2.Value = 0.000000
sWKDOF3 = sWKSegment1.GetItem("DOF3")  # 自由度DOF3代表扭转
sWKDOF3.Value = 0.000000

sWKSegment2 = sWKBody1.GetItem("RSArAr")  # 右臂姿态调整
sWKDOF4 = sWKSegment2.GetItem("DOF1")
sWKDOF4.Value = 2.946988
sWKDOF5 = sWKSegment2.GetItem("DOF2")
sWKDOF5.Value = 0.000000
sWKDOF6 = sWKSegment2.GetItem("DOF3")
sWKDOF6.Value = 0.000000

sWKSegment3 = sWKBody1.GetItem("LSArAr")  # 左臂姿态调整
sWKDOF7 = sWKSegment3.GetItem("DOF1")
sWKDOF7.Value = -0.261667
sWKDOF8 = sWKSegment3.GetItem("DOF2")
sWKDOF8.Value = 0.000000
sWKDOF9 = sWKSegment3.GetItem("DOF3")
sWKDOF9.Value = 0.000000

其中,下述方法的参数1代表系统给出的 5 中预置姿态的第 2 种,这 5 种预置姿态分别为:

  • 原始姿态(上图所示姿态)
  • 立姿
  • 坐姿
  • 侧平举
  • 跪姿
sWKBody1.SetPosture(1, True)  # 将整体姿态调整为立姿

程序运行结果为:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001918.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号