CN112181381B - 一种基于分支循环的流程图构建方法 - Google Patents

一种基于分支循环的流程图构建方法 Download PDF

Info

Publication number
CN112181381B
CN112181381B CN202011203211.7A CN202011203211A CN112181381B CN 112181381 B CN112181381 B CN 112181381B CN 202011203211 A CN202011203211 A CN 202011203211A CN 112181381 B CN112181381 B CN 112181381B
Authority
CN
China
Prior art keywords
branch
view
circulation
tool
node
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.)
Active
Application number
CN202011203211.7A
Other languages
English (en)
Other versions
CN112181381A (zh
Inventor
李春旺
郭晓锋
余章卫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Zhongke Whole Elephant Intelligent Technology Co ltd
Original Assignee
Suzhou Zhongke Whole Elephant Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Zhongke Whole Elephant Intelligent Technology Co ltd filed Critical Suzhou Zhongke Whole Elephant Intelligent Technology Co ltd
Priority to CN202011203211.7A priority Critical patent/CN112181381B/zh
Publication of CN112181381A publication Critical patent/CN112181381A/zh
Application granted granted Critical
Publication of CN112181381B publication Critical patent/CN112181381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Abstract

本发明提供了一种基于分支循环的流程图构建方法,属于机器视觉软件领域。本发明在顺序流程中可以批量创建分支,在分支模块中可以继续嵌套分支模块;在顺序流程中插入循环模块,在分支模块中可以继续嵌套循环模块,在循环中可以插入多层分支,支持分支流程的循环执行,支持整个分支或者整个循环拖动到其他分支。通过工具窗口输入创建分支数目,并通过分支工具窗口和循环工具窗口输入各自执行条件。分支循环布局自动化采用在拖拽时连线区域的感应方法使得工具拖拽更加容易不易发生错误;采用了QT Scene‑view架构来绘图,容纳图形数量和绘图性能更高,运行更流畅。

Description

一种基于分支循环的流程图构建方法
技术领域
本发明涉及机器视觉软件领域,尤其涉及一种基于分支循环的流程图构建方法。
背景技术
随着人工智能的发展,机器视觉逐渐发展起来。简单说来,机器视觉是利用机器替代人眼,形成视觉能力,实现引导、定位、测量、检测、识别等基本功能,在感光范围、观测精度、观测准确性、环境适应性、高速物体可见能力等方面的优越性使其应用越来越广泛,在定位、测量、识别、缺陷检测等领域发挥着越来越重要的作用。
作为一款机器视觉软件,它不仅要有丰富的基本节点工具,基本节点工具用于实现各算法,而且要具备灵活的执行流程,来满足复杂的功能需求。常见的机器视觉软件有开源的OpenCV、7.0系统,快速开发强大的应用系统、LabVIEW用于机器视觉、德国的MVTecHALCONHALCON功能、MATLAB相关的工具箱、加拿大的Maxtor Image library、eVision机器视觉软件、HexSight和RVB机器视觉和图象处理算法软件。
程序的逻辑控制能力是机器视觉软件系统的必备能力,程序的逻辑一般分为顺序执行、条件执行和循环执行。随着视觉项目越来越复杂,将给机器视觉软件带来下面的问题:单一的顺序执行流程无法满足复杂功能的构建需求;流程内需要某些算法的重复执行;需要根据输入条件的不同来执行不同的算法。现有的分支循环创建太繁琐,特别是分支嵌套下连线太过复杂,耗时且布局混乱,现有分支循环嵌套多层时程序容易出错不稳定。
在中国专利申请文献CN106648608A中,公开了一种灵活高效的流程图构建方法,该方法用于机器视觉流程的构建,包括流程图的布局、编辑、局部折叠/展开、删除/撤销、粘贴复制等操作。该方法首先定义基本节点和基本组,其中,基本组由组头、组尾以及中间的节点构成,基本组分成一般组,分支组,循环组;在构造流程图时候,由开始节点和结束节点连接构成基本流程图,然后其他的节点都往里面添加;流程图的布局也属于组布局,根据组的不同,组将布局分成主布局、分支组布局和循环组布局。分支组布局:分支组布局是对主布局的一个拓展,分别对分支都进行主布局,最后根据分支中高度最大的分支高度,计算组尾的位置进行布局;循环组布局:首先对组头的引出连接线进行布局;接着对循环内部的节点进行主布局;最后对折回线进行布局,布局完成;通过组的折叠和展开,将局部流程图组折叠收起或展开,可使得复杂的流程图变得简介清晰,更便于业务逻辑梳理。该发明使用手动拖拽连续的方式创建分支,页面布局混乱。
现有技术至少存在以下不足:
1.现有的机器视觉软件把条件分支和选择分支分开单独来做,增加了控制的复杂度和使用的难度,构造流程的过程比较复杂。通过创建多个流程的方法实现分支功能,而且局限性也比较大;
2.采用手动拖拽连线的方式构建分支的方法使得页面布局比较混乱,理清分支的执行顺序不太直观;
3.分支连线通过各种方向的连线来组成,不能采用所见即所得的方式来构建分支流程。
发明内容
为解决现有技术中存在的技术问题,本发明提供了一种基于分支循环的流程图构建方法。本发明通过分支/循环工具设置单元生成分支/循环工具窗口,可以在窗口输入要创建的分支个数及各分支的执行条件,以及循环开始值、结束值和循环次数,通过拖拽分支工具和循环工具可以自动创建分支节点和循环节点,并根据输入的条件以及分支节点和循环节点的位置,在流程视图中自动绘制并显示分支视图和循环视图,分支和循环可以在任一分支、循环、基本节点的前后插入,也可以在分支或循环内部插入,视图布局之后,自动绘制相邻节点间的连续,删除节点时,自动删除原有连线,并将被删除节点前后的节点进行连接,流程视图中的任一分支、循环、基本节点都可以编辑节点属性。分支循环布局自动化在拖拽时连线区域的感应方法使得工具拖拽更加容易不易发生错误;采用了QT Scene-view架构来绘图,容纳图形数量和绘图性能更高,运行更流畅。本发明的流程图构建方法,自动进行布局和视图绘制,自动绘制连线和删除连线,布局快捷、简单、清晰。
一种基于分支循环的流程图构建方法,包括:分支模块、循环模块、基本节点和连线;
所述分支模块包括分支工具设置单元、分支工具和分支视图,分支工具设置单元用于创建分支工具窗口,以便在分支工具窗口中输入创建分支个数和输入分支执行条件,通过拖拽分支工具创建分支节点,分支视图用于显示分支节点;
所述循环模块包括循环工具设置单元、循环工具和循环视图,循环工具设置单元用于创建循环工具窗口,以便在循环工具窗口中输入循环执行条件,通过拖拽循环工具创建循环节点,循环视图用于显示循环节点;
所述基本节点模块包括基本节点工具和基本节点视图,用于创建基本节点及显示基本节点;
分支的批量创建:
输入需要创建的分支个数和各分支执行条件;
通过拖拽分支工具在主流程视图中自动创建分支节点;
保存分支运行参数;所述运行参数包括分支个数和各分支执行条件;
创建的所述分支节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
单个分支的创建:
输入需要创建的分支执行条件;
通过拖拽分支工具在主流程视图中自动创建单个分支节点;
保存分支运行参数;
分支的布局:
在流程视图窗口自动绘制并显示分支视图;
循环的创建:
通过拖拽循环工具自动创建开始循环和结束循环两个循环节点;
设置循环开始值、结束值及循环次数;
保存循环运行参数;所述循环运行参数包括节点的位置坐标、循环开始值、结束值及循环次数;
创建的所述循环节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
循环的布局:
在流程视图窗口自动绘制并显示循环视图;
基本节点的创建:
通过拖拽基本节点工具,自动创建基本节点;
保存基本节点运行参数;所述基本节点运行参数包括节点的位置坐标,根据所述基本节点的横向跨度和纵向跨度,计算出节点的位置坐标;
创建的所述基本节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
基本节点的布局:
在流程视图窗口自动绘制并显示基本节点;
连线的自动绘制:
相邻的两个分支节点、循环节点和/或基本节点布局完成后,根据保存的各类节点的运行参数,在流程视图中自动绘制连线,用于连接新创建的分支、循环和/或基本节点与相邻视图。
优选地,分支的批量创建具体包括:
S100:点击分支工具设置单元生成分支工具窗口;
S200:在分支工具窗口输入需要创建的分支个数和各分支执行条件;
S300:根据输入的需要创建的分支个数,在主流程视图中需要的地方通过拖拽分支工具自动创建分支节点;
S400:保存新创建分支的运行参数。
优选地,分支及循环的布局具体为:
根据在分支工具窗口设置的分支个数、分支执行条件以及分支节点的位置,在流程视图窗口自动绘制并显示分支视图;
根据循环节点的位置自动在流程视图窗口绘制并显示循环视图。
优选地,循环的创建具体包括:
S500:通过拖拽循环工具自动创建开始循环和结束循环两个循环节点;
S600:点击循环工具设置单元生成循环工具窗口;
S700:在循环工具窗口设置循环开始值、结束值及循环次数;
S800:保存新创建循环的运行参数。
优选地,拖拽分支工具或循环工具后,采用连线区域感应方法,通过分支节点或循环节点各线条的宽度和线条的坐标感应拖拽后的分支区域范围或循环区域范围,所示分支区域范围或循环区域范围分别用于绘制分支视图或循环视图。
优选地,还包括,单个分支、循环或基本节点的删除,具体为:
根据需要通过选中要删除的分支视图、循环视图或基本节点,通过“删除”选项来删除分支视图、循环视图或基本节点。
优选地,删除分支、循环或基本节点后,在流程视图中自动关联删除与被删除分支、循环或基本节点连接的连接线,并将被删除分支、循环或基本节点的前一节点与后一节点用连接线连接起来。
优选地,
可以通过拖拽分支工具在主流程视图中自动创建单个分支节点;
在任一需要的地方通过拖拽自动创建新分支时,都可以在分支工具设置窗口中设置该分支的执行条件;
在任一需要的地方通过拖拽自动创建新循环时,都可以在循环工具设置窗口中设置该循环的开始值、结束值及循环次数。
优选地,还包括,对于流程视图中显示的任一分支、任一循环或任一基本节点,可以进行节点属性的编辑,包括节点运行参数,包括隐藏或显示节点、节点类型,对于分支节点还包括分支执行条件,对于循环节点还包括循环开始值、结束值和循环次数。
优选地,视图绘制采用QT Scene-view架构实现。
与现有技术相对比,本发明的有益效果如下:
(1)本发明通过采用模块进行功能封装,UI类负责分支循环与用户的交互,工具接口负责运行、序列化意见运行参数保存,模型视图接口负责数据变更通信,模型和连线负责图形绘制的技术手段,实现了模块功能的独立完整和可扩展性和维护性;
(2)本发明通过在接口隐藏了工具的具体实现,工具的执行和显示通过一致的接口调用的技术手段,从而实现了避免主程序对各模块头文件的包含,降低了耦合性;
(3)本发明通过基于顺序流程的架构进行改动实现,避免了框架的重构,实现了程序的稳定性,同时提高了程序的健壮性,降低了出错的概率;
(4)本发明通过在工具视图、流程视图智能指针的使用,降低了程序发生崩溃的几率和减少了内存的泄漏;
附图说明
图1是本发明的一个实施例分支和循环创建效果示意图;
图2是本发明的一个实施例分支和循环创建流程示意图;
图3是本发明的一个实施例分支和循环类设计示意图;
图4是本发明的一个实施例各类之间交互的示意图;
图5是本发明的实施例5创建的流程图效果示意图。
具体实施方式
下面结合附图1-5,对本发明的具体实施方式作详细的说明。
一种基于分支循环的流程图构建方法,包括:分支模块、循环模块、基本节点和连线;
所述分支模块包括分支工具设置单元、分支工具和分支视图,分支工具设置单元用于创建分支工具窗口,以便在分支工具窗口中输入创建分支个数和输入分支执行条件,通过拖拽分支工具创建分支节点,分支视图用于显示分支节点;
所述循环模块包括循环工具设置单元、循环工具和循环视图,循环工具设置单元用于创建循环工具窗口,以便在循环工具窗口中输入循环执行条件,通过拖拽循环工具创建循环节点,循环视图用于显示循环节点;
所述基本节点模块包括基本节点工具和基本节点视图,用于创建基本节点及显示基本节点;
基本节点包括采集单元、颜色处理单元、几何工具单元、图像处理单元、定位标定单元、对位和缺陷检测单元、通信单元、识别单元、结果分析单元,不同单元分别实现不同功能。
分支的批量创建:
输入需要创建的分支个数和各分支执行条件;
通过拖拽分支工具在主流程视图中自动创建分支节点;
保存分支运行参数;所述运行参数包括分支个数和各分支执行条件;
创建的所述分支节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
单个分支的创建:
通过拖拽分支工具在主流程视图中自动创建单个分支节点;
保存分支运行参数;
分支的布局:
在流程视图窗口自动绘制并显示分支视图;
循环的创建:
通过拖拽循环工具自动创建开始循环和结束循环两个循环节点;
设置循环开始值、结束值及循环次数;
保存循环运行参数;所述循环运行参数包括节点的位置坐标、循环开始值、结束值及循环次数;
创建的所述循环节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
循环的布局:
在流程视图窗口自动绘制并显示循环视图;
基本节点的创建:
通过拖拽基本节点工具,自动创建基本节点;
保存基本节点运行参数;所述基本节点运行参数包括节点的位置坐标,根据所述基本节点的横向跨度和纵向跨度,计算出节点的位置坐标;
创建的所述基本节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
基本节点的布局:
在流程视图窗口自动绘制并显示基本节点;
连线的自动绘制:
相邻的两个分支节点、循环节点和/或基本节点布局完成后,根据保存的各类节点的运行参数,在流程视图中自动绘制连线,用于连接新创建的分支、循环和/或基本节点与相邻视图。
作为优选实施方式,分支的批量创建具体包括:
S100:点击分支工具设置单元生成分支工具窗口;
S200:在分支工具窗口输入需要创建的分支个数和分支执行条件;
S300:根据输入的需要创建的分支个数,在主流程视图中需要的地方通过拖拽分支工具自动创建分支节点;
S400:保存新创建分支的运行参数。
作为优选实施方式,分支及循环的布局具体为:
根据在分支工具窗口设置的分支个数、分支执行条件以及分支节点的位置,在流程视图窗口自动绘制并显示分支视图;
根据循环节点的位置自动在流程视图窗口绘制并显示循环视图。
作为优选实施方式,循环的创建具体包括:
S500:通过拖拽循环工具自动创建开始循环和结束循环两个循环节点;
S600:点击循环工具设置单元生成循环工具窗口;
S700:在循环工具窗口设置循环开始值、结束值及循环次数;
S800:保存新创建循环的运行参数。
作为优选实施方式,拖拽分支工具或循环工具后,采用连线区域感应方法,通过分支节点或循环节点各线条的宽度和线条的坐标感应拖拽后的分支区域范围或循环区域范围,所示分支区域范围或循环区域范围分别用于绘制分支视图或循环视图。
作为优选实施方式,还包括,单个分支、循环或基本节点的删除,具体为:
根据需要通过选中要删除的分支视图、循环视图或基本节点,通过“删除”选项来删除分支视图、循环视图或基本节点。
作为优选实施方式,删除分支、循环或基本节点后,在流程视图中自动关联删除与被删除分支、循环或基本节点连接的连接线,并将被删除分支、循环或基本节点的前一节点与后一节点用连接线连接起来。
作为优选实施方式,
在任一需要的地方通过拖拽自动创建新分支时,都可以在分支工具设置窗口中设置该分支的执行条件;
在任一需要的地方通过拖拽自动创建新循环时,都可以在循环工具设置窗口中设置该循环的开始值、结束值及循环次数。
作为优选实施方式,还包括,对于流程视图中显示的任一分支、任一循环或任一基本节点,可以进行节点属性的编辑,包括节点运行参数,包括隐藏或显示节点、节点类型,对于分支节点还包括分支执行条件,对于循环节点还包括循环开始值、结束值和循环次数。
作为优选实施方式,视图绘制采用QT Scene-view架构实现。QT SCENE-VIEW框架实现了模型-视图结构的图形管理,能对大量图元进行管理,支持碰撞检测,坐标变换和图元组等多种方便的功能。
本发明的流程图方法的软件实现具体实施方式如下:
作为优选实施方式,分支工具设置单元由设计的分支UI类实现,分支UI类通过分支工具接口与分支工具通信,分支UI类通过分支视图接口与分支视图通信;循环工具设置单元由循环UI类实现,循环UI类通过循环工具接口与循环工具通信,循环UI类通过循环视图接口与循环视图通信;
作为优选实施方式,设计分支工具接口,用于分支工具类型的分组、运行参数和结果参数的保存、工具的执行;设计循环工具接口,用于循环工具类型的分组、运行参数和结果参数的保存、工具的执行;每个分支节点都有序号,分支工具根据分支节点序号来分组,相同序号的分支同时进行执行条件的判断,选择一个分支执行。每条分支可以放置任意多个基本节点。各个节点的运行由各节点工具执行,用于执行各节点的算法。
作为优选实施方式,设计分支工具的容器数据结构和运行参数数据结构,用于控制分支的执行及参数的保存;循环工具的容器数据结构和运行参数数据结构控制循环的执行及参数的保存;
工具接口通过工具设置窗口来保存运行参数,结果参数保存算法的运行结果。算法工具设置界面所有初始化数据都可以为运行参数,它可以为任何类型。算法工具运行结果保存的数据为结果参数,它可以为任何类型数据。
作为优选实施方式,设计分支工具视图接口,用于在参数发生变化时更新分支工具视图;设计循环工具视图接口,用于在参数发生变化时更新循环工具视图;
作为优选实施方式,分支视图和循环视图分别由分支模块视图类和循环模块视图类实现,分支模块视图类和循环模块视图类由流程视图类创建。
作为优选实施方式,实现分支拖拽接口,用于拖拽模块到分支、模块在分支中拖拽、将模块拖拽出分支,拖拽后更新分支接口的运行参数,并在拖拽过程中动态更新分支数据容器;
作为优选实施方式,实现循环拖拽接口,用于在循环中拖拽添加分支模块和基本模块,拖拽后更新循环接口的运行参数,并在拖拽过程中动态更新循环数据容器;
作为优选实施方式,实现基本模块拖拽接口,用于拖拽分支和循环到基本模块中或拖拽基本模块到分支中。
在流程的软件实现中算法工具和流程视图中的工具视图采用智能指针的方式,因为在流程中会频繁发生添加和删除动作,裸指针很容易发生delete和new操作,很容易发生内存泄漏,采用智能指针的方法会提高程序安全性,降低程序发生崩溃的概率。
实施例1
一种基于分支循环的流程图构建方法,包括:分支模块、循环模块、基本节点和连线;
所述分支模块包括分支工具设置单元、分支工具和分支视图,用于创建分支及显示分支;
所述循环模块包括循环工具设置单元、循环工具和循环视图,用于创建循环及显示循环;
所述基本节点模块包括基本节点工具和基本节点视图,用于创建基本节点及显示基本节点;
基本节点包括采集单元、颜色处理单元、几何工具单元、图像处理单元、定位标定单元、对位和缺陷检测单元、通信单元、识别单元、结果分析单元,不同单元分别实现不同功能。
分支的批量创建:
输入需要创建的分支个数和各分支执行条件;
通过拖拽分支工具在主流程视图中自动创建分支节点;
保存分支运行参数;所述运行参数包括分支个数和各分支执行条件;
分支的批量创建具体包括:
S100:点击分支工具设置单元生成分支工具窗口;
S200:在分支工具窗口输入需要创建的分支个数和分支执行条件;
S300:根据输入的需要创建的分支个数,在主流程视图中需要的地方通过拖拽分支工
具自动创建分支节点;
S400:保存新创建分支的运行参数。
创建的所述分支节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
如果输入的创建分支个数为3,在主流程视图会自动创建3个分支,然后分支视图会根据分支的位置自动创建该分支与其他模块连接的分支连线,在视图中自动绘制6条与3个分支分别连接的分支连线,进行模块间的互连。在3个分支的UI中分别输入各分支执行的条件,程序运行时,会根据输入的各分支执行条件进行条件判断,分别执行符合条件的分支工具。
单个分支的创建:
通过拖拽分支工具在主流程视图中自动创建单个分支节点;
保存分支运行参数;
创建的所述分支节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
附图1中,在分支中嵌套分支,分支1中嵌套分支2和分支3两个分支,图中的分支1、分支2和分支3均由程序自动创建,并在视图中绘制与显示,分支连线是根据分支所在位置自动创建。从图1中可以看出,分支2和分支3可以在分支1中的任何位置插入。
在任一需要的地方通过拖拽自动创建新分支时,都可以在创建的分支工具窗口中输入该分支的执行条件,有程序进行判断,当符合条件时执行该分支工具。
单个分支、循环或基本节点的删除,具体为:
根据需要通过选中要删除的分支视图、循环视图或基本节点,右击会出现删除和编辑选项,通过“删除”选项来删除分支视图、循环视图或基本节点。
删除分支、循环或基本节点后,在流程视图中自动关联删除与被删除分支、循环或基本节点连接的连接线,并将被删除分支、循环或基本节点的前一节点与后一节点用连接线连接起来。
循环的创建:
通过拖拽循环工具自动创建开始循环和结束循环两个循环节点;
设置循环开始值、结束值及循环次数;
保存循环运行参数;所述循环运行参数包括节点的位置坐标、循环开始值、结束值及循环次数;
循环的创建具体包括:
S500:通过拖拽循环工具自动创建开始循环和结束循环两个循环节点;
S600:点击循环工具设置单元生成循环工具窗口;
S700:在循环工具窗口设置循环开始值、结束值及循环次数;
S800:保存新创建循环的运行参数。
创建的所述循环节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
基本节点的创建:
通过拖拽基本节点工具,自动创建基本节点;
保存基本节点运行参数;所述基本节点运行参数包括节点的位置坐标,根据所述基本节点的横向跨度和纵向跨度,计算出节点的位置坐标;
创建的所述基本节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
基本节点的布局:
在流程视图窗口自动绘制并显示基本节点;
连线的自动绘制:
相邻的两个分支节点、循环节点和/或基本节点布局完成后,根据保存的各类节点的运行参数,在流程视图中自动绘制连线,用于连接新创建的分支、循环和/或基本节点与相邻视图。
拖拽分支工具或循环工具后,采用连线区域感应方法,通过线条的宽度和线条的坐标实现感应拖拽后的分支区域范围或循环区域范围,分支区域范围为每个分支所覆盖的矩形区域。
连线区域感应方法采用矩形区域的感应方法,可以实现基本工具在分支区域随便拖放,比感应线段的方法更为有用。
视图绘制采用QT Scene-view架构实现。QT SCENE-VIEW框架实现了模型-视图结构的图形管理,能对大量图元进行管理,支持碰撞检测,坐标变换和图元组等多种方便的功能。
根据本发明的一个具体实施方案,本发明流程图创建方法通过下面的方法软件实现。
分支工具设置单元可以由设计的分支UI类实现,分支UI类通过分支工具接口与分支工具通信,分支UI类通过分支视图接口与分支视图通信;循环工具设置单元由循环UI类实现,循环UI类通过循环工具接口与循环工具通信,循环UI类通过循环视图接口与循环视图通信;
可以设计分支工具接口,用于分支工具类型的分组、运行参数和结果参数的保存、工具的执行;设计循环工具接口,用于循环工具类型的分组、运行参数和结果参数的保存、工具的执行;每个分支节点都有序号,分支工具根据分支节点序号来分组,相同序号的分支同时进行执行条件的判断,选择一个分支执行。每条分支可以放置任意多个基本节点。各个节点的运行由各节点工具执行,用于执行各节点的算法。
可以设计分支工具的容器数据结构和运行参数数据结构,用于控制分支的执行及参数的保存;循环工具的容器数据结构和运行参数数据结构控制循环的执行及参数的保存;
工具接口可以通过工具设置窗口来保存运行参数,结果参数保存算法的运行结果。
可以设计分支工具视图接口,用于在参数发生变化时更新分支工具视图;设计循环工具视图接口,用于在参数发生变化时更新循环工具视图;
分支视图和循环视图可以分别由分支模块视图类和循环模块视图类实现,分支模块视图类和循环模块视图类由流程视图类创建。
可以设计实现分支拖拽接口,用于拖拽模块到分支、模块在分支中拖拽、将模块拖拽出分支,拖拽后更新分支接口的运行参数,并在拖拽过程中动态更新分支数据容器;
可以设计实现循环拖拽接口,用于在循环中拖拽添加分支模块和基本模块,拖拽后更新循环接口的运行参数,并在拖拽过程中动态更新循环数据容器;
可以设计实现基本模块拖拽接口,用于拖拽分支和循环到基本模块中或拖拽基本模块到分支中。
实施例2
附图2中举例说明了在顺序流程中创建分支和循环的过程,步骤包括:
1.先创建顺序流程;
2.在分支UI中输入需要创建分支数,并根据输入的创建分支数在需要的地方创建分支工具,在各分支UI中输入各分支的执行条件,输入分支条件b取不同值时,走不同的分支,然后在b=1的分支中添加循环工具,在b=2和b=3的分支中添加基本节点工具;
3.输入循环工具的循环执行条件、循环次数、循环终止条件;
4.根据输入条件判断哪条分支得以执行;图2中分支包括3个分支;
5.当执行到循环工具,首先判断循环索引是否满足循环条件,若循环条件满足,执行循环代码,循环索引增1,并重复上述判断,直至循环条件结束;
6.当该分支所有代码执行完毕,分支结束,流程执行结束。
实施例3
附图3给出了本发明分支循环类图结构设计实施例示意图,具体实现如下:
1.所有工具继承自ModuleBase,并存储在Flow流程类中;
2.自定义分支UI界面和循环UI界面,都继承自CustomFrameWindow,并都包含指向工具类的指针;
3.分支工具和循环工具分别与分支视图和循环视图通过分支工具接口和循环工具接口通信,分支工具视图和循环工具视图继承自IModuleView,并存储在流程视图中;
4.分支工具视图和循环工具视图都包含指向线段连线的指针;
5.窗口数据通过ModuleBase中指向ImoduleView的指针实现流程图数据的更新;
6.分支模型视图和循环模型视图存放在流程视图容器中,流程类中包含分支工具和循环工具,并负责流程视图的更新。
实施例4
如附图4中,给出了流程图创建过程中各类之间的交互示例。
在分支工具窗口输入分支执行条件,在循环工具窗口输入循环执行条件、循环次数和循环终止条件,然后程序会判断各个条件,进而执行分支工具和循环工具,分支工具与分支视图通过分支工具接口通信,更新视图中分支的布局显示;循环工具与循环视图通过循环工具接口通信,更新视图中循环的布局显示。
分支视图和循环视图由流程视图创建并存储在流程视图中。分支容器数据结构和循环容器数据结构根据分支工具和循环工具的执行情况,动态更新运行参数,分支视图及工具视图根据运行参数更新分支连线及循环连线。
实施例5
根据本发明的又一个实施方案,如附图5所示,在主流程中创建3个分支,并在分支1中创建2个分支,分别为分支4和分支5,在分支2中创建2个循环,循环1中创建分支a和分支b,循环2中嵌套循环3,分支3中嵌套分支6及循环3。双击分支弹出分支UI类和循环UI类设置界面,设置界面分别加载运行参数或用户改动设置更新后的运行参数,分支UI类、循环UI类调用分支工具接口和循环工具接口把运行参数更新到方案文件中,并通过模块视图接口把用户设置的运行参数更新到模型视图,刷新界面重绘工具视图。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均包含在本发明的保护范围之内。

Claims (8)

1.一种基于分支循环的流程图构建方法,其特征在于,包括:分支模块、循环模块、基本节点模块和连线;
所述分支模块包括分支工具设置单元、分支工具和分支视图,分支工具设置单元用于创建分支工具窗口,以便在分支工具窗口中输入创建分支个数和输入分支执行条件,通过拖拽分支工具创建分支节点,分支视图用于显示分支节点;分支工具包括容器数据结构和运行参数数据结构,用于控制分支的执行及参数的保存;
所述循环模块包括循环工具设置单元、循环工具和循环视图,循环工具设置单元用于创建循环工具窗口,以便在循环工具窗口中输入循环执行条件,通过拖拽循环工具创建循环节点,循环视图用于显示循环节点;循环工具包括容器数据结构和运行参数数据结构,用于控制循环的执行及参数的保存;
所述基本节点模块包括基本节点工具和基本节点视图,用于创建基本节点及显示基本节点;
分支的批量创建:
输入需要创建的分支个数和各分支执行条件;
通过拖拽分支工具在流程视图中自动创建分支节点;拖拽分支工具后,采用连线区域感应方法,通过分支节点或循环节点各线条的宽度和线条的坐标感应拖拽后的分支区域范围或循环区域范围,所示分支区域范围或循环区域范围分别用于绘制分支视图或循环视图;
保存分支运行参数;所述运行参数包括分支个数和各分支执行条件;
创建的所述分支节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
单个分支的创建:
输入需要创建的分支执行条件;
通过拖拽分支工具在流程视图中自动创建单个分支节点;在任一需要的地方通过拖拽自动创建新分支时,都可以在分支工具设置窗口中设置该分支的执行条件;
保存分支运行参数;
分支的布局:
在流程视图中自动绘制并显示分支视图;
循环的创建:
通过拖拽循环工具自动创建开始循环和结束循环两个循环节点;在任一需要的地方通过拖拽自动创建新循环时,都可以在循环工具设置窗口中设置该循环的开始值、结束值及循环次数;
设置循环开始值、结束值及循环次数;
保存循环运行参数;所述循环运行参数包括循环开始值和结束值;
创建的所述循环节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;循环的布局:
在流程视图中自动绘制并显示循环视图;
分支循环的创建;包括如下步骤:
(1).先创建顺序流程;
(2).在分支UI中输入需要创建分支数,并根据输入的创建分支数在需要的地方创建分支工具,在各分支UI中输入各分支的执行条件,输入分支条件b取不同值时,走不同的分支,然后在一个分支中添加循环工具,在其他分支中添加基本节点工具;
(3).输入循环工具的循环执行条件、循环次数、循环终止条件;
(4).根据输入条件判断哪条分支得以执行;
(5).当执行到循环工具,首先判断循环索引是否满足循环条件,若循环条件满足,执行循环代码,循环索引增1,并重复上述判断,直至循环条件结束;
(6).当该分支所有代码执行完毕,分支结束,流程执行结束;
基本节点的创建:
通过拖拽基本节点工具,自动创建基本节点;
保存基本节点运行参数;所述基本节点运行参数包括节点的位置坐标,根据所述基本节点的横向跨度和纵向跨度,计算出节点的位置坐标;
创建的所述基本节点可以在任一分支视图前、任一分支视图后、任一分支视图中、任一循环视图前、任一循环视图后、任一循环视图中、任一基本模块前、任一基本模块后;
基本节点的布局:
在流程视图窗口自动绘制并显示基本节点;
连线的自动绘制:
相邻的两个分支节点、循环节点和/或基本节点布局完成后,根据保存的各类节点的运行参数,在流程视图中自动绘制连线,用于连接新创建的分支、循环和/或基本节点与相邻视图。
2.根据权利要求1所述的流程图构建方法,其特征在于,分支的批量创建具体包括:
S100:点击分支工具设置单元生成分支工具窗口;
S200:在分支工具窗口输入需要创建的分支个数和分支执行条件;
S300:根据输入的需要创建的分支个数,在主流程视图中需要的地方通过拖拽分支工
具自动创建分支节点;
S400:保存新创建分支的运行参数。
3.根据权利要求2所述的流程图构建方法,其特征在于,分支及循环的布局具体为:
根据在分支工具窗口设置的分支个数、分支执行条件以及分支节点的位置,在流程视
图窗口自动绘制并显示分支视图;
根据循环节点的位置自动在流程视图窗口绘制并显示循环视图。
4.根据权利要求1所述的流程图构建方法,其特征在于,循环的创建具体包括:
S500:通过拖拽循环工具自动创建开始循环和结束循环两个循环节点;
S600:点击循环工具设置单元生成循环工具窗口;
S700:在循环工具窗口设置循环开始值、结束值及循环次数;
S800:保存新创建循环的运行参数。
5.根据权利要求1所述的流程图构建方法,其特征在于,还包括,单个分支、循环或基本节点的删除,具体为:
根据需要通过选中要删除的分支视图、循环视图或基本节点,通过“删除”选项来删除分支视图、循环视图或基本节点。
6.根据权利要求5所述的流程图构建方法,其特征在于,删除分支、循环或基本节点后,在流程视图中自动关联删除与被删除分支、循环或基本节点连接的连接线,并将被删除分支、循环或基本节点的前一节点与后一节点用连接线连接起来。
7.根据权利要求1所述的流程图构建方法,其特征在于,还包括,对于流程视图中显示的任一分支、任一循环或任一基本节点,可以进行节点属性的编辑,所述节点属性包括节点运行参数,包括隐藏或显示节点、节点类型,对于分支节点还包括分支执行条件,对于循环节点还包括循环开始值、结束值和循环次数。
8.根据权利要求1所述的流程图构建方法,其特征在于,视图绘制采用QT Scene-view架构实现。
CN202011203211.7A 2020-11-02 2020-11-02 一种基于分支循环的流程图构建方法 Active CN112181381B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011203211.7A CN112181381B (zh) 2020-11-02 2020-11-02 一种基于分支循环的流程图构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011203211.7A CN112181381B (zh) 2020-11-02 2020-11-02 一种基于分支循环的流程图构建方法

Publications (2)

Publication Number Publication Date
CN112181381A CN112181381A (zh) 2021-01-05
CN112181381B true CN112181381B (zh) 2024-02-20

Family

ID=73916830

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011203211.7A Active CN112181381B (zh) 2020-11-02 2020-11-02 一种基于分支循环的流程图构建方法

Country Status (1)

Country Link
CN (1) CN112181381B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1704934A (zh) * 2004-05-31 2005-12-07 国际商业机器公司 流程图的编辑、重组验证、创建和转换的方法和装置
CN101488012A (zh) * 2009-02-13 2009-07-22 国网电力科学研究院 一种利用流程框图实现顺序控制的方法
CN101587438A (zh) * 2009-06-18 2009-11-25 南京联创科技股份有限公司 Arp框架下的图形化流程模板绘制方法
CN101650798A (zh) * 2009-09-14 2010-02-17 中国科学院计算技术研究所 流程建模方法
JP2011048477A (ja) * 2009-08-25 2011-03-10 Justsystems Corp フローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラム
CN106648608A (zh) * 2016-10-21 2017-05-10 吴晓军 一种灵活方便的流程图构建方法
CN110764760A (zh) * 2019-10-29 2020-02-07 中国工商银行股份有限公司 用于绘制程序流程图的方法、装置、计算机系统和介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120221998A1 (en) * 2011-02-24 2012-08-30 Active Endpoints, Inc. Screenflow designer with automatically changing view

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1704934A (zh) * 2004-05-31 2005-12-07 国际商业机器公司 流程图的编辑、重组验证、创建和转换的方法和装置
CN101488012A (zh) * 2009-02-13 2009-07-22 国网电力科学研究院 一种利用流程框图实现顺序控制的方法
CN101587438A (zh) * 2009-06-18 2009-11-25 南京联创科技股份有限公司 Arp框架下的图形化流程模板绘制方法
JP2011048477A (ja) * 2009-08-25 2011-03-10 Justsystems Corp フローチャート描画装置、フローチャート描画方法およびフローチャート描画プログラム
CN101650798A (zh) * 2009-09-14 2010-02-17 中国科学院计算技术研究所 流程建模方法
CN106648608A (zh) * 2016-10-21 2017-05-10 吴晓军 一种灵活方便的流程图构建方法
CN110764760A (zh) * 2019-10-29 2020-02-07 中国工商银行股份有限公司 用于绘制程序流程图的方法、装置、计算机系统和介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于.NET的流程图绘制程序的设计与实现;黄烟波;赵旭华;刘中宇;;计算机技术与发展(第05期);全文 *

Also Published As

Publication number Publication date
CN112181381A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
CN112035667B (zh) 一种知识图谱展示方法、装置及终端设备
US5265197A (en) Geometric modeling apparatus
US20060082571A1 (en) Systems and methods for three-dimensional sketching
US8405655B2 (en) Geometric modeling system and optimization method for geometric fitting
CN109605366A (zh) 机器人图形化编程交互系统及机器人
EP2779098A2 (en) Visualization tool for parallel depencency graph evaluation
US20210342495A1 (en) Garment Creation System, Method and Apparatus
CN107679276B (zh) 电力系统潮流接线图的生成方法、装置及电子设备
WO2012096001A1 (ja) フローチャート描画装置、フローチャート描画方法およびプログラム
CN110673844A (zh) 一种图像处理软件开发方法及系统
CN108108194A (zh) 用户界面编辑方法以及用户界面编辑器
CN111240670A (zh) 一种软件图形界面的快速自动生成方法与装置
CN109739490A (zh) 一种基于qt图形框架的电气元件模型快速创建方法
WO2004081878A1 (en) Method and apparatus for generating morphing sequence
CN112181381B (zh) 一种基于分支循环的流程图构建方法
CN108875914A (zh) 对神经网络数据进行预处理和后处理的方法和装置
CN115098907A (zh) 基于虚拟现实的变电站4d-bim可视化方法及系统
CN110688109A (zh) 一种模型编辑系统的创建方法及模型编辑系统
CN112130851B (zh) 一种用于人工智能的建模方法、电子设备和存储介质
CN107788600A (zh) 一种二维数字化服装款式图设计系统
CN113744417B (zh) 一种复杂节点模型的尺寸标注方法
CN108920367A (zh) 一种数据结构可视化调试方法
CN115827809A (zh) 一种地理信息系统gis应用的生成方法及装置
WO2014055597A2 (en) Providing a three-dimensional view that includes a plurality of systems engineering models
JPH07225765A (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
GR01 Patent grant
GR01 Patent grant