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讲解相关推荐

  1. python中tk_可爱的 Python:Python 中的 TK编程

    可爱的 Python:Python 中的 TK编程 给使用 Python GUI 库的初学者的提示 David Mertz 博士 2000 年 12 月 01 日发布 我想要向您介绍能想像到的开始 G ...

  2. julia 调用python库_Julia调用Python实现超像素分割SLIC算法

    最近想要在julia中实现 Simple Linear Iterative Clustering (SLIC) 算法对图像进行超像素分割,关于SLIC超像素分割算法,请参考SLIC Superpixe ...

  3. python怎么封装供java调用_python调用第三方java包实例

    先看结果: 对于python与java的互调,我一开始是用的py4j,但是后来发现在使用方法的时候,不知道如何在python中导入jar包,然后网上的资料也比较少.后来想不出来办法,又看到有Jpype ...

  4. python调用有道翻译_如何用python“优雅的”调用有道翻译?

    前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...

  5. MATLAB调用python文件以及调用.exe文件方法

    引言: 在编程的时候有这么一个需求,就是要用MATLAB去调用python文件以及调用python写好的功能函数. 配置环境: MATLAB 2017b: python 2.7x: 方法: 1.查看m ...

  6. pythonidle安装第三方库_在Python IDLE 下调用anaconda中的库教程

    在Python IDLE 下调用anaconda中的库教程 大家都知道,Anaconda是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.下载了anaco ...

  7. Python利用JPype调用Java对象方法【实现在Python中调用JAVA】

    一.JPype简述 1.JPype是什么? JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足. 2.JPype ...

  8. python利用jpype调用java对象方法

    实现在python中调用JAVA 一.JPype简述 1.JPype是什么? JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器 ...

  9. sikuli python java_python怎么调用sikuli

    Sikuli是由MIT(麻省理工学院) 研究团队发布的一种图形化编程技术(编程小白的福音),使用Sikuli你只需要会写HelloWorld这种最基本的编程技能即可,用Sikuli不需要去写出一行行复 ...

最新文章

  1. 微软全球执行副总裁沈向洋:你给自己的定位是什么,你就会得到什么
  2. 无法使用index seek的写法
  3. 国家新一代人工智能开放创新平台将参加重庆智博会
  4. 运行数据区②---堆
  5. 多兼容的JS获取鼠标坐标
  6. 谁能跳出数字化系统困境?
  7. 从入门到头秃,2018年机器学习图书TOP10
  8. 中国好声音不如有中国好创意
  9. 网络工程师--网络规划和设计案例分析(5)
  10. pdf转cad转换器转换快速简单方法
  11. 计算机中vlookup函数公式,Excel表中VLOOKUP函数使用方法和操作实例
  12. oracle资产负债表重分类吗,​资产负债表一般是重分类还是不重分类
  13. 交换机/路由器实验:最后说些什么
  14. 【Java游戏项目合集】(附源码+课件)
  15. VBScript运行时错误处理
  16. Android 简易QQ登录页面
  17. 基于词典规则的中文分词(C语言实现)
  18. Oracle汉字实现拼音码函数
  19. 三国志2霸王的大陆 攻防计算
  20. 一步强制升级windows11

热门文章

  1. IDEA中使用GitHub简单教程
  2. iphone换android app图标,iPhone 终于能随意修改 App 图标啦
  3. origintangent插件_ORIGIN 免费提供origin 的各种插件大全 - 下载 - 搜珍网
  4. 如何在vim创建脚本内添加固定的抬头信息?
  5. 精读Crowd-Flow Graph Construction and Identification with Spatio-Temporal Signal Feature Fusion
  6. 找实习经历分享(三)
  7. 如何为运输中的快递添加包裹备注
  8. 迈克尔逊干涉仪仿真程序_使用迈克尔逊编程语言在Tezos上编写智能合约[操作指南]-第2部分...
  9. catia里画铰链_基于CATIA的汽车门铰链三维造型设计
  10. Atlassian JIRA 安装