[发明专利]一种Solidworks二维工程图视图自动调整方法有效

专利信息
申请号: 202010635999.2 申请日: 2020-07-03
公开(公告)号: CN111767590B 公开(公告)日: 2023-09-08
发明(设计)人: 胡汝凯;江友志;刘夫云;余汉红;吴强;耿立冬;陈鑫淼;陈浩东;吴鹏兴 申请(专利权)人: 桂林电子科技大学;桂林福达股份有限公司
主分类号: G06F30/12 分类号: G06F30/12;G06F30/17
代理公司: 桂林市华杰专利商标事务所有限责任公司 45112 代理人: 杨雪梅
地址: 541004 广*** 国省代码: 广西;45
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 solidworks 二维 工程图 视图 自动 调整 方法
【权利要求书】:

1.一种Solidworks二维工程图视图自动调整方法,其特征在于,包括视图缩放比例自动调整和视图位置自动调整,包括如下步骤:

1)对视图缩放比例自动调整:首先确定主视图的缩放比例范围,计算相对最佳视图缩放比例,然后对主要特征视图缩放比例自动调整,再对其他局部视图比例自动调整;

2)对视图位置自动调整:首先确定主视图的位置基准,三视图根据主视图的位置基准进行三视图位置自动调整,再进行其他视图位置自动调整;

步骤2)中,所述的对视图位置自动调整,具体包括如下步骤:

2-1)确定主视图的位置基准

根据视图之间的相对映射关系,满足三视图投影规则,设定主视图位置为其它视图相对位置的基准;

2-2)三视图位置自动调整

调用GetCurrentSheet函数获取当前图纸对象,从当前图纸对象中获得主视图对象和图纸的属性值,其中属性值调用GetProperties2()函数获取当前图纸的8个属性值,返回类型为Double的8个元素的数组,存放入数组Properties()中,即Properties()=[Papersize,TemplateIn,Scale1,Scale2,FirstAngle,Width,Height,SameCustomProp],

首先获取图纸的尺寸,在二维平面坐标系中坐标化处理,设图纸的尺寸宽为w,高为h,则图纸范围坐标为(0,0)(w,h),根据图纸大小,确定主视图的位置,以图纸中心为对称点,将图纸分为四等份,主视图在图纸的左上角,取图纸左上角部分的中心为主视图的中心坐标点位置,确定主视图的中心坐标点位置为(1/4w,3/4h),将主视图中心点坐标放入数组A()中,A(0)为主视图中心点X坐标1/4w,A(1)为主视图中心点Y坐标3/4h,根据计算的坐标点设置主视图位置;根据三视图规则,左视图中心点的Y轴坐标与主视图中心的Y轴坐标相同,俯视图中心点的X轴坐标与主视图中心点的X轴坐标相同,获取所有视图的中心点坐标,存入列表框中,按照视图顺序存放入数组x()、y()中,由数组的下标可以获取视图的总数量;

根据数组y(),判断数组y()中与y(0)值相同的元素数量,元素的数量为主视图水平方向视图的数量,存放入变量n中,将元素对应的视图重新编号(1~n),n的值就是在主视图水平方向视图的数量,确定主视图水平方向视图数量后,根据主视图水平方向各个视图边界框的宽度值,由下述公式(3)计算出视图之间的间距值Δw,将Δw存入变量delta1中,

公式(3)中,Δw是视图之间的间距值,w是图纸的宽度,w1…wn是各个视图边界框的宽度,n是主视图水平方向视图的数量;

根据获取的视图之间间距值Δw,由下述公式(4)计算出主视图水平方向各个视图的位置调整x坐标,主视图位置已经确定,以主视图为基准,向右依次排列,第n个视图中心点的调整坐标值为(xn,y(0)),用SetPosition函数根据视图中心点调整坐标值重新设置视图位置,直至主视图水平方向所有视图调整完毕;

公式(4)中,xm是第m个视图中心点的x坐标值,x1是主视图中心点的x坐标,w1…wn是各个视图边界框的宽度,m是当前调整视图的序号,Δw是视图之间的间距值;

根据数组x(),判断数组中与x(0)值相同的元素数量,存放入变量m中,将元素对应的视图重新编号(1~m),m的值就是在主视图竖直方向视图的数量,确定主视图竖直方向视图数量后,根据主视图竖直方向各个视图边界框的高度值,由下述公式(5)计算出视图之间的间距值Δh,将Δh存入变量delta2中,间距值Δh的计算公式为:

公式(5)中,Δh是视图之间的间距值,h是图纸的高度,h1…hm是各个视图边界框的宽度,ht是图纸中标题栏的高度,m是主视图竖直方向视图的数量,

根据获取的视图之间间距值Δh,由下述公式(6)计算出主视图竖直方向各个视图的位置调整y坐标,第一个视图即主视图位置已经确定,以主视图为基准,向下依次排列,第m个视图中心点的调整坐标值为(x(0),ym),

公式(6)中,yn是第n个视图中心点的y坐标值,y1是主视图中心点的y坐标,h1…hm是各个视图边界框的高度,Δh是视图之间的间距值;

用SetPosition函数根据视图中心点调整坐标值重新设置视图位置,直至主视图竖直方向所有视图调整完毕;

2-3)其它视图位置自动调整

运用划分区域的方法,确定其它视图位置的调整范围,首先根据主视图最下边框线,确定其它视图调整区域的上边框线;根据俯视图的最右边框线,确定其它视图调整区域的左边框线;根据图纸标题栏最上边框线,确定其它视图调整区域的下边框线;最后根据图纸的最右边框线,确定其它视图调整区域的右边框线;

用GetOutline()函数获取的主视图边界框最小点和最大点坐标,将俯视图边界框的最小点和最大点坐标值存放入数组Vmin()、Vmax()中,Vmin(0)为主视图边界框最小点X坐标值,Vmin(1)为主视图边界框最小点Y坐标值,Vmax(0)为主视图边界框最大点X坐标值,Vmax(1)为主视图边界框最大点Y坐标值,可得出主视图边界框最下边线为直线y=Vmin(1),同理将俯视图边界框的坐标值存放入数组Dmin()和数组Dmax()中,Dmin(0)为俯视图边界框最小点X坐标值,Dmin(1)为俯视图边界框最小点Y坐标值,Dmax(0)为俯视图边界框最大点X坐标值,Dmax(1)为俯视图边界框最大点Y坐标值,可得到俯视图边界框最右边线为直线x=Dmax(0);

根据步骤2-2)得到的视图中心点坐标对应的x坐标值不与x(0)相同,同时y坐标值也不与y(0)相同,将此类视图归类于其它视图,将其它视图中点的x坐标和y坐标重新存放入新的数组ox()、oy()中,其中ox()存放x坐标值,oy()存放y坐标值,数组中元素的数量就是其它视图的数量,存入变量num中,将元素对应的视图重新编号1~num,根据主视图边界框最下边线y=Vmin(1)、俯视图边界框最右边线x=Dmax(0)、图纸的最右边框线x=h、标题栏最上边框线y=ht,计算出其它视图调整范围边框宽为wo,wo=h-Dmax(0),将获取的视图调整范围边框宽度值wo和数量num带入下述公式(7)中,计算出当前视图与其它视图的间隔值Δo,将Δo存入变量delta3中,间隔值Δo的计算公式为:

公式(7)中,Δo是需要调整的其它视图之间的间隔值,w是图纸的宽度,Dmax(0)是俯视图边界框最大的x方向的值,w1…wnum是各个视图边界框的的宽度值,num是需要调整的其它视图的数量;

在其它视图位置进行调整时,为了图纸显示更加规范整洁,设置其它视图位置与俯视图在同一水平线上,根据俯视图边界框最大的x方向的值Dmax(0)和其它视图位置间隔值Δo,根据下述公式(8)计算视图中心点的位置x坐标值:

公式(8)中,xn是第n个视图中心点的x坐标值,wn是第n个视图的边界框宽度,w1…wn是各个视图边界框的宽度,n是当前调整视图的序号,Δo是视图之间的间距值;

计算出各个视图需调整中心点位置的x坐标,即可获得视图调整的中心点坐标,以俯视图为基准,向右依次排列,第n个视图的调整中心点位置坐标为(xn,Ytopview),用SetPosition函数根据视图中心点调整坐标值重新设置视图位置,直至所有视图调整完毕。

