本发明涉及核电厂仪控软件领域,具体涉及一种基于模型开发编程工具的连线方法。
背景技术:
1、核电厂仪控工程应用软件的开发普遍图形化设计方法,模型经过代码生成工具编译可获得通用编程语言的程序如c等。因此需要一个工具使得用户与模型的图形化表示进行交互,进而实现图形化的建模方式。目前流行的编程方法是基于文本的,主要是应用某种公认编程语言对系统进行建模,近年来人们开始意识到对软件开发方式进行可视化表示可很大程度上提高软件开发效率。在许多情况下,图形化表示更为清晰,直观,更接近于实际需求,通过图形化表示可直观的观察到他们之间的关联、数据流等信息。而通过文本无法达到这种直观的理解。可视化表示法也成为软件开发方法学的发展趋势,如uml。可视化系统的好处是可以把枯燥的编程语言语法映射为图形化对象之间的关系,使得一般技术人员在不理解语言语法的情况下仍可理解系统。从一定程度上降低了编程设计的门槛。
2、本发明只关心图形建模软件开发相关的内容,不包括图形与文本的转换规则。对于图形化建模软件的开发,目前有很多可用的编程框架可使用,如qt、eclipse等。即使采用了通用的编程框架,我们仍需自己解决软件的可用性问题,如何实现一个简洁、易用、功能强大的建模软件仍需开发人员投入很多精力和创意。本发明针对在图形化建模过程中的连线方面的需求,提出了一种易用可行的连线方法。
技术实现思路
1、本发明的目的在于提供一种基于模型开发编程工具的连线方法,解决了上述现有技术中存在的技术问题。
2、本发明通过下述技术方案实现:
3、一种基于模型开发编程工具的连线方法,包括:
4、以模型开发编程工具为基础,获取第一目标连线图符的第一目标引脚位置以及第二目标连线图符的第二目标引脚位置;所述第一目标引脚位置表示起始位置,所述第二目标引脚位置表示结束位置;
5、以所述第一目标引脚位置以及第二目标引脚位置为基础,确定第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型;其中连线类型包括:l型、反l型、s型以及反s型;
6、根据第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型,调度预先部署的连线算法将第一目标引脚与第二目标引脚连接,完成连线流程。
7、在一种可能的实施方式中,以所述第一目标引脚位置以及第二目标引脚位置为基础,确定第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型,包括:
8、提取第一目标引脚位置中的x轴坐标为x1,提取第二目标引脚位置中的x轴坐标为x2;
9、判断第一目标引脚位置中的x轴坐标x1是否大于或等于第二目标引脚位置中的x轴坐标x2,若是,则确定第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为s型或反s型,否则确定第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为l型或反l型。
10、在一种可能的实施方式中,根据第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型,调度预先部署的连线算法将第一目标引脚与第二目标引脚连接,包括:
11、当第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为s型或反s型时,调度第一连线算法将第一目标引脚与第二目标引脚连接;
12、当第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为l型或反l型时,调度第二连线算法将第一目标引脚与第二目标引脚连接。
13、在一种可能的实施方式中,第一连线算法,包括:
14、确定六个基点分别为第一基点p1、第二基点p2、第三基点p3、第四基点p4、第五基点p5以及第六基点p6;
15、确定第一基点p1以及第二基点p2的位置为第一目标连线图符的第一目标引脚位置(x1,y1),确定第五基点p5以及第六基点p6的位置为第二目标连线图符的第二目标引脚位置(x2,y2);
16、确定第三基点p3的位置为((x1+x2)/2,y1),确定第四基点p4的位置为((x1+x2)/2,y2);
17、将第一基点p1、第二基点p2、第三基点p3、第四基点p4、第五基点p5以及第六基点p6顺次连接,完成连线。
18、在一种可能的实施方式中,第二连线算法,包括:
19、确定六个基点分别为第一基点p1、第二基点p2、第三基点p3、第四基点p4、第五基点p5以及第六基点p6;
20、确定第一基点p1的位置为第一目标连线图符的第一目标引脚位置(x1,y1),确定第六基点p6的位置为第二目标连线图符的第二目标引脚位置(x2,y2);
21、确定第二基点p2的位置为(x1+m,y1),确定第三基点p3的位置为(x1+m,(y1+y2)/2),确定第四基点p4的位置为(x2-m,(y1+y2)/2),确定第五基点p5的位置为(x2-m,y1);其中m表示预设的位置偏移;
22、将第一基点p1、第二基点p2、第三基点p3、第四基点p4、第五基点p5以及第六基点p6顺次连接,完成连线。
23、在一种可能的实施方式中,根据第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型,调度预先部署的连线算法将第一目标引脚与第二目标引脚连接之后,还包括:
24、当第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为l型或反l型时,接受人机交互产生的第一目标引脚位置和/或第二目标引脚位置的第一调整指令,并根据该第一调整指令调整第一目标引脚位置和/或第二目标引脚位置,同时使第一基点p1跟随第一目标引脚位置变化和/或第六基点p6跟随第二目标引脚位置变化,其余基点的位置跟随第一基点p1变化;
25、当第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为l型或反l型时,接受人机交互输入的第二调整指令,使第三基点p3和/或第四基点p4的横坐标根据第二调整指令变化;
26、当第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为s型或反s型时,接受人机交互产生的第一目标引脚位置的第三调整指令,并根据该第三调整指令调整第一目标引脚位置,同时使第一基点p1跟随第一目标引脚位置变化,其余基点的位置跟随第一基点p1变化;
27、当第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为s型或反s型时,接受人机交互输入的第四调整指令,使第二基点p2和/或第五基点p5的横坐标根据第四调整指令变化,第三基点p3以及第四基点p4跟随变化;
28、当第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为s型或反s型时,接受人机交互输入的第五调整指令,使第三基点p3和/或第四基点p4根据第五调整指令变化,第二基点p2以及第五基点p5跟随变化。
29、在一种可能的实施方式中,根据第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型,调度预先部署的连线算法将第一目标引脚与第二目标引脚连接之后,还包括:
30、实时检测第一目标引脚位置和/或第二目标引脚位置是否发生变化,若是,则提取第一目标引脚位置中的x轴坐标为x1,提取第二目标引脚位置中的x轴坐标为x2,否则继续监测;
31、判断第一目标引脚位置中的x轴坐标x1是否大于或等于第二目标引脚位置中的x轴坐标x2,若是,则确定第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为s型或反s型,否则确定第一目标连线图符的第一目标引脚与第二目标连线图符的第二目标引脚之间的连线类型为l型或反l型。
32、在一种可能的实施方式中,第一连线算法,包括:
33、获取第一目标连线图符的引脚总数n以及第一目标引脚的引脚索引i,确定六个基点分别为第一基点p1、第二基点p2、第三基点p3、第四基点p4、第五基点p5以及第六基点p6;
34、确定第一基点p1以及第二基点p2的位置为第一目标连线图符的第一目标引脚位置(x1,y1),确定第五基点p5以及第六基点p6的位置为第二目标连线图符的第二目标引脚位置(x2,y2);
35、确定第三基点p3的位置为((x1+x2)*(0.3+(0.4*i)/(n+1)),y1),确定第四基点p4的位置为((x1+x2)*(0.3+(0.4*i)/(n+1)),y2);
36、将第一基点p1、第二基点p2、第三基点p3、第四基点p4、第五基点p5以及第六基点p6顺次连接,完成连线。
37、在一种可能的实施方式中,第二连线算法,包括:
38、获取第一目标连线图符的引脚总数n以及第一目标引脚的引脚索引i,确定六个基点分别为第一基点p1、第二基点p2、第三基点p3、第四基点p4、第五基点p5以及第六基点p6;
39、确定第一基点p1的位置为第一目标连线图符的第一目标引脚位置(x1,y1),确定第六基点p6的位置为第二目标连线图符的第二目标引脚位置(x2,y2);
40、确定第二基点p2的位置为(x1+m(1+f*i),y1),确定第三基点p3的位置为(x1+m(1+f*i),(y1+y2)/2),确定第四基点p4的位置为(x2-m(1+f*i),(y1+y2)/2),确定第五基点p5的位置为(x2-m(1+f*i),y1);其中m表示预设的位置偏移,f表示缩进系数;
41、将第一基点p1、第二基点p2、第三基点p3、第四基点p4、第五基点p5以及第六基点p6顺次连接,完成连线。
42、在一种可能的实施方式中,还包括:
43、向工作人员提供自由折线模式,且在自由折线模式下,接受用户通过人机输入的多个连续控制点;
44、针对任一两个相邻的控制点,采用a模式、b模式、c模式或者d模式进行连线;
45、a模式为水平直角连线,b模式为垂直直角连线,c模式为水平连线,d模式为垂直连线。
46、本发明提供的一种基于模型开发编程工具的连线方法,以起始位置以及结束位置为基础,确定连线类型,最后基于连线类型调度预先部署的连线算法进行连线,能够实现不同图符布局下的智能连线,支持线条位置编辑等功能,使得算法图符间的连线尽可能合理清晰,有效提升工具可用性。