当前位置:首页>python>《码上仿真:Abaqus Python API》Vol.20 Kernel 与 GUI 的“跨时空对话” 全栈插件的终极闭环

《码上仿真:Abaqus Python API》Vol.20 Kernel 与 GUI 的“跨时空对话” 全栈插件的终极闭环

  • 2026-06-30 09:35:15
《码上仿真:Abaqus Python API》Vol.20 Kernel 与 GUI 的“跨时空对话” 全栈插件的终极闭环

在写完一个精美的对话框(GUI)后,很多开发者会理所当然地认为:我在界面里点了"运行",后台就应该立刻开始建模,因为它们都在同一个 Abaqus 软件里嘛!

然而,真相会让你大吃一惊:Abaqus 的界面(GUI)和计算引擎(Kernel),其实生活在两个完全隔离的"平行时空"里。

想象一下这样的场景:你精心设计的对话框上有一个"创建模型"按钮,用户填写了所有参数,满怀期待地点击了按钮。如果此时你直接在 GUI 脚本中调用 `mdb.Model(name='New-Model')`,程序会立刻报错——因为在 GUI 的 Python 解释器中,`mdb` 根本不存在!这个看似简单的操作,背后隐藏着 Abaqus 架构设计的深层逻辑。

Abaqus 的界面(GUI)和计算引擎(Kernel)由不同的 Python 解释器驱动,拥有独立的内存空间:

  • GUI 进程:负责界面渲染、用户交互、事件处理

    • 运行环境:独立的 Python 解释器

    • 可访问模块:`abaqusGui`、`FX`、`AFX` 等 GUI 相关模块

    • 不可访问:`abaqus`(mdb)、`odbAccess` 等内核模块

  • Kernel 进程:负责模型数据、计算求解、结果存储

    • 运行环境:另一个独立的 Python 解释器

    • 可访问模块:`abaqus`(mdb)、`abaqusConstants`、`odbAccess` 等

    • 不可访问:GUI 相关模块

这种架构设计带来了显著的优势:

  • 稳定性隔离:即使 GUI 崩溃或卡死,内核中的计算任务仍能继续运行

  • 资源管理:GUI 和内核可以分别优化内存和 CPU 使用

  • 分布式计算:理论上可以运行在不同的机器上(虽然 Abaqus/CAE 通常是本地运行)

  • 安全性:内核操作受到严格控制,防止恶意脚本直接破坏数据

界面根本不知道什么是 Mdb,而内核也对屏幕上的按钮一无所知。如果它们无法对话,你的插件就只是一个好看的"空壳"。Abaqus 采用的是典型的前后台架构(Client-Server Architecture)。要让它们完美协同,必须依靠这三套通信机制。

1. 单向电波:sendCommandString 机制

当用户在界面上点击"确定"时,GUI 侧的按钮会触发一个动作,调用 `sendCommandString(command, writeToReplay=True, writeToJournal=False)`。

from abaqusGui import *def send_modeling_command_pro(length, width, height):    """    发送建模命令到内核    参数:        length: 模型长度        width: 模型宽度        height: 模型高度    """    # 1. 基础校验    if length <= 0 or width <= 0 or height <= 0:        print("警告:物理维度必须大于零!")        return    # 2. 构建内核代码字符串    # 使用 f-string 注入参数,注意大括号的嵌套    command = f"""from abaqus import *from abaqusConstants import *# 创建一个名为 'Parametric-Model' 的独立空间model = mdb.Model(name='Parametric-Model-{length}')# 草图绘制 L x Wsketch = model.ConstrainedSketch(name='__profile__', sheetSize=500.0)sketch.rectangle(point1=(0, 0), point2=({length}, {width}))# 拉伸成 H 高度的实体part = model.Part(name='Block', dimensionality=THREE_D, type=DEFORMABLE_BODY)part.BaseSolidExtrude(sketch=sketch, depth={height})print(f'Model created: {length} x {width} x {height}')"""    # 3. 通过 App 对象发射指令    getAFXApp().sendCommandString(        command=command,        writeToReplay=True,    # 让操作可回放        writeToJournal=True    # 让模型可被 .jnl 重建(强烈建议开启)    )# 使用示例# send_modeling_command_pro(200.0, 100.0, 50.0)

