乐于分享
好东西不私藏

优锘模模搭全套实操教程:工具安装 / 场景搭建 / ThingJS 联动 / 物联网数据对接交付

优锘模模搭全套实操教程:工具安装 / 场景搭建 / ThingJS 联动 / 物联网数据对接交付

优锘模模搭全套实操教程:工具安装 / 场景搭建 / ThingJS 联动 / 物联网数据对接交付

摘要: 本教程带你系统掌握模模搭(CampusBuilder)从零到一的完整技能树——工具安装、场景搭建、模型管理、ThingJS开发联动,再到数据对接与项目交付,一套保姆级攻略全覆盖

核心检索词模模搭教程 | CampusBuilder使用教程 | ThingJS开发入门 | 3D可视化场景搭建 | 数字孪生平台 | 物联网3D可视化 | 智慧园区搭建 | 优锘科技 


📖 目录

  • • 第一章:模模搭的前世今生——一款被低估的3D可视化神器
  • • 第二章:5分钟上手——下载、安装、注册与界面速览
  • • 第三章:场景搭建基础——从一块空地到一个园区
  • • 第四章:建筑与室内——让你的园区立面丰满起来
  • • 第五章:模型管理秘籍——3万+官方模型库+自定义上传全攻略
  • • 第六章:进阶场景编辑——参考图、CAD导入与精细对齐
  • • 第七章:视点动画与效果模板——让场景"活"起来
  • • 第八章:ThingJS平台联动——从搭场景到做应用的关键一跃
  • • 第九章:ThingJS开发入门——10行代码让场景"动"起来
  • • 第十章:数据对接实战——让真实IoT数据驱动3D场景
  • • 第十一章:摄像机控制与图表可视化——提升项目专业度的秘密武器
  • • 第十二章:6大行业应用场景——从校园到工厂的全覆盖
  • • 第十三章:工具定价终极对比——模模搭免费功能到底能省多少钱
  • • 第十四章:10条新人必看避坑指南——少花冤枉钱、少走弯路
  • • 第十五章:变现路径与职业前景——从小白到数字孪生工程师
  • • 附录:参考来源与版权声明

第一章:模模搭的前世今生——一款被低估的3D可视化神器

1.1 一个改变游戏规则的想法

2014年前后,国内物联网行业正处于爆发前夜。智慧城市、智慧园区、智能楼宇……各种概念层出不穷。但有一个尴尬的现实:几乎所有物联网项目都需要一个3D可视化展示界面,而能做3D开发的人少之又少。

从传统路径来看,一个物联网3D可视化项目大概需要以下角色:1个UE4/Unity开发工程师(年薪30万+)、1个3D建模师(年薪15-25万)、1个前端开发(年薪15-20万)。三个人的团队,光人力成本一个月就要5万以上,一个项目的开发周期通常2-4个月。

优锘科技(UINO)正是看到了这个痛点——能不能让普通前端程序员或者实施工程师,甚至没有任何3D背景的业务人员,也能快速地搭建和开发3D可视化应用?

于是,模模搭(CampusBuilder)诞生了。

1.2 模模搭到底是什么

用一句话概括:模模搭是优锘科技推出的一款零门槛3D园区级场景搭建工具,致力于"万物可视"和"万物可管"。

它的核心定位非常清晰——它不是3D建模软件(不能建单个模型),而是一个3D场景组装工具。你可以把它想象成一个"数字版乐高":官方提供了3万+现成的模型积木(建筑物、树木、路灯、车辆、机房设备、安防摄像头……),你只需要像玩游戏一样,把这些积木拖拽、摆放、旋转、缩放,就能拼出一座完整的3D园区。

模模搭同时也是优锘科技ThingJS数字孪生开发平台的核心组件。换句话说,用模模搭搭好场景之后,可以无缝同步到ThingJS在线开发平台,继续在场景之上添加交互逻辑、数据对接、图表可视化等功能。这是一条完整的"搭场景→写代码→接数据→发布应用"的数字孪生开发流水线。

1.3 它解决的核心痛点

痛点一:3D开发人才贵且少。 市面上能做Web 3D可视化的工程师供不应求,小公司根本招不起。模模搭将"从零建3D场景"这件事的门槛从"需要3D建模师"降到了"会用电脑就能搭",效率提升10倍以上。

痛点二:场景制作周期长。 传统方式下,一个园区级3D场景,专业模型师需要1-2周才能完成。使用模模搭,普通人1天就可以搭出一个像样的园区场景。

痛点三:物联网数据可视化成本高。 过去要把传感器数据映射到3D场景中,需要底层3D引擎的开发能力。而ThingJS已经把复杂难懂的3D底层(点线面顶点、坐标系转换、贴图、灯光效果)封装成了简单易懂的JavaScript函数,让前端程序员秒变3D开发工程师。

痛点四:跨平台访问困难。 ThingJS采用的是纯H5的WebGL架构,不需要安装任何插件,在Chrome、Edge、Firefox等主流浏览器中都能流畅运行,甚至手机微信扫码就能直接看3D场景——这在实际项目交付中非常实用。

1.4 优锘科技是谁

优锘科技(UINO)成立于2013年,是国内较早专注于数字孪生可视化领域的科技公司。公司总部位于北京,核心团队在3D图形学底层算法方面有多年积累。

从产品矩阵来看,优锘打造的是一个完整的数字孪生工具链:

  • • CampusBuilder(模模搭/森园区):园区级3D场景搭建
  • • CityBuilder:城市级3D场景搭建,支持GIS数据导入
  • • ThingJS:在线3D可视化开发平台
  • • ThingJS-X:零代码可视化应用搭建工具
  • • ThingDepot:3D模型资源库,含3万+模型
  • • ChartBuilder:大屏图表搭建工具
  • • TopoBuilder:拓扑图绘制工具
  • • 森大屏:可视化大屏搭建工具

可以看出,这不是一个孤立的工具,而是一整个围绕"让数字孪生走向平民化"目标构建的生态体系。模模搭是这个生态中最基础、最核心的一环——所有数字孪生应用的起点都是先有一个3D可视化场景。


第二章:5分钟上手——下载、安装、注册与界面速览

2.1 硬件与系统要求

在下载之前,先确认你的电脑配置是否达标:

项目
最低要求
推荐配置
操作系统
Windows 7 64位
Windows 10/11 64位
CPU
双核 2.8GHz
四核 3.0GHz+
内存
1GB
8GB+
显卡
GTX 650
GTX 960及以上
硬盘
300GB剩余空间
500GB SSD

重点提醒:必须使用独立显卡。 集成显卡会导致操作卡顿、场景渲染异常。另外,模模搭目前只支持Windows系统,Mac用户需要通过虚拟机或双系统使用(但官方不推荐,可能在虚拟机中出现无法旋转场景等问题)。

2.2 下载与安装

第一步:访问下载页面

打开浏览器,进入ThingJS官网的资源中心下载页面。在页面中找到"CampusBuilder客户端"下载链接。当前客户端版本约为1.1GB,请预留足够的下载时间和硬盘空间。

第二步:安装

双击下载的安装包,按照提示完成安装。安装过程中选择默认路径即可,不需要特殊配置。

第三步:以管理员身份运行(重要)

