当前位置:首页>python>Hyperview Python二次开发系列之自动创建局部坐标系Tracking systems

Hyperview Python二次开发系列之自动创建局部坐标系Tracking systems

  • 2026-10-11 08:34:21
Hyperview Python二次开发系列之自动创建局部坐标系Tracking systems
专注 HyperView Python&TCL 二次开发,
愿与您一同用代码提升效率!
使用hyperview查看动画,经常会需要在模型特定位置添加一个局部坐标系,要能在导入模型时依据建模规范在模型特定位置自动创建局部坐标系,就能省去这个有用但操作起来无趣的过程。
一:基于tcl语言创建局部坐标系(tracking system)方法:
Hyperview二次开发之创建局部坐标系(Tracking system)
二:基于Python语言创建局部坐标系(tracking system)方法:
注:文末代码是实现局部坐标系创建流程(代码块中有各步骤讲解),后续继续分享将此过程封装成一个通用函数,通过函数的参数,确认创建局部坐标系是使用【一个node】还是【三个node】。
import hwimport hw.hv as hvimport os# 设置模型和结果路径dir_path = r"E:\temp"model_file_name = "airbag_deploy.k"result_file_name = "d3plot"model_file_path = os.path.join(dir_path,model_file_name)result_file_path = os.path.join(dir_path,result_file_name)sess = hw.Session()# 获取当前激活的pagepage = sess.get(hw.Page) # 取当前激活的windowwin = sess.get(hw.Window)# 设置窗口类型 animationwin.type = "animation"# 在激活的窗口导入模型和模型结果win.addModelAndResult(model_file_path,result_file_path,overlay=False,template='Advanced')# 经过测试默认新导入的model是active状态,所以可以用getActiveModel # 如果用overlay方式导入,窗口中可能不止一个模型,所以有可能需要获取新导入模型的idmodel = win.getActiveModel()#n1 = model.get(hv.Node,6876)n2 = model.get(hv.Node,6906)n3 = model.get(hv.Node,6907)n1id = n1.idn2id = n2.idn3id = n3.id# 下面创建tracking system 在激活的model下创建# 如果新导入模型可直接创建,如果有多个模型叠加,需要先将某个模型设置为激活状态win.setActiveModel(2)# 创建一个 tracking systemhw.evalHWC('tracking create "user define tracking system"')# 设置 tracking system类型hw.evalHWC('tracking "user define tracking system" planetype oxy')# {n1id} {n2id} {n3id} 可直接填数字(节点id)# 上一步设置类型为plane 所以需要三个点# f'' 字符串格式化 使用{} 替换变量hw.evalHWC(f'tracking "user define tracking system" plane {n1id} {n2id} {n3id}')# 将新建的局部坐标系置为当前hw.evalHWC('tracking makecurrent "user define tracking system"')#
如有问题,欢迎留言指正与交流。
本文已收录进合集,进入文末合集可查看更多笔记。

最新文章

随机文章