[發明專利]一種工程圖表面粗糙度批量修改和自適應調整方法有效
| 申請號: | 202011301917.7 | 申請日: | 2020-11-19 |
| 公開(公告)號: | CN112419481B | 公開(公告)日: | 2022-08-30 |
| 發明(設計)人: | 劉夫云;江友志;彭旺生;胡汝凱;余漢紅;羅偉釗;吳強;陳鑫淼;吳鵬興;陳浩東;徐云展 | 申請(專利權)人: | 桂林電子科技大學;桂林福達股份有限公司 |
| 主分類號: | G06T17/00 | 分類號: | G06T17/00;G06T19/20 |
| 代理公司: | 桂林市華杰專利商標事務所有限責任公司 45112 | 代理人: | 童世鋒 |
| 地址: | 541004 廣*** | 國省代碼: | 廣西;45 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 工程圖 表面 粗糙 批量 修改 自適應 調整 方法 | ||
1.一種工程圖表面粗糙度批量修改和自適應調整方法,其特征在于,包括如下步驟:
1)批量更改表面粗糙度舊的標注形式:
1-1)獲取二維工程圖中的第一個視圖;
1-2)遍歷第一個視圖當中的所有表面粗糙度對象,表面粗糙度在Solidworks中的API接口為ISFSymbol Interface,其接口下的GetSymbol()方法的返回值以枚舉的方式獲得表面粗糙度的類型,當返回值為0、1、2、9、8和7時,分別對應表面粗糙度的基本類型、要求切削加工類型、禁止切削加工類型、需要JIS切削加工類型、JIS基本類型和禁止JIS切削加工類型;即返回值為8時,表面粗糙度的標注形式為舊的標注形式,定義容器jsccdxh,將表面粗糙度舊的標注形式放入容器jsccdxh中;
1-3)根據獲取到的表面粗糙度的舊的標注形式,利用GetTest()方法獲得表面粗糙度組成部分的字符串;表面粗糙度包括a1最大粗糙度、a2最小粗糙度、b加工方法、c抽樣長度、d粗糙度間隔、e移除材料系數和f其他粗糙度7個部分;
1-4)根據表面粗糙度舊的標注形式和新版國標表面粗糙度的對應關系,利用SetSymbol()方法和SetText()方法設置表面粗糙度的類型和表面粗糙度的標注部分;
1-5)當第一個視圖批量修改表面粗糙度的標注形式進行完成后,利用IGetNextView()方法進入下一個視圖,循環掃描視圖上的表面粗糙度對象,直至視圖掃描調整完畢;
2)尺寸線的自適應位置調整,包括如下步驟:
2-1)在Solidworks工程圖的模板當中,每一個視圖都有其相應的視圖邊框,利用視圖接口中的GetOutline()方法得到視圖邊框的左下角和右上角的橫縱坐標,以視圖邊框為界把尺寸線分為規律尺寸層和不規律尺寸層,在視圖邊框以外的尺寸線具有層次感,在視圖邊框以內的尺寸線相對比較雜亂無章,沒有規律可循,只有當其發生干涉問題的時候才進行其調整;
2-2)遍歷所有的尺寸線對象,利用GetArrowHeadAtIndex2()方法獲得尺寸線兩個箭頭的坐標,將尺寸線的第一個箭頭的橫縱坐標分別放入容器ccxx1和容器ccxy1中,將尺寸線的第二個箭頭的橫縱坐標分別放入容器ccxx2和容器ccxy2當中,并記錄每一條尺寸線的序號放入容器ccxxh中,遍歷尺寸線,根據下述公式(1)和公式(3)將尺寸線分為水平尺寸、豎直尺寸和其他尺寸,并將豎直尺寸序號i放入容器szxh中,水平尺寸序號j放入容器spxh中,以視圖邊框為界,根據水平尺寸的縱坐標以及豎直尺寸的橫坐標將這些尺寸線分層的水平方向上的三個區域和豎直方向上的三個區域,分別對每一個區域根據公式(2)將豎直尺寸的長度分別放入容器szcd1、szcd2和szcd3中,并分別將豎直尺寸序號放入容器szxh1、szxh2和szxh3,根據公式(4)將水平尺寸的長度分別放入容器spcd1、spcd2和spcd3中,并分別將水平尺寸序號放入容器spxh1、spxh2和spxh3中,利用c++中sort()函數,將尺寸長度容器中的數從小到大排列,得到分層水平尺寸長度容器spcd10、spcd20和spcd30,以及分層豎直尺寸長度容器szcd10、szcd20和szcd30,并記錄水平尺寸的原序號:容器spxh10,spxh20和spxh30和豎直尺寸序號:容器szxh10,szxh20和szxh30;
ccxx1[i]=ccxx2[i] (1)
szcd[i]=|ccxy1[i]-ccxy2[i]| (2)
ccxy1[j]=ccxy2[j] (3)
spcd[j]=|ccxx1[j]-ccxx2[j]| (4)
2-3)根據尺寸線在視圖邊框外的規律布局方式,利用SetPosition()方法對尺寸線進行調整;
3)表面粗糙度自適應的位置調整,表面粗糙度的標注度的標注形式包括直接標注在輪廓表面和在輪廓表面接引線到圖紙的其他位置,具體包括如下步驟:
3-1)首先根據表面粗糙度接口下的GetArrowHeadCount()方法獲得表面粗糙度上是否有箭頭來區分的兩種標注形式,利用GetPosition()方法獲得表面粗糙度頂點坐標A0、B0;
3-2)當表面粗糙度直接標注在輪廓表面時,利用GetAngle()方法獲得表面粗糙度的角度α,根據Solidworks默認的表面粗糙度的符號大小,標注文字的默認大小、的長度和表面粗糙度水平位置時A0B0相對于輪廓面的角度β;
3-3)根據下述公式(5)和公式(6)計算出B′0的橫縱坐標,遍歷所有的粗糙度對象,將兩種標注形式的表面粗糙度分開進行處理,將標注在輪廓表面的表面粗糙度的第一個基準點A0的橫坐標放入容器ccdx1中,縱坐標放入容器ccdy1中;將第二個基準點B0的橫坐標放入容器ccdx2,縱坐標放入容器ccdy2中,并將表面粗糙度序號記錄在容器ccdxh1,以A0B0為表面粗糙度的基準線,判斷在工程圖中是否有與尺寸線干涉的情況;
3-4)當表面粗糙度以引線的形式標注到工程圖時,利用GetArrowHeadAtIndex2()方法獲取A1坐標,將這種形式標注的表面粗糙度的第一個基準點A1的橫坐標放入容器ccd1x1中,縱坐標放入容器ccd1y1;第二個基準點B1的橫坐標放入容器ccd1x2中,縱坐標放入容器ccd1y2;
3-5)在工程圖當中,把圖紙中的干涉情況看成線段是否相交的問題,根據Solidworks所提供的API獲得視圖上各個尺寸、表面粗糙度和幾何公差的具體坐標,判斷圖紙中是否存在干涉情況;在Solidworks默認的坐標系下,判斷兩條線段的相交情況;
3-6)根據已經獲得的尺寸兩個箭頭的坐標和表面粗糙度兩個基準點的坐標去判斷尺寸線是否存在干涉關系,當表面粗糙度定位在輪廓表面時,將干涉的尺寸序號放入容器gsccx1中,將干涉的表面粗糙度序號放入容器gsccd1中,根據干涉的尺寸線序號判斷尺寸線是否為水平尺寸或豎直尺寸并判斷其所在的區域位置,根據表面粗糙度序號判斷表面粗糙度的角度,根據視圖邊框將視圖劃分為水平區域①②③和豎直區域①②③,當干涉發生在水平區域①③時,以表面粗糙度的第二個基準點的縱坐標為當前干涉的水平尺寸的定位點,遍歷①③區域中橫坐標包含干涉尺寸線的水平尺寸,將這些尺寸線在①③區域中分別進行調整,即在區域①中給每條尺寸線的縱坐標增加固定值,在區域③中給每條尺寸線的縱坐標減小固定值;當干涉發生在豎直區域①③時,調整方法與水平區域一致;
3-7)當干涉發生在區域②時,根據干涉表面粗糙度的第二個基準點為定位點去調整水平尺寸和豎直尺寸,當表面粗糙度以引線的方式定位時,將干涉的尺寸序號放入容器gsccx2中,將干涉的表面粗糙度序號放入容器gsccd2中,將視圖以視圖中心點P分為I、II、III、IV四個區域,當干涉的表面粗糙度的第一個基準點在區域I時,判斷干涉的尺寸線是否為水平尺寸和豎直尺寸,當尺寸線為水平尺寸時,用SetPosition()方法驅動表面粗糙度并向右移一定的固定值,當尺寸線為豎直尺寸時,驅動表面粗糙度并向上移一定的固定值,循環判斷干涉直至沒有干涉,循環截止;在區域II、III和IV時,采用區域I的判斷原理,以表面粗糙度的第一個基準點確定區域,以水平尺寸和豎直尺寸確定平移方向。
2.根據權利要求1所述的一種工程圖表面粗糙度批量修改和自適應調整方法,其特征在于,步驟3-5)中,兩條線段的相交包括如下情況:
(1)當兩條直線對的斜率都存在時,算出各點在另外一條直線上沿y軸方向的投影點,即A',B',C',D',如果(w1-y1)*(w2-y2)=0(w3-y3)*(w4-y4)=0,則相交;
(2)當直線AB斜率不存在,即x1==x2,CD斜率存在時,算出點A,B在CD直線上沿y軸的投影點A',B',如果(w1-y1)*(w2-y2)=0(x3-x1)*(x4-x1)=0,則相交;
(3)當直線CD斜率不存在,即x3==x4,AB斜率存在時,算出點C,D在AB直線上沿y軸的投影點A',B',如果(w3-y3)*(w4-y4)=0(x1-x3)*(x2-x3)=0,則相交;
(4)當斜率都不存在時,如果(x1==x3)((y3-y1)*(y3-y2)=0||(y4-y1)*(y4-y2)=0),則相交。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于桂林電子科技大學;桂林福達股份有限公司,未經桂林電子科技大學;桂林福達股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011301917.7/1.html,轉載請聲明來源鉆瓜專利網。





