首页/文章/ 详情

HyperWork二次开发_hwat命名空间下的函数

2月前浏览141


以下内容来自帮助文档



















































































# ::hwat::math::AngleBetweenVectors# 求两个向量之间的夹角(以度为单位)::hwat::math::AngleBetweenVectors [list 1.0 2.0 3.0] [list 4.0 5.0 6.0]
# ::hwat::math::AverageVectorComponents# 这个函数将取向量分量的平均值。::hwat::math::AverageVectorComponents [list [list 1.0 7.5 3.0] [list  2.55 3.7 7.3] [list  2.4 9.77 3.44]]

set theMatrixList {1.0  0.5403023058681398  -0.4161468365471424  0.5403023058681398  0.2919265817264289  -0.2248450953661529  -0.4161468365471424  -0.2248450953661529  0.17317818956819406} # ::hwat::math::CheckReflection# 检查一个给定的余弦矩阵的反射特性。::hwat::math::CheckReflection $theMatrixList
# ::hwat::math::CheckTransformMatrix# 检查给定变换矩阵的有效性。::hwat::math::CheckTransformMatrix $theMatrixList
# ::hwat::math::ConvertMatrixToRotations# 将一个余弦矩阵转换成三个连续的旋转。::hwat::math::ConvertMatrixToRotations $theMatrixList
# ::hwat::math::IsIdentityMatrix# 检查矩阵是否为单位矩阵。::hwat::math::IsIdentityMatrix $theMatrixList
# ::hwat::math::DegreesToRadians# 将角度从角度转换为弧度。::hwat::math::DegreesToRadians 60.0
# ::hwat::math::GetVector# 给定起点和终点的坐标,求向量的第i, j和k个分量。::hwat::math::GetVector [list 0.0 0.0 0.0] [list 10.0 8.5 7.0]
# ::hwat::math::IfEqual# 检查两个浮点数是否相等。::hwat::math::IfEqual 0.1 0.0001 1.0e-5


# ::hwat::math::PointOnVector# 在距离向量尾部(起始点)给定距离处找到向量上的一个点。如果距离以百分比给出,它会在总向量长度的百分比处找到一个点。默认参数百分之五十
::hwat::math::PointOnVector [list 0.0 0.0 0.0] [list 10.0 8.5 7.0] 20 ::hwat::math::PointOnVector [list 0.0 0.0 0.0] [list 10.0 8.5 7.0] 10%::hwat::math::PointOnVector [list 0.0 0.0 0.0] [list 10.0 8.5 7.0]
# ::hwat::math::RadiansToDegrees# 将一个角从弧度转换为角度。::hwat::utils::RadiansToDegrees 1.0456
# ::hwat::math::VectorAverage# 求两个向量的平均值。::hwat::math::VectorAverage [list 1.0 2.0 3.0] [list 4.0 5.0 6.0]
# ::hwat::math::VectorCrossProduct# 求两个向量的外积。::hwat::math::VectorCrossProduct [list 1.0 7.5 3.0] [list 2.0 3.78 5.69]
# ::hwat::math::VectorDotProduct# 求两个向量的点积。::hwat::math::VectorDotProduct [list 1.286 4.887 4.9239] [list 5.902 -7.856 3.8618]
# ::hwat::math::VectorMagnitude# 给定一个值列表,返回平方和的平方根。::hwat::math::VectorMagnitude [list 1.0 7.5 3.0]
# ::hwat::math::VectorNormalize# 给定一个值列表,返回归一化后的列表。::hwat::math::VectorNormalize [list 1.0 7.5 3.0]



来源:TodayCAEer
二次开发
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-08-14
最近编辑:2月前
TodayCAEer
本科 签名征集中
获赞 17粉丝 24文章 231课程 0
点赞
收藏
作者推荐

简化建模过程: HyperMesh中的二次开发与模型命名技术

