符合国家标准工程图中两直线点画线相交算法
2010-09-03罗敏雪
罗敏雪
(安徽建筑工业学院机械与电气工程学院,安徽合肥 230022)
工程图是工程界的技术语言,任何领域的工程图都必须按照国家标准绘制。计算机绘制工程图中两中心线相交,难以做到符合国家标准[1,2]。
目前,基于国家标准,中心线的线型是细点画线、点画线与点画线交接,应是线段交接。绘图软件的线型库中,虽然线型很多,比例可以调整,但调整成符合某种要求非常麻烦,因此经常出现计算机绘制工程图中心线时,两中心线相交的情况往往不符合国家标准[3-9],同时也不美观。
为此,本文对绘制符合国家标准规定的两相交中心线进行了研究,提出了一种算法。
根据国家标准,中心线的线型是细点画线,点画线样式如图1所示。图1中,由线段、空及短线段组成。文献[10]中设定:空、短线段长度各为1 mm,线段长度b根据图形的大小来确定;并将问题归结为:已知点画线端点P1、P2,求出点画线适当的线段长度b和线段数n。
图1 点画线样式
设欲画点画线的总长度为L,点画线的线段长度为b,线段数为n,由图1可知:
根据国家标准中小图形中心线,可用实线代替的规定,设定bmin=3 mm,nmin=3,又根据国家标准,中心线端部超出图形2 mm的规定,由(1)式得Lmin=15 mm。
根据国家标准、美观要求以及对称图形的特点,设立确定参数n、b的2个原则:n必须取奇整数,优先确定n;L长度较大时,b不能太小,n不能太大。再设定经验上、下限,进行下面判别,计算出点画线线段的长度。
由(1)式得:
(1)当0<L≤15,取n=1,则0<b≤15。
(2)当15<L≤50,取n=3,则 3<b<15。
(3)当50<L≤100,取n=5,则8<b<18。
(4)当L>100,取n=7,则12<b≤20。
如果b>20,则令n=n+2;一直循环到首次出现b≤20。
当2条直线点画线相交时,设第1条点画线长度为L1,线段长为b1;第2条点画线长度为L2,线段长为b2。
当L2>L1>15时,L1则调用上述步骤(2)~步骤(4),计算出b1、n1。为了求出L2的b2和n2,根据国家标准及美观要求,又设定2个原则:当L1≠L2时,b1与b2长度尽可能接近;如L1<L2,则b1<b2。
文献[10]中根据设定的4个原则和经验上、下限,设计了算法,并编制了程序,实现了符合国家标准的工程图中对称图形相交点画线的作图,绘制出的点画线美观,且符合国家标准
本文在文献[10]的基础上,进一步提出了另一种算法,编制了程序,实现了符合国家标准的工程图中非对称图形相交点画线的作图。
1 算法基础
和文献[10]一样,设定空、短线段长度各为1 mm,线段长度b根据图形的大小确定。本文问题归结为:已知点画线P1P2及点画线上一点P0,求点画线适当的线段长度b和所包含线段数n,使P0落在某一线段上,且接近该线段的中点。
按国标要求,只要线段相交就可以了,但是为了美观起见,最好相交在中点。但这个要求过于苛刻,将会导致调试次数过多,使文献[10]中的要求被破坏过多,从而更不美观,所以作上述规定,下面将对此规定作更精确的描述。
1.1 求交点
设点画线P1P2与P3P4交点为P0点,P1、P2、P3、P4、P0 点坐标依次为(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)和(x0,y0),则过点 P1、P2的直线方程为:
P0在 P1P2、P3P4上 ,则(x0,y0)满足(2)式和(3)式,所以:
理论上 x0、y0的分母有可能为0。但是,在实际画2条点画线相交时,总会让2条点画线相交于一点,所以上述情况在应用中不会发生,因而不再进一步考虑这种特殊情况。
1.2 判别
设P1P2长度为 l1,先根据文献[10]设定的原则和经验上、下限算出P1P2线段数n,线段长度b。需要判断P0点是否在某一线段上,且接近该线段的中点。如图 2所示,设 A、B是由P1到P2的第m条线段的端点,1≤m≤n,则P1A长度为(m-1)(b+3);P1B长度为m(b+3)-3。
设P1P0长度为L,要求:
则P0在第m条线段上,且接近该线段中点,其中0.3b称为修正值。对m循环判别,若对某m值(4)式满足,称为通过判别,则使用已算出的n、b画出点画线P1P2;n、b不能通过判别,则转入下面调试。
过点P3、P4的直线方程为:
图2 判别交点是否在线段中部
1.3 调试
当n、b不能通过判别时,如图3所示。此时,P0可能在某空中(即在相邻短线段、线段端点的连线上)某短线段上、某线段上靠近端点处。
图3 通过调试使交点在某线段中部
2 算法验证
结合文献[10]算法和上述算法,在AutoCAD平台上编制程序,经过大量实验,需作调试的次数均不超过3次,所以程序中设定u=4。同时程序中可设交互输入,需要时将修正值 0.3b降为0.25b或0.20b,用降低美观的要求,实现判别的通过,满足基本要求,符合国家标准。
使用该程序,任意地输入2个相交点画线4个端点的坐标,可以画出既符合国家标准又美观的图形,验证了算法的正确、有效和方便。本文提出的算法,可广泛用于计算机绘制工程图中,两中心线相交的图形,适用于对称及非对称图形相交点画线的作图,如图4、图5所示。
算法思路还可嫁接延伸到用计算机绘制工程图中,如虚线与空线相交、细虚线与粗实线相交等情况,为设计绘制出合格的工程图打下算法基础。
图4 对称及非对称图形相交点画线
图5 2条点画线对称及非对称垂直相交和非对称斜交
[1]全国技术产品文件标准化技术委员会.技术产品文件标准汇编:技术制图卷[M].北京:标准出版社,2009:109.
[2]中华人民共和国建设部.房屋建筑制图统一标准[M].北京:中国计划出版社,2002:1-8.
[3]胡 炜,敕月梅.AutoCAD2008高级应用与实例教程[M].北京:中国电力出版社,2008:197-321.
[4]二代龙震工作室.AutoCAD2010机械设计基础教程[M].北京:清华大学出版社,2010:206,335.
[5]二代龙震工作室.AutoCAD2009机械图学基础[M].北京:清华大学出版社,2009:473.
[6]二代龙震工作室.AutoCAD2009建筑图学基础[M].北京:清华大学出版社,2009:421.
[7]张晓峰,常 玮.AutoCAD2010机械图形设计[M].北京:清华大学出版社,2009:254-255.
[8]麓山文化.AutoCAD2010机械设计经典208例[M].北京:机械工业出版社,2010:217.
[9]刘言松,贺 炜.AutoCAD2009中文版二次开发实例教程[M].北京:化学工业出版社,2009:97-102.
[10]罗敏雪.符合国家标准的工程图中相交点画线算法[J].安徽建筑工业学院学报,2005,13(3):86-88.