2.根据权利要求1所述的一种Solidworks二维工程图视图自动调整方法,其特征在于,步骤1)中,所述的对视图缩放比例自动调整,具体包括如下步骤:

1-1)调用GetCurrentSheet函数获取当前图纸对象,从当前图纸对象中获得主视图对象和图纸的属性值,其中属性值调用GetProperties2()函数获取当前图纸的8个属性值,返回类型为Double的8个元素的数组,存放入数组Properties()中,即Properties()=[Papersize,TemplateIn,Scale1,Scale2,FirstAngle,Width,Height,SameCustomProp],其中Papersize为图纸大小,TemplateIn为图纸模板,Scale1为图纸缩放比例的分子,Scale2为图纸缩放比例的分母,FirstAngle为投影类型,Width为图纸的宽,Height为图纸的高,SameCustomProp为图纸属性与文档属性中指定的图纸是否相同;

1-2)根据获取的图纸属性值,计算主视图缩放比例最大图框,将最大图框的尺寸值转化为平面坐标系中的坐标,得到最小坐标(0,H/2)和最大坐标(W/2,H),由数组Properties()可知,W=Properties(5),L=Properties(6),确定主视图缩放比例最大图框,将坐标点存放入数组min()、max()中,min(0)为最小坐标的X坐标值0,min(1)为最小坐标的Y坐标值H/2,max(0)为最大坐标的X坐标值W/2,max(1)为最大坐标的Y坐标值H;

1-3)调用GetFirstView函数获取第一个视图对象,即主视图对象,用GetOutline()函数获取当前视图边界框对角点,即最小点和最大点坐标,存放入数组Vmin()、Vmax()中,Vmin(0)为主视图边界框最小点X坐标值,Vmin(1)为主视图边界框最小点Y坐标值,Vmax(0)为主视图边界框最大点X坐标值,Vmax(1)为主视图边界框最大点Y坐标值;

1-4)根据获取的主视图缩放最大图框和主视图边界框坐标,计算出图框最短尺寸l2,主视图对应的边长的实际尺寸l1,设定视图边界框与图框最佳显示比例k2=1:2,通过下述公式(1-1)与公式(1-2)计算出主视图最佳缩放比例1:K,将最佳缩放比例分母值K存放入变量k中;

L1=k1l1                          (1)

L2=k2l2                          (2)

L1为视图映射在图纸的尺寸,L2为对应的视图边界框映射在图纸中的尺寸,由L1=L2联立公式(1)和公式(2)得主视图的实际缩放比例为:k1=k2l2/l1

1-5)对主要特征视图进行调整,通过SetProperties2()函数设置图纸比例,因为SetProperties2()函数返回的是类型为Double的8个元素的数组,图纸缩放比例分母是在数组中第4个元素,则SetProperties2(3)=k,实现主要特征视图根据最佳缩放比例k调整;

1-6)确定图纸中是否存在局部视图,通过GetViews()函数,获取图纸中所有视图,再用GetName2()函数获取所有视图的名称数组,遍历数组,根据名称,判断视图中是否存在局部视图,若不存在,则视图缩放比例调整结束;若存在,对局部视图进行调整;

1-7)对局部视图进行调整,首先遍历视图,根据视图名称判断,若是局部视图,则选定当前视图,判断主视图最佳缩放比例分母k值,若k=1,则局部视图的调整比例为2:1,用ScaleRatio()函数设置局部视图比例为2:1,ScaleRatio(0)为缩放比例分子,ScaleRatio(1)为缩放比例分母;若k1,对应的局部视图比例为1:k/2,最后对k/2四舍五入进行取整,取整后得到的便是局部视图自适应调整缩放比例,将取整后的k/2值存放入k2中,得到的局部视图最佳缩放比例为1:k2,用ScaleRatio(1)函数设置局部视图比例分母为k2;遍历所有视图,将所有局部视图调整完成,则视图缩放比例自适应结束。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学;桂林福达股份有限公司,未经桂林电子科技大学;桂林福达股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010635999.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

400-8765-105周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top