先感叹一下这么久了,上一篇写的推文居然破1000的阅读量了,随着公众号的推荐机制变化,之前写的文章阅读量就在300左右徘徊,上一篇文章所带来的阅读量,有点受宠若惊了。回想最开始写文章的时候,就是源于学习ANSA软件的时候,奈何网上的资料实在是凤毛麟角。只有去看帮助文档,觉得自己已经花费了这么多时间来学习,后续学习的小伙伴要是能有对应的资料,岂不美哉,然后开始了写公众号文章。那时候推荐机制不一样,阅读量还行,越写越有趣。但后面修改后,阅读量越来越来,就偶尔写写了,这不大家的阅读量,又让我找到之前的感觉了。可能推荐机制对于日常工作相关的文章更推荐吧,故本次继续分享日常使用频率高的操作。文章主题__模型命名掌握"茴"字的多种写法,用好一种即可。GUI界面操作:Tools>Matrix功能很强大的模块,前后处理都可以调用,通过Tools>Matrix调用。详细功能就不介绍了,可以在Altair官方公众号以往的文章中查看,我就在这里简单介绍下。如下图所示,启动后程序嵌入在左侧导航栏,1、先指定DataSource的Item,2、Entities模块会读取当前模型中的所有Collector种类,并填充至Item中。3、用户选择entity的类型,点击Query按钮,这时候会跳转出交互面板,在模型中选择需要查询的元素即可。4、下图是以选择comps为例,就会将comps的ID填充至上方的表格中。5、这时候继续选择上方表格的标题列名称,那一列的元素会高亮显示,DataName列就会填充comps能够查询的dataname信息。6、用户再选择需要查询的dataname,再点击Query按钮。7、就会将comps对应的信息填充至有效元素的后一列。8、点击对应的行,模型中的零件会以高亮显示的状态显示。至此完成Collector信息的提取,以上步骤皆可重复运行,并可以交叉提取。例如可以通过comps提取出关联的property,再通过property提取厚度、以及material,还可以继续提取material的各项材料参数。上述操作就成功把层级的信息以二维表的形式表现出来了。目前只是提取步骤,那么我们要做的当然是修改元素,这时候就可以点击程序的右上角的Excel按钮,将会把当前的表格的元素粘贴到Excel表中,这时候就由各位大表哥,大表姐,自由操作了。例如通过VLOOKUP函数,通过零件号匹配BOM表信息,通过&符号链接模型的材料与厚度字符串等各种操作,在表格中操作简直用随心所欲来形容。当元素修改完成后就可以通过Matrix按钮进行模型更新了。程序还提供了很多其它选项就交由大家去探索了,功能很多,但是label简单明了。Tool>renamemenu内的Tool模块下的rename按钮,精简版命名模块分为IndividuallySubpanelAllByIDSubpanel。1、IndividuallySubpanel面板就是常规命名,一一对应。2、AllByIDSubpanel面板就是对执行Collector下的所有元素进行重命名操作,指定前缀,后续字符以元素ID进行连接。运行效果如图所示:快速导出模型信息能够搭配matrix模块,或者其它功能完成模型信息修改以在component界面下为例在标题列右键控制过滤选项。空白位置右键export导出csv文件标题行的过滤按钮过滤信息,和在上方的Find栏一样的效果utility命令导出以componenttable为例但是更喜欢在ModelBrowser下面查看,过滤也更方便,运行速度也快。二次开发:showtime界面很丑但是不影响功能的强大。1、表达式输入窗口,这里需要一点点tcl的基础知识,后续有关于String函数的案例介绍。2、选择模型的方式,支持通配符匹配、交互选择。all,displayed,四种方式。3、Collector的类型,例如comps,mat,property等只要模型浏览器内有的类型都可以支持。4、Rename按钮,执行命名操作。这里为大家提供几个表达式,手动输一下比复制粘贴更能发现细节。tcl基础知识:使用"stringlength"获取字符串长度:setstr"Hello,World!"setlen[stringlength$str]puts"字符串长度:$len";#输出:字符串长度:13使用"stringindex"获取字符串中指定位置的字符:setstr"Hello,World!"setchar[stringindex$str0]puts"第一个字符:$char";#输出:第一个字符:H使用stringrange获取字符串中指定范围的子字符串:setstr"Hello,World!"setsubstring[stringrange$str712]puts"子字符串:$substring";#输出:子字符串:World!使用"stringcompare比较两个字符串的大小关系:setstr1"abc"setstr2"def"setresult[stringcompare$str1$str2]puts"比较结果:$result";#输出:比较结果:-1(str1小于str2)使用"stringfirst"查找字符串中第一次出现指定子字符串的位置:setstr"Hello,World!"setposition[stringfirst"o"$str]puts"第一次出现的位置:$position";#输出:第一次出现的位置:4使用"stringmatch"检查字符串是否与指定的模式匹配:setstr"Hello,World!"if{[stringmatch"Hello,*"$str]}{puts"字符串匹配"}else{puts"字符串不匹配"}使用"stringequal"比较两个字符串是否相等:setstr1"Hello"setstr2"hello"if{[stringequal$str1$str2]}{puts"字符串相等"}else{puts"字符串不相等"}使用"stringis"检查字符串的特定属性,比如是否为整数、是否为字母等:setstr"123"if{[stringisinteger$str]}{puts"字符串为整数"}else{puts"字符串不是整数"}使用"stringtolower"将字符串转换为小写形式:setstr"Hello,World!"setlower[stringtolower$str]puts"转换为小写形式:$lower";#输出:转换为小写形式:hello,world!使用"stringtoupper"将字符串转换为大写形式:setstr"Hello,World!"setupper[stringtoupper$str]puts"转换为大写形式:$upper";#输出:转换为大写形式:HELLO,WORLD!使用"stringtrim"移除字符串两端的空格或指定的字符:setstr"Hello,World!"settrimmed[stringtrim$str]puts"移除空格后的字符串:$trimmed";#输出:移除空格后的字符串:Hello,World!setstr"!!Hello,World!!"settrimmed[stringtrim$str"!"]puts"移除感叹号后的字符串:$trimmed";#输出:移除感叹号后的字符串:Hello,World使用"stringreplace"替换字符串中的指定字符或子字符串:setstr"Hello,World!"setnewstr[stringreplace$str712"Universe"]puts"替换后的字符串:$newstr";#输出:替换后的字符串:Hello,Universe!使用"stringmap"根据给定的映射表替换字符串中的字符:setstr"Hello,World!"setmapping{"o""e"}setnewstr[stringmap$mapping$str]puts"替换后的字符串:$newstr";#输出:替换后的字符串:Helle,Werld!使用"stringcat"将多个字符串连接为一个字符串:setstr1"Hello"setstr2"World"setresult[stringcat$str1","$str2"!"]puts"连接后的字符串:$result";#输出:连接后的字符串:Hello,World!使用工具的前提下,得有规范,命名需要规范,装配层级需要规范,一个好的输入才能让后续的工作通过自动化程序开展。不然生成的模型各有特点就不好处理了。规范的存在是为了整合过去的经验以及注意事项,形成技术文档,这样不会随着人的流失,造成技术的断层,更是为了以后的AI训练。一份规范的数据,能节约好多数据清洗的时间,效益将体现在加快企业的研发进度上。数据才是一个企业最大的资产。来源:TodayCAEer

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