界面把用户填写的参数打包,自动翻译成一段字符串代码(比如 `'createMyBlock(length=100.0)'`),然后通过内部管道"发射"给内核。

这就像是电台点歌。听众(GUI)不能直接上台唱歌,他只能写一封信(字符串命令)寄给电台主播(Kernel)。主播收到信后,在直播间里把这首歌(内核函数)放出来。

2.历史的"记事本":writeToJournal 的抉择

在 sendCommand 函数中,`writeToJournal` 参数决定了这段对话是否会被写进 .jnl(日志)文件。

# 不同场景下的日志策略# 场景1:标准建模命令 - 记录到日志sendCommandString(    command="mdb.Model(name='Standard-Model')",    writeToJournal=True   # 用户可以通过 .jnl 重现操作)# 场景2:临时查询命令 - 不记录到日志sendCommandString(    command="print(mdb.models.keys())",    writeToJournal=False  # 查询操作不需要记录)# 场景3:自定义插件命令 - 手动处理sendCommandString(    command="""from my_plugin_kernel import create_advanced_geometrycreate_advanced_geometry(params)""",    writeToJournal=True,   # 记录,但需要在 .jnl 中处理导入    journalMethodCall=True # 标记为方法调用)

如果是 Abaqus 内置的标准命令,系统会自动记录。但如果你执行的是一段自定义的脚本,你必须手动处理 journalMethodCall。

这叫"留痕管理"。如果你的插件干了坏事(修改了模型),却没在 .jnl 里留下记录,那用户下次打开 .cae 文件时,模型就会因为没有"历史记忆"而彻底崩塌。优秀的开发者一定会确保每一条核心命令都记录在册。

journalMethodCall 的使用

