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 | 中国台湾人 |
上述程序运行结果为:
运用姿态编辑器,将模型姿态改变为“起飞”姿态,该程序在上述程序运行结束之后运行,且勿关闭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) # 将整体姿态调整为立姿
程序运行结果为: