当前位置:首页>python>《码上仿真:Abaqus Python API》Vol.7 SelfContact 零件的“自我修养”与自穿透防御

《码上仿真:Abaqus Python API》Vol.7 SelfContact 零件的“自我修养”与自穿透防御

  • 2026-03-26 09:15:56
《码上仿真:Abaqus Python API》Vol.7 SelfContact 零件的“自我修养”与自穿透防御

在有限元的世界里,定义两个零件相撞是常规操作,但定义一个零件"自摸"却需要一点高级技巧。

在大变形分析中,结构会扭曲到一种亲妈都不认识的程度。如果没有自接触防御系统,单元会直接穿过自己的脊背。在 Abaqus Python API 中,SelfContactStd(标准求解器)和 SelfContactExp(显式求解器)就是专门为这种"内卷"现象设计的雷达。

为什么需要自接触?

在工程实际中,许多场景都会遇到零件自身的接触问题:

  • 金属成形:薄板冲压时,材料褶皱后表面相互接触

  • 橡胶密封:O型圈受压变形后,不同部位相互挤压

  • 生物力学:血管支架扩张时,网状结构自接触

  • 包装行业:易拉罐压扁、纸盒折叠时的自接触

  • 地质力学:岩层褶皱、断层滑移时的自接触

没有自接触,这些仿真会出现什么后果?

  • 单元相互穿透,产生非物理的变形

  • 接触力计算错误,导致应力失真

  • 收敛困难,计算中途报错退出

  • 结果完全不可信,浪费计算资源

下面我们从自接触的三个核心维度来理解其在仿真中的应用。

1. 识别"内卷"区域:Surface 对象的唯一性

创建自接触时,路径是 `mdb.models[name].SelfContactStd`。与普通接触不同,它只需要一个 surface 参数。

普通接触像是"谈恋爱",得有两个对象(Master 和 Slave);自接触则是"练瑜伽",对象只有你自己。你需要用脚本定义一个包含可能发生重叠的所有表面的集合,告诉 Abaqus:"在这个区域内,严禁自我穿透!"

自接触表面的创建方法:

在定义自接触之前,首先需要创建一个包含所有可能自接触区域的表面:

from abaqus import *from abaqusConstants import *def create_robust_self_contact(model_name, part_name, interaction_step):    model = mdb.models[model_name]    part = model.parts[part_name]    # 1. 稳健地选择所有面 (避免使用 Mask)    # 对于自接触,我们通常直接传递所有的 faces 序列    all_faces = part.faces[:]     # 2. 创建表面 (针对壳单元,建议不指定 side,或根据需要定义)    surf_name = 'GeneralSelfSurf'    if surf_name not in part.surfaces.keys():        # 注意:对于固体单元用 side1Faces;对于壳单元自接触,建议在 Interaction 中处理        part.Surface(name=surf_name, side1Faces=all_faces)    # 3. 在 Assembly 中实例化并创建 Interaction    # 自接触必须在 Interaction 模块(Step之后)定义    a = model.rootAssembly    instance = a.instances[part_name + '-1']    # 创建接触属性     if 'SelfProp' not in model.contactProperties.keys():        contact_prop = model.ContactProperty('SelfProp')        contact_prop.TangentialBehavior(formulation=PENALTY, table=((0.2, ), ))    # 4. 建立自接触     model.SelfContactStd(        name='Self-Yoga-Contact',         createStepName=interaction_step,         surface=instance.surfaces[surf_name],         interactionProperty='SelfProp',        thickness=ON,                # 开启厚度补偿        contactTracking=TWO_CONFIG        )# 调用示例# create_robust_self_contact('Tube-Model', 'Tube-Part', 'Step-1')

表面选择的策略:

1. 全表面策略:将整个零件的外表面都定义为自接触表面

  • 优点:不会遗漏任何可能的自接触

  • 缺点:计算开销大,可能包含大量不必要的接触检测

2. 局部表面策略:只选择可能发生自接触的局部区域

  • 优点:计算效率高

  • 缺点:需要预判变形模式,可能遗漏接触

