python调用hypermesh调用tcl_TCL/TK编程之语法与hypermesh api讲解
TCL/TK编程语法上一篇文章讲了TCL命令的处理规则,那么这篇文章就说一说TCL的三大替换和两大引用。三大替换:变量替换、命令替换、反斜线替换。两大引用:双括号引用、大括号引用。变量替换每种替换会把单词中的一些原始字符替换为另外一些值。变量替换由"$"符号引发如下:set kgrams 20expr $kgrams*2.2046#输出为44.092上面两行代码,第一行将变量kgrams赋值为20,第二行为将变量kgrams的值与2.2046相乘。其中"$kgrams"即为变量替换。变量替换的目的是取值,即将$kgrams替换为20。expr $result*$base#两个变量的值相乘,其中expr为数学运算命命令替换
命令替换是把一个单词的部分或者全部替换为一个命令的结果。命令替换通过方括号"[]"表示。set kgrams 20set lbs [expr $kgrams*2.2046]
上面代码中第二行,方括号是对命令进行取值,即取方括号内的返回值。并将值赋值给变量lbs反斜线替换
反斜线也是取值,但是反斜线取的是在TCL中具有特殊意义的字符例如"[, $, \"等等。set msg Eggs:\ \$2.18/dozen\nGasoline:\ \$2.49/gallon#输出:Eggs: $2.18/dozen# Gasoline: $2.49/gallon
上面代码中使用"\"取到了空格符、$、 换行符。下表为可反斜线替换的字符:双引号引用
TCL提供了一些方法,可以阻止解析器对$和分号等字符进行特殊处理。这些方法被称为引用。双引号引用可以取消单词和命令分隔符的特殊解释。大括号引用取消所有特殊字符的特殊解释。
双括号引用会将空格、制表符、换行符以及分号都当做普通处理set msg "Eggs: \$2.18/dozen\nGasoline: \$2.49/gallon"#这行代码中空格符被解释为普通字符,因为有双引号所以就不需要在空格符前加"\"set msg Eggs: \$2.18/dozen\nGasoline: \$2.49/gallon#如果去掉双引号,则会报错
大括号引用
大括号引用将取消所有特殊字符的特殊意义。set msg {"Eggs: \$2.18/dozen\nGasoline: \$2.49/gallon"}#输出: "Eggs: \$2.18/dozen\nGasoline: \$2.49/gallon"#取值的双引号,空格,反斜线等全部都被当做普通字符处理
hypermesh api讲解代码:#本脚本运行在nastran模板下,先获取当前模板名称set solver_name [hm_getsolver]puts $solver_name#判断当前模板是否是nastran模板,如果不是,提示修改模板if {$solver_name == "nastran"} {#获取hypermesh全部component名称,hm_entitylist comps name的返回值是列表set comps_name_list [hm_entitylist comps name]set num_comps [llength $comps_name_list]#对component进行循环for {set i 0} {$i
下面为使用到的hypermesh api:hm_getsolverhm_entitylist comps name*createmark comps 1 $cur_comp_namehm_getmark comps 1*deletemark components 1hm_getsolver
set solver_name [hm_getsolver]set solver_name [hm_getsolver name]set solver_id [hm_getsolver id]
获取hypermesh当前模板,命令后不跟参数时,默认返回模板名称(nastran、abaqus、lsdyna),也可以跟字符串"id"则返回模板ID。hm_entitylist
hm_entitylist nodes idhm_entitylist comps nameif { [ catch {command_name...} ] } {# Handle error}
返回entity的名称或者id列表。其中entity包括component、element、node、met、property等。通过这个命令可以获取制定entity所有的名称或者id。*createmark
mark在hypermesh二次开发中是一种容器,他可以以各种的方式存放各种entity的全部或者部分内容。
hypermesh api的mark容器一共有两个且只有两个,如同两个杯子,他们的ID分别为1和2。但是却可以在同一个ID的容器中存放不同的entity。*createmark elems 1 "all"*createmark elems 2 "all"*createmark nodes 1 "all"*createmark nodes 2 "all"*createmark comps 1 "display"*createmark comps 2 "display"
存放entity的方式也多种多样*createmark elems 1 "all"*createmark elems 1 "displayed"*createmark elems 1 "retrieve"*createmark elems 1 "by assem id" 10 20*createmark elems 1 "by comp id" 20*createmark comps 1 "by name only" X Y*createmark elems 1 "by comps on mark" 1
以上只列举了部分entity和存放方式,更多详情还可以参考帮助文档。*createmark可以说是hypermesh二次开发最重要的api。
hm_getmark是获取mark中保存的entity,*deletemark则是删除mark中保存的entity
python调用hypermesh调用tcl_TCL/TK编程之语法与hypermesh api讲解相关推荐
- python中tk_可爱的 Python:Python 中的 TK编程
可爱的 Python:Python 中的 TK编程 给使用 Python GUI 库的初学者的提示 David Mertz 博士 2000 年 12 月 01 日发布 我想要向您介绍能想像到的开始 G ...
- julia 调用python库_Julia调用Python实现超像素分割SLIC算法
最近想要在julia中实现 Simple Linear Iterative Clustering (SLIC) 算法对图像进行超像素分割,关于SLIC超像素分割算法,请参考SLIC Superpixe ...
- python怎么封装供java调用_python调用第三方java包实例
先看结果: 对于python与java的互调,我一开始是用的py4j,但是后来发现在使用方法的时候,不知道如何在python中导入jar包,然后网上的资料也比较少.后来想不出来办法,又看到有Jpype ...
- python调用有道翻译_如何用python“优雅的”调用有道翻译?
前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...
- MATLAB调用python文件以及调用.exe文件方法
引言: 在编程的时候有这么一个需求,就是要用MATLAB去调用python文件以及调用python写好的功能函数. 配置环境: MATLAB 2017b: python 2.7x: 方法: 1.查看m ...
- pythonidle安装第三方库_在Python IDLE 下调用anaconda中的库教程
在Python IDLE 下调用anaconda中的库教程 大家都知道,Anaconda是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.下载了anaco ...
- Python利用JPype调用Java对象方法【实现在Python中调用JAVA】
一.JPype简述 1.JPype是什么? JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足. 2.JPype ...
- python利用jpype调用java对象方法
实现在python中调用JAVA 一.JPype简述 1.JPype是什么? JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器 ...
- sikuli python java_python怎么调用sikuli
Sikuli是由MIT(麻省理工学院) 研究团队发布的一种图形化编程技术(编程小白的福音),使用Sikuli你只需要会写HelloWorld这种最基本的编程技能即可,用Sikuli不需要去写出一行行复 ...
最新文章
- 微软全球执行副总裁沈向洋:你给自己的定位是什么,你就会得到什么
- 无法使用index seek的写法
- 国家新一代人工智能开放创新平台将参加重庆智博会
- 运行数据区②---堆
- 多兼容的JS获取鼠标坐标
- 谁能跳出数字化系统困境?
- 从入门到头秃,2018年机器学习图书TOP10
- 中国好声音不如有中国好创意
- 网络工程师--网络规划和设计案例分析(5)
- pdf转cad转换器转换快速简单方法
- 计算机中vlookup函数公式,Excel表中VLOOKUP函数使用方法和操作实例
- oracle资产负债表重分类吗,​资产负债表一般是重分类还是不重分类
- 交换机/路由器实验:最后说些什么
- 【Java游戏项目合集】(附源码+课件)
- VBScript运行时错误处理
- Android 简易QQ登录页面
- 基于词典规则的中文分词(C语言实现)
- Oracle汉字实现拼音码函数
- 三国志2霸王的大陆 攻防计算
- 一步强制升级windows11
热门文章
- IDEA中使用GitHub简单教程
- iphone换android app图标,iPhone 终于能随意修改 App 图标啦
- origintangent插件_ORIGIN 免费提供origin 的各种插件大全 - 下载 - 搜珍网
- 如何在vim创建脚本内添加固定的抬头信息?
- 精读Crowd-Flow Graph Construction and Identification with Spatio-Temporal Signal Feature Fusion
- 找实习经历分享(三)
- 如何为运输中的快递添加包裹备注
- 迈克尔逊干涉仪仿真程序_使用迈克尔逊编程语言在Tezos上编写智能合约[操作指南]-第2部分...
- catia里画铰链_基于CATIA的汽车门铰链三维造型设计
- Atlassian JIRA 安装