安装完成后,右键点击CampusBuilder桌面图标,选择"以管理员身份运行"。如果直接双击运行,可能会遇到登录框显示乱码的问题——这是很多新手遇到的第一个坑。

2.3 注册与登录

模模搭支持四种登录方式:邮箱、手机号、QQ、微信。你可以选择最方便的方式注册。

这里有一个重要提示:模模搭客户端的账号与ThingJS在线开发平台的账号是互通的。如果你之后还要在ThingJS中开发应用,务必使用同一个账号登录,否则场景无法同步。

首次登录后,客户端会自动记住登录状态。之后即使断网,也可以离线使用客户端进行场景搭建——这对于网络不稳定的办公环境来说非常友好。

2.4 界面速览:5个关键区域

打开模模搭客户端后,你会看到以下界面布局:

区域一:场景列表(左侧)

显示你创建或购买的所有场景。新用户是空的,点击"新建场景"按钮开始你的第一个项目。你也可以在这里浏览"场景集市",查看和购买其他用户搭建并公开发布的场景。

区域二:场景编辑区(中央大窗口)

这是你主要的操作空间。这里可以旋转、平移、缩放视角,拖放模型、绘制地面、搭建建筑。操作逻辑和大多数3D软件类似——鼠标左键旋转视角、右键平移、滚轮缩放。

区域三:模型库面板(右侧)

这是模模搭最强大的资产。模型按行业和类型分类:建筑、绿化、交通、安防、消防、机房设备、IoT传感器……你可以直接搜索关键词找到想要的模型,然后拖到场景中使用。

区域四:属性面板(右侧)

选中场景中的任何一个物体后,这里会显示它的属性——位置、旋转角度、缩放比例、颜色、动画等。这是精细调整场景元素的核心面板。

区域五:工具栏(顶部和左侧)

包含场景搭建的核心工具:室外/室内切换、创建地面、画墙、建筑结构编辑、模型批量复制、参考图导入、效果设置等。

2.5 界面操作入门:3个必会动作

操作一:视角控制

  • • 按住鼠标左键拖动 = 旋转视角
  • • 按住鼠标右键或中键拖动 = 平移视角
  • • 滚动鼠标滚轮 = 缩放视角
  • • 按空格键 = 2D/3D视图切换
  • • 按F键 = 聚焦选中的物体(或聚焦整个场景)

操作二:模型摆放

在右侧模型库中找到想要的模型,左键点击不要松手,拖动到场景中想要的位置,松开鼠标——模型就摆上去了。这个操作逻辑和很多游戏里的"放置物品"完全一样。

操作三:模型调整

点击场景中的任意模型,它周围会出现三个彩色箭头(代表X/Y/Z三个轴)。拖动箭头可以沿轴向移动模型;点击模型编辑按钮,还可以旋转和缩放。


第三章:场景搭建基础——从一块空地到一个园区

3.1 搭建逻辑:“从地面到天上”

使用模模搭搭建3D场景,有一个黄金法则——按照现实世界中建设园区或建筑的同款逻辑:从地面到地上,从外到内,逐层搭建。

具体来说分为这几个步骤:

  1. 1. 创建一个地面(决定园区的范围)
  2. 2. 铺设地面样式(草地、路面、广场等)
  3. 3. 建造围墙或边界
  4. 4. 搭建建筑(外部结构)
  5. 5. 进入建筑内部编辑室内空间
  6. 6. 摆放绿化、设施、设备等细节模型
  7. 7. 设置效果主题和视点动画
  8. 8. 保存并同步到ThingJS平台

3.2 创建第一块地面

操作步骤:

  1. 1. 点击左侧工具栏的"室外"标签,确认处于室外编辑模式
  2. 2. 点击"圈地"按钮
  3. 3. 在场景中用鼠标左键拖动,画出一个矩形区域(按住Shift可以画标准的水平/垂直直线)
  4. 4. 松开鼠标,地面创建完成

实用技巧:

  • • 可以按空格键在2D/3D视图之间切换——2D模式(俯视图)下画地面和围墙会方便得多
  • • Ctrl+Z可以撤销上一步操作
  • • 如果画错了地面,选中它按Delete键删除即可

3.3 给地面"穿上衣服"

光秃秃的地面不好看,给它铺上合适的样式:

  1. 1. 点击顶部工具栏的"效果"按钮
  2. 2. 在右侧面板中选择"地面"标签
  3. 3. 你会看到各种地面样式:草地、水泥地、砖石路面、柏油路等
  4. 4. 也可以选择"贴图"标签,上传自己准备好的地面纹理图片(支持jpg和png格式)
  5. 5. 选择喜欢的样式后,鼠标移到地面上,地面会变绿并出现提示
  6. 6. 单击即可应用样式到该地面区域

进阶玩法——混合地面: 如果你想做出"园区内有草地也有道路"的效果,可以用"圈地"功能创建多块地面区域,每块分别应用不同的样式。相当于用多个"地面补丁"拼出一个完整的园区底层。

3.4 建造围墙与边界

点击左侧菜单的"围墙"按钮,然后在地面上拖动鼠标画出墙体。常用技巧:

  • • 按住Shift可以画出垂直或水平的直线墙
  • • 按住Ctrl可以取消吸附效果,自由绘制
  • • 画完一段墙后,继续拖动可以接着画下一段
  • • 弯角处可以用小的直线墙拼接出曲线墙效果(模模搭暂时没有直接画曲线的功能)

围墙画好后,在属性面板中可以调整墙的高度、厚度和颜色。

3.5 添加绿化与外部装饰

地面和围墙搞定之后,开始"种树"和摆放装饰。在模型库中搜索"树"、“路灯”、“长椅”、"喷泉"等关键词,把模型拖到园区中合适的位置。

批量种树的技巧: 选中一棵摆好的树,点击"批量复制"按钮,然后在地面上拖动鼠标——按住Shift可以在直线上批量排列(如道路两侧的行道树);按住Ctrl加滚轮可以调整复制间距。

3.6 半小时实战:搭一个微型园区

这是一个完整的实战练习——搭一个包含办公楼、停车场、绿化的小型园区:

步骤1: 圈地创建一块50×50米的地面,应用草地样式

步骤2: 在草地中心圈出一块30×20米的区域,应用水泥地样式(建筑地基)

步骤3: 在模型库中找到办公楼模型,拖到水泥地中央;调整位置使其居中

步骤4: 在办公楼旁边圈出一块20×15米的地面,应用沥青路面样式(停车场)

步骤5: 在模型库中找到"停车位线"或"汽车"模型,在停车场区域批量复制摆放

步骤6: 在园区外围画一圈围墙(高2米、灰色),留出一个缺口作为大门

步骤7: 在围墙缺口处摆放一个"门卫亭"或"道闸"模型

步骤8: 在道路两侧和办公楼周边批量摆放树木和绿化灌木

步骤9: 加上路灯、垃圾桶、长椅等细节模型

步骤10: 保存场景,完成!

整个过程熟练后大约需要30分钟。一个能用于展示的3D园区就诞生了。这和找3D建模师报价几千元的效果基本一致——但这次是你自己免费做出来的。


第四章:建筑与室内——让你的园区立面丰满起来

4.1 室外建筑结构

模模搭提供了丰富的建筑搭建工具,不只是摆放现成的建筑模型,还可以自己"砌"出定制建筑。

自定义建筑的创建:

  1. 1. 在室外模式下,点击"自定义建筑"按钮
  2. 2. 在地面上画出一个矩形(这是建筑的一楼平面图)
  3. 3. 画好后,这个建筑会自动生成一层楼的高度
  4. 4. 双击这个建筑,进入室内编辑模式

建筑的楼层管理:

在建筑属性面板中,你可以:

  • • 添加新楼层(在"楼层"菜单中点击"+")
  • • 删除某一层
  • • 调整每层的高度
  • • 整体调整所有墙体的高度(勾选"生效到所有墙")

屋顶怎么做? 屋顶其实就是建筑的顶层。在顶层使用屋顶模型或在效果中调整天花板样式即可。

4.2 进入室内:画墙与刷地板

双击任意建筑,进入室内编辑模式。左上角会出现"返回室外"按钮,点它就能出去。

室内画墙的规则:

  • • 和室外一样,点击左侧"画墙"工具,在楼层平面上拖动绘制
  • • Shift画直线墙,Ctrl自由画
  • • 画好墙之后可以在属性面板中调整高度

刷地板(高频操作):

  • • 在右侧属性面板中找到"刷地板"模块
  • • 选择一个颜色或材质样式
  • • 鼠标移到你想刷的区域(该区域会高亮)
  • • 单击即可完成

隐藏天花板: 室内编辑时,天花板可能会遮挡视线。点击界面上方的"显示/隐藏天花板"按钮可以切换——这个功能在编辑多层建筑时特别有用。

4.3 室内家具与设备摆放

进入室内后,模型库会自动切换到室内相关模型——办公桌、椅子、电脑、机柜、空调、消防设备等。

室内模型摆放完全遵循"游戏式操作"——拖拽、放置、调整。这里推荐一个效率技巧:

对齐技巧: 按V键可以启用"依模型端点对齐"功能。比如摆放一排办公桌时,先放好第一张,然后复制时按住V键,新桌子会自动对齐到已有桌子的边缘。

"贴墙"技巧: 摆放靠墙的柜子或设备时,把模型拖到墙边,系统会自动吸附对齐。按住Ctrl可以暂时取消吸附。

4.4 室内室外切换的注意事项

模模搭中,"室外"和"室内"是两个独立的编辑空间。有一个很容易踩的坑:

在自定义建筑内部摆放的景观(如室内盆栽),在室外视角是看不到的。 同理,在室外摆放的模型,进入室内后也看不到。这不是bug,而是模模搭的设计逻辑——室内和室外的场景是独立渲染的,这样可以保证大型园区场景的性能。

如何判断你是在室内还是室外?

  • • 室外:能看到天空(蓝天或天空盒效果),背景是浅灰色
  • • 室内:背景是深灰色,看不到天空

如果墙画好了但发现太矮怎么办? 不必一段一段地调整。在楼层属性菜单中,有一个"墙高"设置项,勾选"生效到所有墙"后修改高度,一次性全部调整。

4.5 大型建筑的逐层搭建策略

对于多层建筑(如10层写字楼),推荐使用"模板式"搭建方法:

  1. 1. 先精心搭建好第一层(标准层):画好房间分隔墙、摆好办公家具、设备
  2. 2. 在楼层管理中复制这一层,创建为标准楼层的模板
  3. 3. 逐层微调(如顶层可能布局不同)

这样可以大幅减少重复劳动。楼层不连续时(比如想把2层的内容挪到5层),可以用"复制楼层内容后删除再在新楼层粘贴"的方式曲线救国——模模搭暂时不支持直接拖动楼层顺序。

4.6 万能物体——超出库的解决方案

当你需要某种模型但模型库里没有时,"万能物体"是救命稻草。

万能物体是一系列基础几何体——立方体、球体、圆柱、平面等——你可以通过组合和调整这些几何体来拼出你需要的形状。

应用案例——搭建弧形台阶:

  1. 1. 用多个小的万能立方体,逐级降低高度
  2. 2. 排列成弧形
  3. 3. 调整每个立方体的贴图(在个人文件夹中上传石材贴图)

万能物体的颜色通过贴图方式设置,透明度在编辑状态下不支持调整——需要在最终的发布环境中设置。


第五章:模型管理秘籍——3万+官方模型库+自定义上传全攻略

5.1 ThingDepot模型库全景

模模搭内置了优锘科技的ThingDepot模型资源库,包含超过3万个3D模型,覆盖数十个行业。这些模型全部免费使用,不限数量。

模型库按行业分类:

  • • 建筑类:办公楼、厂房、住宅楼、学校、医院、商场、体育馆……
  • • 绿化景观类:各类树木、灌木、花卉、草坪、假山、喷泉……
  • • 交通类:汽车、卡车、公交车、消防车、道路标识、信号灯、停车位……
  • • 安防消防类:摄像头、消防栓、灭火器、报警器、门禁闸机……
  • • 机房设备类:服务器机柜、UPS电源、空调、配线架、交换机……
  • • IoT传感器类:温湿度传感器、烟感、水浸传感器、智能电表……
  • • 室内家具类:办公桌、椅子、沙发、会议桌、文件柜、饮水机……
  • • 工业设备类:机床、传送带、机械臂、储罐、管道……

5.2 模型搜索的高效方法

模型库虽然庞大,但没有好的搜索策略,找东西就是大海捞针。三个搜索技巧:

技巧一:中英文混合搜索。 有些模型的命名是中文,有些带了英文标签。搜"camera"可能比"摄像头"搜出更多的相关模型。

技巧二:模糊搜索。 搜"树"会出来"柳树"“银杏树”“行道树”"圣诞树"等所有含"树"字的模型。搜"消防"会出来消防栓、灭火器、消防车、消防通道标识等一整套消防相关模型。

技巧三:按场景模板预选。 模型库左侧的分类树很有用。比如你要搭一个数据中心机房,直接展开"机房设备"分类,里面就是机柜、UPS、空调、动环监控等一整套设备模型——不需要一个个搜索。

5.3 模型库里找不到怎么办?三种补充方案

方案一:场景集市购买。 在模模搭客户端的"场景集市"中,可以浏览和购买其他用户搭建的公开场景。有些场景里包含你需要的特殊模型,购买后就可以在你的客户端中打开和使用。

方案二:自己制作并上传。 这是最灵活的方式。模模搭支持上传OBJ格式的标准3D模型。如果你或者同事会用3ds Max,可以在官网下载《3ds Max模型上传插件》,直接在3ds Max中将模型导出为模模搭支持的格式。

方案三:申请官方建模服务。 如果你有明确的建模需求但自己没有建模能力,可以在ThingJS官网上申请建模服务,让优锘的专业建模团队帮你制作。这需要额外的费用。

5.4 模型上传实操

上传OBJ模型:

  1. 1. 在模模搭客户端中,切换到"DIY模型库"标签页
  2. 2. 点击"上传模型"按钮
  3. 3. 选择你的OBJ文件(以及配套的MTL材质文件和贴图文件夹)
  4. 4. 上传完成后,模型会出现在"个人"模型库中
  5. 5. 像使用官方模型一样,拖到场景中即可

上传贴图:

在DIY模型库中,还可以上传自定义贴图(支持jpg和png格式,其中png支持透明通道)。上传后的贴图可以刷到万能物体或者其他模型表面上——这是实现定制化外观的重要手段。

模型上传的注意事项:

  • • 模型面数不宜过高(建议单个模型控制在5万面以内),否则会导致场景卡顿
  • • 贴图分辨率建议在1024×1024以内
  • • 上传前确保模型的坐标原点在模型底部中心——否则放进场景后位置会偏移

5.5 场景集市的正确打开方式

场景集市是模模搭社区的核心——这里汇聚了全国各地用户搭建的公开场景。你可以:

  • • 按行业筛选(如"智慧校园"“智慧园区”“数据中心”)
  • • 按热度排序查看优秀作品
  • • 购买满意的场景(价格从几十到几百元不等)

购买场景的避坑提醒: 购买场景时,务必确保你的模模搭登录账号和购买账号是同一个。不少用户因为用微信登录了客户端、却在网页上用QQ购买了场景,导致场景无法出现——这不是系统bug,是账号不匹配。


第六章:进阶场景编辑——参考图、CAD导入与精细对齐

6.1 参考图导入——依据实际图纸精准搭建

如果你手上有真实的园区平面图或建筑图纸,参考图功能可以让你的3D场景"按照图纸施工"——不再是凭感觉摆放,而是精确到厘米。

导入操作:

  1. 1. 在室外模式下,点击工具栏的"参考图"按钮
  2. 2. 选择你准备好的平面图图片(jpg或png格式)
  3. 3. 图片会出现在地面上,但比例可能不对
  4. 4. 进行比例校准——这是最关键的一步

比例校准的步骤(三步法):

第一步:按住Shift键,点击鼠标左键,在你已知实际尺寸的起点处设置中心点(比如图纸上标注了某段围墙长100米)。

第二步:按住Ctrl键加鼠标左键,在你确定的起点上点击——这设置比例尺的起点。

第三步:按住Alt键加鼠标左键,在终点上点击——这设置比例尺的终点。

设置完成后,在弹窗中输入这段距离的实际长度(如100米),参考图就会自动缩放到正确比例。

校准后的参考图就是你的"施工蓝图"——你只需沿着参考图上的线条画墙、放建筑,不用担心尺寸偏差。

6.2 CAD图纸导入——建筑设计院的专业对接

模模搭支持CAD图纸的导入,这是对接建筑设计院工作流的关键功能。

注意:CAD导入是收费功能。 导入后,CAD图纸会自动转换为参考图层,你可以沿着CAD线条搭建建筑。对于承接正式项目的团队来说,这个功能的价值远超其费用——它确保了3D场景和建筑设计图纸的严格一致。

6.3 精细模型对齐——让场景达到"强迫症级"整齐

基础对齐方法:

  • • V键对齐:选中模型后按V键,可以依相邻模型的端点对齐——适合摆放一排路灯、一排停车位等场景
  • • Shift旋转:旋转模型时按住Shift,可以按15度/30度的固定角度旋转——确保模型角度整齐统一
  • • F键聚焦:选中一个物体按F键,视角会自动拉近到该物体——方便精细调整
  • • Ctrl多选:按住Ctrl可以加选或减选多个物体——然后对选中的所有物体统一调整位置、旋转

批量复制的进阶用法:

在批量复制时按住Ctrl加滚轮,可以调整复制间距——这在摆放道路两侧的绿化带时非常实用。配合键盘的上下左右方向键,还能微调复制出来的模型排列方向。

Alt键的隐藏技巧:

按住Alt键,点击场景中的任意一个模型,会一键选中该类型的所有模型。比如你的园区里有200棵树,想统一调大它们的尺寸——按住Alt,点击其中一棵,所有200棵全部选中,在属性面板中统一调缩放比例。这个效率是手动逐个选择的200倍。


第七章:视点动画与效果模板——让场景"活"起来

7.1 视点与视点动画——场景的"导览路线"

视点(Viewpoint)是场景中预设的观察角度——你可以把它理解为"拍照机位"。为重要的位置创建视点后,用户可以一键跳转到该视角。

创建视点:

  1. 1. 在3D视图中,将视角调整到满意的角度和距离
  2. 2. 点击工具栏的"视点"按钮
  3. 3. 点击"添加新视点",给这个视点命名(如"正门入口"“办公楼顶部”“停车场全景”)
  4. 4. 视点保存成功

视点动画——巡游式导览:

视点动画就是多个视点串联起来自动播放的"漫游路线"。设置方法:

  1. 1. 先创建多个视点(比如园区正门→主干道→办公楼前→停车场→后花园,总共5个视点)
  2. 2. 在视点管理面板中,将这些视点添加到一个动画序列中
  3. 3. 设置每个视点之间的过渡时间和停留时间
  4. 4. 播放预览,调整不顺畅的过渡

视点动画是向客户或领导展示场景时最有价值的演示工具。一个精美的视点动画,配合ThingJS平台的数据叠加,就是一套完整的数字孪生演示方案。

7.2 效果模板——一键换肤

模模搭提供了多套预设效果模板,支持一键切换场景的整体视觉效果。

官方效果模板包括:

  • • 太空旅客Day/太空旅客Night(科幻风格,昼夜两个版本)
  • • 重返地球(写实风格,温暖色调)
  • • 安德(简约现代,偏冷色系)
  • • 密斯(极简风格,干净利落)
  • • 矩阵革命(科技感浓郁,适合数据中心/机房场景)
  • • 戴克(暖色系,适合校园/社区场景)

使用方式: 在效果面板中点击任意模板,场景效果实时切换,所见即所得。不同的行业场景适合不同的效果模板——比如数据中心更适合矩阵革命的科技感,校园更适合戴克的温馨调性。

7.3 自定义效果设置

除了使用官方模板,你还可以自己调试效果。自定义效果包括:

  • • 光照设置:环境光强度、方向光角度、阴影质量
  • • 后期效果:Bloom(泛光)、SSAO(环境遮蔽)、色调映射
  • • 背景设置:天空盒风格、背景颜色
  • • 雾效:能见度、雾的颜色和浓度
  • • 科幻滤镜:为该场景叠加特殊滤镜
  • • 发光与反射:模型表面的高光和反射效果
  • • 特效粒子:漂浮粒子(如雨、雪、星尘)——适合营造特定的氛围

这些设置可以保存为你自己的效果模板,后续搭建其他场景时直接套用。

7.4 场景发布与分享

场景搭建完成后,有几个输出渠道:

方式一:同步到ThingJS在线开发。 联网状态下,场景保存后会自动同步到ThingJS平台。如果需要手动同步,选中场景点击"立即同步"即可。

方式二:手机扫码预览。 在ThingJS在线开发平台中,创建一个项目并加载你的场景,选择"分享"→“手机分享”,自动生成二维码。用微信扫码就能在手机上浏览3D场景——对向客户展示特别方便。

方式三:iframe嵌入。 如果你有自己的网站,可以购买iframe引用服务(29.99元/月),将3D场景以iframe形式嵌入到任意网页中。

方式四:离线EXE下载。 购买离线场景EXE服务(99.99元/场景),模模搭会生成一个独立的可执行程序,拷到任何Windows电脑上都能直接打开浏览你的3D场景——适合展会、投标展示等离线场景。


第八章:ThingJS平台联动——从搭场景到做应用的关键一跃

8.1 理解模模搭与ThingJS的关系

如果把数字孪生项目比喻成盖房子:

  • • 模模搭是"基建队"——负责盖房子本身(搭建3D场景)
  • • ThingJS是"装修队"——负责装修、通电、通水、装智能家居(添加交互逻辑、数据对接、可视效果)

两者是上下游关系:模模搭输出场景,ThingJS在此基础上做应用开发。两者使用同一个账号体系,场景数据无缝流转。

8.2 场景同步到ThingJS

自动同步(推荐): 在联网状态下,模模搭中保存场景后,会自动触发同步到ThingJS平台。你可以在客户端中看到同步进度条。

手动同步: 如果在离线环境下搭建了场景,下次联网时,选中场景列表中的该场景,点击"立即同步"按钮,手动触发上传。

同步失败怎么办?第一种情况:同步进度条卡住不动。等待一段时间,大场景同步确实需要时间。 第二种情况:场景同步过去了,但有些模型在ThingJS中不显示。这可能是因为场景中使用了特殊模型,需要联系官方技术支持解决。

8.3 ThingJS在线开发平台初探

登录ThingJS在线开发平台后,你会看到:

项目列表: 你创建的所有开发项目。每个项目对应一个3D可视化应用。

在线编辑器: ThingJS提供网页版的JavaScript编辑器,类似CodePen或JSFiddle。左侧写代码,右侧实时看到3D场景的运行效果。不需要安装任何开发环境,浏览器就能完成全部开发工作。

代码生成器: 在3D场景中右键点击任意物体,选择"生成代码"——平台会自动生成与该物体交互的基础JavaScript代码。这对于刚接触ThingJS API的开发者来说非常友好。

8.4 从场景到项目的一键创建

在ThingJS平台中,基于模模搭场景创建项目的流程:

  1. 1. 点击"新建项目"
  2. 2. 选择"从场景创建"
  3. 3. 在弹出的列表中选择你在模模搭中搭建并同步过来的场景
  4. 4. 项目创建完成,3D场景自动加载到开发环境

此时你可以在在线编辑器中开始写JavaScript代码,来操控这个3D场景了。

8.5 ThingJS平台的核心能力一览

开发能力:

  • • 基于JavaScript原生语法,前端程序员可以直接上手
  • • 封装了3D底层复杂度,用业务逻辑概念(园区、建筑、楼层、设备)进行开发
  • • 在线提供近百个3D功能实现示例代码

部署能力:

  • • SaaS在线部署:代码保存后立即生效,自动生成分享二维码
  • • 离线部署:支持将应用部署到客户本地服务器
  • • 移动端访问:微信扫码即可浏览3D场景

扩展组件:

  • • ChartBuilder:3D场景中的大屏图表
  • • TopoBuilder:网络拓扑可视化
  • • CityBuilder:城市级场景搭建
  • • ThingJS-X:零代码可视化应用搭建

第九章:ThingJS开发入门——10行代码让场景"动"起来

9.1 从零理解ThingJS的核心对象模型

ThingJS采用树状层次结构来组织3D世界。理解这个层级关系是开发的基石:

App(应用)→ Scene(场景)→ Camera(摄像机)
                ↓
           Object3D(所有3D物体的基类)
                ↓
         (Mesh, Light, Helper等具体类型)

关键类说明:

类名
作用
比喻
THING.App
应用入口,管理整个应用的生命周期
整个项目的"总控室"
THING.Scene
场景容器,承载所有3D对象
一块"画布"
THING.Camera
视图控制器,控制用户看什么
用户的"眼睛"
THING.Object3D
所有3D对象的基类
场景中所有东西的"祖先"

9.2 第一个ThingJS程序——Hello 3D World

在ThingJS在线编辑器中,粘贴以下代码并运行:

// 创建应用
var app = newTHING.App({
background'#1a1a2e',
skyBox'SkyBox1'
});

// 等场景加载完成后执行
app.on('load'function() {
// 创建一个红色立方体
var box = app.create({
type'Box',
name'myBox',
position: [020],
size: [333],
style: {
color'#FF4444',
opacity0.8
        }
    });

// 让立方体匀速旋转
    app.on('update'function() {
        box.rotateY(1); // 每帧绕Y轴旋转1度
    });
});

这几行代码做的事情:创建一个3D应用 → 设置深蓝背景 → 加载完成后在场景中生成一个红色半透明立方体 → 让它在每帧中绕Y轴旋转1度。你会在右侧预览窗口看到一个旋转的红色方块——这就是你的第一个ThingJS程序。

9.3 基础对象操作

创建不同类型的物体:

// 球体 - 适合做传感器节点
app.create({ type'Sphere'position: [510], radius1style: { color'#00FF00' } });

// 圆柱 - 适合做柱子、管道
app.create({ type'Cylinder'position: [-520], height4radius0.5 });

// 平面 - 适合做地面、标识牌
app.create({ type'Plane'position: [000], width10height10 });

移动、缩放、旋转:

var obj = app.query('myBox')[0];

// 瞬间移动
obj.position = [1005];

// 动画移动(2秒平滑过渡)
obj.moveTo([15310], {
time2000,
easing'Quadratic.InOut'// 缓动函数
});

// 缩放
obj.scale = [1.51.51.5];

// 绕Y轴旋转45度
obj.rotation = [0450];

9.4 对象查询——找到场景中的"谁是谁"

// 按名称精确查询
var myBox = app.query('myBox')[0];

// 按类型模糊查询 - 找到所有灯光
var allLights = app.query(/Light/);
console.log('场景中有 ' + allLights.length + ' 个灯光');

// 按条件查询 - 找到所有缩放超过1.5倍的大物体
var bigObjects = app.query({
type'Mesh',
condition'object.scale.x > 1.5'
});

// 按用户数据查询 - 适合物联网设备管理
var alarmDevices = app.query('.device[status="alarm"]');

9.5 事件系统——让场景"有反应"

ThingJS有一套完整的事件系统,最基本的使用方式:

// 点击事件 - 点击任意物体弹出信息
app.on('click'function(ev) {
if (ev.object) {
console.log('你点击了: ' + ev.object.name);
// 高亮被点击的物体
        ev.object.style.outlineColor = '#FFFF00';
    }
});

// 双击事件 - 双击物体飞近查看
app.on('dblclick'function(ev) {
if (ev.object) {
        app.camera.flyTo({
target: ev.object,
time800
        });
    }
});

// 鼠标悬停效果
app.on('mouseenter''.device'function(ev) {
    ev.object.style.color = '#FF6600'// 悬停时变橙色
});

app.on('mouseleave''.device'function(ev) {
    ev.object.style.color = '#FFFFFF'// 离开时恢复白色
});

9.6 加载模模搭场景到ThingJS

这是连接"搭建"和"开发"的关键代码:

var app = newTHING.App();

// 加载你在模模搭中搭建并同步过来的场景
app.load('/scenes/my-campus').then(function(scene) {
console.log('场景加载完成!');

// 场景加载后,开始添加交互逻辑
// 查询场景中的所有建筑
var buildings = app.query('.Building');
console.log('园区中有 ' + buildings.length + ' 栋建筑');

// 为每栋建筑添加点击查看详情的功能
    buildings.forEach(function(building) {
        building.on('click'function() {
            app.camera.flyTo({
target: building,
time1000
            });
        });
    });
});

第十章:数据对接实战——让真实IoT数据驱动3D场景

10.1 数据对接的核心理念

数据对接是数字孪生的灵魂。一个只有外观没有数据的3D场景,本质上就是个"3D截图"。真正的数字孪生必须做到:真实世界的数据变化 → 自动反映到3D场景中

ThingJS支持多种数据对接方式:Ajax/REST API、WebSocket、MQTT等。所有方式的本质都是同一条路径——获取数据 → 找到对应的3D对象 → 更新对象的视觉表现。

10.2 REST API对接——最常用的方式

假设你的后端有一个设备状态API:/api/devices,返回JSON数据:

[
{"id":"sensor-001","name":"1号楼温湿度","type":"temperature","value":25.6,"position":[10,2,5]},
{"id":"sensor-002","name":"停车场烟感","type":"smoke","value":0,"position":[-5,3,8]}
]

对应的ThingJS对接代码:

// 定时拉取设备数据并更新3D场景
functionfetchAndUpdateDevices() {
// 使用fetch API请求数据
fetch('/api/devices')
        .then(response => response.json())
        .then(devices => {
            devices.forEach(device => {
updateDeviceInScene(device);
            });
        });
}

functionupdateDeviceInScene(device) {
// 在场景中查找对应的3D对象
var obj = app.query(device.id)[0];

if (!obj) {
// 如果场景中还没有这个设备,创建一个
        obj = app.create({
type'Sphere',
name: device.id,
position: device.position,
radius0.5
        });
    }

// 根据设备数据更新视觉状态
if (device.type === 'temperature') {
// 温度高于30度变红,否则变绿
        obj.style.color = device.value > 30 ? '#FF0000' : '#00FF00';
// 更新设备上存储的自定义数据
        obj.userData = device;
    } elseif (device.type === 'smoke') {
// 烟感报警时闪烁
        obj.style.color = device.value > 0 ? '#FF0000' : '#888888';
if (device.value > 0) {
            obj.style.blink = true;
        }
    }
}

// 每5秒拉取一次数据
setInterval(fetchAndUpdateDevices, 5000);

// 初始加载
fetchAndUpdateDevices();

10.3 WebSocket实时数据推送

对于需要实时响应的场景(如安防告警),WebSocket比定时轮询更高效:

// 建立WebSocket连接
var ws = newWebSocket('ws://your-server/device-status');

ws.onmessage = function(event) {
var deviceUpdate = JSON.parse(event.data);
// 实时更新场景中的设备状态
updateDeviceInScene(deviceUpdate);
};

ws.onclose = function() {
console.log('WebSocket断开,5秒后重连...');
setTimeout(() => { /* 重新建立连接 */ }, 5000);
};

10.4 设备状态的可视化映射表

设备类型
数据字段
正常状态
告警状态
离线状态
温湿度传感器
temperature/humidity
绿色球体
红色球体+闪烁
灰色球体
烟感探测器
smoke_level
绿色(0)
红色闪烁(>0)
灰色
智能电表
power_usage
蓝色标签
橙色标签(超阈值)
灰色
门禁系统
door_status
蓝色(关闭)
黄色(异常开启)
灰色
摄像头
online_status
绿色光晕
灰色+叉号

这种标准化映射可以让多个项目复用同一套可视化逻辑。


第十一章:摄像机控制与图表可视化——提升项目专业度的秘密武器

11.1 摄像机飞行——场景导览的标配

摄像机飞行(Camera Fly)是数字孪生演示中最常用的交互效果——点击某个设备,视角平滑飞近;点击"园区全景",视角拉升到鸟瞰角度。

// 飞行到指定对象
app.camera.flyTo({
target: app.query('Building-A')[0], // 飞向A栋
time1500,                          // 飞行时间1.5秒
completefunction() {
console.log('已到达A栋');
    }
});

// 飞行到指定坐标
app.camera.flyTo({
position: [10050100],  // 目标位置
target: [000],         // 看向原点
time2000
});

// 设置摄像机距离(拉近/拉远)
app.camera.distance = 30// 距离目标30米

11.2 热力图——数据密度可视化

在园区管理中,热力图可以直观展示人流量密度、设备告警分布、能耗热点等:

functioncreateHeatmap(points, options) {
var geometry = newTHING.HeatmapGeometry({
points: points.map(p => ({
position: p.position,
intensity: p.value / (options.max || 100)
        })),
radius: options.radius || 10
    });

var material = newTHING.HeatmapMaterial({
gradient: {
0.0'#0000FF',  // 低值蓝色
0.5'#00FF00',  // 中值绿色
1.0'#FF0000'// 高值红色
        }
    });

returnnewTHING.Mesh(geometry, material);
}

// 使用示例:展示园区各区域的人流密度
var footTrafficData = [
    { position: [200.115], value80 },  // 主入口人流密集
    { position: [-100.120], value45 },
    { position: [00.1, -15], value15 },  // 后门人流少
];

var heatmap = createHeatmap(footTrafficData, { radius15max100 });
app.scene.add(heatmap);

11.3 流动路径动画——管线、物流的可视化

// 创建一条流动的管线路径
functioncreateFlowPath(points, options) {
var geometry = newTHING.BufferGeometry().setFromPoints(points);
var material = newTHING.LineDashedMaterial({
color: options.color || '#00FFFF',
linewidth: options.width || 0.5,
dashSize1,
gapSize0.5
    });
var line = newTHING.Line(geometry, material);

// 流动动画
var offset = 0;
    app.on('update'function() {
        offset += 0.02;
        material.dashOffset = -offset;
    });

return line;
}

// 使用:展示从供水站到各栋楼的管道流向
var pipePath = [
    [020],
    [1020],
    [10215],
    [25215]
];
createFlowPath(pipePath, { color'#4488FF'width1 });

11.4 嵌入ECharts图表

ThingJS支持在3D场景中嵌入2D图表面板:

// 创建UI面板
var panel = newTHING.widget.Panel({
title'园区能耗统计',
width'400px',
height'300px',
corner'right-top'// 面板位置:右上角
});

// 创建图表容器
var chartDom = document.createElement('div');
chartDom.style.width = '100%';
chartDom.style.height = '260px';
panel.addDOM(chartDom);

// 初始化ECharts
var myChart = echarts.init(chartDom);
myChart.setOption({
title: { text'各栋楼今日用电量' },
xAxis: { data: ['A栋''B栋''C栋''D栋'] },
yAxis: {},
series: [{
type'bar',
data: [320280450190],
color'#4A90D9'
    }]
});

第十二章:6大行业应用场景——从校园到工厂的全覆盖

12.1 智慧校园

核心需求: 校园全景可视化、安防监控一张图、能耗管理、教室使用率统计、应急指挥调度。

模模搭+ThingJS方案:

  • • 搭建包含教学楼、宿舍、食堂、操场、绿化在内的完整校园3D场景
  • • 对接校园安防摄像头数据,点击摄像头图标调出实时画面
  • • 在每栋楼上叠加能耗数据(用电量、用水量),超标楼栋高亮显示
  • • 教室门禁数据对接,未使用教室灰色显示,正在上课的教室亮灯
  • • 应急模式下,自动生成疏散路线动画

12.2 智慧产业园区

核心需求: 园区全景导航、企业入驻可视化、物业管理、智能停车、环境监测。

模模搭+ThingJS方案:

  • • 搭建包含多栋办公楼、停车场、公共设施的园区场景
  • • 展示每家入驻企业的位置和简介(点击弹窗)
  • • 停车场对接车位传感器,实时显示剩余车位数量和位置
  • • 环境监测(温度、湿度、PM2.5、噪音)数据叠加到场景中
  • • 物业工单可视化——待处理的维修工单以标记点形式显示在对应位置

12.3 数据中心/机房

核心需求: 资产可视化、环境监控、容量管理、告警联动。

模模搭+ThingJS方案:

  • • 从建筑外观→楼层→机房→机柜→设备端口,实现逐级下钻浏览
  • • 每个机柜显示实时温度、功耗、空间利用率
  • • 温度异常时,机柜自动变红闪烁
  • • 点击机柜查看内部设备详细信息和运行状态
  • • U位管理——精确定义每个设备在机柜中的位置

12.4 智慧工厂

核心需求: 生产流程可视化、设备状态监控、物料追踪、安全预警。

模模搭+ThingJS方案:

  • • 搭建工厂车间、流水线、仓储区完整场景
  • • 生产设备对接PLC数据,运行中绿色,停机红色,待机黄色
  • • 物料在流水线上的实时位置用流动光点表示
  • • AGV小车(自动引导车)的实时位置和行驶路径展示
  • • 危险区域以红色半透明区域标注,人员进入自动告警

12.5 智慧医院

核心需求: 医院全景导航、医疗设备管理、病区可视化、应急响应。

模模搭+ThingJS方案:

  • • 搭建包含门诊楼、住院楼、急诊楼的医院场景
  • • 大型医疗设备(CT、MRI等)的位置和使用状态一目了然
  • • 病房占用情况可视化——绿色空闲、黄色部分占用、红色满床
  • • 院内导航路线规划——从大厅到目标科室的最短路径
  • • 医疗废物处理全流程追踪可视化

12.6 电力电站

核心需求: 变电站/发电厂全景可视化、设备状态监测、巡检路线管理、安全区域管控。

模模搭+ThingJS方案:

  • • 搭建变电站或发电厂完整场景,含变压器、开关设备、输电线路等
  • • 二次设备状态实时映射——保护装置、测控装置、故障录波
  • • 一次设备温度热力图——高温区域自动告警
  • • 巡检机器人位置和巡检路线的3D可视化
  • • 安全距离管控——人员靠近高压区域自动告警

第十三章:工具定价终极对比——模模搭免费功能到底能省多少钱

13.1 模模搭本身的收费项

核心原则先说清楚:模模搭的场景搭建功能完全免费。你可以免费下载客户端、免费使用3万+模型、免费创建和编辑场景、免费上传模型和贴图。

收费的部分只有以下几个增值功能:

功能
价格
说明
场景搭建
免费
创建、编辑、保存场景完全免费
模型库使用
免费
3万+官方模型免费使用
模型上传
免费
上传OBJ模型和贴图免费
场景集市浏览
免费
浏览其他用户的公开场景免费
私有场景
19.9元/场景
将场景设为私有不公开,永久有效
iframe引用
29.99元/月
将3D场景嵌入自己的网站
离线场景EXE
99.99元/场景
生成独立可执行程序
局域网部署
按需计费
本地服务器部署
CAD导入
收费(咨询客服)
直接导入CAD图纸
场景集市购买
几十至几百元
购买其他用户的成品场景

13.2 ThingJS平台的收费项

如果你需要基于模模搭场景做应用开发,ThingJS平台的收费如下:

在线开发VIP:

权益项
免费用户
在线VIP(8,800元/年)
在线开发
7天试用
完整权限
项目数
1个
100个
场景数
10个
50,000个
存储空间
100MB
2GB
森工厂工具
基础版
高级版(5款森工具)
数据对接
离线部署
需额外购买

离线部署授权:

类型
价格
说明
离线部署(不限场景,限孪生体)
咨询客服
1000个孪生体起售
离线部署(不限孪生体,限场景)
咨询客服
1个场景包/项目
去水印
咨询客服
离线部署去除ThingJS水印

13.3 三种典型预算方案

方案A:零成本方案(0元/年)

适用场景:个人学习、内部演示、概念验证

  • • 模模搭免费搭建场景
  • • ThingJS免费用户7天试用期内体验开发功能
  • • 手机扫码预览已够用
  • • 场景保持公开状态

方案B:个人/小团队起步方案(约500元/年)

适用场景:个人承接小项目、小团队内部使用

  • • 模模搭免费搭建
  • • 购买1个私有场景(19.9元)——保护项目隐私
  • • 购买iframe引用(29.99元/月×12=360元)——嵌入公司网站
  • • 视需要购买离线EXE(99.99元)——展会演示

方案C:企业正式项目方案(8,800元/年起)

适用场景:正式商业项目交付

  • • ThingJS在线开发VIP:8,800元/年
  • • 模模搭搭建场景(免费)
  • • 如有离线部署需求,额外咨询客服购买离线部署授权
  • • 如有建模需求,申请官方建模服务

13.4 与传统3D开发成本对比

成本项
传统方式(UE4/Unity)
模模搭+ThingJS
3D场景搭建
外包建模师:3,000-10,000元/场景
自己搭建:免费
开发人力
UE4/Unity工程师:25-40万年薪
前端程序员:15-25万年薪
开发周期
2-4个月/项目
2-4周/项目
部署成本
需要打包测试多平台
浏览器即运行
移动端适配
需另行开发
微信扫码即用
维护成本
App更新需重新发布
在线更新即时生效

对于中小型数字孪生项目来说,模模搭+ThingJS方案的总成本大约是传统方案的1/5到1/3——而且不需要组建专业3D开发团队。


第十四章:10条新人必看避坑指南——少花冤枉钱、少走弯路

避坑1:务必用独立显卡运行模模搭

很多新手用办公笔记本(集成显卡)打开模模搭,发现卡得要命、模型渲染异常。这不是软件问题,是显卡不行。模模搭必须使用独立显卡——这是官方明确标注的硬件要求。最低GTX 650,推荐GTX 960及以上。

避坑2:Mac用户请准备Windows环境

模模搭目前只支持Windows 64位系统。Mac用户不要抱有幻想——虚拟机方案官方不推荐,可能会出现"无法旋转3D场景"等诡异问题。最稳妥的方案是准备一台Windows电脑,或者用Boot Camp安装Windows双系统。

避坑3:室内室外的模型不互通

这是新手遇到最多的"灵异事件"——明明摆好的模型怎么没了?大概率是你把室外模型摆进了室内场景(或者相反)。模模搭的室内和室外是两个独立的渲染空间,互相看不到对方的模型。解决方案:确认你需要的模型是在室内还是室外摆放,进入对应的编辑模式再操作。

避坑4:账号混用导致场景/模型丢失

模模搭客户端、ThingJS在线平台、场景集市购买页面——这三个地方使用的是同一个账号体系。如果你用微信登录客户端、用QQ登录购买页面,购买的场景就不会出现在客户端列表中。 解决:全程使用同一种登录方式。

避坑5:不要试图搭建单个3D模型

模模搭是场景组装工具,不是建模软件。如果你想用它做一个精致的人物模型或汽车模型——做不到。制作单个模型请使用3ds Max、Blender等专业建模软件,然后上传到模模搭中使用。

避坑6:场景同步需要等待

搭建完场景保存后,同步到ThingJS是需要时间的——大场景可能需要几分钟甚至更长。不要在保存后立刻打开ThingJS发现场景不完整就以为出bug了。可以先在客户端中点击"立即同步"查看进度条,确认同步完成后再去ThingJS操作。

避坑7:万能物体修改透明度有讲究

万能物体在编辑状态下不支持直接调整透明度。如果你需要半透明效果(如玻璃幕墙),需要在ThingJS应用开发环节通过代码来实现。

避坑8:批量搭建关注性能

虽然模模搭对模型数量没有硬性限制,但过多的模型会拖慢性能。一个中等配置的电脑,单个场景建议控制在2000个模型以内。超出后可以通过以下方式优化:

  • • 将相同的多个小模型合并(如成片的护栏)
  • • 适当减少远处模型的精度
  • • 分层加载——先加载近景,远景按需加载

避坑9:2D模式是效率神器

很多新手一直在3D视角下苦哈哈地调整位置。其实搭建地面、围墙、道路这些平面结构时,按空格键切换到2D俯视图效率能提升三倍以上。就像玩《模拟城市》一样,先铺好平面规划,再切回3D调细节。

避坑10:先搭后买,别反着来

场景集市里的付费场景看着都很诱人,但建议你先自己动手搭一个小场景,感受一下模模搭的操作逻辑和模型库内容,再决定是否需要购买成品场景。很多情况下,你用模型库里的免费模型就能搭出满足需求的效果——购买场景的钱就省下来了。


第十五章:变现路径与职业前景——从小白到数字孪生工程师

15.1 6条已验证的变现路径

路径一:数字孪生项目外包(5,000-50,000元/项目)

这是最直接的变现方式。很多中小型企业想做数字孪生展示但养不起专业团队。你用模模搭+ThingJS帮他们做——从场景搭建到应用开发到部署上线一条龙。单个项目报价根据复杂度不同:

  • • 纯场景搭建(无数据对接):5,000-10,000元
  • • 场景+基础数据对接:10,000-30,000元
  • • 全套数字孪生解决方案:30,000-50,000元

路径二:3D场景模板销售(被动收入)

在模模搭场景集市中发布你搭建的高质量场景模板,供其他用户购买。一个好的园区场景可以定价50-300元——如果被购买100次,就是5,000-30,000元的被动收入。这是一次劳动、持续变现的模式。

路径三:企业可视化大屏定制(20,000-100,000元/项目)

结合ThingJS的图表和大屏能力,为企业定制数字孪生可视化大屏。这类项目客单价高,适合有一定经验的开发者。

路径四:数字孪生培训课程(线上/线下)

随着数字孪生概念的火热,越来越多的企业需要内部培训。如果你练就了模模搭+ThingJS的实操能力,可以开设线上或线下培训课程。一套两天的入门培训收费2,000-5,000元/人是合理区间。

路径五:软件集成与咨询

将ThingJS的3D能力整合到客户的现有业务系统中(如物业管理系统、能源管理系统)。这需要一定的技术整合能力,但客单价和复购率都非常可观。

路径六:数字孪生方案规划设计

如果你的强项不是写代码而是理解业务,可以专注于数字孪生解决方案的规划和设计——帮助客户梳理需求、设计展示方案、规划数据对接策略。实施方案可以外包给开发团队。

15.2 "数字孪生工程师"正在成为稀缺岗位

随着"数字中国"、"智慧城市"等国家战略的推进,数字孪生可视化已成为政企项目的标配。从招聘市场来看,“数字孪生工程师”、"3D可视化开发工程师"的岗位需求正在快速增长。

这个岗位的核心技能栈:

  • • 3D场景搭建能力(模模搭/CampusBuilder)
  • • JavaScript/Web前端开发能力(ThingJS在线开发)
  • • 数据对接与API集成能力
  • • 数字孪生方案设计能力

好消息是,这个技能栈对"科班出身"的要求并不高——模模搭零基础可学,ThingJS基于JavaScript(前端最常见的语言),数据对接是通用IT技能。只要投入学习,3-6个月就可以独立承接小型项目。

15.3 5大未来趋势

趋势一:从可视化到可计算。 数字孪生不再只是"看着好看",而是要求场景中的每个物体都能承载数据、参与计算。模型不只是视觉元素,而是"会说话的数据容器"。

趋势二:城市级场景的平民化。 随着CityBuilder等工具的成熟,过去只有大型企业才负担得起的城市级数字孪生,正在向区县级政府和中小企业渗透——这意味着更大的市场规模和更多的项目机会。

趋势三:AI+数字孪生融合。 AI正在加速3D场景的自动化生成——从航拍图自动提取建筑轮廓、从图纸自动生成3D模型。模模搭作为场景搭建层的核心工具,未来的自动化程度会越来越高。

趋势四:移动端体验升级。 随着5G普及和移动端硬件性能提升,手机端浏览3D场景的体验越来越好。微信扫码看孪生的方式将成为项目交付的标配。

趋势五:低代码到零代码。 ThingJS-X等零代码工具的出现,意味着未来更多非技术人员也能搭建完整的数字孪生应用。对于从业者来说,核心竞争力将从"会写代码"转向"理解行业需求+设计方案"。


附录:参考来源与版权声明

参考来源

本教程在撰写过程中参考了以下平台的公开教程、文档和社区讨论(按拼音排序):

官方文档与平台:

  • • 优锘科技官方网站(UINO),ThingJS平台产品介绍与文档中心
  • • 模模搭官方网站(3dmomoda.com),价格页面与教程页面
  • • ThingJS文档中心(docs.thingjs.com),CampusBuilder用户手册、ThingJS开发教程

技术社区与问答平台:

  • • 知乎专栏:ThingJS园区搭建工具模模搭介绍、模模搭新手必看手册系列
  • • 腾讯云开发者社区:ThingJS的模模搭软件之新手必看手册
  • • 博客园:ThingJS园区搭建工具模模搭新手必看教程
  • • CSDN:ThingJS开发从入门到精通系列文章
  • • 搜狐:模模搭古城搭建学习笔记系列

行业信息:

  • • 51CTO:ThingJS开发从入门到精通文章
  • • 阿里云开发者社区:ThingJS技术文章

版权声明: 本教程为原创整理,部分代码示例参考自各平台公开教程,已注明出处。如有侵权,请联系删除。


🔔 深耕 AI 干货 | 点名片订阅,上新早知道


💡 仍有疑问?一键呼叫在线答疑

✅ 全时段AI查询
✅ 专属个性化方案建议
⬇️ 长按识别二维码直达咨询

私信AI回复 | 24小时在线答疑


长按识别二维码,进入公众号发消息咨询

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