ug后处理文件位置_UG后处理从CSV文件中读取数据(配置表的应用)

d50b015cafaa7d30fa49925e0f4b7dca.gif 提示:点击上方"NX网"↑ 免费订阅 关注老叶

4b2cbd520046710be0839d1fa1514632.png

上期分享了从txt文件中获取数据,从而完成配置表:https://www.ugnx.net/fx/688

我们也许会觉得txt格式的配置表不够清爽,蜗牛是带有一点点强迫症的。

如果我们做成csv格式的呢?

1e639b6a3e4114b261608bdcc9d521dd.png

这样看着会舒服很多吧 :D

那么怎么从后处理获取csv文件中的数据呢?

我们可以用过一个脚本达到目的。

在表格中,设1行A列的单元格坐标为(0,0)

需要获取的值为6行C列,即(5,2);7行C列,即(6,2)

运行脚本

153a7e00c5936cbbb63739b463125871.png

输出结果正确。

以下为脚本代码部分:

proc readCSV { channel { header 1 } { symbol , }} {
set quote 0 set data [ split [ read $channel nonewline ] "\n" ]
foreach line $data {
set quote [ expr { $quote + [ regexp -all \" $line ]}]
if { [ expr { $quote % 2 }] == "0" } {
set quote 0
append row_temp $line
set row_temp [ split $row_temp , ] foreach section $row_temp {
set quote [ expr { $quote + [ regexp -all \" $section ]}]
if { [ expr { $quote % 2 }] == "0" } {
append cell_temp $section
set cell_temp [ regsub {"(.*)"} $cell_temp {\1} ]
lappend cell $cell_temp
unset cell_temp
set quote 0
} else {
append cell_temp $section$symbol
}
}
lappend final [ regsub -all {""} $cell \" ]
unset cell
unset row_temp
} else {
append row_temp $line\n
}
}
# generate array if needed, or return $final here
set row [ llength $final ]
set column [ llength [ lindex $final 0 ]]
if { $header == 1 } {
for { set i 0 } { $i < $row } { incr i } { for { set j 0 } { $j < $column } { incr j } {
set csvData([ lindex [ lindex $final 0 ] $j ],$i) [ lindex [ lindex $final $i ] $j ]
}
}
} else {
for { set i 0 } { $i < $row } { incr i } { for { set j 0 } { $j < $column } { incr j } {
set csvData($i,$j) [ lindex [ lindex $final $i ] $j ]
}
}
}
return [ array get csvData ]
}
set csv [ open [file dirname [info script]]/config.csv {RDWR} ]
array set csvData [ readCSV $csv 0 ]
#puts $csvData(5,2) 
#puts $csvData(6,2) 
close $csv

当我们在后处理中source脚本后,调用数组$csvData便得到配置表中的值了。

得到的值该如何去利用,可以参考上一期的贴子。

以下为后处理和脚本文件(附件请在NX网电脑页面上下载)

 后处理和脚本文件.rar

做一件对行业有贡献的事情。

bc0dda773a3cceac9ffd49adda267f62.gif

a441d00bb245523e9842a3ca761dfbe1.png

长按关注

此文为NX网原创文章,本着技术分享的精神,欢迎大家转载,但务必注明来源。擅自转载、复制、截取等,不注明出处均为侵权。

Email:SIEMENS_PLM@qq.com

点击下方“

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值