3. 动态表面策略:根据分析步动态调整自接触区域

  • 优点:平衡精度和效率

  • 缺点:实现复杂,需要经验

实战案例:橡胶密封圈自接触表面创建

from abaqus import *from abaqusConstants import *def create_seal_self_contact_surface(model_name, part_name, surface_name='SealSelfContact'):    model = mdb.models[model_name]    part = model.parts[part_name]    all_faces = part.faces    cylindrical_faces_indices = []    # 1. 真正的几何筛选(查找圆柱面)    for i in range(len(all_faces)):        face = all_faces[i]        # 通过 getSurfaceType() 识别圆柱面 (CYLINDER)        # 注意:在某些 CAD 导入模型中,旋转面可能被识别为 REVOLUTION        if face.getSurfaceType() in (CYLINDER, REVOLUTION):            cylindrical_faces_indices.append(i)    # 如果没找到圆柱面,保险起见选所有面    if not cylindrical_faces_indices:        target_faces = all_faces        print("未识别到标准圆柱面,已选择所有表面作为备选。")    else:        # 根据索引切片获取面对象        target_faces = part.faces.getSequenceFromMask(            mask=part.faces.getMaskFromString(cylindrical_faces_indices),         )    # 2. 创建表面    # 对于自接触,side1Faces 适用于实心单元    if surface_name in part.surfaces.keys():        del part.surfaces[surface_name]    part.Surface(name=surface_name, side1Faces=target_faces)    print(f"密封圈自接触表面 '{surface_name}' 已就位!")    print(f"识别到圆柱/旋转面共:{len(target_faces)} 个")    return part.surfaces[surface_name]# 使用示例# create_seal_self_contact_surface('Seal-Model', 'O-Ring')
2. 内部导航系统:Contact Tracking(接触追踪)

在 SelfContactStd 中,有一个关键成员 `contactTracking`。

  • ONE\_CONFIG (STATE):状态追踪,只做正儿八经的法向投影。

  • TWO\_CONFIG (PATH):路径追踪,同时计算交叉和法向投影(默认值)。

这是零件自带的"避障雷达"。ONE\_CONFIG 像是个近视眼,只看对面有没有撞上来;而 TWO\_CONFIG 则是全方位雷达,它会记录表面运动的轨迹,防止在剧烈折叠时因为速度太快而错过了"拦截"时机。

什么时候选择 ONE\_CONFIG?

  • 变形较小且缓慢

  • 计算资源有限

  • 初步分析或参数研究

什么时候选择 TWO\_CONFIG?

  • 大变形、高度非线性

  • 快速折叠或卷曲

  • 最终精度要求高

  • 标准求解器的推荐设置

接触追踪的数学原理:

  • ONE\_CONFIG 只在当前时间步检查接触状态:如果 distance(node, surface) < tolerance , 施加接触约束

  • TWO\_CONFIG 会考虑从上一时间步到当前时间步的运动轨迹:如果 trajectory(node, t_n → t_{n+1}) 与 surface 相交 , 施加接触约束 计算精确的接触时间和位置

代码示例:根据场景选择追踪模式

from abaqus import *from abaqusConstants import *def create_self_contact_with_tracking(model_name, inst_name, surf_name, tracking_mode=TWO_CONFIG):    model = mdb.models[model_name]    a = model.rootAssembly    # 1. 确保接触属性存在 (防崩溃保险)    prop_name = 'SelfContactProp'    if prop_name not in model.contactProperties.keys():        model.ContactProperty(prop_name)        model.contactProperties[prop_name].TangentialBehavior(formulation=PENALTY, table=((0.2, ), ))    # 2. 获取正确的表面对象    # 注意:自接触表面必须从 Assembly 实例中获取    surface_obj = a.instances[inst_name].surfaces[surf_name]    # 3. 动态命名,防止重复报错    interaction_name = 'SelfContact-' + inst_name    model.SelfContactStd(        name=interaction_name,        createStepName='Step-1',        surface=surface_obj,        interactionProperty=prop_name,        enforcement=SURFACE_TO_SURFACE,        contactTracking=tracking_mode,        thickness=ON    )    print(f"自接触 '{interaction_name}' 已激活!模式:{tracking_mode}")# 调用示例# create_self_contact_with_tracking('Large-Deform', 'Tube-1', 'OuterSurf')
3. 隐形的防御层:Thickness(厚度补偿)

