CN113419707A - 一种基于自动化爬虫实现的su插件拆分系统和方法 - Google Patents
一种基于自动化爬虫实现的su插件拆分系统和方法 Download PDFInfo
- Publication number
- CN113419707A CN113419707A CN202110584673.6A CN202110584673A CN113419707A CN 113419707 A CN113419707 A CN 113419707A CN 202110584673 A CN202110584673 A CN 202110584673A CN 113419707 A CN113419707 A CN 113419707A
- Authority
- CN
- China
- Prior art keywords
- plug
- module
- interface
- crawler
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000006870 function Effects 0.000 claims abstract description 18
- 230000002776 aggregation Effects 0.000 claims abstract description 8
- 238000004220 aggregation Methods 0.000 claims abstract description 8
- 230000006798 recombination Effects 0.000 claims abstract description 5
- 238000005215 recombination Methods 0.000 claims abstract description 5
- 239000010979 ruby Substances 0.000 claims description 10
- 229910001750 ruby Inorganic materials 0.000 claims description 10
- 238000013515 script Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 2
- 239000012141 concentrate Substances 0.000 abstract 2
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于自动化爬虫实现的SU插件拆分系统和方法,包括:爬虫程序模块,轮询SU已安装的插件,探测并获取到各插件的ID、名称、图标和功能的元数据信息,存储到工具编辑模块的数据库表;客户端插件界面,包含工具编辑模块的的前台界面,通过已存储到后台的数据库表向用户呈现待选插件的各项元数据信息,包括分类、聚合、编排和发布模块,客户端插件界面还包含经选择聚合后的自定义工具栏界面,用户行为记录模块,对用户进行插件拆分和重组的分类信息进行记录与存储。本发明将多个插件集中,将使用者常用的功能集中在一个界面中,方便查找和使用。
Description
技术领域
本发明涉及一种基于自动化爬虫实现的SU插件拆分系统,本发明还涉及一种基于自动化爬虫实现的SU插件拆分方法,属于软件领域。
背景技术
设计师在网络上下载的各作者制作的SketchUp插件集中,通常仅个别插件程序为使用者的个人常用功能。但是由于多个插件互相之间都是独立的,在作用的时候只能同时在软件中打开,这样一方面会占用有限的软件窗口空间,缩减建模区域显示比例;另外,多个插件同时打开,需要在众多插件集中频繁的查找需要的功能,浪费时间。
发明内容
本发明的目的在于提供一种基于自动化爬虫实现的SU插件拆分系统和方法,从而将多个插件集中,将使用者常用的功能集中在一个界面中,方便查找和使用。
本发明采用了如下技术方案:
本发明提供一种基于自动化爬虫实现的SU插件拆分系统,其特征在于,包括:爬虫程序模块,轮询SU已安装的插件,探测并获取到各插件的ID、名称、图标和功能的元数据信息,存储到工具编辑模块的数据库表;客户端插件界面,包含工具编辑模块的的前台界面,通过已存储到后台的数据库表向用户呈现待选插件的各项元数据信息,包括分类、聚合、编排和发布模块,客户端插件界面还包含经选择聚合后的自定义工具栏界面,用户行为记录模块,对用户进行插件拆分和重组的分类信息进行记录与存储。
进一步,本发明的基于自动化爬虫实现的SU插件拆分系统,还具有这样的特征:所述爬虫程序模块随SketchUp主软件启动。
进一步,本发明的基于自动化爬虫实现的SU插件拆分系统,还具有这样的特征:客户端插件界面自动引用用户行为记录模块中存储的上次发布的分类信息进行插件的管理。
进一步,本发明的基于自动化爬虫实现的SU插件拆分系统,还具有这样的特征:工具栏编辑模块具有自定义工具栏区和命令图标候选区,其中命令图标候选区呈现各插件的ID、名称、图标、功能等各项主要的元数据信息,自定义工具栏区容纳从命令图标候选区选中的那些图标及这些图标对应的功能。
进一步,本发明的基于自动化爬虫实现的SU插件拆分系统,还具有这样的特征:搜索模块,通过关键词筛选命令图标候选区中的命令项。
进一步,本发明的基于自动化爬虫实现的SU插件拆分系统,还具有这样的特征:命令图标候选区中还包括分隔符。
本发明还一种基于自动化爬虫实现的SU插件拆分方法,其特征在于,包括:
步骤一,SU软件与基于Ruby的ObjectSpace接口开发的爬虫程序模块同时启动;
步骤二,SU软件运行各插件脚本,所述爬虫程序模块轮询各插件,探测并获取到各插件的ID、名称、图标、和功能的元数据信息,存储到工具编辑模块的数据库表中;
步骤三,工具编辑模块的前台界面呈现命令图标候选区,命令图标候选区中具有供选择的插件的ID、名称、图标和功能的信息;
步骤四,工具编辑模块记录存储选择后的插件拆分和重组的分类信息;
步骤五,客户端插件界面在SU界面中呈现经拆分和重组后的自定义工具栏界面。
进一步,本发明的基于自动化爬虫实现的SU插件拆分方法,还具有这样的特征:步骤三中,工具编辑模块的前台界面还呈现自定义工具栏区,承接命令图标候选区中被选中的图标,自定义工具栏区中的图标位置或者图标的先后顺序由工具编辑模块记录。
本发明基于自动化爬虫实现的SU插件拆分系统和方法,可以对所有已安装插件集中的单个插件程序进行随意组合拼装,重新组成自定义的个性化插件集,从而节省界面显示资源,保留最大化建模界面;使用者可通过提取常用插件程序制作个人插件集,方便个人插件管理和寻找,提高工作效率。
附图说明
图1是技术架构图。
图2是爬虫算法原理图。
图3是用户行为记录算法原理图。
图4是工具编辑模块的前台界面图。
图5是工具编辑模块的前台界面的自定义工具栏中图标在两个工具栏中自由移动的示意图。
图6是在工具栏中添加分隔符的示意图。
具体实施方式
以下结合具体实施方式来进一步说明本发明的技术方案。
1、技术原理
通过Ruby的ObjectSpace接口,通过编写的爬虫程序模块获取所有插件的内部UI::Command实例。UI::Command实例虽然没有持久标识符,但是可以通过Sketchup软件和插件启动过程中通过爬虫程序模块创建索引并获取每个命令的元数据。SU插件拆分的活动过程随 SketchUp主软件和本机安装的插件启动而开始,通过内置的爬虫程序在本机启动显示其他插件界面之前轮询、拦截并得到对应的插件工具项拆分信息,自定义工具栏在加载所有其他插件后创建并完整显示工具项拆分信息,并直接进行工具集的分类、重组等自定义工作。
如图1所示,本系统的技术架构分为前台与后台功能两大组件功能,后台是基于Ruby的ObjectSpace接口开发的爬虫程序模块,该程序随 SketchUp主软件和本机安装的插件启动,通过爬虫程序模块轮询各插件的UI::Command启动实例,探测并获取到各插件的ID、名称、图标、功能等各项主要的元数据信息,存储到工具编辑器的数据库表。
前台是基于Ruby开发的客户端插件界面,通过已存储到后台的数据库表向用户呈现插件的各项元数据信息,提供分类、聚合、编排、发布等前端功能,系统会对用户进行插件拆分和重组的分类信息进行记录与存储。
由于SU插件均为通过ruby语言开发的自动化脚本,不具备过程管理等功能,所以随SU软件启动而进行,系统会自动引用上次发布的分类信息进行插件的管理。
基于Ruby的ObjectSpace接口开发的插件索引爬虫程序模块,单个插件在Ruby堆空间中维护一个对象池,这个对象池也被称作 ObjectSpace,ObjectSpace对象池是由很多堆页page构成的,每一个页的大小为16Kb。每页中包含408个槽slot,一个槽对应一个对象,插件使用的每一个对象都在对象池中占有一个槽。本实施方式通过爬虫程序模块在槽启动时进行标记和清除算法,以获取到插件的相关元数据信息。当槽启动时,爬虫程序模块会到ObjectSpace中拾取对象,当爬虫程序模块发现对象池已经满了,会自动启动GC触发机制garbage collection,爬虫程序完成拆分信息获取后会自动进行内存释放,使对 SketchUp主软件和本机安装的插件的启动效率影响降到最低。之后开始进行标记算法,从根对象开始,递归遍历所有根对象及其引用的对象,将有用的对象标记一下,标记方式是通过修改RVALUE中的一个bit实现。这个过程完成之后,实时启动清除算法,将所有没有被标记为有用的对象全部回收,完成对于所有插件的元数据获取的全部流程。
2)基于Ruby的命令模式即command模式开发的用户行为记录模块。命令模式是对象行为型使用率比较高的设计模式,别名:动作Action、事务Transaction,用于用户对于插件的重新编辑、分类、发布的相关数据存储。
命令模式将一个请求封装为一个对象,从而可对不同的请求进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。如图2所示。
图2中各动作释义:
Command/声明一个接口以用来实现某个操作。
ConcreteCommand/将动作与Reciver对外绑定,通过调用Reciver 对象的相应方法来实现Command的方法。
Client/创建ConcreteCommand对象,并设置其Reciver对象。
Invoker/要求该Command实现请求。
Reciver/知道如何实现具体的请求的类。
技术流程:
客户端创建一个具体的Command对象并指定其接收者。
调用者对象存储此具体的Command对象。
调用者对象通过执行Command对象的Execute方法来实现当前请求。
如果命令是可以撤销时,具体对象在调用执行方法前存储相应的状态以用来命令此请求。
具体的Command对象调用其接收者的方法实现相应请求。
前台界面组合成个性化工具栏的操作方法:
1)添加图标:
如图3所示,从工具栏编辑器右侧的命令图标候选区中,按住鼠标左键拖曳命令图标,将图标放入左侧对应工具栏中。命令图标候选区右上角具有搜索框14,搜索框14提供筛选出所需的命令图标的功能。
2)编辑图标:
如图4所示,若左侧的自定义工具栏中不需要某个图标,则图标被拖曳回右侧的命令图标候选区即可从自定义工具栏中移除。
当自定义工具栏中存在多个工具栏时,图标在多个工具栏之间可被自由移动。
3)添加分隔符:
如图5所示,分隔符15位于命令图标候选区的第一位,可被拖曳到左侧自定义工具栏中,分隔符起到在单独工具栏中分组图标的作用。
4)添加和删除工具栏:
如图5所示,左侧的自定义工具栏顶部的"+"加号按钮16被点击后,自定义工具栏新增一个可接收图标的工具栏,并自动命名为工具栏n,n 依据打开的顺序编号。
如图6所示,工具栏右侧"X"按钮17或者减号“-”按钮被点击时,对应的工具栏被删除,图6中呈现的是"X"按钮。笔形按钮18被点击后,工具栏名称进入可修改状态。
6)应用我自定义好的工具栏:
如图6所示,"应用"按钮19被点击后确认自定义工具栏的当前设置,重启SketchUp,配置好的工具栏自动呈现在SU界面。配置好的工具栏呈现时间小于5s。
本发明的SU插件拆分系统通过Ruby的ObjectSpace接口进行开发,经过实测,可以实现95%以上的SU插件的UI::Command实例的获取,后台计算和前台展现的测试时间小于5秒,大幅提高了设计人员的制作效率和个性化设计能力。此处的SU插件是指使用标准Sketchup API开发的插件。
本发明能够将插件按照功能进行自定义分类,所有的插件可以通过文字快速搜索并按功能进行聚合分类以及进行个性化修改,本发明可适配到不用的设计场景,如建筑设计、家装、景观设计等不同的设计行业。
Claims (8)
1.一种基于自动化爬虫实现的SU插件拆分系统,其特征在于,包括:
爬虫程序模块,轮询SU已安装的插件,探测并获取到各插件的ID、名称、图标和功能的元数据信息,存储到工具编辑模块的数据库表;
客户端插件界面,包含工具编辑模块的的前台界面,通过已存储到后台的数据库表向用户呈现待选插件的各项元数据信息,包括分类、聚合、编排和发布模块,
客户端插件界面还包含经选择聚合后的自定义工具栏界面,
用户行为记录模块,对用户进行插件拆分和重组的分类信息进行记录与存储。
2.如权利要求1所述的基于自动化爬虫实现的SU插件拆分系统,其特征在于:
所述爬虫程序模块随SketchUp主软件启动。
3.如权利要求1所述的基于自动化爬虫实现的SU插件拆分系统,其特征在于:
客户端插件界面自动引用用户行为记录模块中存储的上次发布的分类信息进行插件的管理。
4.如权利要求1所述的基于自动化爬虫实现的SU插件拆分系统,其特征在于:
工具栏编辑模块具有自定义工具栏区和命令图标候选区,其中命令图标候选区呈现各插件的ID、名称、图标、功能等各项主要的元数据信息,自定义工具栏区容纳从命令图标候选区选中的那些图标及这些图标对应的功能。
5.如权利要求1所述的基于自动化爬虫实现的SU插件拆分系统,其特征在于:
搜索模块,通过关键词筛选命令图标候选区中的命令项。
6.如权利要求1所述的基于自动化爬虫实现的SU插件拆分系统,其特征在于:
命令图标候选区中还包括分隔符。
7.一种基于自动化爬虫实现的SU插件拆分方法,其特征在于,包括:
步骤一,SU软件与基于Ruby的ObjectSpace接口开发的爬虫程序模块同时启动;
步骤二,SU软件运行各插件脚本,所述爬虫程序模块轮询各插件,探测并获取到各插件的ID、名称、图标、和功能的元数据信息,存储到工具编辑模块的数据库表中;
步骤三,工具编辑模块的前台界面呈现命令图标候选区,命令图标候选区中具有供选择的插件的ID、名称、图标和功能的信息;
步骤四,工具编辑模块记录存储选择后的插件拆分和重组的分类信息;
步骤五,客户端插件界面在SU界面中呈现经拆分和重组后的自定义工具栏界面。
8.如权利要求7所述的基于自动化爬虫实现的SU插件拆分方法,其特征在于:
步骤三中,工具编辑模块的前台界面还呈现自定义工具栏区,承接命令图标候选区中被选中的图标,自定义工具栏区中的图标位置或者图标的先后顺序由工具编辑模块记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110584673.6A CN113419707A (zh) | 2021-05-27 | 2021-05-27 | 一种基于自动化爬虫实现的su插件拆分系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110584673.6A CN113419707A (zh) | 2021-05-27 | 2021-05-27 | 一种基于自动化爬虫实现的su插件拆分系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113419707A true CN113419707A (zh) | 2021-09-21 |
Family
ID=77713157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110584673.6A Pending CN113419707A (zh) | 2021-05-27 | 2021-05-27 | 一种基于自动化爬虫实现的su插件拆分系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419707A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422637A (zh) * | 2021-12-20 | 2022-04-29 | 阿里巴巴(中国)有限公司 | 媒体请求处理方法和跨平台引擎系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050131924A1 (en) * | 2003-12-15 | 2005-06-16 | Quantum Matrix Holding, Llc | System and method for multi-dimensional organization, management, and manipulation of data |
CN109947549A (zh) * | 2019-03-15 | 2019-06-28 | 佛山市小云科技有限公司 | 一种自动将3D Max模型转换为UE4直接可用的模型资源的方法 |
US20200134560A1 (en) * | 2018-10-29 | 2020-04-30 | DIGIBILT, Inc. | Method and system for automatically creating a bill of materials |
-
2021
- 2021-05-27 CN CN202110584673.6A patent/CN113419707A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050131924A1 (en) * | 2003-12-15 | 2005-06-16 | Quantum Matrix Holding, Llc | System and method for multi-dimensional organization, management, and manipulation of data |
US20200134560A1 (en) * | 2018-10-29 | 2020-04-30 | DIGIBILT, Inc. | Method and system for automatically creating a bill of materials |
CN109947549A (zh) * | 2019-03-15 | 2019-06-28 | 佛山市小云科技有限公司 | 一种自动将3D Max模型转换为UE4直接可用的模型资源的方法 |
Non-Patent Citations (4)
Title |
---|
AERILIUS: "[Plugin] LaunchUp-A Quick Launcher for SketchUp", pages 1 - 3, Retrieved from the Internet <URL:https://sketchucation.com/forums/viewtopic.php?f=323&t=51494> * |
DANRATHBUN等: "How to access existing toolbars and call existing commands?", pages 1 - 4, Retrieved from the Internet <URL:https://forums.sketchup.com/t/how-to-access-existing-toolbars-and-call-existing-commands/119388> * |
UZING: "SketchUp中如何通过自定义工具栏提升效率?", pages 1 - 2, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/71079721#> * |
双鱼: "打造自己的工具栏,ToolbarEditor发布", pages 1 - 2, Retrieved from the Internet <URL:https://www.sketchupbar.com/thread-73486-1-1.html> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422637A (zh) * | 2021-12-20 | 2022-04-29 | 阿里巴巴(中国)有限公司 | 媒体请求处理方法和跨平台引擎系统 |
CN114422637B (zh) * | 2021-12-20 | 2023-12-29 | 阿里巴巴(中国)有限公司 | 媒体请求处理方法和跨平台引擎系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3265883B1 (en) | Software robots for programmatically controlling computer programs to perform tasks | |
US9208137B2 (en) | Method to preview an undo/redo list | |
CN107423053B (zh) | 一种遥感图像处理的web化模型封装与分布式处理方法 | |
US7987160B2 (en) | Status tool to expose metadata read and write queues | |
US7694278B2 (en) | Data cube script development and debugging systems and methodologies | |
CN107544806A (zh) | 可视化表单绘制方法 | |
WO2018036342A1 (zh) | 基于csar的模型文件的可视化设计方法及装置 | |
CN103164300A (zh) | 一种移动终端触摸屏自动测试方法及装置 | |
CN105138312B (zh) | 一种表格生成方法及装置 | |
CN111209000B (zh) | 自定义控件的处理方法、装置、电子设备及存储介质 | |
CN113688288B (zh) | 数据关联分析方法、装置、计算机设备和存储介质 | |
CN110507986B (zh) | 动画信息的处理方法和装置 | |
CN106201224A (zh) | 一种数据批量处理的方法及装置 | |
CN113268236A (zh) | 一种rpa系统中基于功能增强技术的ui元素拾取方法和系统 | |
CN113419707A (zh) | 一种基于自动化爬虫实现的su插件拆分系统和方法 | |
CN109032940B (zh) | 一种测试场景录入方法、装置、设备及存储介质 | |
CN106815010B (zh) | 一种操作数据库的方法及装置 | |
CN107330031A (zh) | 一种数据存储的方法、装置及电子设备 | |
CN116400914A (zh) | 一种基于数据模型快速构建web应用的方法 | |
CN106802922B (zh) | 一种基于对象的溯源存储系统及方法 | |
CN115481025A (zh) | 自动化测试的脚本录制方法、装置、计算机设备及介质 | |
CN105740131B (zh) | 软件用户行为回退处理方法及装置 | |
CN107656868B (zh) | 一种利用线程私有数据获取线程名字的调试方法及系统 | |
JP2000163602A (ja) | 入力履歴蓄積装置 | |
JP2001134424A (ja) | システムパラメタ作成方法、システムパラメタ作成装置、システムパラメタ作成プログラムを記録したコンピュータ読み取り可能な記録媒体及びシステムパラメタ作成データを格納したコンピュータ読み取り可能な記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |