hypermesh二次开发tcl脚本

news2024/12/26 1:02:38

hypermesh二次开发tcl脚本

  • 1、tcl读csv文件,得到list,再转成二维数组
  • 2、tcl写csv文件
  • 3、hypermesh tcl根据读入的节点坐标建节点, 再显示节点号
  • 4、hypermesh tcl根据节点号建节点set
  • 5、hypermesh tcl根据节点set读取节点号,再根据节点号读取节点坐标,再将节点坐标、节点号保存到csv文件中
  • 6、修改csv文件,增加修改后的节点号,读csv文件,再根据修改前后的节点号,设置新的节点号

1、tcl读csv文件,得到list,再转成二维数组

在这里插入图片描述

#source read_csv.tcl
#for {set i 0} {$i<3} {incr i} {
#	puts $i
#}

#read_csv::
set csvFile C:/Users/li/Documents/nodes.csv
set csv [open $csvFile]
set data [split [read $csv] '\n']
close $csv

#data 2 array aData::
set dataNum [llength $data]
incr dataNum -1
for {set i 0} {$i<$dataNum} {incr i} {
	set datai [split [lindex $data $i] ',']
	set dataiNum [llength $datai]
	for {set j 0} {$j<$dataiNum} {incr j} {
		set aData($i,$j) [lindex $datai $j]
		#puts $aData($i,$j)
	}
}
#parray aData #print array

2、tcl写csv文件

在这里插入图片描述

#write_csv::
set wrFile [open nodes2.csv w]
puts $wrFile $aData(0,3),[expr $aData(0,3)+10000]
puts $wrFile $aData(1,3),[expr $aData(1,3)+10000]
puts $wrFile 4,5
close $wrFile

3、hypermesh tcl根据读入的节点坐标建节点, 再显示节点号

*createnode $aData(0,0) $aData(0,1) $aData(0,2) 0 0 0
*createnode $aData(1,0) $aData(1,1) $aData(1,2) 0 0 0
*createmark nodes 1 "all"
*numbersmark nodes 1 1 #show nodes number
*numbersmark nodes 1 0 #hide nodes number

4、hypermesh tcl根据节点号建节点set

*createmark nodes 1 2 1
*entitysetcreate "boy_R_nodes" nodes 1

5、hypermesh tcl根据节点set读取节点号,再根据节点号读取节点坐标,再将节点坐标、节点号保存到csv文件中

在这里插入图片描述

set nodeId [hm_getvalue sets name=boy_R_nodes dataname=ids]
set nodeNum [llength $nodeId]
set wrFile [open nodes3.csv w]
for {set i 0} {$i<$nodeNum} {incr i} {
	set nodeIdi [lindex $nodeId $i]
	set x [hm_getvalue nodes id=$nodeIdi dataname=x]
	set y [hm_getvalue nodes id=$nodeIdi dataname=y]
	set z [hm_getvalue nodes id=$nodeIdi dataname=z]
	puts $wrFile $x,$y,$z,$nodeIdi
}
close $wrFile

6、修改csv文件,增加修改后的节点号,读csv文件,再根据修改前后的节点号,设置新的节点号

在这里插入图片描述
读csv文件得到二维数组的代码同前

