制作CatchK配置文件
1. 制作方法
请手动按照配置文件定义,写入1个文本格式的配置文件即可。
建议这一类任务均放入在./Project文件夹内(推荐存放入同一任务的子文件夹,例如./Project/task)。
2. 配置文件定义
配置文件可以参考:
配置文件并不指定配置文件地址,该文件地址需要在CatchK执行时指定,例如:
./Project/task/catchk_config.ini
该文件内的配置项与定义如下:
# 若您需要复制该配置文件并修改,请复制后删除所有的注释
[File]
TargetDirpath=U:\\datexport\\1date # ProCAST导出为WJ模式的CSV的[文件夹地址]
Suffix=csv # 所读取的WJ模式的筛选文件的后缀
CoreAreaCSV=V:\\soloblade_shrinkage_porosity\\ci_data.csv # 必须提供型芯的文件,通过ProCAST选定节点后任意导出的ci_data.txt使用ProCAST-Node-Reader转换成标准csv
[Point]
DimensionCount=3 # 处理点的维数,一般为3D处理,因此为3,例如x,y,z
DimensionIndexList=2,3,4 # 读取WJ模式CSV时,处理的上述维数的变量的列序(0开始)
DimensionDirectionList=1,1,1 # 节点坐标方向是否翻转, 例如z翻转则设置为1,1,-1
FieldIndex=5 # 读取节点目标值的列序(0开始)
FieldRange=0.0001,0.05 # 读取节点目标值的筛选区间a,b(从a筛选到b)
FieldStart=-0.5 # z坐标的起始值(原单位)
SpaceRatio=10 # x,y,z坐标从原始单位转化为当前计算单位所需要乘以的系数
RDirection=1,0 # 选择的半径方向, 只能是1,0 -1,0 0,1 0,-1的其中之一, 分别代表x,y坐标轴的正负方向
[Filter]
XRange=-10,10 # 计算时选择的所有点必须处于的X区间(原单位)
YRange=-10,10 # 计算时选择的所有点必须处于的Y区间(原单位)
CoreZDistributionLayerWidth=0.1 # 获取芯型位置的z时所选择的层厚(原单位)
[Mush]
CenterZoneXRange=-0.2,0.2 # 计算Mush中间位置时选择切片的X区间(原单位)
CenterZoneYRange=-1.8,1.8 # 计算Mush中间位置时选择切片的Y区间(原单位)
[Algorithm] # 斜率k的算法选择
Mode=deltaZMax # deltaZMax是基于deltaZ进行计算, 而2DInterpolation是拟合
ModeList=deltaZMax, 2DInterpolation # 推荐选择deltaZMax, 因2D拟合算法不稳定
[Output] # 设置输出结果
Filepath=treated-2.csv # 将目标输出文件
Draw=false # 计算完成后是否绘图?true则绘图
3. 配置要点
File/CoreAreaCSV
该键值是考虑型芯时,芯型所包含的点群,导出成单个WJ格式(即普通的csv文件)时生成的文件。
此处有如下要点:
- 必须包含,即使铸件不存在型芯,也必须指定1个存在的空文件
- 必须后缀为csv
- csv文件无表头,其每列的数据定义与WJ格式类似,依次为
序数,节点序号,x,y,z,值
若要使用型芯时,该如何制作这个文件呢?
很简单,用户仅需参考如下流程:
- 参考手动导出ProCAST数据到ci_data的流程,选中型芯所包含的点群(注意模式为Node)
- 将所选的点导出到指定
ci_data.txt - 使用
ProCAST-Node-Reader,将这个ci_data.txt导出成单个的csv文件,该csv文件即为型芯文件,流程参考ProCAST-Node-Reader导出ci_data到csv
Point/DimensionDirectionList
- 若您使用的是ProCAST,那么请注意,此处的方向一定是viewer模式下的方向,而不是mesh模式下的方向。
Point/SpaceRatio
- 若您使用的是ProCAST,那么请注意,此处的方向一定是viewer模式下的SpaceRatio,而不是mesh模式下的SpaceRatio。
Point/RDirection
该键值用于指定扫描半径方向。
需要说明,用户在选择形状时(即选择整个cluster上的某个铸型),应当尽可能将所选铸型的关键方向尽可能贴近坐标的X轴正方向或负方向。
软件在计算时,也只会选取X轴的正或负方向为扫描半径方向,因而若铸型的关键特征与X轴方向偏离甚远,则所求结果质量可能不好。
例如,对于单晶叶片,则需要保证单晶叶片的叶锋叶脊,即横截面月牙形尽可能贴合到X轴正负方向。
例如(此时为负):

- 为便于计算,若能保证X轴正方向是优选的。
- 此处的正方向,是指从横截面中心指向外部Enclosure。
- 若您使用的是ProCAST,那么请注意,此处的方向一定是viewer模式下的方向,而不是mesh模式下的方向。
Filter/XRange和Filter/YRange
这两个键值代表了XY方向的取值范围,是对所选点的第一次筛选。 例如,若有如下定义:
[Filter]
XRange=0,10
YRange=5,15
这一定义表示,选择的点中,只处理x处于[0,10]且y处于[5,15]的部分。
这种设计的好出在于,若筛选的点云的范围不对,则可依据此设定矫正。
若用户能确保抓取的点云必然是纯粹的研究对象,那么这个范围可以设置为正负尽可能大,例如:
[Filter]
XRange=-1000000,1000000
YRange=-1000000,1000000
Filter/CenterZoneXRange和Filter/CenterZoneYRange
注意,这是1个很容易犯错的参数。
请注意,该参数也是1个XY区间,但这个区间取值,是为了从给定的固液界面点群中,筛选出1小块。使用这一小块内的上下限作为当前的糊状区高度H。
显然:
- 若CenterZone选择范围很广,包含的点很多,那么有可能会包裹更多的液面弯曲部分,其z_min至z_max的差值就与此处的糊状区高度产生较大误差
- 若CenterZone选择范围很窄,包含的点太少,那么有可能由于网格密度不足,取到的点分布不具有代表性,也会产生误差
注意,上述两种Range的定义可以参考下图

Output/Draw
为了检查扫描的点是否完整,可以将Output/Draw设置为true。如此,在CatchK执行后,会将所有抓取到的固液界面整合到一个点云当中。
如果扫描是完整的,则所有步骤的固液界面所获得的点云应当能基本涵盖整个铸型。
若点云形状与铸型相去甚远,那就说明配置文件设置不当,应当重新设置。
- 需要说明,在批处理时,应当将此键设为
false,以避免绘图过程对自动化处理的阻塞。
当选择绘图时,可以通过累计的固液界面的点云来检查数据完整性,若所获得点云与所选铸型相去甚远,则需要修改CatchK的配置文件;而如下的例子则基本说明原始数据具有完整性:

需要提醒,数据完整性是必要而非充分的,即使数据保持完整性,依然可能会有设置错误,需要细心检查。