本发明涉及工程制图,尤其涉及一种基于cad的以二分法缩放框线以获取目标选择集的方法。
背景技术:
1、在以cad为基础的工程制图过程中,操作者需要频繁地框选、点选、筛选图纸中的某些图元以将这些图元加入一个选择集,以便对这些图元执行某些命令,例如旋转、删除、变更颜色。
2、作为一个优秀的cad使用者,设计人员不仅要学会用鼠标实操的方式获取选择集,也要学会用代码的方式获取选择集。cad本身自带了获取选择集的函数“ssget”,其可选参数包括选取方式、选取点、框线点列表、筛选表,一般来说,选取方式、选取点、框线点列表决定需要被获取的目标图元的位置,筛选表决定需要被获取的目标图元的特征条件,良好地搭配这些参数可使设计人员以更快的速度实现如同手动框选、点选、筛选般同样的效果。本发明关系到框线点列表、选取方式、筛选表三个参数。
3、框线点列表:决定需要获取的目标图元在图纸中的位置的必要参数。此参数与选取方式参数绑定使用。此参数的内容包含多个二维点坐标。
4、选取方式:决定框线发挥何种功能的参数,包括“圈围”、“圈交”、“栏选”三种方式。其含义分别为“获取在框线内但不与框线接触的图元”、“获取在框线内或与框线接触的图元”、“获取与框线接触的图元”。此参数与框线参数绑定使用。若采用此参数,则此参数的内容必须是以上三种方式的其中一种。其中,若选取方式为“圈围”或“圈交”,则框线中的点坐标数量需至少为3,框线可以被看作一个闭合的二维图形,且在框线出现交叉或重叠的情况下ssget函数无法获取任何选择集;若选取方式为“栏选”,则框线中的点坐标数量需至少为2,框线可以被看作一个不闭合的二维多段线。
5、筛选表:决定参数满足何种要求的图元允许被加入到选择集的参数,一般用于筛出在图纸中混在目标图元们的位置之间的非目标图元。此参数的内容包括一套语法独特的逻辑点对。此参数可被省略,此时视为任何图元都允许被加入到选择集。
6、在工程制图的程序设计中,设计人员需要在选取方式、筛选表确定的情况下将位置坐标满足要求的图元加入一个选择集,因为涉及位置坐标,计算适合的框线点列表至关重要。但某些情况下,图元的坐标位置要求模糊、可变,这对于设计人员构思适合的框线点列表是个不小的挑战。
7、此外,本发明涉及到二分法的概念。二分法的定义为:对于区间(a,b)上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。对于本发明来说,二分法可以理解为:通过不断把框线点列表围绕某点在其允许的缩放区间之内一分为二地扩大或缩小,使框线点列表逐步逼近满足操作者要求的尺寸,进而获得满足操作者要求的选择集的方法。二分法意味着高效,本发明有能力实现将缩放区间一分为三或一分为五,但一分为二的分割方式更加合理,故本发明采用将区间一为二的二分法。
8、需注意,本发明仅运用于cad中的俯视图视角,暂不支持其他视角。
9、现有技术存在的问题是:
10、设计人员选择目标图元时会遵循一定的原则。实操时,设计人员可以根据图纸状况在遵循原则的情况下进行随机应变的处理,以便获取最适合的选择集。但当设计程序执行获取选择集的步骤时,程序无法根据图纸状况随机应变,可能导致获取的选择集不合适,迫使设计人员不得不耗费精力思考以何种固定原则选择目标图元才是最优解。
11、试举一例:在估算等高线图上的某点的高度时,操作者需要获取距离待测点最近的大约7条等高线作为参考,作为参考的等高线过少会导致估算不准确,作为参考的等高线过多会导致估算速度缓慢。操作者在实操时可以根据图纸状况进行随机应变的处理,但在操作者设计程序执行操作时,只得考虑利用边长为某个定值的多边形框作为框线点列表,以圈交的方式获取距离待测点附近的大约7条等高线,但等高线图上不同区域的等高线的疏密程度不一致,程序无法根据图纸状况随机应变,可能导致获取到的等高线数量过少或远大于7条,导致设计人员不得不耗费精力思考圈交多边形框的边长定值等于多少时获取到的等高线数量才最合理。
12、以二分法缩放框线以获取目标选择集的方法需要的已知参数一般是中心点、初始框线点列表、初始选取方式、最大缩放倍数、最小缩放倍数、最大循环次数、初始筛选表、扩大表达式、缩小表达式。本发明涉及的中间量参数主要有动态框线点列表、动态缩放倍数、动态二分法区间上限、动态二分法区间下限。正文中将明确上述参数概念和计算过程。
13、本发明致力于构造一种动态变化的框线点列表,该框线点列表依据其获取的选择集的特征放大或缩小,直到其获取到满足要求的选择集为止。
技术实现思路
1、本发明就是为了克服上述现有技术存在的缺点,提供一种基于cad的以二分法缩放框线以获取目标选择集的方法。本发明实现了在已知中心点、初始框线点列表、初始选取方式、最大缩放倍数、最小缩放倍数、最大循环次数、初始筛选表、扩大表达式、缩小表达式的情况下快速获得满足要求的选择集的效果。
2、本发明解决其技术问题所采取的技术方案是:
3、基于cad的以二分法缩放框线以获取目标选择集的方法,包括以下步骤:
4、s1、定义输入参数,包括中心点、初始框线点列表、初始选取方式、最大缩放倍数、最小缩放倍数、最大循环次数、初始筛选表、临时参数名列表、扩大表达式、缩小表达式,定义过程参数,包括动态框线点列表、动态缩放倍数、动态二分法区间上限、动态二分法区间下限;
5、s2、规定一般情况和特殊情况的处理方式和处理步骤;
6、s3、令框线点列表动态变化,直到其获取到满足要求的选择集为止,并输出最终选择集作为结果。
7、所述步骤s1中参数包括:
8、s1-1、中心点:输入框线点列表动态缩放所围绕的二维点;
9、s1-2、初始框线点列表:输入最初给定的框线点列表,程序进行第一次循环时以初始框线点列表作为框线点列表;
10、s1-3、初始选取方式:输入“圈围”、“圈交”、“栏选”中的一种;
11、s1-4、最大缩放倍数:给定初始的二分法区间上限;
12、s1-5、最小缩放倍数:给定初始的二分法区间下限;
13、s1-6、最大循环次数:表示框线点列表动态变化的允许次数的上限,决定二分法的细分程度;
14、s1-7、初始筛选表:输入正确表述满足要求的选择集中允许的图元的符合语法的逻辑点对;
15、s1-8、临时参数名列表:列表内容为扩大表达式、缩小表达式中所有用到的参数名称;
16、s1-9、扩大表达式、缩小表达式:各自输入一个符合cad语法的表达式;
17、s1-10、动态框线点列表:二分法循环的过程中的框线点列表,区别于初始框线点列表;
18、s1-11、动态缩放倍数:二分法循环的过程中的某个动态框线点列表对比初始框线点列表的缩放倍数,用于执行二分法;
19、s1-12、动态二分法区间上限、动态二分法区间下限:二分法循环的过程中的执行某次动态缩放倍数动态变化的允许区间,此区间的上限称为动态二分法区间上限,此区间的下限称为动态二分法区间下限,以获得动态变化的二分法区间。
20、所述步骤s2包括:
21、s2-1、一般情况的处理方式;
22、s2-2、特殊情况的处理方式;
23、s2-3、判定是否需要执行二分法。
24、所述步骤s2-1包括:
25、s2-1-1、若将初始框线点列表绕中心点缩放至最大缩放倍数倍,则此时的框线点列表获取到的选择集应不满足扩大表达式;
26、s2-1-2、最小缩放倍数不为0时,若将初始框线点列表绕中心点缩放至最小缩放倍数倍,则此时的框线点列表获取到的选择集应不满足缩小表达式;
27、s2-1-3、已同时满足s2-1-1、s2-1-2的前提下,二分法应充分进行,即执行完最后一次循环之时,应以扩大表达式、缩小表达式同时不成立的结果结束二分法;
28、s2-1-4、同时满足s2-1-1、s2-1-2、s2-1-3的情况下,操作者通过二分法获得完全满足要求的选择集;
29、所述s2-2包括:
30、s2-2-1、将初始框线点列表绕中心点缩放至最大缩放倍数倍,若此时的框线点列表获取到的选择集满足扩大表达式,此时应将该选择集作为最终结果且不再执行二分法;
31、s2-2-2、最小缩放倍数不为0时,将初始框线点列表绕中心点缩放至最小缩放倍数倍,若此时的框线点列表获取到的选择集满足缩小表达式,此时应将该选择集作为最终结果且不再执行二分法;
32、s2-2-3、已满足s2-1-1、s2-1-2的前提下,二分法未能充分进行,此时应将该选择集作为最终结果且以循环强制结束的结果结束二分法;
33、s2-2-4、满足s2-2-1、s2-2-2、s2-2-3其中一种的情况为特殊情况,特殊情况下,操作者无法通过二分法获得完全满足要求的选择集。
34、所述s2-3包括:
35、s2-3-1、判定中心点是否为三维点,若为三维点,则将中心点改为二维点;
36、s2-3-2、将初始框线点列表绕中心点缩放最大缩放倍数倍以得到一个新的框线点列表,并以此时的框线点列表、初始选取方式、初始筛选表作为ssget函数的输入参数获取一个选择集,该选择集称为“ss”,将临时参数名列表中唯一的参数名附值为ss,若扩大表达式成立,则定义“直接结束标志”为“是”并令最终结果为ss;
37、s2-3-3、若直接结束标志不为“是”且最小缩放倍数不为0,则将初始框线点列表绕中心点缩放最小缩放倍数倍以得到一个新的框线点列表,并以此时的框线点列表、初始选取方式、初始筛选表作为ssget函数的输入参数获取一个选择集,该选择集称为“ss”,将临时参数名列表中唯一的参数名附值为ss,若缩小表达式成立,则定义“直接结束标志”为“是”并令最终结果为ss;
38、s2-3-4、至此,若直接结束标志不为“是”,则需执行二分法。
39、所述步骤s3包括:
40、s3-1、若直接结束标志为“是”,则不执行s3的其余步骤;
41、s3-2、设定二分法动态变化的初始值;
42、s3-3、执行二分法并输出结果。
43、所述s3-2包括:
44、s3-2-1、若1∈[最小缩放倍数,最大缩放倍数],则将动态缩放倍数设为1,否则将动态缩放倍数设为最大缩放倍数;
45、s3-2-2、将动态二分法区间上限设为最大缩放倍数,将动态二分法区间下限设为最小缩放倍数;
46、s3-2-3、设定“当前循环次数”为0;
47、s3-2-4、设定“是否跳出循环”为“否”。
48、所述s3-3包括:
49、s3-3-1、当是否跳出循环为“否”且当前循环次数小于最大循环次数时,循环执行s3-3-2至s3-3-8所述步骤:
50、s3-3-2、将动态框线点列表设为初始框线点列表绕中心点放大动态缩放倍数后的状态;
51、s3-3-3、以动态框线点列表、初始选取方式、初始筛选表作为ssget函数的输入参数获取一个选择集,该选择集称为“ss”;
52、s3-3-4、将临时参数名列表中唯一的参数名附值为ss;
53、s3-3-5、若扩大表达式成立,则先将动态二分法区间下限调整为动态缩放倍数的值,再将动态缩放倍数调整为动态二分法区间下限和动态二分法区间上限的平均值;
54、s3-3-6、若缩小表达式成立,则先将动态二分法区间上限调整为动态缩放倍数的值,再将动态缩放倍数调整为动态二分法区间下限和动态二分法区间上限的平均值;
55、s3-3-7、若扩大表达式、缩小表达式都不成立,则将是否跳出循环调整为“是”;
56、s3-3-8、令当前循环次数加1;
57、s3-3-9、二分法结束,输出ss结果。
58、还包括拓展变体步骤,所述拓展变体包括:
59、s5-1、最终结果的变体;
60、s5-2、动态框线点列表变化规则的变体;
61、s5-3、最大缩放倍数的变体;
62、s5-4、临时参数名列表的变体;
63、s5-5、中心点、筛选表、选取方式的变体。
64、所述s5-1包括:
65、s5-1-1最终结果至少包括一个满足要求的选择集;
66、所述s5-4包括临时参数名列表包括多个参数名称,用于表示步骤中的任何参数,这种情况下,操作者需要在步骤s3-2、s3-3的合适位置将用到的参数赋值给临时参数名列表中的参数名称,使参数名称表示的含义参与二分法的执行过程。
67、本发明的有益效果是:
68、1.本发明通过以二分法缩放框线的方法,由操作者输入已知参数,快速地获得满足操作者要求的选择集,方便工程制图领域的从业者对图纸的操作,解决了现有技术中由于现有程序在获取选择集时无法根据图纸状况随机应变,可能导致获取到的选择集不合适,迫使设计人员不得不耗费精力思考以何种原则选择目标图元才是最优解的现状。
69、2.本发明应用空间极广,对任何涉及工程制图的行业都有可能提供帮助,并且,本发明在详述了以二分法缩放框线以获取目标选择集的方法的基本功能的基础上简述了此方法的几种变体,各行各业的制图人员都可以在充分理解上述变体的前提下对本方法的基本步骤进行适合自己行业应用场景的改良,如果某行业的某应用场景足够经典且足够区别于此发明,那么该行业的从业者有可能在此发明所述理念的基础上搭建出步骤更明确、目的性更强的发明,进而开辟出一系列的以此发明为基石的新发明,实现对工程制图领域的全体赋能。
1.基于cad的以二分法缩放框线以获取目标选择集的方法,其特征是,包括以下步骤:
2.如权利要求1所述的基于cad的以二分法缩放框线以获取目标选择集的方法,其特征是,所述步骤s1中参数包括:
3.如权利要求1所述的基于cad的以二分法缩放框线以获取目标选择集的方法,其特征是,所述步骤s2包括:
4.如权利要求3所述的基于cad的以二分法缩放框线以获取目标选择集的方法,其特征是,所述步骤s2-1包括:
5.如权利要求4所述的基于cad的以二分法缩放框线以获取目标选择集的方法,其特征是,所述s2-3包括:
6.如权利要求5所述的基于cad的以二分法缩放框线以获取目标选择集的方法,其特征是,所述步骤s3包括:
7.如权利要求6所述的基于cad的以二分法缩放框线以获取目标选择集的方法,其特征是,所述s3-2包括:
8.如权利要求6所述的基于cad的以二分法缩放框线以获取目标选择集的方法,其特征是,所述s3-3包括:
9.如权利要求8所述的基于cad的以二分法缩放框线以获取目标选择集的方法,其特征是,还包括拓展变体步骤,所述拓展变体包括:
10.如权利要求9所述的基于cad的以二分法缩放框线以获取目标选择集的方法,其特征是,所述s5-1包括:
