Cmf文件与命名空间研究

Cmf文件

.cmf 文件只记录「增删改」操作,不记录「查」操作。
比如你查个两点之间的距离,这个不会记录在 .cmf 文件里。
而你在距离面板更改距离的时候,.cmf 文件里会使用 *nodemodify 命令将其直接放到计算好的坐标上。这就已经变成「改」操作了。

这也是为什么hm内部一定是有查命令的,但是无法体现在 .cmf 里面,
也就是无法作为我们的原始代码的原因。也就是为什么我们查不到的原因。

但是,可以保证的是,所有的增删改操作都会保留,绝对不会出现“漏步骤”的情况。
想想也是,一个后台执行的程序,有什么必要还展示一下查询呢?


然后就是文件格式了。
.cmf 文件的开头一定要有 begin() 和时间信息。
否则就会出错。就像我之前一样,循环弹出提示窗口。
估计,还得有个end吧?

恩,是 quit。

*begin("version 13.0.110.31  2-23-2017  8:27:45")
*templatefileset("C:/Program Files/Altair/13.0/templates/feoutput/nastran/general")
*menufilterset("*")
*menufilterdisable()
*quit() "2-23-2017  8:30:15"

命名空间

namespace eval ::PanelSearch {
    
}

新建命名空间。可以为空,下面语句中随用随定义。

::PanelSearch::BuildPanelList

可以调用在调用行下面定义的全局方法。

set ::PanelSearch::listOfPanels [ lsort -increasing $panellist2 ]

可以在方法里对全局变量进行赋值。

推荐阅读更多精彩内容