基于python的FLAC3D锚杆/锚索结构单元参数自动赋值方法
文献发布时间:2024-04-18 20:00:50
技术领域
本发明涉及一种基于python的FLAC
背景技术
FLAC
边坡和滑坡工程中,须对锚杆/锚索施加预应力,使其具备主动约束坡体位移的能力,因此此类锚杆/锚索一般分为锚固段和自由段。当锚杆/锚索数量较少或规格相同时,可以通过FLAC
发明内容
本发明要解决的技术问题是:针对上述存在的问题,提供一种基于python的FLAC
本发明所采用的技术方案是:一种基于python的FLAC
基于锚杆/锚索规格,将锚杆/锚索分成多个批次,并分批次、依次创建锚杆/锚索结构单元;
基于预设的节段划分长度将锚杆/锚索结构单元划分成若干节段,基于第j批次创建前的最大节段ID为第j批次内的每个节段赋予一个唯一且连续的节段ID;
获取第j批次锚杆/锚索结构单元的根数,并采用遍历法逐根对第j批次中的锚杆/锚索结构单元进行赋值;
基于第j批次锚杆/锚索结构单元的锚头节段数、自由段节段数和锚固段节段数,确定第j批次中第i根锚杆/锚索结构单元上锚头、自由段和锚固段的节段ID范围;
基于第i根锚杆/锚索结构单元上锚头、自由段和锚固段的节段ID范围,为第i根锚杆/锚索结构单元的锚头、自由段和锚固段进行参数赋值。
所述获取第j批次锚杆/锚索结构单元的根数,包括:
获取第j批次锚杆/锚索结构单元的第一最大节段ID和第二最大节段ID,其中第一最大节段ID为第j批次锚杆/锚索结构单元创建前的最大节段ID,第二最大节段ID为第j批次锚杆/锚索结构单元创建完成后的最大节段ID;
获取第j批次中每根锚杆/锚索结构单元的节段数;
基于第j批次的第一最大节段ID和第二最大节段ID,以及第j批次锚杆/锚索结构单元每根的节段数计算第j批次锚杆/锚索的根数。
所述预设的节段划分长度采用1m。
一种基于python的FLAC
单元创建模块,用于基于锚杆/锚索规格,将锚杆/锚索分成多个批次,并分批次、依次创建锚杆/锚索结构单元;
ID赋值模块,用于基于预设的节段划分长度将锚杆/锚索结构单元划分成若干节段,基于第j批次创建前的最大节段ID为第j批次内的每个节段赋予一个唯一且连续的节段ID;
遍历赋值模块,用于获取第j批次锚杆/锚索结构单元的根数,并采用遍历法逐根对第j批次中的锚杆/锚索结构单元进行赋值;基于第j批次锚杆/锚索结构单元的锚头节段数、自由段节段数和锚固段节段数,确定第j批次中第i根锚杆/锚索结构单元上锚头、自由段和锚固段的节段ID范围;基于第i根锚杆/锚索结构单元上锚头、自由段和锚固段的节段ID范围,为第i根锚杆/锚索结构单元的锚头、自由段和锚固段进行参数赋值。
一种存储介质,其上存储有能被处理器执行的计算机程序,其特征在于:所述计算机程序被执行时实现所述基于python的FLAC
一种锚杆/锚索结构单元参数自动赋值设备,具有存储器和处理器,存储器上存储有能被处理器执行的计算机程序,其特征在于:所述计算机程序被执行时实现所述基于python的FLAC
本发明的有益效果是:本发明基于锚杆/锚索的规格,将锚杆/锚索分成多个批次,同一批次的锚杆/锚索具有相同的参数,从而便于批量进行参数赋值,提高赋值效率;本发明中每根锚杆/锚索上的每一节段均赋有唯一且连续的节段ID,便于准确确定每根锚杆/锚索上锚头、自由段和锚固段的范围,从而便于准确高效对锚杆/锚索上锚头、自由段和锚固段进行赋值。
附图说明
图1为实施例中锚杆/锚索结构单元组成示意图。
图2为实施例中锚杆/锚索结构单元参数自动赋值实现过程流程图。
图3为锚杆/锚索结构单元参数自动赋值实现界面。
具体实施方式
本实施例为一种基于python的FLAC
S1、基于锚杆/锚索规格,将锚杆/锚索分成多个批次,并分批次、依次创建锚杆/锚索结构单元。
锚杆/锚索结构单元可通过FLAC
S2、基于预设的节段划分长度将第j批次内的每根锚杆/锚索结构单元均划分成若干节段,基于第j批次创建前的最大节段ID为第j批次内的每个节段赋予一个唯一且连续的节段ID,j=1,2,3...。
本实施例中锚杆/锚索结构单元节段划分长度控制在1m是比较合理的,过长将降低计算精度,过短将增加计算耗时且不会明显提高计算精度。
在处理锚杆/锚索结构单元时,将每一个节段(segment)作为一个ID,每个节段有首尾两个节点(node),且所有锚杆/锚索单元的节段ID都是连续的(附图1),因此需要特别注意,当采用dxf创建锚杆/锚索单元时,线段起点和终点分别对应锚杆/锚索的锚头和末端。
本实施例中在第j批次创建前,利用内置函数itasca.structure.maxid()计算当前结构单元(已创建的结构单元)的最大节段ID。由于锚杆/锚索单元上的节段ID是连续的,因此每次新批次的锚杆/锚索单元导入时,该批次的起始节段ID为该批次创建前最大ID+1,startid=itasca.structure.maxid()+1,startid=起始ID。
S3、获取第j批次锚杆/锚索结构单元的根数,并采用遍历法逐根对第j批次中的锚杆/锚索结构单元进行赋值。
S31、获取第j批次锚杆/锚索结构单元的第一最大节段ID和第二最大节段ID,其中第一最大节段ID为第j批次锚杆/锚索结构单元创建前的最大节段ID,第二最大节段ID为第j批次锚杆/锚索结构单元创建完成后的最大节段ID;获取第j批次中每根锚杆/锚索结构单元的节段数segs。基于第j批次的第一最大节段ID和第二最大节段ID,以及第j批次锚杆/锚索结构单元每根的节段数计算第j批次锚杆/锚索的根数。
S32、基于第j批次锚杆/锚索结构单元预设的锚头节段数、自由段节段数和锚固段节段数,确定第j批次中第i根锚杆/锚索结构单元上锚头、自由段和锚固段的节段ID范围。
S33、基于第i根锚杆/锚索结构单元上锚头、自由段和锚固段的节段ID范围,为第i根锚杆/锚索结构单元的锚头、自由段和锚固段进行参数赋值。
本实施例还提供一种基于python的FLAC
S4、设置通用锚杆/锚索参数
某些参数是同批次锚杆/锚索通用的,比如锚杆/锚索横截面和周长,因此为了提高计算效率,可统一设置:
it.command(
"""struct cable prop cross-sectional-area grout-perimeter"""
.format(cross_sectional_area,grout_perimeter))
本例中单元创建模块用于基于锚杆/锚索规格,将锚杆/锚索分成多个批次,并分批次、依次创建锚杆/锚索结构单元;ID赋值模块用于基于预设的节段划分长度将锚杆/锚索结构单元划分成若干节段,基于第j批次创建前的最大节段ID为第j批次内的每个节段赋予一个唯一且连续的节段ID。
本实施例中遍历赋值模块用于获取第j批次锚杆/锚索结构单元的根数,并采用遍历法逐根对第j批次中的锚杆/锚索结构单元进行赋值;基于第j批次锚杆/锚索结构单元的锚头节段数、自由段节段数和锚固段节段数,确定第j批次中第i根锚杆/锚索结构单元上锚头、自由段和锚固段的节段ID范围;基于第i根锚杆/锚索结构单元上锚头、自由段和锚固段的节段ID范围,为第i根锚杆/锚索结构单元的锚头、自由段和锚固段进行参数赋值。
本实施例还提供一种存储介质,其上存储有能被处理器执行的计算机程序,该计算机程序被执行时实现本例中基于python的FLAC
本实施例还提供一种锚杆/锚索结构单元参数自动赋值设备,具有存储器和处理器,存储器上存储有能被处理器执行的计算机程序,该计算机程序被执行时实现本例中基于python的FLAC
- 一种铰接式支撑阻尼器减振系统及其减振效能评估方法
- 一种精密减振组件及由其构成的减振平台
- 高空作业平台的调平控制系统、调平控制方法及高空作业平台
- 一种调速控制系统、高空作业平台及调速方法
- 一种工作斗减振系统、方法及高空作业平台
- 一种工作斗减振系统、方法及高空作业平台