def create_custom_part(name, dimensions):    """    创建自定义零件    确保操作能被正确记录到 .jnl 文件    """    cmd = f"""# 这个注释会被写入 .jnl 文件# journalMethodCall: create_custom_partfrom abaqus import *model = mdb.models['Model-1']# ... 建模代码 ..."""    sendCommandString(        command=cmd,        writeToJournal=True,        journalMethodCall=True  # 标记为方法调用,便于回放    )
3.灵魂的心灵感应:GUI Queries & Callbacks(双向同步)

GUI 怎么知道内核里的模型变了?这靠的是一种叫"查询与回调(Queries and Callbacks)"的机制。

这是高阶玩家的绝活。假设你在内核里用代码删除了 'Part-1',左侧的模型树和对话框里的下拉菜单怎么自动更新?后台会发射一个 Query 信号,GUI 接收到信号后触发 Callback 函数,悄悄把菜单里的名字抠掉。这种"心有灵犀",让前后台虽然分居两地,却能实时同步。

双向同步的工作流程

Kernel 模型变化 → 触发 Query → 发送信号 → GUI 接收 → 执行 Callback → 界面更新
终极实战:一个能"传音"的完整 GUI 按钮

在这段代码中,我们将展示如何让一个界面按钮,精准触发后台的参数化建模函数:

# ------------------ GUI 侧脚本 (my_plugin_gui.py) ------------------from abaqusGui import *class MyUltimateToolset(AFXToolsetGui):    def __init__(self):        AFXToolsetGui.__init__(self, 'Ultimate Toolset')        # 创建一个触发命令的对象        # 关联后台名为 'my_kernel_module' 里的 'build_bridge' 函数        cmd = AFXGuiCommand(mode=self, method='build_bridge',                             objectName='my_kernel_module')        # 定义一个浮点型关键字,绑定到界面的输入        self.spanKw = AFXFloatKeyword(cmd, 'span', True, 50.0)        # 创建按钮,点击时就会自动发送拼装好的命令字符串        FXButton(p=self, text='一键架桥', ic=None, tgt=cmd, sel=AFX_ID_COMMAND)# ------------------ KERNEL 侧脚本 (my_kernel_module.py) ------------------# 这是躲在后厨的大厨函数def build_bridge(span):    from abaqus import mdb    import part    # 根据前端传来的 span 参数,在内核里翻江倒海    myModel = mdb.models['Model-1']    myPart = myModel.Part(name='Bridge-Part', dimensionality=THREE_D, type=DEFORMABLE_BODY)    # ... 具体的几何拉伸与建模代码 ...    print("后台收到指令!成功创建跨度为 %s 的桥梁模型!" % span)

结语

《码上仿真:Abaqus Python API 20 讲》到这里就全部结课了!

二十期走来,我们从最底层的内存数字(AbaqusNDarray),穿过复杂的接触、断裂、生死单元,最终在这座前后台通信的桥梁上顺利会师。

核心技能总结

通过这二十讲的学习,你已经掌握了:

  • 建模自动化:使用 Python 脚本批量创建和修改模型

  • 分析定制化:根据需求选择合适的分析类型和参数

  • 界面开发:为复杂功能创建用户友好的图形界面

  • 系统集成:将自定义功能无缝集成到 Abaqus 工作流

  • 效率优化:使用子结构、参数化等技术提高计算效率

写代码的最高境界,是"把复杂留给自己,把简单留给世界"。当你能够用几千行底层代码,封装出一个让任何人点一下就能完成极高难度仿真的插件时,你就不再是一个普通的有限元分析师了。

给开发者的建议

  • 持续学习:Abaqus API 不断更新,保持对新功能的学习

  • 代码复用:建立个人或团队的代码库,避免重复造轮子

  • 文档习惯:为每个函数和类编写清晰的文档字符串

  • 测试驱动:编写单元测试,确保代码的稳定性

  • 社区参与:加入 Abaqus 开发者社区,分享和交流经验

未来展望

随着人工智能和云计算的发展,仿真技术正在经历深刻的变革:

  • AI 辅助建模:使用机器学习自动生成最优网格和分析策略

  • 云端仿真:将计算任务 offload 到云端,本地只保留轻量级界面

  • 数字孪生:实时连接物理世界和虚拟模型

  • 低代码平台:通过图形化界面完成复杂的仿真流程编排

无论技术如何演进,对物理本质的理解将复杂问题抽象为可计算模型的能力,永远是仿真工程师的核心竞争力。

感谢你一路的陪伴!保持好奇,码不停蹄,我们下一个硬核专栏,再见!

公众号

知识星球

扫码关注

科趣范,让科研更简单

小红书

抖音

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 15:22:21 HTTP/2.0 GET : https://f.mffb.com.cn/a/493716.html
  2. 运行时间 : 0.104120s [ 吞吐率:9.60req/s ] 内存消耗:5,270.63kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=516544c09b5064a8c21df8caa9e08a45
  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.000650s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000807s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000340s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000273s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000661s ]
  6. SELECT * FROM `set` [ RunTime:0.000232s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000726s ]
  8. SELECT * FROM `article` WHERE `id` = 493716 LIMIT 1 [ RunTime:0.000949s ]
  9. UPDATE `article` SET `lasttime` = 1783063341 WHERE `id` = 493716 [ RunTime:0.009181s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000288s ]
  11. SELECT * FROM `article` WHERE `id` < 493716 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000909s ]
  12. SELECT * FROM `article` WHERE `id` > 493716 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.005162s ]
  13. SELECT * FROM `article` WHERE `id` < 493716 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000710s ]
  14. SELECT * FROM `article` WHERE `id` < 493716 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006323s ]
  15. SELECT * FROM `article` WHERE `id` < 493716 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.007719s ]
0.106689s