在模拟壳(Shell)或膜(Membrane)单元时,几何上它们只有一层面,但物理上是有厚度的。

这就像是你穿了一件隐形的羽绒服。虽然看起来你只是一张纸,但代码会在计算时自动为你加上厚度。如果不开启这个 API 开关,两个表面会贴得太近,导致物理上的干涉被忽略,结果就是误差漫天飞。

开启 `thickness=ON` 后,Abaqus 会:

1. 将几何中面向外偏移半个厚度

2. 在偏移后的表面上进行接触检测

3. 计算接触力时考虑厚度影响

实战案例:薄壁管屈曲分析

from abaqus import *from abaqusConstants import *def setup_tube_buckling_self_contact(model_name, part_name, inst_name):    model = mdb.models[model_name]    part = model.parts[part_name]    a = model.rootAssembly    # 1. 创建壳截面 (确保材料 Steel 已存在)    if 'Steel' not in model.materials.keys():        model.Material(name='Steel')        model.materials['Steel'].Elastic(table=((210000.0, 0.3), ))    shell_thickness = 2.0    model.HomogeneousShellSection(        name='TubeSection',         material='Steel',         thickness=shell_thickness    )    # 2. 分配截面    region = part.Set(name='AllFaces', faces=part.faces)    part.SectionAssignment(region=region, sectionName='TubeSection')    # 3. 创建表面 (在 Part 层级创建,但在 Assembly 层级引用)    surf_name = 'TubeSurface'    if surf_name not in part.surfaces.keys():        part.Surface(name=surf_name, side1Faces=part.faces)    # 4. 创建接触属性    prop_name = 'TubeSelfContact'    if prop_name not in model.contactProperties.keys():        cp = model.ContactProperty(prop_name)        cp.NormalBehavior(pressureOverclosure=HARD, allowSeparation=ON)    # 5. 在装配体层级创建自接触 (核心修正)    # 获取实例化的表面对象    instance_surface = a.instances[inst_name].surfaces[surf_name]    # 确保分析步已存在    step_name = 'Buckling-Step'    if step_name not in model.steps.keys():        model.StaticStep(name=step_name, previous='Initial')    model.SelfContactStd(        name='TubeSelfContactInteraction',         createStepName=step_name,         surface=instance_surface,         interactionProperty=prop_name,         enforcement=SURFACE_TO_SURFACE,         contactTracking=TWO_CONFIG,         thickness=ON  # 开启厚度补偿,防御自穿透    )    print(f"    薄壁管自接触系统已就绪!")    print(f"   追踪模式:TWO_CONFIG (路径追踪)")    print(f"   物理厚度:{shell_thickness} mm (已考虑补偿)")# 调用示例# setup_tube_buckling_self_contact('Tube-Buckling', 'Tube-Part', 'Tube-Part-1')

厚度补偿的注意事项:

1. 厚度方向:确保壳单元的法向方向一致(使用 `Normal` 命令检查)

2. 厚度值:必须与截面定义中的厚度一致

3. 双面接触:对于壳单元,可能需要同时考虑 side1 和 side2

4. 网格质量:厚度补偿对网格质量敏感,避免极端长宽比

4.实战代码:开启"自我防御"模式

在 Python 脚本中实现自接触:

from abaqus import *from abaqusConstants import *# 1. 选定那个要"内卷"的表面# 假设我们已经创建了一个名为 'InternalSurf' 的 Region 对象mySurface = mdb.models['Model-1'].parts['Tube'].surfaces['InternalSurf']# 2. 定义自接触# enforcement=SURFACE_TO_SURFACE: 推荐使用面面接触,更平滑mdb.models['Model-1'].SelfContactStd(    name='SelfGuard',     createStepName='Step-1',     surface=mySurface,     interactionProperty='MyContactProp', # 引用之前定义的 NormalBehavior    enforcement=SURFACE_TO_SURFACE,     contactTracking=TWO_CONFIG,     thickness=ON)

自接触非常耗费算力!不要给整个模型都加自接触,只给那些真正会"抱团"的区域定义。

完整的多场景自接触设置:

from abaqus import *from abaqusConstants import *def setup_perfect_self_contact():    # --- 场景 1:金属薄板冲压 (壳单元 + 厚度补偿) ---    def setup_sheet_forming():        m_name = 'SheetMetal-Forming'        model = mdb.Model(name=m_name)        # 1. 创建零件与表面        s = model.ConstrainedSketch(name='__profile__', sheetSize=200.0)        s.rectangle(point1=(0.0, 0.0), point2=(100.0, 100.0))        p = model.Part(name='Sheet', dimensionality=THREE_D, type=DEFORMABLE_BODY)        p.BaseShell(sketch=s)        p.Surface(name='SheetSurf', side1Faces=p.faces)        # 2. 【核心修正】创建装配体实例        a = model.rootAssembly        inst = a.Instance(name='Sheet-1', part=p, dependent=ON)        # 3. 【核心修正】创建分析步        model.StaticStep(name='Forming-Step', previous='Initial')        # 4. 创建属性与自接触        prop = model.ContactProperty('SheetContact')        prop.NormalBehavior(pressureOverclosure=HARD)        prop.TangentialBehavior(formulation=PENALTY, table=((0.1, ), ))        # 引用 Assembly 层级的表面        model.SelfContactStd(            name='SheetSelfContact',             createStepName='Forming-Step',             surface=inst.surfaces['SheetSurf'], # 正确引用路径            interactionProperty='SheetContact',             thickness=ON # 壳单元必须开启!        )        print(" 场景 1:金属薄板冲压设置完成")    # --- 场景 2:橡胶密封圈 (实体单元 + 软接触) ---    def setup_rubber_seal():        m_name = 'Rubber-Seal'        model = mdb.Model(name=m_name)        # 1. 零件与装配 (简化版圆环)        s = model.ConstrainedSketch(name='__profile__', sheetSize=50.0)        s.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(10.0, 0.0))        p = model.Part(name='O-Ring', dimensionality=THREE_D, type=DEFORMABLE_BODY)        p.BaseSolidExtrude(sketch=s, depth=5.0)        p.Surface(name='SealSurf', side1Faces=p.faces)        a = model.rootAssembly        inst = a.Instance(name='O-Ring-1', part=p, dependent=ON)        model.StaticStep(name='Compression-Step', previous='Initial')        # 2. 软接触属性:防止数值震荡        prop = model.ContactProperty('SealContact')        prop.NormalBehavior(pressureOverclosure=EXPONENTIAL, pressure=0.5, clearance=0.01)        # 3. 自接触        model.SelfContactStd(            name='SealSelfContact',             createStepName='Compression-Step',             surface=inst.surfaces['SealSurf'],             interactionProperty='SealContact',             thickness=OFF # 实体单元不需要补偿        )        print(" 场景 2:橡胶密封圈设置完成")    # 执行场景    setup_sheet_forming()    setup_rubber_seal()# 运行setup_perfect_self_contact()

自接触性能优化技巧:

from abaqus import *from abaqusConstants import *def optimize_self_contact_performance(model_name, interaction_name='SelfContact'):    if model_name not in mdb.models:        print(f"错误:模型 {model_name} 不存在")        return    model = mdb.models[model_name]    # 1. 创建接触控制 (Contact Control)    # 重点:修正 stiffnessScaleFactor 和稳定化参数    control_name = 'SelfContactControl'    if control_name not in model.contactControls.keys():        model.ContactControl(name=control_name)    model.contactControls[control_name].setValues(        stiffnessScaleFactor=0.1,         # 降刚度,防止因接触力过大导致振荡        relativePenetrationTolerance=0.01, # 设置相对穿透容差        stabilize=ON,                     # 开启接触稳定化(防止零件飞走)        stabilizationFactor=1.0           # 稳定化系数    )    # 2. 应用到自接触    if interaction_name in model.interactions.keys():        model.interactions[interaction_name].setValues(            contactControls=control_name        )    else:        print(f"警告:找不到交互 {interaction_name}")    # 3. 优化所有非线性分析步    for step_name in model.steps.keys():        if step_name != 'Initial':            step = model.steps[step_name]            # 只有 StaticStep 或类似步支持这些参数            try:                step.setValues(                    initialInc=0.001,  # 更小的初始增量,有助于初期接触捕捉                    minInc=1e-08,      # 给予求解器更多的试错空间                    maxInc=0.1,        # 限制最大步长,防止错过接触瞬间                    maxNumInc=1000     # 增加最大增量数                )            except:                pass    print(f"优化方案已部署:'{interaction_name}' !")# 使用示例# optimize_self_contact_performance('SheetMetal-Forming', 'SheetSelfContact')

SelfContact 设置检查清单:

  • 正确定义自接触表面(包含所有可能自接触区域)

  • 选择合适的接触追踪模式(TWO\_CONFIG 推荐)

  • 壳单元必须开启 thickness=ON

  • 定义合理的接触属性(法向 + 切向行为)

  • 检查壳单元法向方向是否一致

  • 调整接触控制参数优化性能

  • 设置合适的分析步增量参数

  • 进行网格敏感性分析

自接触最佳实践:

  • 从简单开始:先尝试不加自接触,观察变形模式

  • 局部优先:只给真正需要自接触的区域定义

  • 逐步调试:先用粗网格、大增量步测试

  • 监控收敛:关注接触状态和穿透量输出

  • 结果验证:检查应力分布是否合理

性能优化建议:

  • 避免给整个模型添加自接触

  • 使用局部表面而非全表面

  • 考虑使用显式求解器(SelfContactExp)处理极端大变形

  • 合理设置接触刚度和穿透容差

  • 使用并行计算加速

结语

在 Abaqus 脚本建模中,自接触是处理极度非线性问题的最后一道防线。

一个完美的模型不仅要处理好外部的冲突,更要管理好内部的秩序。通过 `contactTracking` 和 `thickness` 的精准调校,我们可以让模型在最极端的挤压下依然保持尊严(不穿透)。


👉互动话题:你见过最离谱的"自穿透"现场是什么样的?是密封圈变成了麻花,还是压扁的易拉罐变成了二次元薄片?在评论区留下你的"仿真翻车现场"

公众号

知识星球

扫码关注

科趣范,让科研更简单

小红书

抖音

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 11:46:31 HTTP/2.0 GET : https://f.mffb.com.cn/a/482708.html
  2. 运行时间 : 0.144296s [ 吞吐率:6.93req/s ] 内存消耗:4,919.21kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=8f90e3aaa86e3c892d3bee24e342f4cf
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000430s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000726s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000269s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.006040s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000501s ]
  6. SELECT * FROM `set` [ RunTime:0.005897s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000611s ]
  8. SELECT * FROM `article` WHERE `id` = 482708 LIMIT 1 [ RunTime:0.000466s ]
  9. UPDATE `article` SET `lasttime` = 1774583191 WHERE `id` = 482708 [ RunTime:0.000565s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000243s ]
  11. SELECT * FROM `article` WHERE `id` < 482708 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.003811s ]
  12. SELECT * FROM `article` WHERE `id` > 482708 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.007578s ]
  13. SELECT * FROM `article` WHERE `id` < 482708 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.010822s ]
  14. SELECT * FROM `article` WHERE `id` < 482708 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.017289s ]
  15. SELECT * FROM `article` WHERE `id` < 482708 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.020309s ]
0.145832s