制作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,

若要使用型芯时,该如何制作这个文件呢?

很简单,用户仅需参考如下流程:

Point/DimensionDirectionList

  • 若您使用的是ProCAST,那么请注意,此处的方向一定是viewer模式下的方向,而不是mesh模式下的方向。

Point/SpaceRatio

  • 若您使用的是ProCAST,那么请注意,此处的方向一定是viewer模式下的SpaceRatio,而不是mesh模式下的SpaceRatio。

Point/RDirection

该键值用于指定扫描半径方向。

需要说明,用户在选择形状时(即选择整个cluster上的某个铸型),应当尽可能将所选铸型的关键方向尽可能贴近坐标的X轴正方向或负方向。

软件在计算时,也只会选取X轴的正或负方向为扫描半径方向,因而若铸型的关键特征与X轴方向偏离甚远,则所求结果质量可能不好。

例如,对于单晶叶片,则需要保证单晶叶片的叶锋叶脊,即横截面月牙形尽可能贴合到X轴正负方向。

例如(此时为负):

img.png

  • 为便于计算,若能保证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的定义可以参考下图

img.png

Output/Draw

为了检查扫描的点是否完整,可以将Output/Draw设置为true。如此,在CatchK执行后,会将所有抓取到的固液界面整合到一个点云当中。 如果扫描是完整的,则所有步骤的固液界面所获得的点云应当能基本涵盖整个铸型。

若点云形状与铸型相去甚远,那就说明配置文件设置不当,应当重新设置。

  • 需要说明,在批处理时,应当将此键设为false,以避免绘图过程对自动化处理的阻塞。

当选择绘图时,可以通过累计的固液界面的点云来检查数据完整性,若所获得点云与所选铸型相去甚远,则需要修改CatchK的配置文件;而如下的例子则基本说明原始数据具有完整性:

img.png

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