for {set i 0} {$i<2} {incr i} {
	*createmark nodes 1 $aData($i,3)
	*renumbersolverid nodes 1 $aData($i,4) 1 0 0 0 0 0
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1684695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue 点击复制文本到剪贴板

一、首先在vue文件的template中定义复制按钮 <div size"small" v-if"item.prop jadeCode" class"cell-container"><span>{{ scope.row.jadeCode }}</span> <button click"handleCopy(scope.row.jadeCode)" clas…

FreeRTOS_事件组_学习笔记

事件组 原文链接 事件组是一个整数&#xff0c;其中的高8位留给内核&#xff0c;只能用其他位来表示时间 每一位代表一个事件&#xff0c;且每个时间的含义由程序员决定 1为发生&#xff0c;0为未发生 一个/多个任务或ISR都能读写这些位 可以等待某一位&#xff0c;也可以等待…

详细分析Element中的Drawer(附Demo)

目录 前言1. 基本知识2. Demo2.1 基本用法2.2 不同方向2.3 自定义大小2.4 嵌入表单2.5 嵌套抽屉 3. 实战4. Element Plus&#xff08;Drawer&#xff09; 前言 对于该组件针对Vue2比较多&#xff0c;而Element Plus中的Drawer针对Vue3比较多 此处的Demo主要偏向Vue2 后续的El…

五一期间吉祥桥再创新高,抢占宴席酒市场高位

“人生过三桥&#xff0c;必喝吉祥桥”“古韵吉祥桥&#xff0c;今喜结良缘”“吉祥桥下酒香飘&#xff0c;东方韵味醉心田”…… 这个五一&#xff0c;吉祥桥酒商的朋友圈热闹起来了&#xff0c;一边刷屏式宣传自家主打的宴席产品&#xff0c;一边炫耀式的发布每天的宴席成绩…

08.CNN

文章目录 Observation 1Pooling - Max PoolingFlattenApplication&#xff1a;Playing Go使用验证集选择模型食物分类 Observation 1 Pooling - Max Pooling Pooling主要为了降低运算量&#xff0c;现在一般不用了&#xff0c;全convolution Flatten Application&#xff1a;P…

一文了解安卓内存抖动

目录 目录一、什么是内存抖动&#xff1f;1.1 Android里的内存抖动1.2 如何直观查看这种现象1.3 内存抖动带来的风险 二、如何避免内存抖动 目录 一、什么是内存抖动&#xff1f; 在程序里&#xff0c;每创建一个对象&#xff0c;就会有一块内存分配给它&#xff0c;每分配一…

使用 RisingWave 和 Redash 处理和可视化实时数据

在创建流处理管道时&#xff0c;需要两个关键组件&#xff1a;一个用于处理和转换数据&#xff0c;一个用于数据可视化。RisingWave 和 Redash 就提供了一个优秀的解决方案。 RisingWave 是一个支持实时数据处理的分布式 SQL 流数据库。它提供增量更新的物化视图&#xff0c;使…

【MySQL精通之路】MySQL8.0新增功能-原子DDL语句支持

太长不看系列&#xff1a; 本文一句话总结&#xff0c;MySQL8.0支持多条DDL语句执行时的原子性了&#xff08;仅限Innodb&#xff09; 本文属于下面这篇博客的子博客&#xff1a; 【MySQL精通之路】MySQL8.0官方文档-新增功能 1.意义描述 MySQL 8.0支持原子数据定义语言&…

实用的TypeScript开发工具

1、根据接口数据自动定义类型变量&#xff1a;https://wulunyi.github.io/typeof-sjsonc-web/build/index.html ……&#xff08;持续更新中&#xff09;

Vue 离线地图实现

效果图&#xff1a; 一、获取市的地图数据 DataV.geoAtlas 获取市地图数据 点击地图缩放至想要的市区域&#xff0c;通过右侧的链接打开网址&#xff0c;复制json数据。 二、获取镇地图数据 选择你想要的镇数据&#xff0c;点击下载 选择级别&#xff08;清晰度&#xff09…

关闭以及启动ubuntu图形界面

关闭以及启动ubuntu图形界面 文章目录 关闭以及启动ubuntu图形界面1. 关闭图形界面2. 打开图形界面 如果你误杀了Xorg进程&#xff0c;需要重新启动图形界面&#xff0c;可以按照以下步骤操作&#xff1a; 1. 关闭图形界面 查看当前启动的图形界面&#xff1a; 使用下面命令…

【linux系统学习教程 Day03】网络安全之Linux系统学习教程,用户和用户组管理,创建用户,删除用户,创建组,删除组....

1.7 用户和用户组管理 1.7.1 用户管理 1-1 创建用户 #创建用户 useradd #创建一个用户 例子1&#xff1a;useradd test1 #创建用户 useradd #创建一个用户 例子1&#xff1a;useradd dilnur 1-2 设置密码 passwd 例子1&#xff1a;passwd dilnur #用root用户给…

9.1 Go语言入门(环境篇)

Go语言入门&#xff08;环境篇&#xff09; 目录一、什么是Go语言二、下载安装配置Go语言开发环境1. 下载2. 安装3. 配置环境变量4. 安装环境验证 三、 开发工具1. 下载2. 安装3. 激活4. 配置SDK 四、 创建go工程文件并运行1. 创建go工程2. 示例代码3. 运行代码 目录 一、什么…

操作系统 c语言简单模仿进程创建和时间片轮转调度算法中的进程调度

1&#xff0e;实验目的 加深对进程概念的理解&#xff0c;明确进程和程序的区别&#xff1b; 深入了解系统如何组织进程、创建进程&#xff1b; 进一步认识如何实现处理器调度。 2&#xff0e;实验预备知识 进程的概念&#xff1b; 进程的组织方式&#xff1b; 进程的创建…

CCF20220601——归一化处理

CCF20220601——归一化处理 代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int n,a[1000],sum0;scanf("%d",&n);for(int i1;i<n;i){scanf("%d",&a[i]);suma[i];}double aver1.0,b0.0,d1.0;aversum/(n*1…

深度学习之基于Django+Tensorflow卷积神经网络实时口罩检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着全球疫情的持续&#xff0c;佩戴口罩成为了公众日常生活中不可或缺的一部分。特别是在人员密集的…

佛山远程抄表电表是什么?

1.佛山远程抄表电表&#xff1a;简述 佛山远程抄表电表&#xff0c;是一种利用通信网技术完成智能电表系统软件&#xff0c;它改变了传统的人工抄水表方式&#xff0c;提升了电力管理的效率和精确性。这类电表不但可以实时检测电力应用情况&#xff0c;还可以实现远程操作、全…

第二证券今日投资参考:5月国产游戏版号发放 猪价加速上涨

昨日&#xff0c;两市股指盘中震荡上扬&#xff0c;沪指盘中续创年内新高&#xff0c;创业板指一度涨超1%。到收盘&#xff0c;沪指涨0.54%报3171.15点&#xff0c;深证成指涨0.43%报9750.82点&#xff0c;创业板指涨0.59%报1875.93点&#xff0c;上证50指数涨0.34%&#xff1b…

Vue学习穿梭框Transfer组件

Vue学习Transfer组件 一、前言1、案例一2、案例二 一、前言 在 Vue 3 中使用 el-transfer 组件可以帮助你实现数据的穿梭功能&#xff0c;让用户可以将数据从一个列表转移到另一个列表。下面是一个简单示例&#xff0c;演示如何在 Vue 3 中使用 el-transfer 组件&#xff1a; …

C语言 数组——向函数传递数组

目录 把数组传给函数&#xff08;Passing Arrays to Functions&#xff09; 向函数传递一维数组 向函数传递二维数组 数组在学生成绩管理中的应用 例&#xff1a;计算每个学生的平均分 把数组传给函数&#xff08;Passing Arrays to Functions&#xff09; 向函数传递一维…