HyperMesh二次开发:指定方向单元移动

今天我们来学习如何通过二次开发来实现如何沿指定方向移动单元:

本次我们需要创建一个脚本来实现以下目标:

  1. 让用户自定义选择要移动的单元;
  2. 让用户自定义选择要移动的方向向量;
  3. 平移这些单元,并且可以让用户指定距离;

为了实现上述目标,我们需要新学2个hypermesh二次开发命令:

  • hm_getentityvalue

该指令属于HyperMesh Tcl 查询命令,功能为返回单个实体的单个模板/数据名称值;

使用语法为 hm_getentityvalue entity_type entity_name_or_id data_name output_type ?search_type?

entity_type 要查询的实体的类型

entity_name_or_id 实体的名称或ID

data_name 要查询的数据名称或模板属性。使用模板名称查询时, ($) 必须位于属性名称之前。此外,请确保反斜杠 (\) 用于美元符号 ($) 的前面。

output_type 预期的输出类型。有效值为:0 - 整数/实数 1 - 字符串

search_type 默认情况下,HyperMesh按名称搜索实体,并且 如果未找到该名称,则按 ID 进行搜索。此选项允许您指定如何 应进行对实体的搜索。有效值为:-byname - 仅搜索方式 名字。-byid - 仅按 ID 搜索。

例如:


To get the first node of element 1:
hm_getentityvalue elems 1 node1.id 0

To get the name of component ID 4:
hm_getentityvalue comps 4 name 1 -byid

eg:
hm_getentityvalue vector $vect_id xcomp 0
  • hm_getfloat

该指令属于HyperMesh Tcl GUI命令,功能为使用HyperMesh面板获取浮点值;

使用语法为 hm_getfloat?caption? ?message? ?default_value?

?caption? 进入面板时显示的可选标题。

?message? 进入面板时在状态栏中显示的可选字符串

?default_value? 进入面板时要设置的可选默认浮点数

例如:


set distance [hm_getfloat "Distance=" "Please specify a distance"]

set dist [hm_getfloat "please input a float number as translate distance"]

以上2个命令介绍完毕,下面展示实现最初目标的完整代码:


*createmarkpanel elements 1 "please select elements to translate"
*createmarkpanel vector 1 "please select a vector to translate"
set vect_id [hm_getmark vector 1]
set vect_x [hm_getentityvalue vector $vect_id xcomp 0]
set vect_y [hm_getentityvalue vector $vect_id ycomp 0]
set vect_z [hm_getentityvalue vector $vect_id zcomp 0]
*createvector 1 $vect_x $vect_y $vect_z
set dist [hm_getfloat "please input a float number as translate distance"]
*translatemark elements 1 1 $dist

下面是代码执行后单元移动效果:




免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空